by cboles » Fri Dec 31, 2004 10:23 am
There are 3 fundamental ways I know how to get flash data so far, some of which I have tried, some of which I think should work:
1. Read out flash images from Cobb AccessPorts. I have tried this and it is very straightforward. Unfortunately, you are only getting the flash image that Cobb chose to put on the AccessPort, not the one which is actually in your ECU.
2. Emulate the ECU side of the reflashing process on a PC and record what gets sent to you to a file. I have tried this with an AccessPort and it works fine too. I imagine it would also work with the Subaru Select Monitor or the EcuTek tools.
3. Download code to the ECU which you can then communicate with to read out the flash memory. This is the preferrable method going forward. In a reflash process, Cobb downloads what I would refer to as a "flashing kernel" that they then communicate with to reflash the ECU. I am working on creating a similar open source kernel which would support commands to read out flash memory. You can also do it with the Cobb kernel right now, but it is tedious because you do it by repetitively executing a 16-bit checksum command over 2 byte chunks of memory until the whole flash is read. There may be other Cobb commands I don't know about, but I'd rather spend my time writing a new kernel we can all share and use.