Como Gravar o Firmware Nativo
O SenseCAP Indicator possui dois MCUs, ESP32-S3 e RP2040. Este tutorial fornece um guia abrangente para ajudar o desenvolvedor a começar, incluindo gravar o firmware nativo de fábrica pronto para uso e atualizar dispositivos enviados nas primeiras remessas para o firmware mais recente.
A atualização de firmware é particularmente aplicável em dois cenários:
- Se você comprou um produto sem firmware OpenAI antes de junho de 2023, com versão de firmware
1.0.0, você pode baixar e atualizar para o firmware mais recente que inclui a funcionalidade OpenAI. O firmware mais recente pode ser baixado a partir daqui. - Se você desenvolveu uma aplicação e deseja gravar um firmware personalizado, pode seguir o tutorial fornecido abaixo.
Resumidamente, você precisa deste tutorial porque:
- Você tem um firmware que precisa ser gravado no ESP32-S3 ou RP2040.
- Você modificou o código e precisa compilá-lo e gravá-lo no dispositivo.
Vamos começar este tutorial.
Preparação
Para começar, tudo o que você precisa é do seu SenseCAP Indicator e de um computador Windows/Mac/Linux.

Obter o Firmware Nativo
O firmware padrão de envio do SenseCAP Indicator é totalmente open source tanto para ESP32-S3 quanto para RP2040.
- Código-fonte: Antes de gravá-lo, você tem a opção de modificar o código de acordo com seus requisitos. Você precisará de uma toolchain (ESP-IDF, Arduino) para compilá-lo.
- Firmware: Grave diretamente o arquivo binário pré-compilado sem necessidade de qualquer modificação de código ou compilação. Usando ferramentas como Esptool e Flash Download Tools.
Código-fonte
- 🖱️Clique para obter o código-fonte do firmware ESP32-S3
- 🖱️Clique para obter o código-fonte dos exemplos Arduino para RP2040
Firmware
Para ESP32-S3
ESP-IDF
ESP-IDF (Espressif IoT Development Framework) é um framework de desenvolvimento de software fornecido pela Espressif Systems para projetar firmware e aplicações especificamente para suas séries de microcontroladores ESP32 e ESP8266. Para mais informações, você pode consultar o ESP-IDF Programming Guide
Se você optou por compilar o código-fonte em firmware, precisará do ESP-IDF para realizar o processo de compilação.
A versão do ESP-IDF deve ser superior à v5.0. Se você estiver usando uma versão mais antiga, precisará atualizá-la para a versão mais recente.
Para usuários iniciantes, este vídeo pode ajudar a entender melhor as etapas abaixo:
Instalação da Toolchain
- Windows
- Linux and MacOS
Documentação oficial da Espressif: Standard Setup of Toolchain for Windows
Opção 1: Usando o instalador offline
Para usuários Windows, você tem a opção de baixar diretamente o instalador offline do ESP-IDF. Aqui está um link de download direto: 🖱️Donwload Offline Installer v5.1.1
Opção 2: Usando o script recomendado
Navegue até Using the Command Promp
Documentação oficial da Espressif: Standard Toolchain Setup for Linux and macOS
Se estiver em Linux ou MacOS, você pode seguir este guia para alterar a versão do repositório git.
git clone --recursive https://github.com/espressif/esp-idf.git
Navegue até o diretório esp-idf:
- Execute
./install.sh esp32s3para adicionar suporte ao ESP32-S3 (necessário para o SenseCAP Indicator) - digite
./export.shpara configurar as variáveis PATH e IDF_PATH na sessão de terminal atual.
se você quiser chamar em qualquer sessão de shell, pode adicionar a seguinte linha ao seu arquivo de configuração do shell (por exemplo, ~/.bash_profile):
alias get_idf='. $HOME/esp/esp-idf/export.sh'
Então você pode usar get_idf para ativar o ambiente.^refer
Compilar o projeto e gravar
Se você optar por compilar o código-fonte em firmware, precisará do ESP-IDF para realizar o processo de compilação.
Para compilar, gravar e monitorar o seu projeto, execute o seguinte comando:
cd <your_sdk_path>/examples/indicator_basis/
idf.py -p PORT build flash monitor
Sem PORT, o IDF selecionará automaticamente a porta disponível.

