RaspberryPi&nfcpyで動作しなかったPaSoRi RC-S330をUbuntu(x86)で動作するか確認する

以前のエントリで佐古前装備さんで購入したRaspberryPiに接続したPaSoRi RC-S330nfcpyPythonモジュール)で使用できないということを書いていました。

f:id:ueponx:20211209234351j:plain

ですが、公式ドキュメントでは対応していますという記載があり、それを見ながらRaspberryPiで設定にチャレンジしていました。

f:id:ueponx:20211231161355p:plain

うまく行かないけどそれは本能なのだろうかと思い、UbuntuをPCにインストールして検証してみました。

参考・過去エントリ

uepon.hatenadiary.com

参考・対応デバイス

nfcpy.readthedocs.io

動作検証してみる

今回はUbuntu Desktop 21.04を使用しています。基本的な設定は前述の過去エントリにも記載しているので省略しますが、問題なく動作しました。サンプルのtagtoolでもIDmの表示が行われていました。

設定

# nfcpyモジュールのインストール
$ pip3 install nfcpy

# 認識状態の確認 
$ python3 -m nfc

# 実行後に表示される以下のコマンドを実行する
$ sudo sh -c 'echo SUBSYSTEM==\"usb\", ACTION==\"add\", ATTRS{idVendor}==\"054c\", ATTRS{idProduct}==\"02e1\", GROUP=\"plugdev\" >> /etc/udev/rules.d/nfcdev.rules'
$ sudo udevadm control -R

# 再起動
$ sudo reboot

# 認識状態の確認 
$ python3 -m nfc

以下のGitHubリポジトリをクローンしてexample/tagtoolを実行します。

github.com

すると以下のように正常に動作します。

f:id:ueponx:20211230150914p:plain

おわりに

以前は、アーキテクチャの違いで動かないデバイスも多かったのですが、最近ではほぼ同じように動くものも多かったので、そのままの感覚で動作させようとしていましたが、考えてみれば確かにアーキテクチャ違いでデバイスドライバも異なり、一概にドキュメントの言葉を信じるのもどうかと思います。

今回の件から結論づけるならば、RaspberryPi(RaspberryPi OS)ではnfcpyを使用したRC-S330の動作は行えず、Ubuntu(x86など)では問題なく動作しています。

対応という言葉をそのままRaspberryPiでも対応していると早とちりしてしまい、混乱してしまったという教訓の内容でした。

この実験後安心できたこともあり、カードゲームみたいなものができるといいなと思って追加で7つほどデバイスを購入しています。