WioTerminal開発環境の準備
WioTerminalとMaix Amigoが届いたので、C開発環境をCygwin上に構築していく。
ESP32は真面目なC開発環境が予めポータブルな形で用意されていたので手順通りにツールチェーン等ビルドすれば終わっていたが、WioTerminalやMaix Amigoは基本的にArduinoIDEや専用のPython開発環境を使うのが前提なのでなかなか難しい。
Wi-Fi/BLEチップのファームウェア更新
まず、ファームウェアには 日本版が存在する のでそっちを書かないといけない。
手順は基本的に本家Wiki https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/ の通りで良いが、
- 書き込みツールは https://github.com/Seeed-Studio/ambd_flash_tool からチェックアウトできるが、 CygwinのGitでチェックアウトした場合手動で
chmod +x
して廻る必要がある (あとCygwinを再配布するときはLGPLも再配布しないといけない) - ファームウェアは https://github.com/Seeed-Studio/seeed-ambd-firmware/releases から
_JP
の付いたアーカイブをDLし、リポジトリのファイルに上書きする - 元々書かれていたArduinoスケッチは消去される
この書き込みツールで使われているArduinoスケッチはWikiの方に解説がある:
ライターはCygwinで上手く動かず
適当にパッチしてみたけどボーレート検出がうまく行かず。
まぁこれはArduino側のライタで良いか。。
/cygdrive/c/Users/oku/AppData/Local/Arduino15/packages/Seeeduino/tools/bossac/1.8.0-48-gb176eee/bossac.exe -i -d --port=COM11 -w -v --offset=0x4000 ./Blink.ino.wio_terminal.bin
今のところリセットx2でブートローダモードに手で移行しないと上手くいっていない。面倒なのでなんとかしたいところ。。あと、このブートローダモードはMSのUF2形式( https://github.com/microsoft/uf2 )に対応したブートローダが入っているようで、これを書き潰さないように注意する必要がありそうだ。。
手元に3.3vのArduinoが無かった。。
てっきり手元のPro Microが3.3v品かと思っていたら5v品だった。。というわけでSWDデバッグはRaspberry Pi Picoあたりを転用することにして一旦保留。
- ダブルタップ検出コード: https://github.com/microsoft/uf2-samdx1/blob/dd415d582b3179a6d752d0ce50da3247411aa6e8/src/main.c#L128-L132
いわゆるリセットボタンのダブルタップ検出はブートローダ自体に存在するため、ブートローダ、つまりCPU内蔵フラッシュの先頭16KiBさえキープしておけば変なプログラムを書いてしまったとしても起動しなくなってしまう事はない。なのでよっぽどアホしない限りは大丈夫かな。