Ford EEC-IV EPROM programmer



 
 I have been using an EEC Tuner in my EFI converted Pantera, and it has been a mixed blessing.

It has been good as I have been able to tune the EFI with relative ease, but I have also had problems with the J3 connector not making good contact, which has forced me to open up the EEC box and wiggle the connector. Not so cool when you're in a convoy of cars in the middle of some little french town.

In my humble opinion the best solution would be to reprogram the EPROM in the EEC-IV. This solution does not suffer from marginal connections of connectors hanging off the J3 connector, and it also means no needed extra hardware in the EEC-IV.

There are at least three problems with this solution:

A few years ago Dale Ulan appears to have de-soldered an EPROM from an EEC-IV and using a Chipmaster 3000 programmer plus a C-program he was able to reprogram the EPROM.

The problem with that solution was the need to desolder the EPROM, and finding the Chipmaster programmer, which appears to be obsolete and rare.

The good thing about Dales work was that the program was simple and reasonably well commented to allow me to figure out how to possibly implement that in a stand alone dedicated EEC-IV programmer.

Using the invaluable EEC-IV description compiled by Tom Cloud I could find most of the signals needed to reprogram the EPROM in the J3 connector, but a few were missing. I couldn't believe that Ford had designed in most but not all of the needed signals, so I used a multimeter to hunt down the missing signals, and they were indeed available.

I used the free software from expresspcb to design the circuit and pcb and ordered three boards.

After completing the board and creating some simple initial test firmware, I implemented the important parts from Dales program in Atmel AVR assembler and was able to reprogram a few bytes, however only to "0":s. It appears that the 32k EPROM Dale used is not programmed the same way as the later 56k EPROM in the 2FCD box I've used during testing.  I reasonably quickly found out what needed to be changed and was then able to program the proper data.

I was planning on getting one of these gun style stroboscopic erasers:


but borrowed a friends old Spectroline eraser and removed the lower drawer part and jury-rigged the safety switch so that I was able to just place it over the EPROM. After peeling the sticker covering the window off, the EPROM could be erased without difficulty:







I quickly whipped up a program that would allow me do download and program an image, and one of the first things I tested was to program an X3Z image (Cobra) to the 4 cylinder Euro Escort 2FCD box, and at least the EECtuner thought it was an X3Z box afterwards :-) It would'nt have worked in a car though due to the different hardware.

I'm currently trying to simplify the development of new firmware by using a boot loader in the Atmel ATTiny2313 processor I'm using. With that in place one would not need any development system other than the freely available AVR studio from Atmel and a serial connection to the programmer hardware. I have tried getting Atmex to work, and the processor part appears to be working fine, but I can't the Java hex uplodader to work on my Solaris nv Sparc box. It sort of talks to the board, but gives up almost immediately. It appears to be a communications problem, probably due to problems in the Java comm api on Solaris.

I have now installed Atmex, and the required Java commapi on my Windows laptop, and it worked the first time I tested it.
So now the only needed hardware is to get the programmer built, with a Tiny2313 processor with the boot loader preprogrammed, and everyone should then be able to download and test new versions of the firmware, without the need of pulling the processor to reprogram it.

What's next?

I regret that I didn't choose the Atmega8 processor, which has much more flash, ram and IO, and it would probably have allowed programming the firmware in C, and there are boot loaders available that probably have a greater chance of working properly.

I will probably make a new board using the Atmega8 and remove the LED:s and EPROM socket.

I'm also looking into creating the 12.5 V Vpp voltage by stepping up the 5V instead of stepping down 15V or so. The 7805 regulator needs cooling when it has to drop 10V while feeding both the programmer and the EEC, and by using a lower supply voltage that would probably not be needed. I've seen an interesting Maxim converter for flash memories, but unfortunately it appears to only supply 12V, not 12.5, which appears to be what the EEC-IV eprom needs. I have ordered some samples and will experiment some and see if it can be fooled into supply 12.5 V.

Software

Here are the currently available files, including the schematics, pcb layout, firmware source, host source, Dale Ulans program.

Legal

To make sure that this work will not be abused, I've decided to distribute it under the CDDL license.

hits

If you have comments or suggestions, email me at thomas@Hax.SE

Last update: 2005-07-07