reTerminalでボタン、LED、ブザーが動かないときの対処法

Seeed K.K.の松岡です。
いま開催しているSeeed reTerminal 拡張モジュールコンテストの申し込みが少なくて、やきもきしています😥。アイデアだけでもOKなので、みなさん是非参加してください。→reTerminal拡張モジュールコンテストに応募しよう

今回はreTerminalでブザーが鳴らなくて困った話です。

f:id:matsujirushix:20220301105917p:plain

ブザーが鳴らなくなった

reTerminalを最新の(bullseyeベースの)Raspberry Pi OSにすると、ディスプレイが横向きに表示されてしまい使いにくかったのですが、ゴニョゴニョ設定するときちんと表示されるようになりました。

lab.seeed.co.jp

上機嫌でbullseyeを使っていたのですが、、、
ブザーを鳴らそうとしても、鳴りません。cd /sys/class/leds/usr_buzzerコマンドでNo such file or directoryというエラーになってしまいます。

f:id:matsujirushix:20220301100837p:plain

内蔵ハードウェアを一通り確認したところ、次の機能が正常に動作しませんでした。

  • 前面ボタン
  • 前面LED
  • 内蔵ブザー

対処法

reTerminalに内蔵している、ボタン、LED、ブザーを制御するチップ「I/O拡張チップ」のドライバーを設定変更すると、正しく動作するようになりました。

  1. i2cdetect -y 1を実行して、20の表示があるのを確認してください。
    f:id:matsujirushix:20220301114448p:plain:w300
  2. sudo vi /boot/config.txtを実行して、/boot/config.txtdtoverlay=reTerminalに、,addr=0x20,mcp23008を追記してください。
    f:id:matsujirushix:20220301115036p:plain:w400
  3. sudo rebootを実行して、再起動してください。
  4. i2cdetect -y 1を実行して、20の場所にUUと表示されていれば正常です。
    f:id:matsujirushix:20220301130839p:plain:w300

なにが起こっているのか

問題となったのは、I/O拡張チップのドライバー設定です。
I/O拡張チップは、下図赤丸で示したもので、ボタン、LED、ブザーをCompute Module 4のI2Cバスに接続するチップです。

f:id:matsujirushix:20220228181520p:plain

このI/O拡張チップは、reTerminal発売当初はMicrochip MCP23008を採用していました。しかし、昨今の半導体不足の影響なのか、入手が難しくなったことから、2021/9/3以降、NXP PCA9554に変更しました。

f:id:matsujirushix:20220228181835p:plain

f:id:matsujirushix:20220228181257p:plain

そして、reTerminalに関連したドライバーがNXP PCA9554用に設定されているので、、、Microchip MCP23008のreTerminalでは、I/O拡張チップが動作せず、ボタン、LED、ブザーが使えなくなっていたのでした。

該当するのは次の場合です。

  • 箱に書かれている日付(Released Date)が2021/9/3よりも前。
  • reTerminalに関連したドライバーを手動でインストール。

ちなみに、日本で売られている技適マーク付きのreTerminalは2021/9/3以降のものなので、この事象には該当しないです。ご安心ください。

謝辞

Lakshantha、いつもありがとう!!

参考リンク

変更履歴

日付 変更者 変更内容
2022/3/1 松岡 作成
2022/4/11 松岡 画像クリック時に拡大表示されない不具合を改修