martes, 13 de julio de 2010

Tutorial reseteo nivel de toner para la impresora CLX-3175FN


Ale, amos a empezar.

En esta segunda entrada, de mi Bloooooggggg (estirando mucho la ooooooo), quiero enseñaros como he tuneao mi Samsung CLX-3175FN para ponerle un pulsador y un LED, para resetear el nivel de tóner. De esta manera podremos rellenar los cartuchos con tóner de oriente un poquito más económico y los indicadores de tóner seguirán funcionando correctamente, incluso apagando la impresora.

TÍTULO DEL MINI PROYECTO

"Circuito de reset del toner de la impresora multifunción Samsung CLX-3175FN"

REQUISITOS

Impresora Samsung CLX-3175FN y probablemente cualquiera de la serie CLX-3170.

Según dicen tiene que estar fabricada antes de junio de 2009, ¿la razón? No lo sé. ¿Habrán cambiado el contenido de la memoria después de esa fecha?¿ no habrá memoria? Pues no lo sé. Mi consejo, desmonta la tapa, y mira la placa. Si tiene EEPROM, desueldala y vuelva el contenido, hazte una copia de seguridad y comparalo con uno que te pondré aquí debajo. Que se parece, pues sigues el método que hay aquí debajo, que no se parece, pues puedes probar también, ya que si no funciona, siempre puedes volver a volcar la copia de seguridad que hayas hecho, y a funcionar otra vez.

MOTIVACIÓN

Hablemos en €uros, que es lo que nos interesa.

Precio actual de la impresora: 246 €
(a mí me costó 194 €, aproveché una buena oferta, ¡ y tan buena !, 52 euracos de diferencia).

Precio de los 4 cartuchos de toner: ¡¡ 160 pedazo de EURACOSSSS !! ¡¡ Amos y amos, peazo alimales !!

Como podéis ver, los cartuchos valen casi como una una impresora nueva. Por lo que está bastante claro, motivación: ¡¡ No tengo ganas de que me timen !!

EL PROBLEMA

A ver si lo explico bien.

Cuando te venden la impresora, te la venden a muy buen precio, porque tiene muchas funcionalidades e imprime con bastante calidad. Aquí unos pequeños detalles:

SAMSUNG CLX-3175FN

Multifunción láser color con:

- Tarjeta de red
- FAX
  • Velocidad de Modem 33,6Kbps
  • Memoria 2MB
- Escáner

  • Método Escáner color de superficie plana
  • Resolución Óptica 1 200 x 1 200dpi
  • Resolución (Aumento) 4 800 x 4 800dpi

- Copiadora
  • Multi Copias 1 ~ 99
  • Rango de Zoom 25 ~ 400 % for platen, 25 ~ 100 % for ADF
  • Resolución Texto, Texto/Foto, Modo revista: hasta 600 x 600dpi, Modo foto: hasta 1 200 x 1 200dpi
  • Velocidad 4ppm en A4 (4ppm en Letter)

- Alimentador automático
  • Capacidad ADF 15 págs

Pero claro te hacen la "oferta" porque saben que luego vas a tener que pasar por caja comprándoles los cartuchos de tóner a ellos, y ahí es donde ganan pasta.

El tema está en conseguir rellenar los cartuchos uno mism@, para evitar dejarnos los cuartos en el timo de los cartuchos. Aquí es donde viene el problema.

Puedes encontrar fácilmente en páginas como Ebay, kits de relleno de tóner (Toner refill kit) para la CLX-3175, cuyo tóner es igual que para la 3170 y la CLP-315. El precio es algo inferior a los cartuchos, ¿no?, sino mirad en Ebay, que por 22,75 € ¡¡ tienes recambios para todos los coloressssssss (vale sí, sin el cartucho en sí, pero ya tengo, para que quiero otros ) !!. Bueno, yo compré de Ebay este kit y cuando me llegó, vi 4 botes con dosificadores.



