ネイティブファームウェアをフラッシュする方法
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)は、ESP32およびESP8266シリーズのマイクロコントローラー専用のファームウェアとアプリケーションを設計するために、Espressif Systemsが提供するソフトウェア開発フレームワークです。詳細については、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は、Pythonベースのオープンソースユーティリティで、Espressifチップ内のROMブートローダーとプラットフォーム非依存の方法で通信する機能を提供します。
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
And for a straightforward flashing process using the merged firmware:
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 |

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

- COM: デバイスマネージャーでポートを確認し、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」を検索し、Board Manager で「Raspberry Pi Pico/RP2040」をインストールします。

- ステップ 3: ライブラリを追加
- 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
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通信プロトコルを使用します。デモで使用されるコマンドのリストは以下の通りです:
コマンド形式は、パケットタイプとパケットパラメータで構成されます。

リソース
SenseCAP Indicator RP2040 Demo
FAQ
シリアルポートを区別する方法は?
- Windows
- MacOS
デバイスマネージャーでポートを確認してください
- "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でお困りですか?サポートいたします!