PAWS — Instalación del firmware

PAWS — Instalación del firmware

Última actualización: 11 de agosto de 2026


Qué es esto

PAWS es un robot educativo controlado por Bluetooth desde la app Android PAWS. Nosotros proveemos el firmware ya compilado (listo para flashear) para la placa ESP32. No distribuimos el código fuente del firmware: solo la imagen binaria final, que puedes instalar con cualquiera de los métodos de abajo.

Una vez flasheado, el ESP32 se anuncia por Bluetooth como PAWS-ESP32 y ya puedes emparejarlo y controlarlo desde la app.

Placa soportada: cualquier módulo genérico esp32dev (ESP32-WROOM-32 y compatibles), 4 MB de flash o más.


Descargar el firmware

⬇ Descargar paws-esp32-firmware.zip

Un solo archivo .zip con los 4 binarios que necesitas para el flasheo:

Archivo (dentro del .zip) Offset de flasheo Descripción
paws-esp32.bin 0x10000 Firmware de la aplicación PAWS (obligatorio)
bootloader.bin 0x1000 Bootloader de segunda etapa del ESP32
partitions.bin 0x8000 Tabla de particiones de la flash
boot_app0.bin 0xe000 Selector de partición OTA (arranque)

Descomprime el .zip antes de flashear; los pasos de abajo asumen que los 4 archivos están en la misma carpeta.

Si tu ESP32 ya trae de fábrica un bootloader/partition table de Arduino (la mayoría de placas nuevas los traen), normalmente basta con flashear paws-esp32.bin en 0x10000. Si tu placa está en blanco, no bootea, o no estás seguro, flashea los 4 archivos en sus offsets — es lo más confiable y lo que se recomienda para un primer flasheo.


Opción A — Web flasher (recomendado, sin instalar nada)

La forma más simple: todo ocurre en el navegador (Chrome o Edge, requiere WebSerial), sin instalar Python ni nada en tu computadora.

  1. Conecta el ESP32 a tu computadora por USB.
  2. Abre ESP Web Tools o ESPTool-JS de Espressif en Chrome o Edge.
  3. Haz clic en Connect y selecciona el puerto serial del ESP32 en el diálogo del navegador.
  4. Agrega los 4 archivos con sus offsets exactos:
    • 0x1000bootloader.bin
    • 0x8000partitions.bin
    • 0xe000boot_app0.bin
    • 0x10000paws-esp32.bin
  5. Haz clic en Program / Flash y espera a que termine.
  6. Presiona el botón RESET (o EN) del ESP32 al finalizar.

Si el navegador no detecta el puerto, revisa que tengas instalado el driver USB-a-serial de tu placa (CP2102 o CH340, según el fabricante) — ver drivers de puerto serie más abajo.


Opción B — esptool.py (línea de comandos, cualquier SO)

Requiere Python 3.

pip install esptool

Flasheo completo (recomendado para la primera instalación):

python3 -m esptool --chip esp32 --port /dev/ttyUSB0 --baud 115200 \
  --before default_reset --after hard_reset write_flash -z \
  --flash_mode dio --flash_freq 40m --flash_size detect \
  0x1000  bootloader.bin \
  0x8000  partitions.bin \
  0xe000  boot_app0.bin \
  0x10000 paws-esp32.bin

Si tu ESP32 ya tiene bootloader y tabla de particiones válidos y solo quieres actualizar la aplicación:

python3 -m esptool --chip esp32 --port /dev/ttyUSB0 --baud 115200 \
  write_flash -z --flash_mode dio --flash_freq 40m \
  0x10000 paws-esp32.bin

Notas:

  • En Windows, el puerto tiene la forma COM3, COM4, etc. (revísalo en el Administrador de dispositivos, bajo “Puertos (COM y LPT)”).
  • En macOS, el puerto suele ser /dev/cu.usbserial-XXXX o /dev/cu.SLAB_USBtoUART.
  • En Linux, suele ser /dev/ttyUSB0 o /dev/ttyACM0. Si da error de permisos, agrega tu usuario al grupo dialout (sudo usermod -aG dialout $USER y vuelve a iniciar sesión) o ejecuta el comando con sudo.
  • Si ves Failed to connect o se queda en Connecting...., mantén presionado el botón BOOT (a veces marcado IO0) de la placa mientras esptool intenta conectar, y suéltalo apenas empiece a escribir.
  • Baja --baud a 115200 (como en el ejemplo) si un baudrate más alto falla con “Timed out waiting for packet header” — es común en placas clon.

Opción C — PlatformIO CLI

Si ya usas PlatformIO para otros proyectos, puedes flashear los binarios directamente sin un proyecto propio, con esptool incluido en tu instalación:

# Ubica el esptool.py que trae PlatformIO, por ejemplo:
~/.platformio/penv/bin/python ~/.platformio/packages/tool-esptoolpy/esptool.py \
  --chip esp32 --port /dev/ttyUSB0 --baud 115200 \
  --before default_reset --after hard_reset write_flash -z \
  --flash_mode dio --flash_freq 40m --flash_size detect \
  0x1000  bootloader.bin \
  0x8000  partitions.bin \
  0xe000  boot_app0.bin \
  0x10000 paws-esp32.bin

Driver USB-serial (si tu placa no aparece)

La mayoría de placas ESP32 usan uno de estos dos chips USB-a-serial. Si tu sistema operativo no reconoce el puerto al conectar la placa, instala el driver correspondiente:

  • CP210x (Silicon Labs) — descargar driver
  • CH340 / CH341 (WCH) — búscalo como “CH340 driver” para tu sistema operativo

En Linux, generalmente no necesitas instalar nada adicional: el driver ya está en el kernel.


Verificar que funcionó

  1. Abre un monitor serial a 115200 baudios (por ejemplo pio device monitor, screen /dev/ttyUSB0 115200, o el monitor serial de Arduino IDE) y presiona RESET en la placa.
  2. Deberías ver un mensaje de arranque indicando que el firmware PAWS está corriendo y anunciándose por Bluetooth.
  3. Desde tu celular, busca dispositivos Bluetooth cercanos: debe aparecer PAWS-ESP32. Empareja y abre la app PAWS para continuar.
  4. Es normal ver un mensaje de HEARTBEAT LOST -> STOP justo después de arrancar — desaparece en cuanto la app se conecta.

Para el cableado de motores y otros periféricos, consulta la guía de conexión que se muestra dentro de la app.


Soporte

Si el flasheo falla repetidamente o el dispositivo no aparece por Bluetooth después de un flasheo exitoso, contáctanos:

PAWS Email: [email protected]


Ver también: Política de Privacidad · Términos de Servicio