Pelee con el chip Epson y gane

Anuncio
Pelee con el chip Epson y gane
22/09/02
¿Qué es un chip de tinta inteligente?
Los tableros del circuito pequeño de Epson, están presentes en la mayoría de sus cartuchos. Éstos
registran la cantidad de tinta estimada en un cartucho nuevo.
Leo que, según el fabricante, la línea oficial del Epson pretende beneficiar a los clientes y no es
solo una estrategia contra el relleno del dispositivo. Créase o no, son un fastidio sangriento para
cualquier persona que desea rellenar los cartuchos. También para la gente que usa viejos
cartuchos rellenos de solvente para limpiar los cabezales.
Otro problema es que ciertos modelos no chequean si el cartucho ha sido cambiado mientras la
energía está encendida. Esto era bueno si usted quería engañar a la impresora cambiando un chip
“vacío” por uno “lleno”, no obstante el proceso inverso era también posible.
Son enlaces pequeños de un dispositivo de memoria de 32 octetos de datos, no miden el nivel
verdadero de la tinta ni controlan la impresora. La impresora lee el chip en arranque, estima (a
veces con error) cuánta tinta fue utilizada y lo comunica a la impresora.
El problema de Epson es encontrar los chips apropiados para los cartuchos de modo tal que toda
la estructura adicional, el cableado, la electrónica y el software de la impresora permitan utilizar la
computadora para considerar el nivel de tinta y predecir la cantidad de tinta. Los Canon, por otra
parte, tienen un sensor óptico para detectar vacío. Esto tiene mucho más sentido —a menos que
se esté generando un dispositivo contra-rellene—.
Prosiguiendo con los problemas del chip, hay chips inalterables que leen siempre el cartucho como
completo y debe resetearse el chip para quienes deseen rellenarlo. Éstos no están disponibles
para 2100 páginas por hora de escritura según lo que tengo entendido.
Antes de pedir mis 2100 páginas hice mis tareas y parecía bastante probable resetear el chip,
estuvo disponible hasta cierto punto y las chips inalterables también. Era bastante pedante pensar
que podría alterarlo. No fue tan grave como lo esperaba, sin embargo me pregunté:
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
¿Qué deseo hacer?
Deseo la manera más fácil de engañar la impresora en la hipótesis: “tengo cartuchos llenos
presentes”. No planeo vender cualquier otra cosa además de impresiones.
¿Qué esperé?
Un interfaz lógico para Intellidge es i2c (me ajusté c) o TWI (dos se atan con alambrecito en la
interfaz). Entonces el chip podía ser un cierto estándar de i2c. El Intellidge tiene también muchos
cojines para esto pero decidí mantener la esperanza.
¿Y el SPI o los microcontroladores?
Si los chips fueran microcontroladores entonces el cuento por entregas asincrónico llano sería mi
opción.
Una mirada...
Para hacer esto utilicé un AVR mega323 micro, decliné otras ofertas de los analistas. Los 323 tiene
2K de memoria RAM que es suficiente para un cierto registro minimalista de datos. Costaban
alrededor de 30 dólares. Até con alambre un cartucho para traer las señales hacia fuera y lo probé
con un voltímetro. No había nada allí. Contaba con cierta energía pero los chips se accionan
brevemente cuando están descubiertos.
Quería tener una idea aproximada acerca de la función de los resistores para dar un cierto grado
de protección a la impresora. El código escrito en el micro es ensamblador y los datos capturados
son enviados vía rs232 a Mi PC donde escribiendo un programa de delphi pueden procesarse los
datos. Esto es lo que conseguí. Ningún protocolo que hubiera visto antes. Obviamente sincronicé
los datos bidireccionales, en formato muy corto. Me confundí un poco por cuan corto era. Yo
esperaba una precisión mucho mejor para el nivel de la tinta. La secuencia parece ser cierta clase
de línea de la sincronía, ésta pasa a BAJO siempre antes del comienzo de la transmisión de datos.
Luego de encendida pasa a BAJO (apagado) durante el instante en que el chip lee el arranque de
la impresora pero pasa a ALTO cuando los datos se escriben en el chip.
Luego el reloj.
La información se lee desde el límite de levantamiento y cambia en la caída. En cuanto al botón,
los datos bidireccionales de los primeros 4 bits son siempre de la impresora al chip, el resto
depende de si la orden es leer o escribir.
La conversión binaria y algunos de sus patrones:
No era tan obvia la forma en que los chips son tratados o cómo los bits codificaron niveles de la
tinta. A veces, una vez que la tinta había sido usada se generaba un error.
Cuando un chip es leído en el arranque hay 7 accesos, uno para cada chip. Solo el bloque 3
contiene datos. Los otros chips se deben enganchar a diversas líneas de datos.
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Martes 24 de Septiembre de 2002.
Engañé la impresora
Lo más interesante acerca de este gancho o lengüeta de la pantalla es que el cartucho negro está
completo solo en las dos terceras partes. Indague en la impresora tirando del punto bajo serial de
la línea de datos durante el tiempo que los bits del nivel de la tinta se están registrando fuera del
chip de la tinta.
6 bits que comienzan en el quinto bit de corriente. Los primeros 3 bits parecen ser la dirección del
chip, yo supongo que el siguiente es un selector lectura / escritura. Utilicé un AVR mega323 para
detectar el comienzo de la transmisión serial para buscar la dirección de chip1+lectura (negro al
parecer) entonces tiré del punto bajo de los datos hacia el borde del reloj. Estoy seguro de que
puedo reajustar 3 de los chips golpeando ligeramente en la señal chip1. Resetear el resto
significará golpear ligeramente en por lo menos uno más.
La configuración citada es solo para la experimentación solamente.
Poner en cortocircuito los datos puede parecer drástico pero es por un tiempo muy breve.
Esperaba que la línea de datos fuera un colector abierto pero éste no se parece ser el caso.
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Martes 1' De Octubre de 2002
Leyendo la chip sin la impresora
No necesito hacer esto pero deseé ver si realmente entendía el protocolo. Escribí el código para el
micro al acto como un master para el chip. Sabía que el chip era una pieza de la baja tensión pero
esperaba que fuera de 5 voltios, eso me sacaría del apuro. Después de no conseguir ninguna
reacción de dos chips y de confirmar que la impresora tampoco podría leerlas, asumo que quise
matarlas. Fui a hacer compras y compré los resistores zeners 3V3 y 330R para limitar la salida del
puerto micro a los datos 3V3. La información comenzó a fluir. El micro podría no leerla porque
estaba debajo del umbral de la entrada así que agregué un levantamiento al perno de los datos (en
el lado micro las resistencias limitadoras son de 330R así que el chip de la tinta no identificó 5V).
Podría entonces leer el contenido del chip. Pasé la tarde que intentando escribirle sin ningún éxito.
Miércoles 2' De Octubre de 2002
Reseteando el chip sin la impresora después de dormir sobre él.
Como pueden ver, escribí una rutina mejor del disparador para mi programa de registro de datos
así que podría conseguir una mirada mejor de lo que hizo la impresora. El rastreo reveló todo. Lo
que usted ve allí es la impresora que comienza una secuencia al escribir a velocidad normal.
Entonces, después de transmitir la dirección, escribe un bit al reloj (2'o de fondo) retrasándolo a
alrededor 1 kilociclo. Como dije, escritura lenta. Mi código escribe ceros a los primeros 8 bits en el
chip. Repito el tiempo del proceso 7 usando cada dirección del chip. La prueba era tomar un
cartucho vacío y alimentar a la impresora. La impresora entonces mostró un cartucho lleno en el
monitor del estado.
Un reseteo del chip se podía hacer con 2 micro y no mucho más. El soporte es un problema. La
mayoría de la gente no puede programar micros mientras que, para los que pueden es trivial ahora
que es el protocolo se sabe. Mi texto en código es demasiado feo mostrar aquí.
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Descargar