Passa al contingut principal

Copia de seguridad de una figura de Skylanders con el mfrc522 y el esp8266

Hoy en día no deben de quedar muchos padres que no conozcan los videojuegos de Skylanders, están presentes en todas las consolas (Wii, WiiU, 3DS, Nintendo Switch, PS3, PS4, Xbox 360, Xbox One).

Como una breve introducción, estos juegos están basados en unas figuritas llamadas Skylanders como la de la imagen siguiente.

Al poner estos Skylanders en el «portal» aparecerá la versión digital en nuestro videojuego. Dicho de otra forma, los videojuegos sin las figuritas son inservibles y además el precio de cada Skylander varía en función de sus habilidades.


Es habitual empezar con un «starter pack» , o sea, juego el portal y 3 Skylanders, pero es más que habitual que nuestros hijos acaben comprándose figuritas nuevas (de hecho hay fases del juego que solo se pueden jugar en si tienes el Skylander adecuado).


Además, el progreso de nuestro Skylander, a medida que se va jugando, se almacena en la figura de forma que si te la llevas a casa de un amigo conservará todo su progreso.
De esta forma si se nos rompe un Skylander no solo perderemos a una figurita sino que también nuestro progreso almacenado en el Skylander.
 

Todo esto hace pensar que sería más que recomendable tener una copia de seguridad de nuestro Skylander.

Si ya tienes experiencia con arduino y posees un ESP8266 lo podrás hacer a un coste irrisorio. 

Material

En este tutorial podéis ver como hacer una copia de seguridad de vuestro skylander empleando la plataforma arduino.

Las figuras de Skylanders son en realidad un dispositivo RFID basado en Mifare Classic de 1K

El material que nos hará falta es:

- Wemos D1 Mini, nodeMCU basado en ESP8266 o equivalente. Coste aproximado unos 3€.

- Lector RFID basado en le MFRC522 (coste aproximado 1,5€)

- Tarjetas Mifare classic 1k con el bloque 0 que se pueda escribir (magic cards) 2€ 5 tarjetas o llaveros.

Es muy importante que la tarjeta soporte que se pueda escribir en el bloque 0 para sobrescribir el UID



Aquí os dejo lo que he comprado yo:

Wemos D1 Mine https://es.aliexpress.com/item/4001291931302.html

5 Llaveros RFID https://es.aliexpress.com/item/4000308003273.html

Lector MFRC522 https://es.aliexpress.com/item/4000169236189.html



Total aproximado 6,5€



Software

Para hacer la copia nos hay que tener de sklylander sklykeys.py para generar las claves de lectura:

https://github.com/elbuit/sklylander

y el mfrc522cli para leer y escribir en la tarjeta:

https://github.com/elbuit/mfrc522cli



El proceso

Para poder leer un Skylander nos hacen falta las claves de cada sector.

Estas claves están generadas por un algoritmo basado en el UID del Skylander, podéis ver más información en https://nfc.toys/#activision-skylanders

Es por eso que nos hace falta en primer lugar obtener este UID.

Lo haremos con el mfrc522cli por el puerto serie.

# read uid
Scanned PICC's UID:
86FE46F3

Con este UID ya podemos generar las claves con el sklykeys.py:

python3 sklykeys.py -uno 86FE46F3
4b0b2010XXXX
7d803723XXXX
5bede37aXXXX
[...]

Ahora ya podremos leer el Skylander.

En el mfrc522cli cargamos estas claves

# clear
> clear
lka 0 4b0b2010XXXX
lka 1 7d803723XXXX
[...]
lka 15 76028cc5XXXX
> lka
OK

Una vez cargadas las claves en el mfrc522cli ya podemos leer el contenido del Skylander

# read card
> read
Read CARD:
OK

Si lo que queremos es ver el contenido del Skylander:

# show data

La salida por pantalla la podemos copiar a un archivo para tener una copia de seguridad de nuestro Skylander y su progreso hasta el momento de la copia.

Sin embargo si lo que queremos es una copia física en otra tarjeta RFID:

# write clone
> write

Acercamos la tarjeta

Write CARD:
OK



Con todo esto ya tendremos una copia funcional de nuestro Skylander.



BONUS TRACK

Cabe la posibilidad que dejemos nuestra tarjeta completamente inservible.

También, que al haber escrito los bloques trailer que incluyen las claves de acceso no podamos volver a emplear la tarjeta si no recordamos las estas claves.

Por eso el mfrc522cli dispone de una opción para «reparar» una tarjeta que esté en alguno de estos casos, siempre y cuando la tarjeta sea del tipo «Magic card»

El proceso es bien sencillo:

fix start
fix trailer

Acercamos la tarjeta

fix stop

Este proceso sobrescribirá el block 0 y los blocks trailer de cada sector y los dejará con la clave por defecto (FFFFFFFFFFFF)



Enlaces:

https://nfc.toys/workflow-sky.html

https://github.com/nfctoys/nfctoys

https://github.com/elbuit/sklylnader

https://github.com/elbuit/mfrc522cli

https://www.elotrolado.net/hilo_tutorial-clonar-skylanders-todos-los-juegos-con-un-pm3-o-acr122u_2311960



Comentaris