
        LECTOR DE TARJETAS TELEFONICAS por Elektron (v2.7)
             tambin lee y escribe las de 6 contactos

Todo esto es con fines educativos, ya sabeis

Un buen da (tarde de nochebuena, para ser ms exactos) me dio por hacer la
movida esta. La termin rpido y funciona de puta madre. No me he leido lo
del otro lector de tarjetas q rula por ah, y no se si va. Lo q s se
es que este funciona. Deberas pillarte los docs sobre tarjetas q hay por ah
por el mundillo underground si todava no los tienes antes de hacer esto.

[nota:  ya he visto los otros lectores. ninguno puede interpretar los datos
         [nota2: ya ha salido algun lector + para tarjetas de 6 contactos]
        de las tarjetas nuevas de 6 pines y ninguno puede hacer delays con
        una precisin tan ajustada como mi programa (desde 1us con una prec.
        de 1us). Esos delays tan ajustados (que por cierto da igual el
        procesador que tengas, siempre sern iguales, no como en otro lector
        que vi que haca un loop siempre y ya est) servirn para ver hasta
        donde puede llegar la tarjeta y probar emuladores. El programa es
        una aplicacin Win32 que va bajo windoze. Si quieres que el
        timer sea preciso, no uses otros programas a la vez (aunque le pido
        ms prioridad al windows, no es lo mismo si tienes 20 ventanas por
        ah tocando las pelotas). Ordenatas ms lentos que un PII a 266Mhz
        pueden tener problemas a la hora de hacer delays de menos de 2
         3 us (microsegundos). cosas del puto windoze ]
Ah va.

Ah, por cierto, no sirve para llamar gratis, si es que pensabas en 'recargar',
pero con esto estaremos al loro de los cambios de formato en las tarjetas
(sobre todo con el euro) Cuando lleguen las Eurochip2 tendremos otra vez que
pillar informacin y ver como funcionan y tal.

Para hacer funcionar esto conecta los pines como viene ahi. ms abajo hay un
dibujo q dice cual es cual en la tarjeta

no.     -chip-          -puerto_paralelo-
1       GND             GND
2       Vpp             salida datos bit 0
3       Dout         b   status (on-line bit)
4       FUSE            va suelto, no lo conectes a nada       
5       RST (B)         salida datos bit 1
6       CLK             salida datos bit 2
7       Din (A)         salida datos bit 4
8       Vcc             salida datos bit 3

