書き込み方式で分けると Mifare カードには、セキュリティのない Ultralight と、Classic 1K・4K と、Ultralight C の3種類があります。
国内でも Mifare Ultralight は廉価なものが出回っていますが、
書き込みブロック | 容量 | |
Ultralight | 4 byte | 14 byte (16 byte のうち頭の2 byte 書けない) |
Classic | 16 byte | 64 byte (一部書けない) |
との違いがあります。
なかなか情報がなかったのですが、実は、Arduino MFRC Library には、Ultralight 用の書き込みライブラリが実装されていました。
MFRC522.cpp
/** * Writes a 4 byte page to the active MIFARE Ultralight PICC. * * @return STATUS_OK on success, STATUS_??? otherwise. */ MFRC522::StatusCode MFRC522::MIFARE_Ultralight_Write( byte page, ///< The page (2-15) to write to. byte *buffer, ///< The 4 bytes to write to the PICC byte bufferSize ///< Buffer size, must be at least 4 bytes. Exactly 4 bytes are written. ) {
以下省略
書き込みはブロックの2~14とのことですが、ブロック 2~5 は書き込み後、ずれていたり、そもそもかけなかったりで、特にシールタグに書き込むためにブロック 6~7 に書いてみましたが、問題なく書き込み・読込・書き換えできました。
読み込み時のバッファーのサイズは、Ultralight でも 16 byte 必要です。
使用したカード・シールタグは
マイフェアICカード(MifareUltralight PVC無地 業務用)
マイフェア ラベルシール型 ICタグ
でした。