Skip to main content

ファームウェアの更新とフラッシュ

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

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

SenseCAP インジケーターには、ESP32-S3 と RP2040 の 2 つの MCU が搭載されています。このチュートリアルでは、開発者がスムーズに作業を開始できるよう、工場出荷時のネイティブファームウェアのフラッシュや、初期出荷デバイスを最新のファームウェアに更新する方法を包括的に説明します。

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

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

簡単に言えば、このチュートリアルが必要な理由は以下の通りです:

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

それでは、このチュートリアルを始めましょう。

準備

作業を始めるには、SenseCAP インジケーターと Windows/Mac/Linux コンピューターが必要です。

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

SenseCAP インジケーターの出荷時のデフォルトファームウェアは、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を使用したフラッシュ

Esptoolを使用してESP32-S3マイクロコントローラーにファームウェアをフラッシュする方法を示す2つのスクリプトが提供されています。

注意:

提供されているスクリプトはWindowsオペレーティングシステム向けに調整されています。他のオペレーティングシステムを使用している場合は、スクリプトを環境に合わせて調整する必要があります。

merge.batスクリプトは特に便利で、ブートローダー、パーティションテーブル、およびインジケーターベーシスバイナリを1つのファームウェアファイルに統合します。統合後、このファームウェアはflash.batスクリプトを使用してESP32-S3にシームレスにフラッシュできます。プロンプトが表示されたら、デバイスに対応するCOMポートを入力し、フラッシュプロセスを開始します。操作全体は以下のように要約されます:

merge.bat
esptool.exe --chip esp32s3 ^
merge_bin -o sensecap_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

また、ファイルを統合せずに個別のバイナリファイルを直接フラッシュしたい場合は、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)に注意してください。個別のバイナリファイルについては、個別バイナリファイルのフラッシュダウンロードツールの指示を参照してください。これらのガイドラインに従うことで、エラーのないフラッシュが可能になります。

これらのスクリプトを使用するには、コードをそれぞれmerge.batおよびflash.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コードを表示
```bat @echo off setlocal cd /d "%~dp0" :: チップを設定 set chip=esp32s3 :: ボーレートを設定 set baud=921600 :: COMポートを一覧表示 echo 利用可能なポートとデバイス: echo. for /F "tokens=* delims=" %%A in ('wmic path Win32_PnPEntity get Name ^| findstr /C:"COM" ^| findstr /C:"CH340"') do ( echo %%A ) :: ポートを入力 :chooseport echo. echo 使用するCOMポートを入力してください (例: COM5): set /p port= :: 選択したポートが有効で"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% が見つかりません goto :chooseport :flash:: 選択したパラメータを表示 echo. echo 選択内容: echo チップ: %chip% echo ポート: %port% - %device% echo ボーレート: %baud% @REM echo 続行するには任意のキーを押してください... @REM pause >nul :: 単一ファイル用にesptoolを実行 esptool.exe --chip %chip% --port %port% --baud %baud% write_flash -z 0x0 indicator_basis_v1.0.0.bin if ERRORLEVEL 1 ( echo 単一ファイルでのフラッシュがエラー %ERRORLEVEL% で失敗しました。 goto :end ) :: スクリプトの終了 :end endlocal ```

バイナリの統合

提供されているmerge.batスクリプトを使用して、必要なバイナリファイルを1つのファームウェアファイルに統合できます。このスクリプトはプロセスを簡素化し、正確な統合を保証することで、成功したフラッシュを可能にします。これにより、個別ファイルのフラッシュを行わずに単一のbinファイルをフラッシュできます。

merge.batコードを表示
```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: USB Type-C ケーブルを使用して SenseCAP インジケーターをノートパソコンに接続します。

  • ステップ 4: SPI Download タブで「...」をクリックし、ダウンロードしたファームウェアを選択します。

  • ステップ 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」と検索し、Boards Managerで「Raspberry Pi Pico/RP2040」をインストールします。

  • ステップ 3: ライブラリを追加します。

Arduino IDE内でLibrary Managerを使用して検索し、例えばSeeed_Arduino_AHT20をインストールします。

オフラインインストールのプレビューをクリック

オフラインでインストールするには、GitHubからリポジトリの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 Demo

FAQ

シリアルポートをどのように区別しますか?
デバイスマネージャーでポートを確認してください。 - "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...