Habla con tu equipo sin celular, sin WiFi y sin internet

¿Te imaginas un par de radios que se hablan directo entre sí, sin router, sin chip y sin app? Eso es justo lo que vas a construir acá: dos walkie talkies caseros basados en la placa ESP32-S3 Reverse TFT de Adafruit, que graban tu voz con un micrófono I2S y la envían al otro equipo usando ESP-NOW, el protocolo punto a punto de Espressif. Cada vez que mantienes apretado el botón frontal, grabas un mensaje de hasta 10 segundos; al soltarlo, el paquete de audio viaja por el aire y sale por el parlante del compañero. La antena externa de 2.4GHz le suma alcance para que funcione bien dentro de la casa o al aire libre.

Al final de este tutorial vas a entender cómo se transmite audio entre microcontroladores en tiempo real, cómo se cablea un micrófono y un amplificador por I2S, y cómo imprimir y armar una carcasa con onda retro. La estética se inspira en esos walkie talkies de juguete que abundaban a comienzos de los 90: el botón iluminado del frente sirve de indicador de estado y la pantalla TFT integrada muestra la dirección MAC del equipo, la intensidad de señal y el estado del último paquete.

Carcasa con diseño retro inspirado en los walkie talkies de los años 90

Por qué ESP-NOW y no WiFi

ESP-NOW es un protocolo inalámbrico de Espressif que deja que dos placas ESP32 o ESP8266 se comuniquen de forma directa, sin pasar por un router WiFi ni por internet. Trabaja en la banda de 2.4GHz con latencias muy bajas, lo que lo vuelve ideal para mover paquetes de audio sin demora perceptible.

Las ventajas para este proyecto son claras:

  • Cero infraestructura: no necesitas modem, router ni servidor en la nube.
  • Bajo consumo: perfecto para un equipo a batería que andas trayendo encima.
  • Pareo simple: los equipos se reconocen entre ellos apenas encienden.
  • Alcance ampliable: con la antena externa de 2.4GHz puedes cubrir bastante terreno con línea de vista.

Qué necesitas por cada walkie talkie

Recuerda que el proyecto exige dos equipos completos para que haya conversación: lo que listamos abajo se duplica.

Componentes del walkie talkie: placa ESP32-S3 Reverse TFT, antena 2.4GHz con pigtail, parlante ovalado, micrófono I2S, amplificador I2S, pulsador iluminado y switch

  • 1× Placa ESP32-S3 Reverse TFT con conector de antena externa w.FL (la que usa el tutorial original es la Adafruit Feather ESP32-S3 Reverse TFT).
  • 1× Antena dipolo de 2.4GHz con conector RP-SMA, más el adaptador RP-SMA a w.FL para enlazarla a la placa.
  • 1× Micrófono I2S MEMS (el original es un ICS-43434; el módulo INMP441 cumple la misma función I2S).
  • 1× Amplificador de audio I2S clase D (en el tutorial original es un MAX98357A).
  • 1× Parlante mini de 8 Ohm 1W.
  • 1× Pulsador iluminado de 16mm momentáneo, que hace de botón de hablar y de luz indicadora.
  • 1× Mini switch SPDT de panel para el encendido.
  • 1× Batería LiPo de 3.7V (los soportes de la tapa están pensados para una celda pequeña).
  • 1× Cable USB-C para carga y programación.
  • Cables, soldadura y la carcasa impresa en 3D.

El diagrama de conexión

El audio se mueve por I2S, así que el micrófono y el amplificador comparten ese bus pero en sentidos opuestos: el micrófono entrega datos a la placa y el amplificador los recibe de vuelta para sonar por el parlante. El pulsador iluminado va a un pin de entrada y su LED a otro pin de salida controlado por software. El switch de encendido es especial: corta la alimentación a través del pin EN de la placa.

Diagrama de conexión estilo Fritzing del walkie talkie ESP-NOW con ESP32-S3, micrófono I2S, amplificador y parlante

Estas son las conexiones tal como las indica el tutorial original. El micrófono I2S va así:

  • Mic VIN a la placa 3.3V (cable rojo)
  • Mic GND a la placa GND (cable negro)
  • Mic BCLK a la placa D5 (cable azul)
  • Mic LRCL a la placa D6 (cable verde)
  • Mic DOUT a la placa D9 (cable amarillo)