Vi que llevaban una web en las pegatinas de los botes y allí que me metí. La página en cuestión es la siguiente: www.2934.co.kr para que lo veáis con vuestros propios ojos, si es que entendéis coreano, pero que se puede encontrar. Cuando salgáis del vuestro asombro al ver que el kit realmente vale unos 7 € y pico, os daréis cuenta de que el tí@ de Ebay aún gana mucha pasta, ¡jo^*r!. El problema está en que esa página no vende fuera de Korea. Pero si tienes a alguien por allí o encuentras la manera de que te los mande, la pasta que te ahorras es increíble (¡ya estáis pensando en hacer negocio!, es queeeeeeeeee hmmmm ...)

DESARROLLO

AVISO: Menos las imágenes cutres de móvil y alguna captura de pantalla, que son mías, las otras son propiedad de sus respectivos autores ;)

Como siempre, después de tener claro lo que queremos hacer, lo primero es ... Exacto, Google, jejeje.

Empiezas a buscar que si reset toner, que si CLX-3175FN, chip Samsung, trucar impresora ;), vamos toa la palabrería que se os ocurra. Al principio pensaba que no iba a sacar nada en claro, pero mis años de experiencia con multitud de buscadores dieron sus frutos.

Primero las típicas webs que te venden el "chip" que reseta el nivel de tóner.

El famoso "chip", ¡ay! el "chip", te ponen "chip" y enseguida pensamos, ¡oh Dios mío, un chip!, que cosa tan sofisticada y delicada. ¿Sabéis lo que es el famoso "chip"? Pues ni más ni menos que una EEPROM con los datos de una impresora recién comprada con los contadores a cero. Estos chips tienen varios inconvenientes:




- Tienes que tener la impresora siempre enchufada, porque al apagarla se vuelven a resetear los contadores. Lo que pasa es que la memoria EEPROM que te venden tienen la escritura inhabilitada. Lo que hace la impresora es llevar el nivel de toner en RAM únicamente, ya que no puede escribir en la EEPROM. Los que te venden el chip, te dicen que la impresora enchufada, se pone en stand by y consume muy poco, vamos, es queeee.

- Tienes una MAC del "tío la vara" que tiene todo el mundo y se te desconfigura todo, la IP, el idioma etc, teniendo que resetear a los valores de fabrica.

- Te modifican el nº de serie, que viene también en la EEPROM. Vamos un desastre.

La idea es, conseguir modificar la EEPROM nosotros, a nuestro antojo, y sólo aquellas zonas que importa, las zonas del nivel de tóner, y si fuera posible automatizarlo de alguna manera, para no tener que ir desoldando la memoria cada vez queramos rellenar los cartuchos.


Segundo, webs en las que se investiga un poco más


En ellas,explican como se puede conseguir sin tener que gastarte el dinero con "chips" milagrosos. Y como no, estas páginas en ruso y en polaco, como casi siempre. ¿Es qué en ESPAÑA no hay nadie que sepa de esto? La respuesta es sí, siempre hay alguien más inteligente y listo que tú. ¿Pero que quiere ese español/la ? ¡ Madreeee! Ella o él dirá: "Amos a ver si podemos sacar alguna perrica con esto". Claro, así no se publica nada y España va como va.

Las páginas en cuestión son:

http://www.startcopy.net/notes/clx-3170.shtml
--> Muy buena, pero parece que ya no está disponible, no pasa nada, yo hice una copia de la web y de todas formas en estra otra web, tienen también guardada esta página: http://sherhan.ucoz.de/index/mfu_samsung_clx_31703175_snjatie_zashhity_ot_zapravki/0-47

http://www.elektroda.pl/rtvforum/viewtopic.php?t=1262519&mark=topic&sid=967f8e45e186be07eafa469f9ca0161c
--> Muy buena también.

