Reading the EPROM

*DISCLAIMER* Do not attempt this if you don’t know what you’re doing. Also, if you haven’t proper equipment to monitor the changes: Wideband and knocking sensing devices.

After installing a socket into the board in place of the existing EPROM 27c256, like showed in part 1, you need to read the content of the desoldered EPROM.

In case you damaged it, you could still manage to find a basemap online, but I strongly suggest you to take care desoldering the original chip.

To read the EPROM you need an EPROM/EEPROM programmer, you can find plenty online just make sure it can read and write 27c256/27c512 chips.

After you estrapolated the binary file from the EPROM, which should be 32kbyte in size, you have successfully read your ECU software in which you will find our beloved maps. 
Please note that the stock EPROM cannot be erased. So you need to source a new, deletable, chip in which you will be able to burn a new map.

To modify it, you could use a simple hex editor, but you should know where the fuel maps, ignition maps, rev limiters, vris switchpoints are.. In order to do so, you should disassembly original ecu file, understand the software and then you’ll know where these maps are.. This would take A LOT of time and efforts.

Thanks to the wonderful people who sometime populate internet, in particular to ALEXANDER from Moscow, whose nick is Berserk, we are a software to locate basic maps easily. I had the chance to chat with this wonderful guy, and he promised me he will do an English translation of the software, but meanwhile, I translated it and made some pictures to explain how to use it.

Feeding the file to the editor

Download editor: it’s a portable editor written in non-unicode language that will be most likely displayed in small squares instead of russian language. You should set russian as a non-unicode support language, follow this very helpful guide but instead of Romanian, use Russian: Change system locale

Open the portable Editor and you will find this (Of course in russian):

Click in open, feed it with your ecu binary.

In the notes, you will find what the ecu firmware is, so you can select in the dropdown menu: FW version.

If everything went smooth and the ecu file is fine with the correct checksum, in the top right checksum box you will see the same value as expected checksum box, which usually is AA55.

On the VRIS tab, you will find RPM setpoints for each butterfly valve for each given load: Low load, Medium load, High load, which can be selected from dropdown menu. Green is Open, White is close.

In the other tabs you will find Fuel maps, Timing maps for high octane or low octane fuel (knock sensor interpolation), multipliers and rpm limiters.

I will not tell you how to interpret or modify these maps because it would be too easy. Get a wideband and a knock sensing device and start modifying and verify what the changes do. Please don’t make big changes all at once as this could lead to engine knock and engine failures if not done properly. You can help yourself downloading and comparing different mazda v6 ecu maps (here’s my archive: download).

*IMPORTANT* In order to make the car start and drive fine with no strange errors you should correct the checksum doing the following before saving the map binary:

  • Click on box “Check Checksum
  • On the box next to it click “Calculate
  • Click again on box “Check Checksum” and make sure it now shows the same as “Expected checksum” usually AA55 Hex value.
  • Now Save and enjoy.

Burning the EPROM

Now what you have to do is to burn the modified binary into an EPROM (27c256, 27c512). Please understand that if you’re using a 512K memory (64Kbyte size), you should write the software in the second half of the chip memory. Starting at address 0x8000.

Install the freshly burnt chip into the socket you soldered following part 1 and you’re good to go.

If you wish to delete the content of the EPROM in order to write a new software in it you need an UV Eprom ERASER, don’t even bother trying nail uv ovens. Alternatively, you could use a compatible EEPROM (W27c512) in place of the 27c256. These are faster to delete because they can be erased directly from the programmer and allow you to do many modifications without having to wait the UV Eraser to delete your chip (Usually 30 minutes).

Final notes:

I also discovered there are many other values which could be tweaked in the firmware to make the stock ecu feel a lot more like a full standalone. Sadly, I have no time to extensively analyze the firmware and code an editor; also, since full standalones became cheaper, I suppose that it’s not worth the effort to do so. So, at the end, now you can do a basic remap, adapting fuel to the breathing mods you’ve done and optimize spark timing and rev limits for your application, the tables that the editor shows should be enough to allow you to optimize a mildly modified engine, of course it wouldn’t allow you to run a boosted engine correctly.

Feel free to contact me to add or modify something in the above guide.

Stay blessed.