El amplificador I2S se conecta de esta forma:

  • Amp Vin a la placa 3.3V (cable rojo)
  • Amp GND a la placa GND (cable negro)
  • Amp BCLK a la placa D10 (cable blanco)
  • Amp LRC a la placa D11 (cable cian)
  • Amp DIN a la placa D12 (cable naranjo)
  • Parlante + al bornera + del amplificador (cable rojo)
  • Parlante GND al bornera GND del amplificador (cable negro)

El pulsador iluminado y el switch quedan así:

  • Salida del botón a la placa D13 (cable morado)
  • GND del botón a la placa GND (cable negro)
  • LED GND del botón a la placa GND (cable negro)
  • LED positivo del botón a la placa A0 (cable gris)
  • Salida del switch al pin EN de la placa (cable rosado)
  • GND del switch a la placa GND (cable negro)

Imprime la carcasa en 3D

La carcasa son dos piezas: el cuerpo principal y la tapa. El cuerpo se imprime parado, con soportes tipo árbol, y trae los recortes para los botones de la placa, la pantalla TFT, el micrófono y el parlante. La tapa lleva los soportes (standoffs) para atornillar el amplificador, el micrófono y la placa, además de los clips que sujetan la batería. Esos soportes son los que dejan cada componente a la distancia correcta frente a su recorte.

Piezas de la carcasa impresas en 3D: cuerpo principal y tapa con soportes para los componentes

Parámetros de impresión recomendados:

  • Material: PLA o PETG.
  • Altura de capa: 0.2 mm.
  • Relleno: entre 15% y 20%.
  • Soportes: tipo árbol para el cuerpo impreso vertical.
  • Tiempo aproximado: 4 a 5 horas por carcasa.

Antes de imprimir las dos copias finales, conviene hacer una de prueba y verificar que los recortes calcen con tus componentes reales.

Prepara el IDE de Arduino

Antes de cargar el firmware tienes que dejar listo el entorno:

  1. Agrega la URL de placas de Espressif en Archivo > Preferencias:
    Código
    https://espressif.github.io/arduino-esp32/package_esp32_index.json
    
  2. En Herramientas > Placa > Gestor de tarjetas, busca "esp32" e instala la última versión del paquete de Espressif.
  3. Instala la librería de audio I2S que usa el firmware (ESP32-audioI2S) junto con las librerías gráficas de Adafruit para la pantalla TFT.
  4. Selecciona la placa ESP32-S3 correspondiente y el puerto donde la conectaste.

Nota sobre la placa: si tu placa ESP32-S3 no aparece o no entra en modo de carga, mantén apretado el botón BOOT mientras conectas el cable USB-C, o aplica el truco clásico de mantener BOOT y dar un toque a RESET. Eso la deja en modo bootloader.

Cablea y suelda los componentes

Un truco que da el tutorial original: usa la tapa impresa como plantilla (jig) para soldar, porque ya tiene los componentes en su posición final y los cables te quedan del largo justo.

El orden de soldadura que funciona bien es este:

  1. Lleva la alimentación: un cable desde Vin del amplificador a 3.3V de la placa, y otro desde 3V del micrófono a 3.3V de la placa.
  2. Conecta las líneas de datos I2S del micrófono (BCLK a D5, DOUT a D9, LRCL a D6) y del amplificador (BCLK a D10, LRC a D11, DIN a D12).
  3. Une el LED GND del botón con el GND del botón (el GND del LED está marcado con un signo menos en relieve) y monta el switch y el pulsador en la carcasa.
  4. Arma la tierra común: suelda un cable al GND de la placa y llévalo al GND del amplificador, encadena desde ahí otro cable hacia el pin central del switch, y conecta el GND del switch con el GND del pulsador. Pasa los cables por detrás de los soportes de la placa para que la tapa cierre sin tironear nada.
  5. Suelda la salida del pulsador a D13, el positivo del LED del pulsador a A0, y el tercer pin del switch al pin EN de la placa.

Conviene usar cable flexible siliconado para que la carcasa cierre sin estrés mecánico.

Arma todo y cierra la carcasa

