Cómo Flashear el Firmware Nativo
El SenseCAP Indicator tiene dos microcontroladores: ESP32-S3 y RP2040. Este tutorial proporciona una guía completa para que los desarrolladores puedan comenzar, incluyendo cómo flashear el firmware nativo de fábrica y actualizar los dispositivos enviados antes a la versión más reciente.
La actualización del firmware aplica especialmente en dos escenarios:
- Si compraste un producto sin firmware de OpenAI antes de junio de 2023, con la versión de firmware
1.0.0
, puedes descargar y actualizar al firmware más reciente que incluye funcionalidades de OpenAI. Descárgalo desde aquí. - Si has desarrollado una aplicación propia y deseas flashear un firmware personalizado, puedes seguir el tutorial que se muestra más abajo.
Necesitas este tutorial si:
- Tienes un firmware que necesitas cargar en el ESP32-S3 o RP2040.
- Has modificado el código y necesitas compilarlo y cargarlo en el dispositivo.
¡Vamos con el tutorial!
Preparación
Para comenzar, solo necesitas tu SenseCAP Indicator y una computadora con Windows, macOS o Linux.

Obtener el Firmware Nativo
El firmware predeterminado que viene con el SenseCAP Indicator es completamente de código abierto tanto para el ESP32-S3 como para el RP2040.
- Código fuente: Puedes modificarlo antes de flashearlo, según tus necesidades. Necesitarás una cadena de herramientas (ESP-IDF, Arduino) para compilarlo.
- Firmware: Puedes flashear directamente el archivo binario precompilado sin necesidad de modificar o compilar el código. Utiliza herramientas como Esptool o Flash Download Tools.
Código fuente
- 🖱️Haz clic para obtener el código fuente del firmware para ESP32-S3
- 🖱️Haz clic para obtener ejemplos en Arduino para RP2040
Firmware
Para ESP32-S3
ESP-IDF
ESP-IDF (Espressif IoT Development Framework) es un framework de desarrollo proporcionado por Espressif Systems para diseñar firmware y aplicaciones específicas para sus series de microcontroladores ESP32 y ESP8266. Para más información, consulta la Guía de programación de ESP-IDF
Si decides compilar el código fuente en firmware, necesitarás ESP-IDF para realizar el proceso de compilación.
La versión de ESP-IDF debe ser superior a la v5.0. Si estás usando una versión anterior, deberás actualizarla a la más reciente.
Para nuevos usuarios, este video puede ayudarte a entender mejor los pasos:
Instalación del toolchain
- Windows
- Linux y macOS
Documentación oficial de Espressif: Configuración estándar para Windows
Opción 1: Usar el instalador offline
Para usuarios de Windows, puedes descargar directamente el instalador offline del ESP-IDF:
🖱️Descargar Offline Installer v5.1.1
Opción 2: Usar el script recomendado
Consulta la sección Usando la línea de comandos
Documentación oficial de Espressif: Configuración estándar para Linux y macOS
Si usas Linux o macOS, puedes seguir esta guía para cambiar la versión del repositorio Git:
git clone --recursive https://github.com/espressif/esp-idf.git
Navega al directorio esp-idf::
- Ejecuta
./install.sh esp32s3
, para añadir soporte al ESP32-S3 (necesario para el SenseCAP Indicator) - Escribe
./export.sh
para configurar las variables PATH e IDF_PATH en la terminal actual
Si deseas activarlo automáticamente en cualquier sesión de terminal, añade esta línea a tu archivo de configuración de shell (por ejemplo, ~/.bash_profile):
alias get_idf='. $HOME/esp/esp-idf/export.sh'
Luego podrás usar get_idf
para activar el entorno.^refer
Compilar y flashear el proyecto
Si optas por compilar el código fuente, necesitarás ESP-IDF para llevar a cabo el proceso.
Para construir, flashear y monitorear tu proyecto, ejecuta el siguiente comando:
cd <your_sdk_path>/examples/indicator_basis/
idf.py -p PORT build flash monitor
Si no defines PORT, el IDF seleccionará automáticamente un puerto disponible.

