Beating the
chip part2 After a six year break there is more at nerdipedia.com | ||
---|---|---|
Part1 cracking the 2100p protocol Part2 cracking the 1290 protocol
|
|
|
– This page was written before chip resetters were available for the (then) modern printers. Almost everyone visiting this site will be better off buying a resetter than trying to build one. Many people can simply use the free SSC service utility (see “Software only solutions” below). The rare exceptions are people who simply want to do it for fun, people who want to see or modify the chip data and people living in countries where resetters don't exist due to a trade embargo. I have considered pulling these page to stop the emails coming. After a few thousand “help me” messages I'm quite sick of them. I have other things to do - if you don't believe me look around the rest of the site. 21-may-03,I've had a couple of reports that lowering the value of the resistor(s) has been necessary to make it work. I presume some printer ports have a lower input impedance than mine – possibly due to resistive termination. The circuit at “ampoule” has been modified to put a transistor in the data path. Note that this will invert the signal so my program will not work with it. Modifying my code to do both shouldn't be too hard but I don't have time. I have put my project source online as JPL if anyone want to take it over.
24'th Mar 2003, I'm still getting too many emails from novices asking for help. If you don't know basic electronics find someone to help you. I do not have time to diagnose faults by email. There is also a new site (it is not one of mine) that may be of help. http://www.ampoule.ru/epson/en/index.html 10'th of November 2002, In part one I used a micro controller to analyze the chip
signals and reset the ink chip. Building that sort of circuit is
beyond most people. Programming the code into the micro requires
a programmer (a device not a human) and some specialist
knowledge. If I were building a commercial chip reseter (which
I'm not) a micro is definitely the way to go. For printer ports with 5
volt levels the circuit looks like this. | ||
The circuit is for a printer port dongle. A
companion windows program will be available below (does anyone
want to port it to linux?). The circuit mainly consist of 3.3
volt clamps to convert the ports 5 volt levels to 3.3 volts. The
only tricky bit is the data line. When the chips data line is in
an input mode it is driven by port data line 3 via resistor R4.
When it switched to output mode the chip override the signal and
the output is sensed by the +select line. When the chip is
outputting data I pull data-3 high so it becomes a pullup to
3.3V | ||
The software is written in delphi 5 and requires a free DDL to work. Windows being windows I can't guarantee the program timing. I'm running the serial clock very slowly (1khz) but it seems to work fine. But if windows goes to sleep half way thru a chip write cycle I don't know what it will do to the chip – hopefully nothing bad but I don't know that yet. | ||
3.3V power (top)
| ||
Note that the DB25 pads are not at 0.1 inch spacing and the strips on the veriboard are - so only 4 pads are soldered and offending bit of strips are removed. | ||
For printer ports with 3 volts levels things are even easier.
| ||
The program...
First - copy Fred Bulback's io.dll into the
directory you put my program in. My prog can be found here. There is lots of stuff in the debug menu to help
you test the port etc – be careful with it when a chip is
attached. There is a danger that leaving some port lines high and attaching a chip will do bad things. I will add a reset-port command soon. Or you can try “debug/show freq” to display your counter frequency – if it shows zero you're out of luck – let me know if this happens. The chips have a 3 bit address/id. During the Read and Reset chip procedures my code tries all 8 possible addresses and displays the contents as seen in the graphic above. The first byte is the ink level, it is zeroed to make the chip “full” ie zero ink used. Someone with time to spare may wish to decode the rest. I guess I should add a “write chip” command one day. That's is for now, have fun and don't let the smoke out of the components. Monday - 11'th
November. The bad is I've blown up several ink chips. I think
the reason may be bad contacts in the improvised chip socket I'm
using or from running them under voltage. Monday - 12'th
November Beta 1.2 Sunday 1'st
December. Beta 1.21 Monday 2'nd
December. Beta 1.3 I think I've worked out the protocol for some of the other chips. The ones I used are from a 1290. These chips have the 2 centre pins on the row of 4 shorted out. I believe 870/875 etc also use them. These use one extra signal (R/W). The pads are
- My interface looks like this.
The wires are I have run the chip at 5 volts without smoke and also on my 3.3 printer port interface. I don't have a 1290 printer so this is unproven. I can read/write the chips and I'm fairly sure the first bytes are the ink level so it should work. 7600/9600 chips. 7600/9600 pad layout. Epson numbering is 2 4 6 my names for the signals was sync power data gnd clock R/W gnd Epson call them csm pwrm o/im com clockm r/wm gndm. The you can read and write them using the 1290 menu but don't use reset. Software only solutions. I am aware of quite a few programs for resetting
the ink levels. Some are free and some are not. The program athttp://www.ssclg.com/epson.shtml
should be of interest to many visitors. I
have no connection with SSC Service Utility– don't send report files (testrep.txt) to me. December 2003, Sunday 1'st
December.2003 Beta 1.5 The project source code is here - This is written in Delphi-5. A Unix port by By Benoy George. Eddie.M. | ||
|