Con el cableado listo, el ensamble final es directo:

  1. Corta y pela los dos cables del parlante y fíjalos en la bornera del amplificador: negativo al menos, positivo al más.
  2. Atornilla el amplificador y el micrófono a sus soportes con tornillos M2.5. Inserta la batería en su clip con los cables apuntando hacia el amplificador.
  3. Conecta el conector w.FL a la placa con cuidado: estos conectores son frágiles y aguantan pocos ciclos de conexión, así que enchúfalo hasta sentir el clic y no lo andes sacando. Atornilla la placa a sus soportes (M2.5 en los agujeros junto a los tres botones, M2 en los cercanos al botón de reset) y recién ahí enchufa la batería.
  4. Saca el adhesivo del parlante y pégalo en su nicho de la carcasa.
  5. Inserta el conector RP-SMA en el agujero superior y fíjalo con sus tuercas.
  6. Pon la tapa y asegúrala con cuatro tornillos M3. Por último, enrosca la antena externa al conector RP-SMA.

Cómo se usan

Enciende ambos walkie talkies con el switch. Apenas terminan de arrancar, los equipos se parean solos. A partir de ahí el uso es de manual:

  • Mantén apretado el pulsador para grabar un mensaje (máximo 10 segundos).
  • Suelta el botón para enviar: el paquete de audio sale hacia el equipo pareado.
  • Cuando el otro walkie talkie recibe el paquete, reproduce el mensaje por su parlante. La pantalla TFT te muestra al par conectado, la calidad de señal y el estado de cada paquete.

Par de walkie talkies terminados, en verde y rosado, con la antena puesta y la pantalla mostrando la interfaz WALKIE TALKIE

No esperes calidad de estudio: el audio es comprensible pero suena "radiofónico", que es exactamente lo que buscas en un walkie talkie retro. Con la antena de 2.4GHz tendrás un alcance decente en espacios abiertos, y bastante menos dentro de una casa con muros gruesos.

Variantes y mejoras

Cuando ya lo tengas andando, hay varias formas de llevarlo más lejos. Estas ideas no vienen en el tutorial original:

  • Canales múltiples: ESP-NOW deja cambiar el canal de la banda 2.4GHz por software. Si agregas un selector (o un par de botones) para saltar de canal, puedes tener varias parejas de equipos sin que se pisen.
  • Transmisión grupal: en vez de hablar solo con un par, registra varios peers y envía el mismo paquete a todos. Así pasas de un walkie talkie 1 a 1 a una red de varios equipos escuchando el mismo canal.
  • Audio cifrado: ESP-NOW soporta cifrado por hardware. Activarlo evita que un tercero con otro ESP32 escuche tus mensajes, útil si te importa algo de privacidad.
  • Indicador de batería en pantalla: la placa puede leer el voltaje de la batería por uno de sus pines analógicos. Mostrarlo en la TFT te avisa cuándo toca cargar antes de quedar mudo en plena conversación.

Personalización para Chile

En MechatronicStore consigues casi todo el set con stock local. Donde el tutorial original usa una placa Adafruit Feather ESP32-S3 Reverse TFT, el Seeed Studio XIAO ESP32-S3 del catálogo cumple la misma función (es un ESP32-S3 con conector de antena externa y soporte I2S) a una fracción del precio:

  • Seeed Studio XIAO ESP32-S3 (SKU GS1-3): el microcontrolador con WiFi 2.4GHz, antena externa e I2S.
  • Antena WiFi 2.4GHz con cable U.FL a SMA (SKU GL1-7): le da el alcance extra para comunicarte a mayor distancia.
  • Módulo micrófono I2S INMP441 (SKU GL3-12): captura tu voz por I2S, equivalente funcional del ICS-43434 del original.
  • Parlante 8 Ohm 1W (SKU G-234V1): la salida de audio del otro lado de la conversación.
  • Botón pulsador 16mm (SKU GD2-1): tu botón de hablar.
  • Mini switch interruptor proto 3 pin (SKU GF1-14): el encendido vía el pin EN.
  • Cable USB-C a USB-A 1mt (SKU B-101): para cargar y programar la placa.
  • Pack de 65 cables macho macho (SKU C-280): para el cableado interno del prototipo.

Sobre el amplificador: el original usa un MAX98357A, que es un amplificador I2S (recibe el audio digital directo de la placa). Si no lo consigues localmente, una ruta alternativa es usar un Mini amplificador digital PAM8403 (SKU GA6-2): es un amplificador analógico, así que en ese caso se alimenta el parlante desde una salida analógica del ESP32-S3 en vez del bus I2S. Pierdes algo de calidad de audio, pero el proyecto sigue siendo viable con componentes que sí están en stock. La batería LiPo de 3.7V también es parte del set; revisa el stock de la celda que mejor calce con la autonomía que quieras.

Recursos

Versión chilena con componentes en stock local en MechatronicStore.