lunes, 3 de diciembre de 2012

"Hackeando" las tarjetas de Scan2Go.



Estas Navidades le han regalado a mis nenes unos coches de Scan2go.

Para el que no conozca el tema (vamos no sea padre de dos "velociraptores") esta es una serie de dibujos animados bastante popular en que los protagonistas corren con unos coches (en escala) en competiciones por todo el "espacio interestelar".


La gracia o la diferencia es que los coches se activan con unas tarjetas (que se pasan por el coche como si fuera la visa), lo que le da unas propiedades de potencia y turbo previamente definidas.Hay diferentes tarjetas para cada modelo así como diferentes tipos y niveles.

El merchandising de la serie esta claro y lógicamente han salido al mercado las replicas reales de los coches mas importantes dentro de la serie manteniendo el mecanismo de las tarjetas e incluso realizando competiciones oficiales a nivel de diferentes países. Deciros que algunos de los modelos de estos coches han estado agotados en las tiendas dado que por lo visto a sido uno de los regalos estrella de estas navidades: Link.

Realmente hasta que no tuve el material entre las manos, no sabíamos como iba el tema de las tarjetas y los coches. Si he de reconocer que personalmente, después de haber trabajado mucho con tarjetas de tipo ISO 7816, me picaba mucho la curiosidad de como se habían montado el tema.

Realmente las tarjetas no tienen mucha complejidad. Tan solo cuenta con un código de barras (eso si es "particular", con esto quiero decir que no es estandard) que le da al coche la potencia y turbo necesario. A priori no parecía necesario realizar ningún extra, ni otro tipo de "mangoneo" del sistema.


En los 5 minutos de utilización cambie de opinión.

Había 2 tipos de tarjeta: Azules (Potencia) y Rojas (Turbo). De las tarjetas de potencia hay 12 niveles (12 diferentes) y de las de turbo 6 niveles (6 diferentes).
La Potencia (Azul) definía eso: una potencia adicional que funcionaba durante un tiempo y al nivel definido por la tarjeta (máximo 12). El turbo (rojo) define las "veces" que se repite esa potencia en una misma carrera (máximo 6).

Pude apreciar algunas carencias a nivel de "experiencia de usuario" de este tinglado:

  • El primer problema es que las tarjetas de potencia son personalizadas para cada tipo de coche. Se pueden comprar mas tarjetas a aparte, vienen en unos sobres (como los antiguos cromos), pero nada te asegura que te toquen las tarjetas correspondientes a tu coche. Así para hacerte con las que te sirvan tienes que comprar muchos sobres.
  • El segundo problema es que las tarjetas son de cartón duro (no plástico). Con unas pocas pasadas ya empiezan a deteriorarse, doblarse y romperse. 
  • El tercer problema es que solo tienen un sentido por el que pasarlas, con lo cual complica la manipulación a mis peques.

Parece que el negocio esta en vender tarjetas. No me parecería mal si pudiera comprar las que yo necesite (para mis coches) y estas fueran consistentes (al menos de plástico). Así que viendo el percal decidí hacerme yo mis propias tarjetas. Para ello el primer paso era analizar las tarjetas y su codificación.

Comparando varias tarjetas se podía rápidamente apreciar ciertas cosas. Como hemos dicho se trata de un código de barras no estandard compuesto solo de dos tipos de barras (Finas y gruesas). El codigo tiene 5 bloques diferenciados:

  • Codigo de inicio (3 barras).
  • Codigo de identificacion (4 barras).
  • Separador (1 barra gruesa).
  • Nivel/valor (4 barras).
  • Final (un bloque negro).

Para poder usar la codificación del Nivel y del Identificador decidí definir las barras finas como "1" y las barras gruesas como "0". Aunque como veremos a posterior la codificación utilizada no es binaria.

Se ha definido por sencillez leer los códigos de Izquierda a derecha (como se lee en castellano) aunque el coche realmente los lee (al pasar la tarjeta) al revés.

Tanto las tarjetas de Potencia como las de Turbo utilizan el mismo esquema de barras. Las de Turbo no tienen un Identificador definido por lo que en esa parte de esas tarjetas todas las barras son gruesas (todas "0"). Como se ve se pueden definir 16 tipos de coche y 16 valores posibles de nivel/valor.

Con estas pautas consegui definir cual eran la mayoría de los códigos para el Identificador . Para los niveles (Turbo y potencia) dado que no tenían una relación he construido una tabla Excel con los valores originales de las tarjetas.

Identificación
(sobre los 12 tipos de coche que conozco se han comercializado)

NombreSimboloCodigo
FalgorAguila1000
SlazorTiburón0100
GiamothElefante0010
LeopatraPantera1100
WolverLobo1010
JapeGorila1001
JungerTigre0011
DragniteDragón0001
VambatMurciélago0110
JelokCalamar1101
HisstoriaCobra1110
ScorvilainEscorpión0101

Nivel/valor

(mirar la referencia de esta tabla de Excel: tabla)

Son los valores que he podido recopilar. Ni que decir tiene que si alguien conoce o tiene algún valor que no este en la tabla, no dude en transmitírmelo que lo añadiré con gusto.