En este punto, al ejecutar el comando idf.py -p PORT flash
, el firmware se habrá cargado correctamente al ESP32-S3.
Esptool
ESPtool - GitHub es una utilidad de código abierto basada en Python que proporciona una forma independiente de plataforma para comunicarse con el bootloader ROM en chips Espressif.
Esptool puede usarse como parte de tus scripts en Python. En esta guía, utilizaremos el software empaquetado
disponible en la página de lanzamientos de Esptool. Elige el software que corresponda al sistema operativo de tu computadora.
Uso de Esptool para flashear
Se proporcionan dos scripts que muestran cómo utilizar Esptool de forma efectiva para flashear firmware en microcontroladores ESP32-S3.
Ten en cuenta que los scripts proporcionados están diseñados para sistemas operativos Windows. Si usas otro sistema operativo, deberás adaptar los scripts para que funcionen en tu entorno.
El script merge.bat
es especialmente útil, ya que consolida inteligentemente el bootloader, la tabla de particiones y los binarios base del indicador en un único archivo de firmware. Una vez fusionado, este firmware puede ser flasheado fácilmente al ESP32-S3 usando el script flash.bat
. Cuando se te solicite, ingresa el puerto COM correspondiente a tu dispositivo y el proceso de flasheo comenzará. El proceso completo puede resumirse así:
esptool.exe --chip esp32s3 ^
merge_bin -o sensecap_indicator_basis_v1.0.0.bin ^ # Target file name
--flash_mode dio ^
--flash_size 8MB ^
0x0 ../../build/bootloader/bootloader.bin ^
0x8000 ../../build/partition_table/partition-table.bin ^
0x10000 ../../build/indicator_basis.bin
Alternativamente, si prefieres flashear archivos binarios individuales en lugar de fusionarlos antes de flashear, puedes usar directamente el script just_flash.bat
:
esptool.exe --chip esp32s3 --port COMx --baud 921600 write_flash -z ^
0x0 ../../build/bootloader/bootloader.bin ^
0x8000 ../../build/partition_table/partition-table.bin ^
0x10000 ../../build/indicator_basis.bin
Y para un proceso de flasheo sencillo usando el firmware fusionado:
esptool.exe --chip esp32s3 --port COMx --baud 921600 write_flash -z 0x0 indicator_basis_v1.0.0.bin
Presta especial atención a la dirección inicial (0x0), especialmente cuando no se fusionan los binarios. Para archivos binarios separados, consulta las instrucciones en Herramientas de descarga para archivos binarios separados. Seguir estas indicaciones asegura un flasheo sin errores.
Para utilizar estos scripts, guarda el código en archivos de texto separados llamados merge.bat
y flash.bat
dentro de la carpeta del proyecto. Esta organización facilita el acceso y uso.
Al usar estos scripts, optimizas tanto la preparación del firmware como las etapas de flasheo, contribuyendo a un proceso más fluido y confiable.
├── indicator_basis
│ ├── CMakeLists.txt
│ ├── build
│ ├── docs
│ ├── main
│ ├── partitions.csv
│ ├── sdkconfig
│ └── .defaults
│ └── flash.bat
│ └── merge.bat
- Fusiona los binarios usando
merge.bat
. - Flashea el firmware fusionado usando
flash.bat
.
Flasheo de Firmware
Para flashear el firmware, puedes usar el script flash.bat
proporcionado. Este script está diseñado para simplificar el proceso de flashear tu firmware en el microcontrolador ESP32-S3.
Mostrar código flash.bat
@echo off
setlocal
cd /d "%~dp0"
:: Set Chip
set chip=esp32s3
:: Set Baud
set baud=921600
:: List COM ports
echo Available ports and devices:
echo.
for /F "tokens=* delims=" %%A in ('wmic path Win32_PnPEntity get Name ^| findstr /C:"COM" ^| findstr /C:"CH340"') do (
echo %%A
)
:: Prompt for port
:chooseport
echo.
echo Please enter the COM port to use (e.g., COM5):
set /p port=
:: Check if chosen port is valid and contains "CH340"
for /F "tokens=* delims=" %%A in ('wmic path Win32_PnPEntity get Name ^| findstr /C:"%port%" ^| findstr /C:"CH340"') do (
set device=%%A
goto :flash
)
echo Port %port% not found
goto :chooseport
:flash:: Print chosen parameters
echo.
echo You have chosen:
echo Chip: %chip%
echo Port: %port% - %device%
echo Baud: %baud%
@REM echo Press any key to continue to...
@REM pause >nul
:: Run esptool for the single file
esptool.exe --chip %chip% --port %port% --baud %baud% write_flash -z 0x0 indicator_basis_v1.0.0.bin
if ERRORLEVEL 1 (
echo Flashing with the single file failed with error %ERRORLEVEL%.
goto :end
)
:: End of script
:end
endlocal
Fusión de binarios
El script merge.bat
proporcionado puede usarse para fusionar los archivos binarios necesarios en un solo archivo de firmware. Este script simplifica el proceso y asegura una fusión correcta para un flasheo exitoso, lo que te permite flashear un único archivo binario en lugar de flashear archivos separados.
Mostrar código merge.bat
@echo off
SETLOCAL
SET CurrentDir=%cd%
SET ScriptDir=%~dp0
SET CurrentDir=%CurrentDir:~0,-1%
SET ScriptDir=%ScriptDir:~0,-1%
IF NOT "%CurrentDir%"=="%ScriptDir%" (
cd /d "%ScriptDir%"
)
esptool.exe --chip esp32s3 ^
merge_bin -o indicator_basis_v1.0.0.bin ^
--flash_mode dio ^
--flash_size 8MB ^
0x0 ../../build/bootloader/bootloader.bin ^
0x8000 ../../build/partition_table/partition-table.bin ^
0x10000 ../../build/indicator_basis.bin
ENDLOCAL
Flash Download Tools (solo Windows)
Flash Download Tools se utilizan para programar o flashear firmware en microcontroladores ESP8266 y ESP32. Proporcionan una interfaz gráfica (GUI) para que los usuarios puedan flashear firmware fácilmente en los microcontroladores ESP.
Sigue estos pasos para flashear un firmware precompilado:
Descarga:
Flash Download Tools (solo para Windows)

