セクションの複数ページをまとめています。 印刷またはPDF形式で保存...
ファームウェアの書き込み方法
1 - ESP32 へのファームウェアの書き込み方法
1.1 - ESP32 へのスケッチの書き込み方法
ホストとの接続
TWELITE R3 / R2 を接続
7P インターフェイス(ESP32
と記載のある側)に TWELITE R3 / R2 を接続してください。
電源を接続
側面の USB-C コネクタ に 5V 電源を供給してください。
Arduino IDE の操作
スケッチを開く
Arduino IDE を起動して、書き込むスケッチを開いてください。
シリアルポートを選択
ツール -> シリアルポート メニューから、 TWELITE R3 / R2 のポートを選択してください。
COM?
といった名称に、macOS / Linux では /dev/tty?
といった名称になります。ESP32 をプログラムモードで起動
TWELITE SPOT の ESP32 リセットスイッチ EN(RST)
と ESP32 ブートスイッチ BOOT
を押し、EN(RST)
-> BOOT
の順で離してください。
BOOT
を押した状態でリセットすることで、ESP32 をプログラムモードに移行できます。書き込みを実行
Arduino IDEの マイコンボードに書き込む ボタンをクリックしてください。
Hard resetting via RTS pin...
と表示されます。書き込みに失敗し、下記のメッセージが表示された場合は、使用する USB ポートや USB ケーブルを変えてみてください。
A serial exception error occurred: Could not configure port: (6, 'Device not configured')
ESP32 をリセット
書き込みが完了したら、TWELITE SPOT の ESP32 リセットスイッチ EN(RST)
を押して離し、ESP32 をリセットしてください。
1.2 - ESP32 へのファイルの書き込み方法
data/
フォルダ以下のファイル群)を書き込む方法をご案内します。本稿では、応用的な内容(TWELITE SPOT に搭載された ESP32 のフラッシュ領域をファイルシステムとして扱い、HTML などのファイルを書き込む方法)を紹介しております。
例えば TWELITE SPOT に HTML ファイルを書き込んでWebサーバとして振る舞わせたい(spot-server サンプルで実現しています)、TWELITE SPOT に暗号鍵ファイルを書き込んでおきたいといった要求がない場合には、本稿の内容を無視していただいて構いません。
本稿では、サードパーティのオープンソースソフトウェアを使用します。
サードパーティのソフトウェアについて、その詳しい使用方法を弊社からご案内することはいたしかねます。また、サードパーティのソフトウェアを使用されたことによるいかなる損害についても、弊社は一切の責任を負いません。
本稿で紹介する方法では、Arduino IDE 1.x を必要とします。Arduino IDE 2.x の技術的な制約により、2023年5月現在、Arduino IDE 2.x には対応していません。
本稿で使用するプラグインは Java で書かれているため、Arduino IDE 1.x とは異なり、Java ベースではない Arduino IDE 2.x では動作しないからです。問題の詳細については、Arduino IDE GitHub ページの Issue (Missing support for external tools / plugins · Issue #58 · arduino/arduino-ide) をご覧ください(英語)。
プラグインの導入
ESP32 のフラッシュ領域へファイルを書き込むための Arduino プラグイン (arduino-esp32fs-plugin) をインストールします。
プラグインのダウンロード
以下のページから、esp32fs.zip
を入手します。
Release Update to support Big Sur · lorol/arduino-esp32fs-plugin
プラグインのインストール
ダウンロードした
esp32fs.zip
を展開してください。Arduino のスケッチブックの保存場所(Arduino IDE 環境設定に記載。例:
C:\Users\foo\Documents\Arduino
)にtools
フォルダがない場合は、これを作成してください。tools
フォルダにESP32FS/tool
フォルダを作成し、zipファイルから得たesp32ffs.jar
ファイルを配置してください。(配置例:C:\Users\foo\Documents\Arduino\tools\ESP32FS\tool\esp32fs.jar
)。Arduino IDE を次に起動した際にプラグインが使用できるようになります。
ホストとの接続
TWELITE R3 / R2 を接続
7P インターフェイス(ESP32
と記載のある側)に TWELITE R3 / R2 を接続してください。
電源を接続
側面の USB-C コネクタ に 5V 電源を供給してください。
Arduino IDE の操作
スケッチを開く
Arduino IDE を起動して、スケッチを開いてください。
書き込むファイルの配置
スケッチ -> スケッチのフォルダを表示 から、スケッチのフォルダを開いてください。
スケッチファイル(
.ino
)と同じ階層に、data
フォルダを作成してください。data
フォルダ内に、書き込むファイルを配置してください。
data
フォルダ内の階層構造は維持されます。シリアルポートを選択
ツール -> シリアルポート メニューから、 TWELITE R3 / R2 のポートを選択してください。
COM?
といった名称に、macOS / Linux では /dev/tty?
といった名称になります。ESP32 をプログラムモードで起動
TWELITE SPOT の ESP32 リセットスイッチ EN(RST)
と ESP32 ブートスイッチ BOOT
を押し、EN(RST)
-> BOOT
の順で離してください。
BOOT
を押した状態でリセットすることで、ESP32 をプログラムモードに移行できます。書き込みを実行
ツール -> ESP32 Sketch Data Upload をクリックしてください。
Select FS for <スケッチ名> /data folder にて、LittleFS を選択してください。
- OK を押してください。
Hard resetting via RTS pin...
と表示されます。環境によっては、以下のように表示されて書き込みに失敗することがあります(macOS で確認)。
`Error: esptool not found!`
その際には、esptool.py を Arduino15フォルダ
/packages/esp32/tools/esptool_py/<バージョン>/esptool.py
へ配置することで解決できるかもしれません。
例えば、macOS の場合には、下記のようにして esptool.py を取得し、シンボリックリンクを作成します。
/usr/bin/pip3 install esptool
ln -s ~/Library/Python/3.9/bin/esptool.py ~/Library/Arduino15/packages/esp32/tools/esptool_py/4.5.1/esptool.py
注:
/usr/bin/pip3
と指定しないと、Homebrew のディレクトリにインストールされてしまうことがあります
ESP32 をリセット
書き込みが完了したら、TWELITE SPOT の ESP32 リセットスイッチ EN(RST)
を押して離し、ESP32 をリセットしてください。
1.3 - ESP32 のパーティションテーブルを指定した書き込み方法
本稿では、応用的な内容(フラッシュ領域のパーティションテーブルを指定する方法)を紹介しております。
ESP32 Arduino Core に最初から含まれているパーティションテーブルの設定(例:Default 4MB with spiffs)を使用される場合は、本稿を無視していただいて構いません。
定義ファイルの作成
パーティションテーブルの定義は、csv ファイルに記述します。
下記の例では、16MB のフラッシュ領域のうち、8MB をファイルシステムで使うように指定しています。
# TWELITE SPOT 16MB with 8MB LittleFS
# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xE000, 0x2000,
app0, app, ota_0, 0x10000, 0x7F0000,
spiffs, data, spiffs, 0x800000, 0x800000,
TWELITE SPOT 16MB with 8MB LittleFS
Arduino IDE に表示される名前です。nvs
システムで使用する領域です。変更しません。otadata
OTA を使う際に使用する領域です。変更しません。app0
ファームウェアを書き込む領域です。spiffs
LittleFS ファイルシステムで使用する領域です。
csv ファイル中の Offset
および Size
列の単位はバイトで、16進数です。
したがって、上記の例では、ファームウェアとファイルシステムが使えるサイズは下記のように計算できます。
app0
のサイズ:0x7F0000 = 8323072
より、7.875MB
spiffs
のサイズ:0x800000 = 8388608
より、8MB
定義ファイルの登録
Arduino15フォルダ を開き、下記のパスに csv ファイルを追加します。
Arduino15/packages/esp32/hardware/esp32/x.x.x/tools/partitions
x.x.x
は Arduino core for the ESP32 のバージョン
パーティションテーブルの適用
Arduino IDE のツールバーから ツール -> Partition Scheme を開き、追加したパーティションテーブルを選びます。
選択したパーティションテーブルが次回以降のファームウェアの書き込みやファイルシステムの書き込みに反映されます。
partitions.csv
という名前で設定ファイルを置くと、そちらが優先されます。ただし、Arduino IDE 上の表記は変わらないため、紛らわしい場合があります。2 - TWELITE へのファームウェアの書き込み方法
TWELITE SPOT に搭載される TWELITE では、インタラクティブモードによる設定変更ができません。
TWELITE の周波数チャネルやアプリケーションIDを設定するには、ESP32 からシリアル通信でコマンドを送信します。Arduino 環境では、Twelite.begin()
を使用してください。
TWELITE STAGE APP をインストール
TWELITE STAGE SDK をダウンロードし、ダウンロードしたファイルをCドライブ直下に展開してください。
ホストとの接続
TWELITE R3 / R2 を接続
7P インターフェイス(TWELITE
と記載のある側)に TWELITE R3 / R2 を接続してください。
電源を接続
側面の USB-C コネクタ に 5V 電源を供給してください。
TWELITE STAGE APP の操作
TWELITE STAGE APP (
TWELITE_Stage.exe
) を起動してください。シリアルポート選択画面で TWELITE R3 / TWELITE R2 を選択してください。
メインメニュー -> アプリ書換 を選択し、書換えたいアプリを選択してください。
3 - ファームウェアの初期化方法
3.1 - ESP32 のファームウェアの初期化方法
このページでは、TWELITE 無線モジュールと ESP32 を搭載した製品 TWELITE SPOT を工場出荷時に戻す方法を解説しています。一般的な ESP32 を工場出荷時へ戻す方法は案内していません。
ESP32 のプログラムを消去するだけならば、Espressifの公式Webツール を使用できます(TWELITE SPOTも同様)。
検索エンジンからお越しいただいたみなさま、申し訳ございません。
超低消費電力が特徴の無線モジュール、TWELITE を覚えていただけると幸いでございます。
esptool をインストール
Python をインストール
Python 3.7 以降がインストールされていない場合は、Python 3.7 以降をインストールしてください。
https://www.python.org/downloads/
esptool 本体をインストール
PyPI から esptool をインストールしてください。
pip install esptool
既存のPython環境に影響を与えたくない場合は、pipx の使用を推奨します。
pipx install esptool
ホストとの接続
TWELITE R3 / R2 を接続
7P インターフェイス(ESP32
と記載のある側)に TWELITE R3 / R2 を接続してください。
電源を接続
側面の USB-C コネクタ に 5V 電源を供給してください。
バイナリファイルの取得
下記のリンクから、spot-server-2023-05-bin.zip
をダウンロードしてください。
ダウンロードしたら、zipファイルを展開してください。
ESP32 をプログラムモードで起動
TWELITE SPOT の ESP32 リセットスイッチ EN(RST)
と ESP32 ブートスイッチ BOOT
を押し、EN(RST)
-> BOOT
の順で離してください。
BOOT
を押した状態でリセットすることで、ESP32 をプログラムモードに移行できます。esptool による書き込み
esptool をインストールした端末でspot-server-2023-05-bin.zip
を展開したフォルダに移動し、下記を実行してください。
esptool --chip esp32 --port <シリアルポート> --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode qio --flash_freq 80m --flash_size 16MB 0x1000 spot-server.ino.bootloader.bin 0x8000 spot-server.ino.partitions.bin 0xe000 boot_app0.bin 0x10000 spot-server.ino.bin 0x100000 spot-server.littlefs.bin
COM?
や /dev/tty?
といったポート名を入力します。もし失敗する場合は、下記をお試しください。
--flash_mode qio
を--flash_mode dio
に変更--flash_freq 80m
を--flash_freq 40m
に変更--baud 921600
を--baud 460800
に変更
ESP32 をリセット
書き込みが完了したら、TWELITE SPOT の ESP32 リセットスイッチ EN(RST)
を押して離し、ESP32 をリセットしてください。
3.2 - TWELITE のファームウェアの初期化方法
TWELITE SPOT に搭載される TWELITE では、インタラクティブモードによる設定変更ができません。
TWELITE の周波数チャネルやアプリケーションIDを設定するには、ESP32 からシリアル通信でコマンドを送信します。Arduino 環境では、Twelite.begin()
を使用してください。
TWELITE STAGE APP をインストール
TWELITE STAGE SDK をダウンロードし、ダウンロードしたファイルをCドライブ直下に展開(Windowsの場合)してください。
ファームウェアの入手
下記のリンクからバイナリファイルをダウンロードし、MWSTAGE
フォルダ内の BIN
フォルダに配置してください。
ホストとの接続
TWELITE R3 / R2 を接続
7P インターフェイス(TWELITE
と記載のある側)に TWELITE R3 / R2 を接続してください。
電源を接続
側面の USB-C コネクタ に 5V 電源を供給してください。
TWELITE STAGE APP の操作
TWELITE STAGE APP (
TWELITE_Stage.exe
) を起動してください。シリアルポート選択画面で TWELITE R3 / TWELITE R2 を選択してください。
メインメニュー -> アプリ書換 -> BIN から選択 を選び、先ほど入手したバイナリ(
App_Wings_TWELITESPOT_BLUE_L1305_V1-3-0.bin
)を書き込んでください。