El problema es que hay cosas que no quedan claras. De todas formas, probé lo que ahí se decía, pero no funcionaba. Sí, reseteaba los contadores de página de cada color y parte del nivel de tóner, pero algo no funcionaba bien, el tóner no se ponía al 100 %. Parecía que se ponía a un nivel previamente grabado en alguna otra ocasión.

Bueno, voy a explicar, como después de varios días y muchas horas urgando, conseguí lo que me proponía: Diseñar un circuito bien simple que cada un@ con una mínima habilidad con el soldador pueda construirse y evitar así que haya gente que se lucre con esto.


PROCESO

1º) Abrir la máquina:

http://www.youtube.com/watch?v=QIKdbgsbRlw


Recomendación: antes de meter la mano, mirar cuales son las pestañas a liberar.

Cuando el tipo mete la mano debajo, intenta desencajar la tapa de unas pequeñas pestañitas redondas. Si no queréis dejaros los dátiles en el intento, utilizar un destornillador plano y ya está.

Como regalo, os dejo el despiece de la impresora, que es la única parte del manual de servicio que tengo.

Despiece

Una vez abierta, localizamos la placa base y en ella la EEPROM.

Ahora procedemos a desoldarla, y volcar sus datos con cualquier programador compatible y hacer una copia de seguridad del .bin.

PASO OPCIONAL

Abrimos el .bin con el Hex Workshop o cualquiero otro editor hexadecimal para localizar los datos de contadores. Esto lo haremos como curisidad, por aprender un poco, ya que si quieres puedes obviarlo.

1º) Entramos en la web de la impresora, abriendo un navegador, y poner la IP de la impresora.


y hacemos click en Billing/Counters, y nos aparecerá la pantalla de los contadores:




Ahora solo tenemos que buscar esos valores en la EEPROM, pasándolos de decimal a hexadecimal con la calculadora de Windows. Veremos que las posiciones de memoria para cada valor son las siguientes:

/* Info general */

Número de serie de la impresora: 0x00 hasta 0x0E
Números de serie de los cartuchos de tóner con chip: desde 0x1c hasta 0x5b
Capacidad de los cartuchos:0xae,0xb2,0xb6,0xba,0.7k,0.7k,0.7k(700 páginas cada cartucho de color) y 1k (para el cartucho de negro).
MAC: 0x1090-0x109A


/* Duracion de consumibles */
Duración del fusor: 0x6e
Duración rodillo transf.:0x72
Duración rodillo band.: 0x7A
contador de correa de transmisión / contador total de imágenes:0xaa

/* Contadores */

Contador de páginas total: 0x542
contador de páginas ADF: 0x672
Contador escaner plano: 0x676
Contador de paginas: 0x7e (color)/ 0x82 (mono)
Contador total: 0x86


Según dice la página rusa, tenemos que resetar (por a 00) los contadores de página de cada cartucho y el dot count remaining (que no se a que se refiere), además de poner un 0x2D en 0x3CF y un 0xFF en 0x4D7. Si hacemos esto, veremos que en efecto los contadores de página para cada color se resetean, y misteriosamente, el nivel de tóner varía y se pone en un valor que no es el 100% en cada cartucho. De ahí me preocupación. SOLUCIÓN: método de prueba y error.

Para solucionar el tema del nivel de tóner, usé un archivo que descargué del foro polaco puesto más arriba. Este archivo es un volcado de una memoria de una impresora recién comprada, con todos los contadores a 0. Es para la CLX-3170FN, totalmente compatible con la CLX-3175FN porque son de la misma serie. Este archivo debe ser modificado con el editor hexadecimal, ya que he eliminado el nº de serie del archivo original y la MAC. He puesto SSSSSSSSSSSS y MMMMMMMMM respectivamente, que tendréis que modificar con valores alfanuméricos cualquiera, excepto la MAC que tienen que ser valores hexadecimales. Una vez modificados estos datos, se puede grabar tranquilamente en la EEPROM y probado en la impresora. Las únicas pegas es que tendréis que cambiar el idioma, a no ser que entendaís polaco. Para lo cual deberéis de cambiar la IP desde el menú en polaco ( se puede llegar a cambia la IP sin problemas) y luego entrar en la impresora utilizando un navegador usando la IP, y cambiar el idioma desde ahí.

