ネイティブファームウェアをフラッシュする方法
SenseCAP indicatorには2つのMCU、ESP32-S3とRP2040があります。このチュートリアルは、開発者がオンボードするための包括的なガイドを提供し、工場出荷時のネイティブファームウェアのフラッシュと、初期出荷デバイスの最新ファームウェアへの更新を含みます。
ファームウェアの更新は、特に以下の2つのシナリオで適用されます:
- 2023年6月以前にOpenAIファームウェアなしの製品を購入し、ファームウェアバージョンが
1.0.0
の場合、OpenAI機能を含む最新ファームウェアをダウンロードして更新できます。最新ファームウェアはこちらからダウンロードできます。 - アプリケーションを開発し、カスタムファームウェアをフラッシュしたい場合は、以下で提供されるチュートリアルに従うことができます。
簡単に言うと、以下の理由でこのチュートリアルが必要です:
- ESP32-S3またはRP2040にフラッシュする必要があるファームウェアがある。
- コードを変更し、それをコンパイルしてデバイスにフラッシュする必要がある。
それでは、このチュートリアルに入りましょう。
準備
開始するために必要なのは、SenseCAP IndicatorとWindows/Mac/Linuxコンピューターだけです。

ネイティブファームウェアの取得
SenseCAP Indicatorのデフォルト出荷ファームウェアは、ESP32-S3とRP2040の両方で完全にオープンソースです。
- ソースコード: フラッシュする前に、要件に応じてコードを変更するオプションがあります。コンパイルするためにツールチェーン(ESP-IDF、Arduino)が必要です。
- ファームウェア: コードの変更やコンパイルを必要とせずに、プリコンパイルされたバイナリファイルを直接フラッシュします。EsptoolやFlash Download Toolsなどのツールを使用します。
ソースコード
ファームウェア
ESP32-S3用
ESP-IDF
ESP-IDF(Espressif IoT Development Framework)は、Espressif SystemsがESP32およびESP8266シリーズのマイクロコントローラー専用のファームウェアとアプリケーションを設計するために提供するソフトウェア開発フレームワークです。詳細については、ESP-IDFプログラミングガイドを参照してください。
ソースコードをファームウェアにコンパイルすることを選択した場合、コンパイルプロセスを実行するためにESP-IDFが必要です。
ESP-IDFのバージョンはv5.0以上である必要があります。古いバージョンを使用している場合は、最新バージョンに更新する必要があります。
新しいユーザーの場合、このビデオが以下の手順をより良く理解するのに役立つかもしれません:
ツールチェーンのインストール
- Windows
- Linux and MacOS
公式Espressifドキュメント:Windows用ツールチェーンの標準セットアップ
オプション1:オフラインインストーラーの使用
Windowsユーザーの場合、ESP-IDFオフラインインストーラーを直接ダウンロードするオプションがあります。直接ダウンロードリンクはこちらです:🖱️オフラインインストーラーv5.1.1をダウンロード
オプション2:推奨スクリプトの使用
コマンドプロンプトの使用に移動してください
公式Espressifドキュメント:LinuxとmacOS用標準ツールチェーンセットアップ
LinuxまたはMacOSの場合、このガイドに従ってgitリポジトリのバージョンを変更できます。
git clone --recursive https://github.com/espressif/esp-idf.git
esp-idfディレクトリに移動:
./install.sh esp32s3
を実行して、ESP32-S3サポートを追加します(SenseCAP indicatorに必要)./export.sh
と入力して、現在のターミナルセッションでPATHとIDF_PATH変数を設定します。
任意のシェルセッションで呼び出したい場合は、シェル設定ファイル(例:~/.bash_profile)に以下の行を追加できます:
alias get_idf='. $HOME/esp/esp-idf/export.sh'
その後、get_idf
を使用して環境をアクティブ化できます。^refer
プロジェクトのビルドとフラッシュ
ソースコードをファームウェアにコンパイルすることを選択した場合、コンパイルプロセスを実行するためにESP-IDFが必要です。
プロジェクトをビルド、フラッシュ、監視するには、以下のコマンドを実行します:
cd <your_sdk_path>/examples/indicator_basis/
idf.py -p PORT build flash monitor
PORT
なしでは、IDFが利用可能なポートを自動的に選択します。