Até este ponto, digitando o comando idf.py -p PORT flash, o firmware foi gravado com sucesso no ESP32-S3.
Esptool
ESPtool - GitHub é um utilitário open source baseado em Python que fornece uma forma independente de plataforma para se comunicar com o bootloader em ROM dos chips Espressif.
Esptool pode ser usado como parte do seu script em Python. Neste guia, usaremos o packaged software disponível na página de releases do Esptool. Escolha o software que corresponde ao sistema operacional do seu computador.
Usando o Esptool para Gravação
Há dois scripts fornecidos que mostram como usar de forma eficaz o Esptool para gravar firmware em microcontroladores ESP32-S3.
Esteja ciente de que os scripts fornecidos são feitos para sistemas operacionais Windows. Se você estiver usando um sistema operacional diferente, precisará adaptar os scripts ao seu ambiente.
O script merge.bat é particularmente útil, pois consolida de forma inteligente o bootloader, a tabela de partição e os binários básicos do indicator em um único arquivo de firmware. Uma vez mesclado, esse firmware pode ser gravado perfeitamente no ESP32-S3 usando o script flash.bat. Quando solicitado, insira a porta COM correspondente ao seu dispositivo e o processo de gravação será iniciado. A operação completa pode ser resumida da seguinte forma:
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
Como alternativa, se você preferir gravar arquivos binários individuais em vez de mesclar arquivos e depois gravar, pode usar diretamente o 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
E para um processo de gravação direto usando o firmware mesclado:
esptool.exe --chip esp32s3 --port COMx --baud 921600 write_flash -z 0x0 indicator_basis_v1.0.0.bin
Preste bastante atenção ao endereço inicial (0x0), especialmente quando não estiver mesclando binários. Para arquivos binários separados, consulte as instruções em Flash Download Tools for separate binary files. Seguir essas diretrizes garante uma gravação sem erros.
Para utilizar esses scripts, salve o código em arquivos de texto separados chamados merge.bat e flash.bat dentro da pasta do projeto. Essa abordagem de organização simplifica o acesso e o uso.
Ao utilizar esses scripts, você simplifica tanto a preparação do firmware quanto as etapas de gravação, contribuindo para um processo mais suave e confiável.
├── indicator_basis
│ ├── CMakeLists.txt
│ ├── build
│ ├── docs
│ ├── main
│ ├── partitions.csv
│ ├── sdkconfig
│ └── .defaults
│ └── flash.bat
│ └── merge.bat
- Mescle os binários usando
merge.bat. - Grave o firmware mesclado usando
flash.bat.
Gravando o Firmware
Para gravar o firmware, você pode usar o script flash.bat fornecido. Este script foi projetado para simplificar o processo de gravação do seu firmware no microcontrolador ESP32-S3.
Mostrar código do 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
Mesclando Binários
O script merge.bat fornecido pode ser usado para mesclar os arquivos binários necessários em um único arquivo de firmware. Este script simplifica o processo e garante a mesclagem correta para uma gravação bem-sucedida, o que permite que você grave um único arquivo bin em vez de gravar arquivos separados.
Mostrar código do 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 (somente Windows)
Flash Download Tools são usadas para programar ou gravar firmware nos microcontroladores das séries ESP8266 e ESP32. Elas fornecem uma interface gráfica de usuário (GUI) para que os usuários possam gravar firmware facilmente nos microcontroladores ESP.
Siga os passos para gravar um firmware pré-compilado:
Download: Flash Download Tools (somente para Windows)

-
Passo 1: Clique duas vezes no arquivo
.exepara entrar na interface principal da ferramenta. -
Passo 2: Selecione as seguintes opções:
| Opção | Parâmetro |
|---|---|
Chip Type | ESP32-S3 |
WorkMode | Develop |
LoadMode | UART |

-
Passo 3: Conecte o SenseCAP Indicator ao seu laptop com um cabo USB tipo C.
-
Passo 4: Na guia SPI Download, clique em "..." e navegue até o firmware que você acabou de baixar.
-
Passo 5: Configure o SPI Flash:
| Opção | Parâmetro |
|---|---|
SPI SPEED | 40MHz |
SPI MODE | DIO |
- Passo 6: Configure o Painel de Download:

- COM: Verifique as portas no seu Gerenciador de Dispositivos, a USB-SERIAL é a correta.
(
Aqui escolhemos COM4) - Baud: 921600 (valor recomendado)
Então clique em START para iniciar a gravação.

Quando aparecer FINISH, a gravação do firmware foi concluída.

