書き込み方式で分けると 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タグ
でした。