amiiboをコピーする #1

はじめに

これのつづき。

結果から先に言うと、読み込みには成功した。

ただし、なにかいろいろと違うことがあった。

nfcpyが動かない

何度やってもエラーが発生した。

RC-S380ではテスト済みらしいのだが、ぼくのもっているRC-370ではテストができていないらしい。

libnfcの導入

nfcpyが動かないので、代替手段としてlibnfcを使うことにした。

ソースコードはgithubにあるので、それをダウンロードしてきてビルドするだけ。

ラズパイ3でビルドしたが、10分程度で終わった。

依存関係があるので、必要ファイルはインストールしておくこと、ビルドの仕方はまた後々書くかも。

実行

libngc/utilsの中にnfc-listというファイルがあるので、それを実行する。

nfc-list uses libnfc libnfc-1.7.1-191-g216145f
NFC device: Sony / RC-S370/P opened 1 ISO14443A passive target(s)
found: ISO/IEC 14443A (106 kbps) 
target:     ATQA (SENS_RES): 00  44        
UID (NFCID1): 04  23  56  ca  ed  4c  81       
SAK (SEL_RES): 00 

すると何やらデータが読み込めた。どうやらamiiboの規格はPASORIで読み込めるようだ。

ここで読み込めた情報を整理する。

ISO14443Aとあるが、これはどういった規格なのだろうか?

Wikipediaで検索するとMIFAREという文字列があるのだが、知恵袋だとTopazではなかったのか….???

ATQA=0044という情報から更に調べを進めて、これには決着が着いた。

amiiboはTopazではなく、MIFARE Ultralightだったのだ。

Topazって書いてたやつでてこいーー!(ぷんぷん)

Dump

一応だけど、Dumpとはデータを抜き出して保存することを意味します。

NFC自体は読み込めているので、これは特別難しい作業ではないはず…だったのだが!!

me@raspberrypi:~/libnfc/utils $ nfc-mfultralight r amiibo.mfd 
NFC device: Sony / RC-S370/P opened 1 ISO14443A passive 
target(s) found:         042356caed4c81 Using MIFARE Ultralight card with 
UID: 042356caed4c81 Tag is EV1 - PASSWORD may be required EV1 storage 
size: unknown! Reading 16 pages |................| Done, 16 of 16 pages read (0 pages failed). 
Writing data to file: amiibo.mfd ... Done.

EV1というTagを読み込むのにパスワードが必要らしい。いや、でもそんなのうちしらんし…

と思っていたら神サイトが存在した。

パスワードも調べて再挑戦!!今度こそ成功してくれーーー!!

me@raspberrypi:~/libnfc/utils $ nfc-mfultralight r amiibo.mfd --pw 43EE2C39 
NFC device: Sony / RC-S370/P opened 1 ISO14443A passive 
target(s) found:         042356caed4c81 Using MIFARE Ultralight card with 
UID: 042356caed4c81 EV1 storage size: unknown! Authing with 
PWD: 43ee2c39 Success - 
PACK: 8080 Reading 16 pages |................| Done, 16 of 16 pages read (0 pages failed). 
Writing data to file: amiibo.mfd ... Done. 

なんとパスワードは一致しているのに何故かEV1がDUMPできないという現象が発生してしまった…

このサイトによると、EV1のメモリサイズには二種類あるらしい。

ということはnfc-mfultralightはそれに対応できていないということなのだろうか?

結局よくわからない

MIFARE系のNFCなのは間違いなさそうなので、そっち関係から攻めることにした。

https://github.com/nfc-tools/libfreefareで有用なツールがあったのでクローンしてビルドすることにする。

インストールの仕方は上記のページを参照。コマンド5つくらいでできるので難しくはないはず。

me@raspberrypi:~/libnfc/utils/libfreefare/examples $
ntag-detect Tag with UID 042356caed4c81 is a NTAG21x

ん、結局普通のNTAGなのか?

Amiiboの仕様海外のwikiに載っていた。こういうのが充実しているから、日本語のサイト調べても全然参考にならないんだよね。

おまけ

こんなのもあったよっていうやつ。

#AmiiBomb-uino

Arduino Uno R3を使ってAmiiboのクローンを作ることができるらしい。
必要なものは以下一覧。

  • 1x Windows PC
  • 1x Arduino Uno R3 (around $4)
  • 1x USB Cable Type AB (pretty sure you already have it)
  • 1x RFID Module RC522 (around $2)
  • 7x Pin Wire Male-Female (around $1 for x20)
  • 1x Soldering Iron Kit (and a little soldering skills)
  • Many NTAG215 as you want Amiibo Tag (around $34 for x100)

#create-amiibo-clones-with-arduino

他にはこんなのとか。
どちらにせよ、RC522っていうやつがあれば良いらしい。これはラズパイにも使えるのでまあなんか面白そうだなって感じです。

この方針でやってみる

というのもnfcpyがあればamiibo.pyをつかっていろいろできそうなのだけれど、nfcpyは動かないしAndroidのスマホはないし…

こっちの方針であればRC522というモジュール以外は全て持っているので、これでいいような気もする。

オスメスのジャンパケーブルがあったかどうかだけが微妙に心配。

RC522モジュールをアマゾンで注文したら10日くらいかかるみたいだったので、日本橋で探そうと思った。

NTAG215はアマゾンの怪しいサイトで買うのが恐ろしいので、別のサイトで買おうと思った。

半田ごては昔買ったやつが家に置きっぱなしになっているはずなので、それを使うことにする。

これならAndroidのスマホを買うよりも手っ取り早いし、パソリをわざわざ買わなくていいし、プログラムの勉強になるしで一石三鳥くらいありそうな気がします。

次の記事ではびっくり仰天、amiiboの自作に成功した内容を書きたいところである。