Poesía MIFARE
Las tarjetas MIFARE fueron desarrolladas por la empresa Philips en el año 1994 para cobranzas en medios de transporte. Sin ir más lejos la mismísima SUBE de Argentina usa esta tecnología.
Resulta que la mayoría de las implementaciones MIFARE dejan libres bloques de memoria. La idea entonces es desarrollar un tipo de curiosa y efimera poesía que usa de soporte los espacios de memoria libre en las tarjetas MIFARE.
Reglas del MIFARE Poetry
1. Cada poesía MIFARE solo puede tener tres líneas
2. Cada línea solo puede tener hasta 16 caractéres incluyendo espacios
3. Una poesía MIFARE solo puede leerse tres veces
Ejemplos (sin valor comercial)
Waves crash
Time bends
Echoes fadesobre el teclado
hay huellas que
no recuerdo
Arquitectura
La memoria de las tarjetas MIFARE de 1K se organiza en sectores y bloques. Cada sector tiene cuatro bloques y el último de ellos es el Trailer, un bloque especial que indica las claves y permisos de todo el sector.
El bloque #0 del sector #0 tiene la particularidad de contener el UID de la tarjeta.
La poesía MIFARE se graba en los bloques 4, 5, 6 del sector 1. Por su parte el bloque 8 del sector 2 se usa para el contador de lecturas.
MIFARE Poetry Device
El Mifare Poetry Device fue fabricado con un Arduino UNO R4 WiFi, una placa RC522, dos partes impresas en 3D, código de programación C++ y PHP.
Al colocar una tarjeta, el lector se comunica con un servidor web que indica lectura o grabacion, así como las tres líneas de la poesía.
Carga de poesías MIFARE
La carga de poesías se lleva a cabo desde una web PHP. Al indicar modo escritura las líneas de la poesía se escriben en un archivo mifare.json con el siguiente formato
{“mode”:”r”,”line1":”Hi there”, “line2”:”how are you”, “line3”:”ok”}
Lectura de poesías MIFARE
Al cargar en la web el modo lectura, la poesía de la tarjeta se puede visualizar en pantalla y también en el monitor serial del Arduino IDE.
Circuito
Preguntas
¿Es posible cargar poesia MIFARE en los tags/llaveros? Sí
¿Qué pasa si mis tarjetas MIFARE tienen los data sectors del bloque 0 y 1 ocupados? Es posible configurar otros sectores y bloques desde el código
¿Qué pasa si escribo en un trailer sector de la tarjeta? Todos morir.
Quiero fabricar uno, ¿adónde está el código? Tutorial en Hackster y código fuente en Github
Poesía automática
Por último, escribí unas rutinas que usan random y templates para generar automáticamente MIFARE poems, respetando las líneas y largos.
Van algunos ejemplos:
nostalgic fuel
half cake
sniff zestilyreleasing coil
belligerent mass
lake, vest
Está en planes, mejorar la generación automática de MIFARE Poetry con ayuda de LLM.
Versión 2 de la poesía automática
En esta versión incorporé la posibilidad de rimar la tercera línea. Necesita descargar http://rhyme.sourceforge.net/ y ejecutar make-rhyme-db.py para crear las tablas
Tutorial y descarga de archivos
Tutorial en https://www.hackster.io/roni-bandini/mifare-poetry-with-arduino-uno-r4-wifi-1358b7
Archivos en https://github.com/ronibandini/MIFAREPoetry
Nota en el blog de Arduino
Storing ephemeral micropoetry on RFID cards for bite-sized readings
Demo
TikTok