-
Paso 1: Haz doble clic en el archivo
.exe
para abrir la interfaz principal de la herramienta. -
Paso 2: Selecciona las siguientes opciones:
Opción | Parámetro |
---|---|
Tipo de chip | ESP32-S3 |
Modo de trabajo | Develop |
Modo de carga | UART |

-
Paso 3: Conecta el SenseCAP Indicator a tu computadora portátil con un cable USB tipo C.
-
Paso 4: En la pestaña SPI Download, haz clic en "..." y navega hasta el firmware que acabas de descargar.
-
Paso 5: Configura la SPI Flash:
Opción | Parámetro |
---|---|
Velocidad SPI | 40MHz |
Modo SPI | DIO |
- Paso 6: Configura el panel de descarga:

- COM: Revisa los puertos en el Administrador de dispositivos, el USB-SERIAL es el correcto.
(Aquí seleccionamos COM4
) - Baud: 921600 (valor recomendado)
Luego haz clic en START
para iniciar el flasheo.

Cuando aparezca FINISH
, el flasheo del firmware se habrá completado.

Flash Download Tools para archivos binarios separados
En la guía anterior, el archivo binario "Default_Factory_Firmware_ESP32-S3.bin" fusiona tres binarios en uno solo.
Sin embargo, si usas ESP-IDF para construir el firmware, flashear un solo archivo directamente puede causar errores. En su lugar, necesitarás encontrar tres archivos binarios separados que hayas construido y especificar las direcciones correctas (puedes usar las tuyas propias) como sigue:
- bootloader.bin ----> 0x0
- partition-table.bin ----> 0x6800
- terminal_demo.bin ----> 0x10000

