Cómo Flashear el Firmware Nativo
El indicador SenseCAP tiene dos MCUs, ESP32-S3 y RP2040. Este tutorial proporciona una guía completa para ayudar al desarrollador a comenzar, incluyendo el flasheo del firmware nativo de fábrica listo para usar y la actualización de dispositivos enviados temprano al firmware más reciente.
La actualización de firmware es particularmente aplicable en dos escenarios:
- Si compraste un producto sin firmware OpenAI antes de junio de 2023, con versión de firmware
1.0.0
, puedes descargar y actualizar al firmware más reciente que incluye funcionalidad OpenAI. El firmware más reciente se puede descargar desde aquí. - Si has desarrollado una aplicación y deseas flashear un firmware personalizado, puedes seguir el tutorial proporcionado a continuación.
En resumen, necesitas este tutorial porque:
- Tienes un firmware que necesitas flashear en el ESP32-S3 o RP2040.
- Has modificado el código y necesitas compilarlo y flashearlo al dispositivo.
Vamos a comenzar con este tutorial.
Preparación
Para comenzar, todo lo que necesitas es tu SenseCAP Indicator y una computadora Windows/Mac/Linux.

Obtener el Firmware Nativo
El firmware de envío predeterminado del SenseCAP Indicator es completamente de código abierto tanto para ESP32-S3 como para RP2040.
- Código fuente: Antes de flashearlo, tienes la opción de modificar el código según tus requisitos. Necesitarás una cadena de herramientas(ESP-IDF, Arduino) para compilarlo.
- Firmware: Flashea directamente el archivo binario precompilado sin necesidad de modificación o compilación de código. Usando herramientas como Esptool y Flash Download Tools.
Código Fuente
- 🖱️Haz clic para obtener el Código Fuente del Firmware ESP32-S3
- 🖱️Haz clic para obtener el Código Fuente de ejemplos Arduino RP2040
Firmware
Para ESP32-S3
ESP-IDF
ESP-IDF (Espressif IoT Development Framework) es un marco de desarrollo de software proporcionado por Espressif Systems para diseñar firmware y aplicaciones específicamente para sus series de microcontroladores ESP32 y ESP8266. Para más información, puedes consultar la Guía de Programación ESP-IDF
Si has optado por compilar el código fuente en firmware, necesitarás el ESP-IDF para realizar el proceso de compilación.
La versión ESP-IDF debe ser mayor que v5.0. Si estás usando una versión anterior, necesitarás actualizarla a la versión más reciente.
Para usuarios nuevos, este video puede ayudarte a entender mejor los pasos a continuación:
Instalación de Cadena de Herramientas
- Windows
- Linux and MacOS
Documentación Oficial de Espressif: Configuración Estándar de Cadena de Herramientas para Windows
Opción 1: Usando el Instalador Sin Conexión
Para usuarios de Windows, tienes la opción de descargar el instalador sin conexión ESP-IDF directamente. Aquí tienes un enlace de descarga directa: 🖱️Descargar Instalador Sin Conexión v5.1.1
Opción 2: Usando el Script Recomendado
Navega a Usando el Símbolo del Sistema
Documentación Oficial de Espressif: Configuración Estándar de Cadena de Herramientas para Linux y macOS
Si estás en 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
Navegar al directorio esp-idf:
- Ejecuta
./install.sh esp32s3
, para añadir soporte para ESP32-S3 (necesario para el indicador SenseCAP) - escribe
./export.sh
para configurar las variables PATH e IDF_PATH en la sesión de terminal actual.
si quieres llamarlo en cualquier sesión de shell, puedes añadir la siguiente línea a tu archivo de configuración de shell (ej. ~/.bash_profile):
alias get_idf='. $HOME/esp/esp-idf/export.sh'
Luego puedes usar get_idf
para activar el entorno.^refer
Compilación del Proyecto y flasheo
Si optas por compilar el código fuente en firmware, necesitarás el ESP-IDF para realizar el proceso de compilación.
Para compilar, flashear y monitorear tu proyecto, ejecuta el siguiente comando:
cd <your_sdk_path>/examples/indicator_basis/
idf.py -p PORT build flash monitor
Sin PORT
, el IDF seleccionará automáticamente el puerto disponible.

Hasta este punto, escribiendo el comando idf.py -p PORT flash
, el firmware ha sido flasheado exitosamente en el ESP32-S3.
Esptool
ESPtool - GitHub es una utilidad de código abierto basada en Python que proporciona una forma independiente de la plataforma para comunicarse con el cargador de arranque ROM en los chips Espressif.
Esptool puede ser usado como parte de tu script de Python. En esta guía, usaremos el software empaquetado
disponible en la página de lanzamientos de Esptool. Elige el software que corresponda al sistema operativo de tu computadora.
Usando Esptool para Flashear
Se proporcionan dos scripts que muestran cómo utilizar efectivamente Esptool para flashear firmware en microcontroladores ESP32-S3.
Ten en cuenta que los scripts proporcionados están adaptados para sistemas operativos Windows. Si estás usando un sistema operativo diferente, necesitarás adaptar los scripts para que se ajusten a tu entorno.
El script merge.bat es particularmente útil ya que consolida inteligentemente el cargador de arranque, la tabla de particiones y los binarios base del indicador en un solo archivo de firmware. Una vez fusionado, este firmware puede ser flasheado sin problemas en el ESP32-S3 usando el script flash.bat. Cuando se te solicite, ingresa el puerto COM correspondiente a tu dispositivo, y el proceso de flasheo se iniciará. La operación completa puede resumirse de la siguiente manera:
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 fusionar archivos 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 directo usando el firmware fusionado:
esptool.exe --chip esp32s3 --port COMx --baud 921600 write_flash -z 0x0 indicator_basis_v1.0.0.bin
Presta mucha atención a la dirección de inicio (0x0), especialmente cuando no se fusionen binarios. Para archivos binarios separados, consulta las instrucciones en Herramientas de Descarga Flash para archivos binarios separados. Seguir estas pautas 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. Este enfoque organizacional simplifica el acceso y uso.
Al emplear 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
.
Flasheando Firmware
Para flashear 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 de 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 solo archivo bin en lugar de flashear archivos separados.
Mostrar código de 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 de las series ESP8266 y ESP32. Proporcionan una interfaz gráfica de usuario (GUI) para que los usuarios puedan flashear firmware fácilmente en los microcontroladores ESP.
Sigue los pasos para flashear un firmware precompilado:
Descarga: Flash Download Tools (solo para Windows)

