マイコンに実装したWebSocketの超高速リアルタイムモニター【STM32Nucleo】

WebSocketを実装したマイコン(STM32Nucleo)からブラウザへデータを送ってモニター表示させるところまではなんとかできるようになったのですが、更新レートをあげると不安定で停止したり、切断したりする現象がおきていました。

当初はブラウザやWebSocketの仕様によるものかと思っていたのですが、原因が判明し、解決したところもとの100倍近いほぼ限界(マイコンの設定による)のレートで更新できるようになりました。これぞWebSocketプロトコルの利点を活かした通信です。

原因は組み込み系WebSoket通信特有の要因と思われるハードウェアの設定によるものだったわけですが改善後、WebSocket通信が安定し、下記動画ではサンプリング1msの超高速レートでデータ更新を行っています。条件によるかもしれませんがブラウザやWebSocket自体にはほぼ表示速度に制約はないと考えてよさそうです。

コラム

実際に1ms周期でモニターさせることはないと思いますが、WebSocketでマイコンとブラウザ間でほぼ制約のない任意の周期でデータのやり取りができることが判明したところが大きな収穫です。