Skip to main content

ネイティブファームウェアをフラッシュする方法

SenseCAP indicatorには2つのMCU、ESP32-S3とRP2040があります。このチュートリアルは、開発者がオンボードするための包括的なガイドを提供し、工場出荷時のネイティブファームウェアのフラッシュと、初期出荷デバイスの最新ファームウェアへの更新を含みます。

ファームウェアの更新は、特に以下の2つのシナリオで適用されます:

  1. 2023年6月以前にOpenAIファームウェアなしの製品を購入し、ファームウェアバージョンが1.0.0の場合、OpenAI機能を含む最新ファームウェアをダウンロードして更新できます。最新ファームウェアはこちらからダウンロードできます。
  2. アプリケーションを開発し、カスタムファームウェアをフラッシュしたい場合は、以下で提供されるチュートリアルに従うことができます。

簡単に言うと、以下の理由でこのチュートリアルが必要です:

  1. ESP32-S3またはRP2040にフラッシュする必要があるファームウェアがある。
  2. コードを変更し、それをコンパイルしてデバイスにフラッシュする必要がある。

それでは、このチュートリアルに入りましょう。

準備

開始するために必要なのは、SenseCAP IndicatorとWindows/Mac/Linuxコンピューターだけです。

ネイティブファームウェアの取得

SenseCAP Indicatorのデフォルト出荷ファームウェアは、ESP32-S3とRP2040の両方で完全にオープンソースです。

工場出荷時ファームウェアを取得するには2つのオプションがあります:
  • ソースコード: フラッシュする前に、要件に応じてコードを変更するオプションがあります。コンパイルするためにツールチェーン(ESP-IDFArduino)が必要です。
  • ファームウェア: コードの変更やコンパイルを必要とせずに、プリコンパイルされたバイナリファイルを直接フラッシュします。EsptoolFlash Download Toolsなどのツールを使用します。

ソースコード

ファームウェア

ESP32-S3

ESP-IDF

ESP-IDF(Espressif IoT Development Framework)は、Espressif SystemsがESP32およびESP8266シリーズのマイクロコントローラー専用のファームウェアとアプリケーションを設計するために提供するソフトウェア開発フレームワークです。詳細については、ESP-IDFプログラミングガイドを参照してください。

ソースコードをファームウェアにコンパイルすることを選択した場合、コンパイルプロセスを実行するためにESP-IDFが必要です。

注意

ESP-IDFのバージョンはv5.0以上である必要があります。古いバージョンを使用している場合は、最新バージョンに更新する必要があります。

新しいユーザーの場合、このビデオが以下の手順をより良く理解するのに役立つかもしれません:

ツールチェーンのインストール

公式Espressifドキュメント:Windows用ツールチェーンの標準セットアップ

オプション1:オフラインインストーラーの使用

Windowsユーザーの場合、ESP-IDFオフラインインストーラーを直接ダウンロードするオプションがあります。直接ダウンロードリンクはこちらです:🖱️オフラインインストーラーv5.1.1をダウンロード

オプション2:推奨スクリプトの使用

コマンドプロンプトの使用に移動してください

プロジェクトのビルドとフラッシュ

ソースコードをファームウェアにコンパイルすることを選択した場合、コンパイルプロセスを実行するためにESP-IDFが必要です。

プロジェクトをビルド、フラッシュ、監視するには、以下のコマンドを実行します:

cd  <your_sdk_path>/examples/indicator_basis/
idf.py -p PORT build flash monitor
tip

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ポートを入力すると、フラッシュプロセスが開始されます。完全な操作は以下のように要約できます:

merge.bat
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スクリプトを直接使用できます:

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

そして、マージされたファームウェアを使用した簡単なフラッシュプロセスの場合:

flash.bat
esptool.exe --chip esp32s3 --port COMx --baud 921600 write_flash -z 0x0 indicator_basis_v1.0.0.bin

特にバイナリをマージしない場合は、開始(0x0)アドレスに細心の注意を払ってください。個別のバイナリファイルについては、個別のバイナリファイル用Flash Download Toolsの指示を参照してください。これらのガイドラインに従うことで、エラーのないフラッシュが保証されます。

これらのスクリプトを利用するには、コードをプロジェクトフォルダー内のmerge.batflash.batという名前の別々のテキストファイルに保存します。この組織的なアプローチにより、アクセスと使用が簡素化されます。

これらのスクリプトを使用することで、ファームウェアの準備とフラッシュの両方の段階を合理化し、よりスムーズで信頼性の高いプロセスに貢献します。

├── indicator_basis
│ ├── CMakeLists.txt
│ ├── build
│ ├── docs
│ ├── main
│ ├── partitions.csv
│ ├── sdkconfig
│ └── .defaults
│ └── flash.bat
│ └── merge.bat
  1. merge.batを使用してバイナリをマージします。
  2. 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++ の簡素化されたバージョンに基づいており、ライブラリと例を提供するため、初心者に最適です。

ダウンロード:

  • ステップ 1Arduino 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:ライブラリを追加します
参考ライブラリ

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 ESP32 SDK

SenseCAP Indicator RP2040 デモ

FAQ

シリアルポートを区別する方法は?

Device Manageでポートを確認してください

  • "USB Serial Device(COMx)" または "USB 串行设备" はRP2040用です
  • "USB-SERIAL CH340" はESP32用です 簡単に言うと、CH340ポートはESP32用です。

最近の更新

  • 2023-11-17
    • パッチセクションを削除
  • 2023-08-25
    • パッチセクションをより明確に
  • 2023-07-25
    • Esptoolを使用したファームウェアフラッシュのコンテンツを追加
  • 2023-05-29
    • パッチセクションを追加

技術サポート

SenseCAP Indicatorでお困りですか?私たちがサポートいたします!

Loading Comments...