Lo que hice fue ir comprobando, byte a byte que posiciones debían estár a 00, posiciones distintas de las que mantienen los números de serie y los contadores generales. Después de mucho probar, encontré la solución y es lo que os voy a poner aquí debajo.

DISEÑO DEL CIRCUITO



He usado componentes que tenía por casa, por lo que el circuito no está optimizado.

El PIC es un 18F2550 y la memoria que he usado es una 24LC65. La peculiaridad del la LC65 es que no tiene entrada de habilitación de escritura, por lo que siempre se puede escribir en ella, que es justo lo que necesitamos. También se puede usar la misma 24C64, poniendo su \WC a '0', uniéndolo a GND. En el esquema podéis ver que yo, aunque he usado la LC65, también he cortocircuitado \WC con GND, para que no esté flotando. La eliminación del rebote de pulsador, está implementada por software. Como podréis observar también, no hay cristal oscilador, ya que he usado el oscilador interno de 8 MHz.

Vcc también lo cogemos directamente de los PADS de la EEPROM al igual que GND. Como podréis observar solo parten 4 cables del circuito hacia los PADS de la EEPROM en la placa y es que no hacen falta más.

FIRMWARE

En cuanto al firmware, es bastante sencillo, simplemente se limita a escribir los valores necesarios en las posiciones de memoria correspondientes.

El funcionamiento es muy sencillo:

El PIC comprobará la pulsación del pulsador, valga la redundancia, escribirá los valores oportunos en cada posición para después comprobar que se haya hecho correctamente. En caso positivo, encenderá el LED durante cinco segundos. Si la escritura hubiese fallado, el LED parpadeará 5 veces.

Aquí os dejo el .HEX para que lo grabéis en el PIC y el código fuente del main.

Firmware

#include
#include
#include "i2c_func.h"
#include "i2c_eep_sin.h"
#include "retrasos.h"

#include
#include
#include "i2c_func.h"
#include "i2c_eep_sin.h"
#include "retrasos.h"

/*
*
* AUTOR: Server32
* Fecha: julio 2010
*/


/* Configuración fusibles PIC */
//Fuses para trabajar con 8Mhz/////////
#pragma config FOSC = INTOSCIO_EC //usamos 8Mhz internos
#pragma config PLLDIV = 5 //PLL DIV 20Mhz/5=4Mhz
#pragma config CPUDIV = OSC1_PLL2 //CPUDIV1 96Mhz/2=48Mhz
#pragma config USBDIV = 1 //tRABAJAMOS CON USB CLOCK divido en 1
#pragma config VREGEN = OFF //Trabajamos sin regulador interno 3.3v para usb

#pragma config PWRT = OFF
#pragma config BOR = OFF, WDT = OFF, LVP = OFF

/* Algunos defines */

#define OK 0
#define ERROR -1
#define DIR_MEM 0xAE
#define DIR_MEM_TONER_CHIP 0x1C


/* Variables globales */

// RESET --> Poner a 0 los siguientes direcciones de la eeprom
// PAGE COUNT
// DOT COUNT
rom unsigned int vec_dir_res []={0x04A9,0x04AA,0x04AB,0x04AE,0x04AF,
0x04B5,0x04B6,0x04B7,0x04BA,0x04BB,
0x04C1,0x04C2,0x04C3,0x04C6,0x04C7,
0x04CD,0x04CE,0x04CF,0x04D2,0x04D3};
// poner a 0xFF
rom unsigned int pos_FF = 0x04D7;

// poner a 0x2D