Flash Download Tools para arquivos binários separados
No guia mencionado anteriormente, o arquivo binário "Default_Factory_Firmware_ESP32-S3.bin" mescla três binários em um.
No entanto, se você estiver usando ESP-IDF para compilar o firmware, gravar diretamente um único arquivo pode resultar em erros. Em vez disso, você precisará encontrar três arquivos binários separados que você compilou e especificar os endereços corretos (você pode usar seus próprios endereços) da seguinte forma:
- bootloader.bin ----> 0x0
- partion-table.bin ----> 0x6800
- termial_demo.bin ----> 0x10000

Para RP2040
Gravar com Arduino IDE
A Ferramenta de Desenvolvimento RP2040 utiliza o Arduino para aprimorar sua experiência de programação.
O Arduino IDE é um software gratuito para programar placas Arduino. Com sua interface amigável, você pode escrever e enviar código facilmente. Baseado em uma versão simplificada de C++, ele oferece bibliotecas e exemplos, sendo ótimo para iniciantes.
Download:
-
Passo 1: Instale o Arduino IDE
-
Passo 2: Adicione a Placa Raspberry Pi Pico
Abra o seu Arduino IDE, clique em Arduino IDE > Preferences, e copie a URL abaixo para Additional Boards Manager URLs:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
![]() | ![]() |
Clique em Tools > Board > Board Manager.

Pesquise por "indicator" e instale "Raspberry Pi Pico/RP2040" no Boards Manager

- Passo 3: Adicionar Bibliotecas
- Sensirion Core: Sensirion Arduino Core library
- PacketSerial : Serial communication protoco
- Sensirion I2C SGP40 : SGP40 TVOC sensor library
- Sensirion I2C SCD4x : SCD41 CO2 sensor library
- Sensirion Gas Index Algorithm : Transfer index library
- Seeed_Arduino_AHT20 : AHT20 temperature and humidity sensor library
No Arduino IDE, você pode pesquisá-las no Library Manager, por exemplo Seeed_Arduino_AHT20, e então instalá-las.
Clique para visualizar a instalação offline
Para instalá-las offline, você pode baixar o arquivo zip do repositório no GitHub, navegar até Sketch -> Include Library -> Add .ZIP Library, e então selecionar as bibliotecas que você baixou.

-
Passo 4: Conecte o dispositivo ao seu PC com o cabo USB Tipo C fornecido.
-
Passo 5: Selecione a placa e a porta
Pesquise por "Indicator" e selecione a placa Seeed INDICATOR RP2040 e selecione a Porta Serial usbmodem.
![]() |
![]() |
- Passo 6: Abra o arquivo de código de exemplo
File -> Open, depois selecione o arquivo de código de exemplo (arquivo .ino).
Nós fornecemos um código de exemplo, você pode modificá-lo de acordo com suas necessidades.

- Passo 7: Verifique e envie (Upload) o arquivo.
![]() |
![]() |
![]() |
Aqui, concluímos a compilação e a gravação (download) do firmware no RP2040.
Gravar o arquivo .uf2
- Passo 1: Conecte o dispositivo ao seu PC
Pressione e segure este botão interno usando uma agulha, depois conecte o dispositivo ao seu PC com o cabo USB tipo C fornecido, solte o botão assim que estiver conectado.

- Passo 2: Gravação do Firmware
Após a conexão ser bem-sucedida, seu PC exibirá um disco.

Copie o arquivo .uf2 para o disco, então o disco será ejetado.

A atualização será executada automaticamente.
Protocolo de Comunicação ESP32 & RP2040
ESP32 e RP2040 usam comunicação via porta serial, utilizando o protocolo de comunicação cobs. A lista de comandos usados na demonstração é a seguinte:
O formato de comando consiste no tipo de pacote e nos parâmetros do pacote.

Recursos
SenseCAP Indicator RP2040 Demo
FAQ
Como distinguir a porta serial?
- Windows
- MacOS
Verifique a porta no seu Gerenciador de Dispositivos
- "USB Serial Device(COMx)" ou "USB 串行设备" é para o RP2040
- "USB-SERIAL CH340" é para o ESP32 Em resumo, a porta CH340 é para o ESP32.

- "/dev/cu.usbmodem" é para o RP2040

Atualizações Recentes
- 2023-11-17
- Seção de correção removida
- 2023-08-25
- Tornar a seção de correção mais clara
- 2023-07-25
- Conteúdo adicionado para gravação de firmware usando Esptool
- 2023-05-29
- Seção de correção adicionada
Suporte Técnico
Precisa de ajuda com o seu SenseCAP Indicator? Estamos aqui para ajudar você!