Para RP2040
Flasheo con Arduino IDE
La herramienta de desarrollo RP2040 aprovecha Arduino para mejorar tu experiencia de programación.
Arduino IDE es un software gratuito para programar placas Arduino. Con su interfaz amigable, puedes escribir y cargar código fácilmente. Basado en una versión simplificada de C++, ofrece librerías y ejemplos, ideal para principiantes.
Descarga:
-
Paso 1: Instala Arduino IDE
-
Paso 2: Añade la placa Raspberry Pi Pico
Abre Arduino IDE, ve a Arduino IDE > Preferencias y copia esta URL en Gestor de URLs adicionales de tarjetas:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
![]() | ![]() |
Luego ve a Herramientas > Placa > Gestor de Placas.

Busca "indicator" e instala "Raspberry Pi Pico/RP2040" en el Gestor de Placas.

- Paso 3: Añade las librerías necesarias
- Sensirion Core: Sensirion Arduino Core library
- PacketSerial : Protocolo de comunicación serial
- Sensirion I2C SGP40 : Librería sensor TVOC SGP40
- Sensirion I2C SCD4x : Librería sensor CO2 SCD41
- Sensirion Gas Index Algorithm : Librería algoritmo índice de gas
- Seeed_Arduino_AHT20 : Librería sensor temperatura y humedad AHT20
En Arduino IDE, busca estas librerías en el Gestor de Librerías
e instálalas, por ejemplo Seeed_Arduino_AHT20
.
Vista previa de instalación offline
Para instalar offline, descarga el repositorio en formato zip desde GitHub, luego en Arduino IDE ve a Sketch -> Incluir librería -> Añadir librería .ZIP y selecciona los archivos descargados.

-
Paso 4: Conecta el dispositivo a tu PC con el cable USB tipo C provisto.
-
Paso 5: Selecciona la placa y puerto
Busca "Indicator" y selecciona la placa Seeed INDICATOR RP2040
y el puerto serial usbmodem
.
![]() |
![]() |
- Paso 6: Abre el código ejemplo
Ve a Archivo -> Abrir y selecciona el archivo de ejemplo (.ino file).
Puedes modificar este código según tus necesidades.

- Paso 7: Verifica y sube el código.
![]() |
![]() |
![]() |
Con esto habrás terminado de compilar y flashear (descargar) el firmware en el RP2040.
Flashear el archivo .uf2
- Paso 1: Conecta el dispositivo a tu PC
Mantén presionado el botón interno con una aguja, conecta el dispositivo a tu PC con el cable USB tipo C, y suelta el botón una vez conectado.

- Paso 2: Flasheo del firmware
Cuando la conexión sea exitosa, tu PC mostrará un disco extraíble.

Copia el archivo .uf2 al disco, luego el disco se expulsará automáticamente.

La actualización se ejecutará automáticamente.
Comunicación entre ESP32 y RP2040
ESP32 y RP2040 se comunican por puerto serial, usando el protocolo de comunicación COBS.
El formato de comando consiste en el tipo de paquete y parámetros del paquete.

Recursos
SenseCAP Indicator ESP32 SDK
SenseCAP Indicator RP2040 Demo
Preguntas frecuentes (FAQ)
¿Cómo distinguir el puerto serial?
- Windows
- MacOS
Revisa el puerto en el Administrador de dispositivos:
- "USB Serial Device(COMx)" o "USB 串行设备" es para RP2040
- "USB-SERIAL CH340" es para ESP32
En resumen, el puerto CH340 es para ESP32.

- "/dev/cu.usbmodem" es para RP2040

Actualizaciones recientes
- 2023-11-17
- Se eliminó la sección de parcheo
- 2023-08-25
- Se aclaró la sección de parcheo
- 2023-07-25
- Se agregó contenido para flashear firmware con Esptool
- 2023-05-29
- Se agregó la sección de parcheo
Soporte técnico
¿Necesitas ayuda con tu SenseCAP Indicator? ¡Estamos aquí para asistirte!