この時点で、コマンドidf.py -p PORT flash
を入力することで、ファームウェアがESP32-S3に正常にフラッシュされました。
Esptool
ESPtool - GitHubは、Espressifチップ内のROMブートローダーと通信するためのプラットフォーム独立な方法を提供するPythonベースのオープンソースユーティリティです。
EsptoolはPythonスクリプトの一部として使用できます。このガイドでは、Esptoolリリースページで利用可能なパッケージソフトウェア
を使用します。コンピューターのオペレーティングシステムに対応するソフトウェアを選択してください。
フラッシュ用Esptoolの使用
ESP32-S3マイクロコントローラーにファームウェアをフラッシュするためにEsptoolを効果的に活用する方法を示す2つのスクリプトが提供されています。
提供されたスクリプトはWindowsオペレーティングシステム用に調整されていることにご注意ください。異なるオペレーティングシステムを使用している場合は、環境に合わせてスクリプトを適応させる必要があります。
merge.batスクリプトは、ブートローダー、パーティションテーブル、およびインジケーターベースバイナリを単一のファームウェアファイルに巧妙に統合するため、特に有用です。マージされると、このファームウェアはflash.batスクリプトを使用してESP32-S3にシームレスにフラッシュできます。プロンプトが表示されたら、デバイスに対応するCOMポートを入力すると、フラッシュプロセスが開始されます。完全な操作は以下のように要約できます:
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
または、ファイルをマージしてからフラッシュする代わりに個別のバイナリファイルをフラッシュしたい場合は、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
そして、マージされたファームウェアを使用した簡単なフラッシュプロセスの場合:
esptool.exe --chip esp32s3 --port COMx --baud 921600 write_flash -z 0x0 indicator_basis_v1.0.0.bin
特にバイナリをマージしない場合は、開始(0x0)アドレスに細心の注意を払ってください。個別のバイナリファイルについては、個別のバイナリファイル用Flash Download Toolsの指示を参照してください。これらのガイドラインに従うことで、エラーのないフラッシュが保証されます。
これらのスクリプトを利用するには、コードをプロジェクトフォルダー内のmerge.bat
とflash.bat
という名前の別々のテキストファイルに保存します。この組織的なアプローチにより、アクセスと使用が簡素化されます。
これらのスクリプトを使用することで、ファームウェアの準備とフラッシュの両方の段階を合理化し、よりスムーズで信頼性の高いプロセスに貢献します。
├── indicator_basis
│ ├── CMakeLists.txt
│ ├── build
│ ├── docs
│ ├── main
│ ├── partitions.csv
│ ├── sdkconfig
│ └── .defaults
│ └── flash.bat
│ └── merge.bat
merge.bat
を使用してバイナリをマージします。flash.bat
を使用してマージされたファームウェアをフラッシュします。
ファームウェアのフラッシュ
ファームウェアをフラッシュするには、提供されたflash.bat
スクリプトを使用できます。このスクリプトは、ESP32-S3マイクロコントローラーにファームウェアをフラッシュするプロセスを簡素化するように設計されています。
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
バイナリのマージ
提供された merge.bat
スクリプトを使用して、必要なバイナリファイルを1つのファームウェアファイルにマージできます。このスクリプトはプロセスを簡素化し、フラッシュを成功させるための正しいマージを保証します。これにより、個別ファイルをフラッシュする代わりに、単一のbinファイルをフラッシュできます。
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(Windows のみ)
Flash Download Tools は、ESP8266 および ESP32 シリーズのマイクロコントローラーにファームウェアをプログラムまたはフラッシュするために使用されます。ユーザーが ESP マイクロコントローラーに簡単にファームウェアをフラッシュできるグラフィカルユーザーインターフェース(GUI)を提供します。
プリコンパイルされたファームウェアをフラッシュする手順に従ってください:
ダウンロード: Flash Download Tools(Windows のみ)

-
ステップ 1:
.exe
ファイルをダブルクリックして、ツールのメインインターフェースに入ります。 -
ステップ 2:以下のオプションを選択します:
オプション | パラメータ |
---|---|
Chip Type | ESP32-S3 |
WorkMode | Develop |
LoadMode | UART |

-
ステップ 3:SenseCAP Indicator を USB Type-C ケーブルでラップトップに接続します。
-
ステップ 4:SPI Download タブで "..." をクリックし、ダウンロードしたファームウェアに移動します。
-
ステップ 5:SPI Flash を設定します:
オプション | パラメータ |
---|---|
SPI SPEED | 40MHz |
SPI MODE | DIO |
- ステップ 6:Download パネルを設定します:

- COM:Device Manager でポートを確認し、USB-SERIAL が正しいものです。
(
ここでは COM4 を選択しました
) - Baud:921600(推奨値)
次に START
をクリックしてフラッシュを開始します。

FINISH
と表示されたら、ファームウェアのフラッシュが完了しています。

