Open3

WioTerminalについて調べておく会

okuokuokuoku

なんかMaix Amigoについて調べてたら不安になってきたのでWioTerminalについても。。

端的に言えば単なるARM boardではあるので多少はマシだが辛さはあんまり変わらないといったところか。。

2CPUデザイン

M5StackのようなESP32品と比べた場合、2CPUデザインになっているのが最大の特徴か。つまり、192KiB RAMを搭載したArduinoに、UART+SPI経由でWi-Fi+BLEチップを接続したのがWioTerminalと言える。

2つのCPUで苦労も2倍だな!

ESP32はデュアルコアで1パッケージ内にアプリケーションとプロトコル処理を同居させ、プログラミングの容易さを取っている。

okuokuokuoku

ハードウェア

基本的にはSeeedのサイトから辿れる。

https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/

ただの加速度センサをIMUと呼ぶのはやめて欲しいとこだな。。

Wi-Fi/BLEファームウェア

旧ファームウェアはATコマンド、新ファームウェアはSPI経由のeRPCになっている。eRPCはFreescale製の Thrift風 RPC。

https://github.com/EmbeddedRPC/eRPC

また新ファームウェアはArduinoCoreを使用している。

okuokuokuoku

開発環境

これマジでArduinoの事しか考えてないんだよな。。というわけでArduinoベースで粘ることにする。

一応CMSISで直接使っている例もあるにはあるみたいだけど。。

https://github.com/ciniml/WioTerminalHarmony

Arduino

最近のArduinoは arduino-cli というコマンドラインが提供されている。

https://github.com/arduino/arduino-cli

CMakeでArduino開発を実現しようとしているプロジェクトはいくつかあるが、まぁ arduino-cli で多くのケースでは十分なんではないかという気がする。

https://github.com/arduino-cmake/Arduino-CMake-NG

https://github.com/a9183756-gh/Arduino-CMake-Toolchain

... まぁ個人的には十分じゃないけど。またbuildrootでコンパイラをビルドしないとダメだろうか。。

ArduinoCore

Seeedは専用のforkを持っているようだ。

https://github.com/Seeed-Studio/ArduinoCore-samd

FreeRTOSはsubmoduleされている。

https://github.com/Seeed-Studio/Seeed_Arduino_FreeRTOS