-
Paso 1: Haz doble clic en el archivo
.exe
para entrar a la interfaz principal de la herramienta. -
Paso 2: Selecciona las siguientes opciones:
Opción | Parámetro |
---|---|
Chip Type | ESP32-S3 |
WorkMode | Develop |
LoadMode | UART |

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

- COM: Verifica los puertos en tu Administrador de Dispositivos, el USB-SERIAL es el correcto.
(
Aquí elegimos COM4
) - Baud: 921600(valor recomendado)
Luego haz clic en START
para comenzar el flasheo.

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

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

Para RP2040
Flashear por Arduino IDE
La Herramienta de Desarrollo RP2040 aprovecha Arduino para mejorar tu experiencia de codificación.
El Arduino IDE es software gratuito para codificar placas Arduino. Con su interfaz fácil de usar, puedes escribir y subir código fácilmente. Basado en una versión más simple de C++, ofrece librerías y ejemplos, haciéndolo excelente para principiantes.
Descarga:
-
Paso 1: Instalar Arduino IDE
-
Paso 2: Agregar la Placa Raspberry Pi Pico
Abre tu Arduino IDE, haz clic en Arduino IDE > Preferences, y copia la siguiente URL a Additional Boards Manager URLs:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
![]() | ![]() |
Haz clic en Tools > Board > Board Manager.

Busca "indicator" e instala "Raspberry Pi Pico/RP2040" en el Board Manager

- Paso 3: Añadir Librerías
- Sensirion Core: Librería Sensirion Arduino Core
- PacketSerial : Protocolo de comunicación serial
- Sensirion I2C SGP40 : Librería del sensor TVOC SGP40
- Sensirion I2C SCD4x : Librería del sensor CO2 SCD41
- Sensirion Gas Index Algorithm : Librería de índice de transferencia
- Seeed_Arduino_AHT20 : Librería del sensor de temperatura y humedad AHT20
En el IDE de Arduino, puedes buscarla en el Library Manager
, por ejemplo Seeed_Arduino_AHT20
, y luego instalarla.
Haz clic para previsualizar la instalación offline
Para instalarla offline, puedes descargar el zip del repositorio desde GitHub, navegar a Sketch -> Include Library -> Add .ZIP Library, luego seleccionar las librerías que descargaste.

-
Paso 4: Conecta el dispositivo a tu PC con el cable USB Type-C proporcionado.
-
Paso 5: Selecciona la placa y el puerto
Busca "Indicator" y selecciona la placa Seeed INDICATOR RP2040
y selecciona el Puerto Serial usbmodem
.
![]() |
![]() |
- Paso 6: Abrir el archivo de código de ejemplo
Archivo -> Abrir, luego selecciona el archivo de código de ejemplo (archivo .ino).
Proporcionamos un archivo de código de ejemplo, puedes modificar el código según tus necesidades.

- Paso 7: Verificar y cargar el archivo.
![]() |
![]() |
![]() |
Aquí, hemos completado la construcción y flasheo (descarga) del firmware en el RP2040.
Flashear el archivo .uf2
- Paso 1: Conecta el dispositivo a tu PC
Mantén presionado este botón interno usando una aguja, luego conecta el dispositivo a tu PC con el cable USB tipo-C proporcionado, suelta el botón una vez conectado.

- Paso 2: Flasheo del Firmware
Después de que la conexión sea exitosa, tu PC mostrará un disco.

Copia el archivo .uf2 al disco, luego el disco se desconectará.

La actualización se ejecutará automáticamente.
Protocolo de Comunicación ESP32 & RP2040
ESP32 y RP2040 usan comunicación por puerto serie, utilizando el protocolo de comunicación cobs. La lista de comandos utilizados en la demostración es la siguiente:
El formato del comando consiste en el tipo de paquete y los parámetros del paquete.

Recursos
SDK ESP32 del SenseCAP Indicator
Demo RP2040 del SenseCAP Indicator
FAQ
¿Cómo distinguir el puerto serie?
- Windows
- MacOS
Verifica el puerto en tu 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 hizo más clara la sección de Parcheo
- 2023-07-25
- Se agregó contenido para flashear firmware usando Esptool
- 2023-05-29
- Se agregó la sección de Parcheo
Soporte Técnico
¿Necesitas ayuda con tu SenseCAP Indicator? ¡Estamos aquí para asistirte!