«Hackeando» las tarjetas de Scan2Go.
04/01/2012
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).
¿Como funciona un coche con las tarjetas?
Los coches de Scan2Go pueden funcionar sin tarjetas. Enciendes el coche pulsas el botón y el coche arranca.
Las tarjetas sirven para predefinir un comportamiento de varios «aceleraciones» que tendrá el coche durante una carrera. Al pasar las dos tarjetas le dices cuanto tiene que correr (aceleración = tarjeta potencia de 1-12) y cuantas veces va acelerar durante una carrera (veces aceleración = tarjeta de turbo). Los tiempos en los que se produce ese proceso son fijos.
- Cuando enciendes el coche, se enciende la luz azul de forma fija (sin pasar todavía ninguna tarjeta).
- Si pasas la tarjeta de potencia (tarjeta azul), la luz azul del coche se quedara parpadeando. Si no queda parpadeando, o se apaga, el coche no ha leído correctamente la tarjeta (o no es una tarjeta valida para ese coche).
- A continuación pasas la de turbo (roja) y empezara a parpadear la roja. Las tarjetas de turbo valen para cualquier coche. De igual forma si no parpadea la roja no ha leido bien la tarjeta.
- Estando las dos luces parpadeando (azul y roja), ya esta el coche preparado para comenzar la carrera.
- Al pulsar el botón 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 marcada previamente por la tarjeta azul. Esto lo repite regularmente tantas veces como marcaba la tarjeta roja (turbo).
- Si no pasas ninguna tarjeta el coche funciona, pero nunca entra el turbo (no acelera nunca). Siempre tiene una velocidad constante.
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 basicamente solo de dos tipos de barras (Finas y gruesas).
El código tiene 5 bloques diferenciados:
- Código de inicio: 3 barras (1 gruesa, 2 finas).
- Código de identificación (4 barras).
- Nivel / Valor (4 barras).
- Control de CRC (una barra).
- Final (un bloque negro).
Detalles en la codificación
Para poder usar la codificación del Nivel y del Identificador decidí definir las barras finas como «1» y las barras gruesas como «0».
- Se ha definido por sencillez de interpretación leer los códigos de Izquierda a derecha (como se lee en castellano) aunque el coche realmente los lee de forma contraria. Por lo que la codificación binaria es: el bit de menos peso a la izquierda.
- Tanto las tarjetas de Potencia 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») ni se tiene en cuenta el CRC.
- El CRC (Control de Redundancia Cíclica) no es mas que un BIT que comprueba si el numero de ‘1’ es par o impar. Si es par esta barra es ‘0’ (Gruesa) si es impar esta barra es ‘1’ (fina).
- Con 4 bits se pueden definir 16 tipos de coche y 16 valores posibles de nivel/valor.
Se puede ver, la circuiteria interna del coche tiene un «switch» (con cuatro posibles estados). Sirve para definir de que coche se trata (el identificador). Todas placas internas de los coches son iguales, salvo estas conexiones que identifican al coche y que tarjetas admite. De echo, yo echo mezclas de coches, soldando y desoldado los puentes de este switch, pudiendo hacer que unos coches acepten tarjetas de otros. Esto me ha venido bien para mezclar partes de coches según se han ido rompiendo algunos.
- Se ponen los bits de identificador (Falgor 0001) invertidos (de derecha a izquierda).
- Luego se coloca la potencia en binario restandole una unidad (potencia 8 -1) = 7. El 7 a binario = 0111. (Se le resta
uno por que el nivel 1 y el X , las tarjetas que vienen con el coche son el
mismo). - Hasta ahora vamos 0001 0111. A esto se le añade un bit más
(que es el de CRC). El CRC se calcula contando los 1 que hay en lo calculado
anteriormente. Si es un numero par de unos se pone un 0, si es impar se pone un
1. En nuestro ejemplo son 4 unos por lo que es par. Se añade un 0. - Ya tenemos 0001 0111 0. Ahora se le da la vuelta a todo el codigo. El coche
los lee de derecha a izquierda y no como nosotros «simples mortales» que lo
hacemos de izquierda a derecha. - El código invertido resultante es 0 1110 1000 . Ese el código de
Falgor de potencia 8. (Yo en el Excel coloco el CRC dentro del código de nivel por comodidad).
Con estas pautas conseguí definir cuales eran los códigos para el Identificador y para todos los niveles tanto de Turbo como de potencia de cualquier coche. Los he recopilado en esta tabla de Excel: SCAN2GO_Codigos_Cards.
Para que la gente se anime a estudiar un poco mas el tema de las tarjetas de Scan2Go, o bien si salen nuevas tarjetas/coches, he realizado una plantilla para imprimir, que permite de forma sencilla colocar una tarjeta sobre la misma y ver los códigos que tiene rápidamente.
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 así 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…
Para los que no saben o no pueden hacerse sus propias tarjetas os añado un PDF con 6 tarjetas de máximo turbo (6) y máxima potencia (12) de los coches mas vistos: Falgor, Slazor, Giamoth, Cleopatra, Wolver y Junger: SCAN2GO_SuperCards.
Para los mas animados coloco también el mismo fichero en formato SVG, por si queréis crear vuestras tarjetas a partir de las mías:
Update 27/12/2012
Desde la ultima modificación de la entrada del Blog, han salido nuevos coches de Scan2Go.
Algunos son los evolucionados: por lo que he podido comprobar usan las mismas tarjetas que los «no evolucionados».
La lista de estos coches son:
Galaxy Falgor (Funciona con las tarjetas de Falgor)
Storm Slazor (Funciona con las tarjetas de Slazor)
Rock Giamoth (Funciona con las tarjetas de Giamonth)
Wolver Lightning (Funciona con las tarjetas de Wolver)
Dark Falgor (Funciona con las tarjetas de Falgor)
Dragnite Genesis (Funciona con las tarjetas de Dragnite)
Ademas de los anteriores han salido otros 3 coches nuevos mas, en los cuales parece que han cambiado la programación del micro controlador que lleva el coche. Crocodile , Lionel y Police. Esto significa que tienen nuevos códigos o los usan de otra forma.
Esto solo parece afectar a las tarjetas de potencia. Las tarjetas de Turbo siguen funcionado como antes siendo validas para cualquier coche.
Para empezar, estos repiten códigos de identificación de otros coches:
Crocodile (Identificación igual que Falgor [1000])
Lionel (Identificación igual que Giamoth [0010])
Police (Identificación igual que Hisstoria [1110])
Al usar los mismos códigos de identificador que otros coches, debería valer las tarjetas de esos otros coches, pero no es así: También han cambiado los códigos de niveles!!!
En estos momentos me falta información para completar todos los códigos, por lo que agradecería a todos los que tengan una tarjeta potencia (azul) de estos tres coches (Crocodile, Lionel y/o Police) mayor del nivel 1, me remitiera una foto (echa con un móvil me vale).
De igual forma que si conocéis algún coche no listado entre estos, que este en el mercado, me lo hagáis saber.
¿Tienes cuenta? Inicia sesión · Crear cuenta
En este sitio es necesario iniciar sesión para comentar.