Con estos valores y un programa de diseño gráfico ya podía crear mis propias tarjetas. La idea era solucionar todos los problemas vistos hasta el momento.

Para ello en ese diseño tenia códigos de barras por ambas caras y en ambos extremos de la tarjeta, decidí también aunar en una misma tarjeta la de Potencia y de la Turbo: Para tener asi solo una tarjeta que manipular. Así, pues con este diseño, pases como pases la tarjeta "algo haces"  ;-).

Pasos que seguí para terminar las tarjetas:


  • Imprimí el diseño en hojas gruesas 2 veces. 
  • Recorte ambas impresiones y las pegue juntas. 
  • Posteriormente plastifique ese conjunto "para que aguante mas el tirón". 


Así ya tienes tus propias tarjetas de Scan2Go personalizadas.

Os añado un PDF con el diseño que hice para los 3 coches que tengo:FalgorSlazorGiamoth.
(Aunque con estas instrucciones cualquiera puede hacerse para otros coches sus tarjetas.)

Link para el PDF

Quedan pendientes de rellenar algunos códigos no identificados todavía, así como probar algunos que no deberían estar: Recordar que hay 16 combinaciones de Nivel/Valor y en teoría solo 6 niveles de turbo y 12 de potencia.
¿Que pasa con el resto?
¿Serán validas las otras combinaciones?

Os lo dejo investigar a vosotros...

mas sobre el tema...


6 comentarios:

Sir Graham (EndoraSoft) dijo...

Novedades y ayuda para calcular los nuevos códigos de los nuevos coches de Scan2Go.
http://endorasoft.blogspot.com/2012/01/hackeando-las-tarjetas-de-scan2go.html

Unknown dijo...

Hola. Tengo el coche falgor galaxy y mi chaval perdio las tarjetas. Comentarte que he impreso los modelos que tienes al principio del tema y no me funcionan. Con el resto de enlaces que tienes puestos, ya sean plantillas o ficheros excel no puedo descargarlos pues parecen estar rotos, y solo van a la pagina principal de endora y ahí se queda. ¿El tamaño de la tarjeta importa? ¿y el de las barras o separaciones entre estas?
gracias.

Sir Graham (EndoraSoft) dijo...

Hola,

Este blog es una copia de la entrada en realizada en el Blog: En el garaje de EndoraSoft.

La entrada original esta en:

http://endorasoft.blogspot.com/2012/01/hackeando-las-tarjetas-de-scan2go.html

El tema es que se ha ido modificando y actualizando la información según se descubrían cosas. En el Blog original esto se ha visto reflejado, pero este blog no.

Si te descargas este PDF (link correcto de en el garaje de EndoraSoft): http://www.endorasoft.es/resources/Scan2go/SCAN2GO_SuperCards.pdf

Veras como estas cards si te van a funcionar, (tanto el enlace como las tarjetas).

No obstante, cosas a tener en cuenta:

- Imprimir el archivo en tamaño A4 (el original). Así veras que las tarjetas son exactamente del mismo tamaño que las originales (incluido el código de barras).

- Imprimir con en modo calidad, para que el contraste del negro y blanco (código de barras) sea optimo.

- Si plastificas, recortar el borde extra de plástico. para que el código de barras no este separado del mismo.

Las tarjetas funcionan, por que ya me lo han confirmado muchos usuarios de las mismas. De echo vienen funcionando desde hace tiempo.. te lo puedo asegurar.

Saludos,
Sir Graham.

Unknown dijo...

Gracias por tu ayuda y por la rapidez de tu respuesta. Esta tarde he estado probando con la tarjeta de falgor que me indicastes, siguiendo todas tus instrucciones al pie de la letra, pero parece que tampoco va. Por lo menos las luces no se encienden. Empiezo a pensar que es avería del coche pues la luz roja no recuerdo que se haya encendido nunca, ni siquiera con las tarjetas que traia el coche. Además, diría que el coche corre bastante incluso sin luces. Mañana hare una nueva prueba para descartar. Gracias de nuevo. Un saludo

Sir Graham (EndoraSoft) dijo...

El comportamiento es sencillo.
Cuando enciendes el coche, se enciende la luz azul (sin pasar ninguna tarjeta).

Si pasas la de potencia(azul) la luz azul se quedara parpadeando.

Pasas la de turbo (roja) y empezara a parpadear la roja)

Estando las dos parpadeando ya esta el coche preparado para comenzar la carrera.

Al pulsar el boton de inicio, las luces se apagan.

Las tarjetas solo tienen incidencia al de un rato: En ese momento entra el turbo (parpadea la luz roja) y el coche acelera hasta la potencia de la tarjeta. Esto lo repite regularmente tantas veces como marca la tarjeta de turbo.

Si no pasas ninguna tarjeta el coche funciona, pero nunca entra el turbo (no acelera nunca).

Espero que no sea que el coche este roto...

Saludos,
Sir Graham.

Weyn dijo...

Buenas, dudo mucho que obtenga algún tipo de respuesta debido al tiempo transcurrido, pero no pierdo nada por intentarlo jajaja. Habría alguna forma de poder obterner la tarjeta de falgor por algún medio tipo google drive o cualquier plataforma existente? Muchas gracias.