rom unsigned int vec_dir_2D []= {0x03C9,0x03CB,0x03CD,0X03CF};
rom char res_vec_toner_chip [] = {'C','R','U','M','-','0','0','0','0','0','0','0','0','0','0','0',
'C','R','U','M','-','0','0','0','0','0','0','0','0','0','0','0',
'C','R','U','M','-','0','0','0','0','0','0','0','0','0','0','0',
'C','R','U','M','-','0','0','0','0','0','0','0','0','0','0','0'};

/* 524 bytes */
rom char mem_678_883 [] = {
0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x5A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xBE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xD2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xE6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};

void main() {

//DECLARACIÓN DE VARIABLES SIEMPRE AL PRINCIPIO, QUE EL C ES MUY EXQUISITO

unsigned char dato_leido,res=OK;
unsigned int i;

OSCCON = 0b01110000; // Oscilador interno, 8MHz

TRISA = 0b00000001;
TRISB = 0b00000000;
TRISC = 0b00000000;

PORTA = 0;
PORTB = 0;
PORTC = 0;


ADCON1bits.PCFG3 = 1; // todo entradas o salidas digitales
ADCON1bits.PCFG2 = 1;
ADCON1bits.PCFG1 = 1;
ADCON1bits.PCFG0 = 1;


TRISC = 0;
PORTC = 0;

init_i2c();


while(1) {

// Apagamos el LED
PORTAbits.RA1 = 0;

// Esperamos la pulsacion del boton

while (PORTAbits.RA0 != 0);
delay_ms(200); //debounce

/* A poner a cero los contadores */
for (i=0;i<20;i++) { HDByteWriteI2C(DIR_MEM, vec_dir_res[i], 0x00); } // el byte a 0xFF HDByteWriteI2C(DIR_MEM, pos_FF, 0xFF); // los bytes a 0x2D for (i=0;i<4;i++) { HDByteWriteI2C(DIR_MEM, vec_dir_2D[i], 0x2D); } for (i=0;i<64;i++){ HDByteWriteI2C(DIR_MEM,DIR_MEM_TONER_CHIP+i,res_vec_toner_chip[i]); } // 0x668 a 0x671 for (i=0;i<10;i++){ HDByteWriteI2C(DIR_MEM,0x668+i,0x00); } for (i=0;i<524;i++){ HDByteWriteI2C(DIR_MEM,0x678+i,mem_678_883[i]); } /* A comprobar que se ha escrito bien */ // los 0x00 for (i=0;i<20;i++) { HDByteReadI2C(DIR_MEM, vec_dir_res[i], &dato_leido); if(dato_leido != 0x00){ res = ERROR; break; } } //El 0xFF if(res == OK){ HDByteReadI2C(DIR_MEM, pos_FF, &dato_leido); if(dato_leido != 0xFF) res = ERROR; } if(res == OK){ // los bytes a 0x2D for (i=0;i<4;i++) { HDByteReadI2C(DIR_MEM, vec_dir_2D[i], &dato_leido); if(dato_leido != 0x2D){ res = ERROR; break; } } } if(res == OK){ for (i=0;i<64;i++){ HDByteReadI2C(DIR_MEM,DIR_MEM_TONER_CHIP+i,&dato_leido); if(dato_leido != res_vec_toner_chip[i]) { res = ERROR; break; } } } if(res == OK){ for (i=0;i<10;i++){ HDByteReadI2C(DIR_MEM,0x668+i,&dato_leido); if(dato_leido != 0x00) { res = ERROR; break; } } } if(res == OK){ for (i=0;i<524;i++){ HDByteReadI2C(DIR_MEM,0x678+i,&dato_leido); if(dato_leido != mem_678_883[i]) { res = ERROR; break; } } } if (res == OK){ // Todo ha ido bien, encender LED 5 seg. PORTAbits.RA1 = 1; delay_seg(5); } else { // Algo no ha ido bien. El LED parpadeará 5 veces en 5 seg. for (i=0;i<5;i++) { PORTAbits.RA1 = 1; delay_ms(250); delay_ms(250); PORTAbits.RA1 = 0; delay_ms(250); delay_ms(250); } } } } OPERACIÓN Encender la impresora y esperar que no haga nada, es decir no haga ningún ruido ni esté imprimiendo nada, entonces pulsamos el botón y debería de encenderse el LED durante 5 seg. Tras esto apagamos la impresora y comprobamos que el nivel del tóner ha subido al 100 %. En caso contrario repetir la pulsación, para que se escriba los datos correctamente. VENTAJAS Este diseño permite una modificación lo suficientemente exacta del firmware de la EEPROM, como para no modificar ningún otro dato esencial, como números de serie ni contadores. De esta manera no modificaremos la configuración de la impresora, pudiendo conocer siempre el uso de las correas, rodillos y fusores, para llevar un control de cuando se tienen que cambiar. Puedes apagar la impresora sin ningún problema, como si no llevara nada instalado. Se irán decrementando los niveles de tóner con cada impresión como hasta ahora. Se mantiene todo como he dicho, la IP, la MAC, el nº de serie, vamos todo. Sólo modifica el nivel de toner y los contandores de página imprimidos por cada cartucho. INCONVENIENTES El circuito no está optimizado.De esta manera el circuito nos resulta en unos 4,81 € para PIC y la 24LC65 unos 2,25 €, total unos 8€, despreciando el precio de los demás componentes.

Se podría haber usado un PIC con menores dimensiones físicas y menor memoria, para así mejorar la estética y abaratar el coste final, ya que usa solo un 14 % de la memoria de programa y un 13 % de la memoria de datos. Si además usamos la misma EEPROM, probablemente se nos quede por debajo de los 5 €.

RELLENANDO LOS CARTUCHOS

Aquí

IMPORANTE:

Después de rellenarlos, no os olvidéis que, si vuestros cartuchos tienen CHIP, tendréis que colocarles cinta aislante en los contactos.


CONCLUSIÓN

¡ RETO CONSEGUIDO ! Espero que os sirva de ayuda y que hayas disfrutado leyendo mis parrafadas, sé que soy un cansino, pero me gusta explicar las cosas bien ( que sepáis que lo he acortao para no resultar aún más pesao).

Espero leer vuestras críticas, comentarios, mejoras, experiencias, etc.

UN SALUDO
S32

P.D.: El tóner que compré por Ebay, ¡ va de lujo !

Aquí os pongo unas foticos del invento, construido de manera muy cutre y muy rápida, pero que funciona ;)



Pedazo de conector RJ12 para el ICSP, como os habréis dado cuenta, no me he fijado mucho en la estética xD


¡¡¡¡ Dios mío que marañaaaaa de cables !!!!


Aquí vemos como he puesto cinta de doble cara para pegar el circuito.



Para aislar, como no unas cuantas vueltas con cinta aislante. Vemos también el pulsador y el LED. El pulsador se puede hacer más elegante, pero no tenía ganas ;)



