ESP8266 に RFID-RC522 にて Mifare Ultralight にタグを書き込む

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

でした。

コメントを残す