個別バイナリファイル用の Flash Download Tools
前述のガイドでは、バイナリファイル「Default_Factory_Firmware_ESP32-S3.bin」は3つのバイナリを1つにマージしています。
ただし、ESP-IDF を使用してファームウェアをビルドしている場合、単一ファイルを直接フラッシュするとエラーが発生する可能性があります。代わりに、ビルドした3つの個別バイナリファイルを見つけて、以下のように正しいアドレス(独自のアドレスを使用できます)を指定する必要があります:
- bootloader.bin ----> 0x0
- partion-table.bin ----> 0x6800
- termial_demo.bin ----> 0x10000

RP2040 用
Arduino IDE によるフラッシュ
RP2040 開発ツールは Arduino を活用してコーディング体験を向上させます。
Arduino IDE は Arduino ボードをコーディングするための無料ソフトウェアです。ユーザーフレンドリーなインターフェースにより、コードを簡単に書いてアップロードできます。C++ の簡素化されたバージョンに基づいており、ライブラリと例を提供するため、初心者に最適です。
ダウンロード:
-
ステップ 1:Arduino IDE をインストールします
-
ステップ 2:Raspberry Pi Pico ボードを追加します
Arduino IDE を開き、Arduino IDE > Preferences をクリックし、以下の URL を Additional Boards Manager URLs にコピーします:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
![]() | ![]() |
Tools > Board > Board Manager をクリックします。

"indicator" を検索し、Boards Manager で "Raspberry Pi Pico/RP2040" をインストールします

- ステップ 3:ライブラリを追加します
- Sensirion Core:Sensirion Arduino Core ライブラリ
- PacketSerial:シリアル通信プロトコル
- Sensirion I2C SGP40:SGP40 TVOC センサーライブラリ
- Sensirion I2C SCD4x:SCD41 CO2 センサーライブラリ
- Sensirion Gas Index Algorithm:転送インデックスライブラリ
- Seeed_Arduino_AHT20:AHT20 温湿度センサーライブラリ
Arduino IDE では、Library Manager
で検索できます(例:Seeed_Arduino_AHT20
)、そしてインストールします。
オフラインインストールをプレビューするにはクリック
オフラインでインストールするには、GitHub から repo zip をダウンロードし、Sketch -> Include Library -> Add .ZIP Library に移動して、ダウンロードしたライブラリを選択します。

-
ステップ 4:提供された USB Type-C ケーブルでデバイスを PC に接続します。
-
ステップ 5:ボードとポートを選択します
"Indicator" を検索し、Seeed INDICATOR RP2040
ボードを選択し、usbmodem
シリアルポートを選択します。
![]() |
![]() |
- ステップ 6:サンプルコードファイルを開きます
File -> Open で、サンプルコードファイル(.ino ファイル)を選択します。
サンプルコードファイルを提供していますので、必要に応じてコードを変更できます。

- ステップ 7:ファイルを検証してアップロードします。
![]() |
![]() |
![]() |
これで、RP2040 でのファームウェアのビルドとフラッシュ(ダウンロード)が完了しました。
.uf2 ファイルのフラッシュ
- ステップ 1:デバイスを PC に接続します
針を使ってこの内部ボタンを長押しし、提供された USB Type-C ケーブルでデバイスを PC に接続し、接続後にボタンを離します。

- ステップ 2: ファームウェアフラッシュ
接続が成功すると、PCにディスクが表示されます。

.uf2ファイルをディスクにコピーすると、ディスクがログアウトします。

アップグレードが自動的に実行されます。
ESP32 & RP2040 通信プロトコル
ESP32とRP2040はシリアルポート通信を使用し、cobs通信プロトコルを使用します。デモで使用されるコマンドのリストは以下の通りです:
コマンド形式は、パケットタイプとパケットパラメータで構成されます。

リソース
FAQ
シリアルポートを区別する方法は?
- Windows
- MacOS
Device Manageでポートを確認してください
- "USB Serial Device(COMx)" または "USB 串行设备" はRP2040用です
- "USB-SERIAL CH340" はESP32用です 簡単に言うと、CH340ポートはESP32用です。

- "/dev/cu.usbmodem" はRP2040用です

最近の更新
- 2023-11-17
- パッチセクションを削除
- 2023-08-25
- パッチセクションをより明確に
- 2023-07-25
- Esptoolを使用したファームウェアフラッシュのコンテンツを追加
- 2023-05-29
- パッチセクションを追加
技術サポート
SenseCAP Indicatorでお困りですか?私たちがサポートいたします!