Flexispotの電動昇降デスクの信号をハックしてスマホやPCから操作できるようにする

概要

Flexispot製(に限らず)電動昇降デスクの手元操作コントローラーの信号は解析している人がいるため、適当なマイコンボードに置き換えることが出来ます。出来ました。

これによって

  • 大きなコントローラーを天板から省いてデスクがすっきり
  • スマホやPCブラウザから操作できて楽
  • タイマー機能やセンサー連動が可能に

なりました。結構便利!

youtu.be

terminalからも叩けるよ!

使ったマイコンは M5AtomS3というもので

  • wifiが使える(PCやスマホから操作しやすい)
  • LCDが付いている(現在の高さを表示しておきたい)
  • コンパクト(かなりかわいいサイズ)
  • ボタンが2個使える(開発中のデバッグに便利です)
  • ケースがついてる

みたいな観点で選びました。3000円弱です。(もうちょっと安くするならM5StampS3とかM5AtomS3Liteとかでも良いと思います)

ATOMS3 — スイッチサイエンス

サイズ感です。キーキャップよりちょっと大きいくらい!

作り方

Flexispotは手元操作用のコントローラーをRJ45(LANケーブル)端子で差し込んでいます。

これは内部的にはシリアル通信を使っていて、LANケーブルの内5本を適切に接続してシリアル通信をすると、どんなマイコンでもFlexispotからはコントローラーとして認識されます。

この手のコントローラーはLocTek社のOEMの事が多いので、LocTek社のサイトを見ながら、自分の使っている電動昇降デスクのコントローラーの型番を調べます。 (僕はHS01B-1でした)
www.loctekmotion.cn

そしてコントローラーの結線情報やシリアル通信の中味について調べているこちらのリポジトリを見ながら、マイコンとコントローラーの間をはんだ付けします。

github.com

手抜きのため、適当なLANケーブルを引きちぎってM5AtomS3に直接繋ぎました。

あとは この辺を見ながらガガッとファームウェアを書いてあげれば、なんとなく動くようになります

もうちょっと細かい話

  • コントローラーの種類によって結線対応に差があるので、変換基板を作って売る場合は何種類か作らないといけないかも
  • 4本の結線で動くかと思いきや、5本目のPIN20をHIGHにする必要があり、ちょっと予想外でした
  • M5AtomS3は、デモ動画を撮るときに今の机の高さを表示するLCDが付いてて便利だから選びましたが、1500円くらいのM5AtomLiteとかでも動くと思います
  • ESP32系は電源オンにするときに(マイコンとしては)結構電流を食うのですが、今回のマイコンではwifiを使っても電源供給は足りました

標準コントローラーとのサイズ比較