El bicho pegao.


El súper LED con silicona incorporada.



¿Cómo pensáis que he cogido la placa del pulsador a la impresora .......... ? Síííííí, con 3 tornillacossss, estaba ya hasta los mismísimos. Pero eso sí, luego les he dado un buen pegote de silicona, para evitar posibles roces molestos ;) Si os fijáis, he hecho un agujero, para tener que pulsar el botón con un clip o punta de boli, para no pulsarlo accidentalmente.

8 comentarios:

  1. que tal S32... esto lo he probado y funciona perfecto!!! bueno.. programé la propia memoria 24c64 de la impresora en un JDM siguiendo (a mano) tu programa en C, la volví a poner en la impresora y funciona perfectísimo.
    pero tengo un problemita.. hice el circuito un poco mas sencillo, el push button solo usa un pull up y open drain, y no usé ICSP así que simplifica un poco el circuito, además de que usé un pic 16F88, mas chico y menos potente, pero suficiente (con el programa adaptado, obviamente).
    hasta ahí todo perfecto, sólo que he sido un tonto y NUNCA comprobé el voltaje de alimentación de la memoria y supuse que era de 5V, pero es de 3.3V, por lo que mi micro (16F88) no funciona por que necesita mínimo 4V, así como el 18F2550, mi pregunta es ¿cómo has hecho que funcione con 3.3V directamente?, ¿o has usado el 18LF2550 para bajo voltaje?? ojalá me respondas pronto, es que ya quiero ver funcionando de nuevo mi impresora y no cuento con un 16LF88 ahora!! y muchas gracias por publicar esto!! saludos desde México!!
    p.d. después podría enviarte fotos de mi trabajo, ya que me ha quedado chulo..(aunque no funciona aún) haha

    ResponderEliminar
  2. Hola Alvaro, me alegro de leerte. Si miras el datasheet del 2550, veras que pone:

    Wide operating voltage range (2.0V to 5.5V), por lo que cogiendo directamente la alimentación de los pads de la EEPROM en la placa base es suficiente.

    Estaré encantado de recibir tus fotos y si te parece bien, las añado al post.

    Un saludo

    ResponderEliminar
  3. fantastico una pregunta para una clx3175 sin red ni nada que archivo se usa y una epron 24lc 168 valdria para sustituir la que lleva 24c64 lo siento estoy pez una ayuda por favor

    ResponderEliminar
  4. haber tengo localizado la epron 24c64 de electrónica no se nada la impresora que yo tengo es la clx3175 sin red ni nada poseo de cuando las picard un programador apolo 3 y una epron 24lc168 no se si esto sirve para el propósito.
    Si sirve que es lo primero que deveria hacer?
    que tendria que hacer grabar la epron cada vez que se recargen los cartuchos?
    los actuales cartucos los tengo todos sobre el 70% escepto el negro que andara sobre el 35% +- por si sirve de algo.

    Como empiezo

    saludos y gracias

    ResponderEliminar
  5. Por favor, necesitaba ayuda para resolver un problema con mi SAMSUNG CLX-3175.
    ¿Podrás ayudarme?
    mi nombre es Jaime
    correo-e: carlos_vives@orange.es
    Gracias

    ResponderEliminar
  6. Para [babol9]

    Supongo que la EEPROM te valdrá, pero será una 24LC128 no 168. El tema de los contadores de toner no importa, porque el firmware que está publicado, lo deja todo al 100%, así q no te preocupes. De todas formas, esto solo está probado en mi impresora, que cuyo año de fabricación es <= a 2009 y que sí tiene red.

    Si te haces una copia de seguridad del contenido de la memoria original, no corres ningún peligro. Pruebas y si no va, vuelves a volcar la copia si has usado la misma eeprom, y si no, simplemente vuelves a poner la eeprom original y ya está.

    Para [Jaime]

    Si te parece bien, postea aquí el problema, por si te pudiera ayudar, así alomejor le sirve a alguien más.

    Un saludo a los dos

    ResponderEliminar
  7. Muy chulo el invento, lo unico que el link para bajar el firmware y el link del despiece no funcionan. Por otro lado, que es el main?? el .HEX si se que es lo que se graba en el PIC, pero el main no se si es una parte del .HEX o el .HEX completo. Tengo conocimientos de electronica pero la programacion de micros sigue siendo una asignatura pendiente para mi.

    Un saludo

    ResponderEliminar
  8. Hola, se han caído los links a todos los ficheros de HEX y firmware ¿Puedes resubirlos o mandarme un mail para que pueda hacer la operación con mi impresora? Gracias de antemano.
    Mi correo electrónico es "javierlopezreina@gmail.com"

    ResponderEliminar