Sold 7 cables (no8, xqqel pin4 va suelto) a un trozo de placa de circuito
impreso agujereada, y luego los recorte por debajo a la misma altura + o -
como las distancias son estndar, los agujeros te caern en medio de los
contactos del chip; para q hagan buen contacto recorta el cable soldado q
sobresale por debajo de la placa y luego los limas todos a la vez para q
toquen todos bien los contactos. Cuando se lea la tarjeta o le pones una goma
elstica del copn o haces fuerza tu con los dedos, porque si no no te leer
bien la tarjeta (todo 1s o todo 0s). *[nota: luego cambi la basura esta y us
unos jumpers para hacer contacto con la tarjeta y as ya no tena que sostenerlo
con la mano. De todas formas los jumpers no hay persona que los suelde a la
misma altura y los tuve que limar (aunque tengan poca diferencia de altura
ests jodido porque no harn contacto todos. NOTA: ahora he destripado unmvil
viejo y uso sus contactos de la tarjeta SIM]*. Los 7 cables estos van soldados
o empalmados por el otro lado a los cables correspondientes del enchufe para
el puerto paralelo (te pillas un cablep para conectar 2 ordenatas x el puerto
paralelo, como el q yo sacrifiqu -q me tendr q comprar ootro para poder
conectar los ordenatas). el cable tendra 10 cables de colores y 1 suelto. Bueno,
el suelto est claro q es el GND y entre los otros 10 estn los q necesitamos.
  ----***** Si hay problemas y no te funciona lee estas tres notas:------
[NOTA:  GND conviene soldarlo a TODOS los pines 18 a 25; si no te funciona a
[la primera haz eso, a la gente le ha pasado eso]
[NOTA2: En la configuracin de la BIOS configura tu puerto como SPP (puerto
[paralelo estndar ]
[NOTA3: SOLO SI NO FUNCIONA TODO LO DEMS QUE HAYAS PROBADO ]
[ Si tu puerto paralelo es una gena (se escribe jena o gena?) bueno q si es
[una mierda, a lo mejor incluso necesitas poner 5V a'mano'entre GND yVcc dela]
[tarjeta. En ese caso conecta el negativo de la pila a GND de la tarjeta Y del
[ordenata. El positivo de la pila (5V) a Vcc de la tarjeta solamente. Y    ]
[solamente quiere decir que NO conectes ningn cable del pparalelo a Vcc    ]
[Te recuerdo que no uses esto de la pila a no ser que sea necesario.  Y si  ]
[eres un patoso de esos que despus de leer estos 10 renglones no se ha en- ]
[terado de nada, mira si cada cable est en su sitio, que seguramente sea   ]
[ eso y olvdate de la pila que eres capaz de cargarte el puerto si cambias ]
[ los cables. De todas formas si necesitas usar la pila te recomindo una de ]
[ 9 voltios con un regulador de tensin integrado 78L05, que da 5V y tambin]
[tiene un limitador de corriente a 100mA.]
[NOTA4: Si nada de eso va, utiliza un buffer no inversor para cada contacto ]
[       y ya est. Con un integrado de 7x2 tienes de sobra me parece que uno]
[       es el 78LS05 pero no me hagis mucho caso. de todas formas si teneis]
[       tantos problemas como para llegar a eso, me mandais un e-mail mejor ]

Para comprobar el cableado:
[nota:  ahora he puesto por ahi un programa (puertop.exe) con el que puedes ]
[       escribir y leer el puerto paralelo para comprobar el cableado       ]
Estos son los colores q tena mi cable y sus contactos del chip
correspondientes, por si acaso est estandarizado lo de los cables y te funciona
as, pero deberas guiarte por PINOUT.TXT y por puertop.exe :
1 sin funda (GND)
2 naranja (datos 0)
3 azul (on-line)
4 nada, no se conecta
5 verde (datos 1)
6 amarillo (datos 2)
7 rosa claro (datos 4)
8 negro (datos 3)
El cable es uno q me compr para conectar ordenatas entre s por el puerto
paralelo y pasar archivos de uno a otro. Hay un programa(puertop.exe) para
probar que cable corresponde a que pin. O podeis pillaros tambin un conector
de estos que tienen todos los 25 cables desmontable. En ese caso ya sabes,
busca los bits de datos 0-4 el on-line bit(SLCT) y el GND (el GND son varios,
jntalos)

dibujo para ver como llamo a cada contacto:
el 1 (GND) es la patilla grande (q llega hasta el centro)
 -----------------------------------
|                                   |
|                                   |
|          --- --- --- ---          |
|         |   |   |   |   |         |
|         | 5 | 6 | 7 |   |         |
|         |   |   |   | 8 |         |
|         |   \   |---\   |         |
|          ----+-c     ---          |
|         |   /   |\--    |         |
|         |   |   |   \ 1 |         |
|         | 4 | 3 | 2 |   |         |
|         |   |   |   |   |         |
|          --- --- --- ---          |
|                                   |
|                                   |
|                 TarjeTa           |
|                      i            |
|                      m            |
|                      o            |
|                      p            |
|                      h            |
|                      o            |
|                      n            |
|                      i            |
|                      c            |
|                      a            |
|  QUIEN SINO te iba a robar       |
|   cada dia de tu puta vida ?      |   
|                                   |
 -----------------------------------

        -typed by elektron-


[ACTUALIZACIN 1] hay ms -v
-----------------------------------------------------

Ms cosas: tambin se pueden leer tarjetas de 6 contactos; son como las de 8
pero sin los dos contactos de abajo (fuse y reset).
Tienen el RST donde el Din de las de 8 contactos.
As es una G+D de 6 contactos. los * marcan donde estaran los contactos 4y5
de la de 8 contactos. Adems, la de 6 contactos tiene slo 128 bits (as q
mi programa la lee 2 veces seguidas). Respecto al formato de los datos,
est casi todo en el cdigo fuente y en G+D.tt El programa te lee el n de serie
p. ej. y puedes ver que coincide con el que hay detrs de la tarjeta.
Despus de ver cmo descuentan el dinero las G+D de 6 pines creo que lo mejor
para emularla sera un microcontrolador, ya que si no tendramos que hacer
el writecarry de alguna forma y con un microc. sera ms fcil. Depende de los
clocks que necesitemos para leer y escribir y restar y tal, pero yo creo que
con uno de 5Mhz vamos sobrados (segn el estndar de las tarjetas un clock
dura entre 10us y 50us). Respecto a lo de escribir tenemos que buscar un micro
con memoria EEPROM para datos y ver que sea ms rpida que la de la tarjeta,
que necesita un clk durante 10ms para borrar un bit por ejemplo, segn el
estndar ISO). Habra que hacer el cdigo ms o menos y calcular los clocks
para asegurarse.
[nota: ha 'llovido' mucho desde que escrib eso sobre los emuladores, pero ]
[ ha resultado ser cierto ]
 -----------------------------------
|                                   |
|                                   |
|              --- --- ---          |
|             |   |   |   |         |
|          *  | 6 | 7 |   |         |
|             |   |   | 8 |         |
|             |   |---\   |         |
|              --c     ---          |
|             |   |\--    |         |
|             |   |   \ 1 |         |
|          *  | 3 | 2 |   |         |
|             |   |   |   |         |
|              --- --- ---          |
|                                   |
|                                   |
|                 TarjeTa           |
|                      i            |
|                      m            |
|                      o            |
|                      p            |
|                      h            |
|                      o            |
|                      n            |
|                      i            |
|                      c            |
|                      a            |
|                                   |
 -----------------------------------

        - Elektron -

[ACTUALIZACIN 2]
-----------------------

otra actualizacin ms:

El modo comandos de tarjtele2 acepta varios comandos, usa help o ayuda para
ver cuales son y para que sirven. Aparte del de leer, el writebit y el writecarry
sirven para vaciarte la tarjeta as que no los uses si no quieres perder pelas
Si sabes lo que haces y borras 5 pelas por ej. para verlo en la cabina pues
vale pero si te borras una unidad de 512 es un bajn.
El writebit te borra el bit que tu digas. El writecarry te borra el bit que
digas y luego te rellena todo el byte correspondiente a las unidades inferiores
a la del bit borrado. En el  mejor de los casos (el byte de ud. inferiores a 0)
te quedas como estabas. De esta forma la cabina puede borrar justamente lo que
quiere, no como con las otras tarjetas que va de 20 en 20 de 10 en 10 o de
5 en 5. Pues eso, que puedes quitar pela a pela, tiene slo 128 bits, no
necesitas ms que 5v para borrar la EEPROM y sobre todo: no se puede recargar.
As que es normal que a la Timofnica le molen estas tarjetas.
Ahora el tarjtele1.exe lee las de 8 pines y el tarjtele2 las nuevas de 6 pines.
Otra cosa, he cambiado mi chisme para leer la tarjeta, ahora uso unos jumpers
soldados a una placa y con cables al cable del puerto paralelo. Era un coazo
lo otro que tena, porque no sola hacer buen contacto. Ahora tiene una
goma pegada con superglue mientras haca yo presin as que ya no se le escapa
una. [nota aadida: Estoy pensando en destripar un mvil viejo y pillarle los
contactos esos que tienen los gsm con mini-muelles que seguro que hacen mejor
contacto que ninguna otra cosa].
[nota aadida2: ya lo he hecho ;) y van de puta madre los contactos  de la   ]
[ tarjeta sim del mvil, y es ms barato que no que me roben por un adaptador]
Bueno, despus de ver como van estas tarjetas se os habrn quitado las ganas
de hacer un emulador que no use un microcontrolador. Otra opcin es pillarte
la EEPROM en s de su distribuidor y programarla t (la cabina borra y tu
luego vuelves a programar los unos). Por si no lo haba dicho antes, los unos
en estas tarjetas son pelas, no "menos pelas". Pero las tarjetas estas no se
pueden programar las muy putas, segn hack-tic hay alguna forma de meter un
cdigo de 3 bytes que te deja volver a programar, pero no saben como meterlo.
Por cierto, el pin 2 segn mis esquemas (pin 6 segn ISO7816), se supone que
es Vpp, el voltaje de programacin, pero el doc de Bausson sobre estas tarjetas
dice que no est conectado. Ya probar a ver si hace algo el Vpp o no.
[nota: no esvpp. Ms que nada xq si quitas es chip ves que _fsicamente_ el ]
[ contacto est desconectado del wafer.]
[nota2: el i/o la doc. del chip dice literalmente que es input y output o sea]
[ que el transport code se mete por ah pero no s como ]
Los micros estos hay q pillar las versiones con EEPROM por los cortes que
se cree que hace la cabina entre cada pillada de pelas (alimenta, lee, escribe,
verifica, corta y as), o alimentar con pila un micro sin eeprom
Micros para emulador: -PIC16F84A (a lo mejor no hace falta tan rpido y vale $$)
                      -PIC16F84
                      -PIC16C84
                      -PIC12C508 y 509 (a lo mejor no dan la talla)
                      -algunos atmel AVR
Dentro de los 16x84, a lo mejor algunos no dan la talla (<4MHz), todo es
cuestin de ver los tiempos mnimos (en el estndar ISO, en las docs que hay
por ah, viendo lo que hace la cabina, o viendo mi cdigo fuente) y ver el
tiempo que tarda el chip en leer o escribir la EEPROM.
De todas formas, lo mejor sera hacer un emulador por el puerto paralelo del
PC y luego ya meterse a hacer uno con el micro (porque si no haces funcionar
uno con el porttil ya me contars luego con el puto microcontrolador,
cargar el cdigo ver fallos tal te comes el coco.... una mierda, mejor lo
haces primero con el PC y luego ya cuando funcione lo "adaptas" al PIC)
Bueno, que esto es con fines educativos, ya sabeis, no para estafar ni nada
de eso, yo os digo que no estafeis, esto es slo para pasar el rato y tal y
ver como funcionan las cosas. As que que no me toque nadie los huevos con que
incitamos al delito y eso.

        - typed by Elektron -

joder este readme cada da ocupa ms
--------------------------------------------------------------

Otra cosa, ya he arreglado lo de contar las pelas en las de 8 contactos,
resulta que la cabina no pone a 1 los bits que no quiere, el 1 que te
encuentres a 1 en una zona quiere decir que todos los dems de esa zona
tambin estn gastados. As ahorra energa la muy perra. Y hace que nos
comamos el coco los dems. Bueno, pues eso, que ya est arreglado. Adems
he puesto un programa (puertop.exe) para que comprobeis los cables conectando
al puerto paralelo con un diodo y tal.
Esta es ya la ltima actualizacin al programa de leer las de 8 pines. Y la 
ltima del ao (15:13 31-12-2000).

--------------------------------------------------
Y ahora llega la primera del 2001 (1-1-2001 20:30):
tarjtele1 v1.6 (espero que ya sea la ltima actualizacin que hago en el tt1)
tarjtele2 v2.3

Se me haba olvidado meter los cambios en el cdigo fuente en \src (y tambin
borr el source modificado en mi ordenata as que he vuelto a hacer los cambios
y ya est).
He visto algo raro en los dumps de las G+D. El otro da dos llamadas seguidas
metropolitanas nos costaron 20+20 y la cabina pone 960 claro, pero la cuenta
en la tarjeta marca 965 ???. Y en otra tarjeta casi gastada (6 pelas segn
el lector), la cabina deca que estaba a 0.

----------------------------------------------------------------

Ahora esto incluye tambin un programa para hacer logs del puerto paralelo
(logger.exe) y un visualizador de los logs. Los logs son compatibles con los
de odt_aon. (como el link para el visualizador no iba me hice uno, y de paso
tambin un logger que te diga el tiempo que ha pasado, para saber exactamente
los tiempos). El visualizador todava tiene algn fallo sin importancia.
El logger no lo he probado as que nunca se sabe... lo acabo de programar
hace media hora

IMPORTANTE: (11/01/2001)
Otra actualizacin: no lea tarjetas que no fueran G+D; ahora lee todas (le da
igual el byte del fabricante, si coincide con los conocidos vale y sino
tambin). Ahora hay ms dumps en \tt, parece que los fabricantes y las pelas
ahora tienen el byte como antes+1 Puede que sea una forma de ver si
la tarjeta ha expirado. En una que yo tengo pone: "caduca final 12/01"
(mira el dump gd12340.tt). Lo que me tiene mosqueado es que la cabina luego
pone las pelas que la sale del culo. Yo leo 965 ella pone 960 etc..
Es como si no contara las pelas del ultimo stage del baco o como si contara
todas menos esas y luego fuera sumando esas hasta llegar a un multiplo de 5 y
despues redondea hacia abajo, no se no se no se?!??
Posiblemente sea algo de eso.  Seguir en ello. Y sobre todo en el tema de los
emuladores(que ms da como reste? el caso es que crea que resta)
-------------------------------------------------

20-1-2001
Ahora est el comando "simulacion" que prueba movidas y si tu emulador no
responde bien quiere decir que hay bastantes posibilidades de que luego haya
un "retire su tarjeta" en el momento clave. Los tiempos los he puesto ms
o menos como seran en realidad cuando va al mximo, aunque las tarjetas
de verdad pueden ir ms rpido.
hala, hasta luego

-------------------------------------------------

1-3-2001   tarjtele 2.7  -   vislog 1.1
Hace tiempo que tena esto hecho, as que lo he arreglado un poco y ya est.
ahora hay ms cosas: te dice la fecha de caducidad de la tarjeta y tambin he
modificado el visualizador de logs para que se pueda avanzar hasta el sig.
cambio si hay un trozo grande en blanco(para ver los logs de escritura de
odt_aon). Son las teclas FFW y REW (s, como un cassette). Y tambin he puesto
bien el reset de escritura a 15us (estaba a 50). Adems hay un comando nuevo,
checkspeed, que comprueba el pulso mnimo de clk que necesita la tarj. para
que se borre un bit. Es alrededor de 150-250us aunque en la prctica se de
durante 10ms para asegurarse. Este comando consume 1 pela de la tarjeta.
Para emuladores os puede servir para comprobar tambin la Fosc, calculando
la relacin entre el t mn real y el esperado a una frec. determinada.

-------------------------------------------------


        - The Elektron -

     TheElektron@yahoo.es

                                        timofnica, quin sino



