ecuflash release notes V 0.90 -description- This is the first fully functional release. This version of EcuFlash allows you to: * dump flash contents of the ECU * compare flash contents of the ECU * reflash the ECU -special notes- * You can very easily render your ECU (and therefore your car) non-operational through improper use of this tool. At this point, it is recommended only for advanced users already familiar with the Subaru reflashing process. If you can't afford to lose an ECU or have your car non-operational until you get a new ECU, you should reconsider the potential risk of using this software. * The ECU is reset each time EcuFlash is run as the kernel download process wipes out ECU learning. * EcuFlash has no way to verify that a flash image is correct for your model ECU or if it contains working code/data. EcuFlash only verifies that the image is of the correct size. This means that you better be *very sure* that image you are flashing is correct - otherwise you will end up with a dead ECU. * Only reflash your ECU on a fully charged battery. * You should first attempt to dump your ECU's flash image as both a backup process and to verify EcuFlash is working correctly. I would recommend subsequently using the "compare image" switch, and then the "test flash image" switch when you think you are ready to reflash. These switch options further exercise the reflash process without actually writing any flash memory. * EcuFlash accepts both "compacted" and "expanded" flash images. The compact images are 160k bytes in size and contain only the memory for the 3 flash banks. The expanded images (the ones that EcuFlash outputs) are 192k bytes in size and contain a blank area from 0x20000 to 0x27FFF which is represents the area normally occupied by RAM. The purpose of the expanded image is to maintain a memory address representation which matches the physical address space of the ECU. This make loading the expanded images into a dissasembler easier and avoid confusion about memory addresses, at the expense of file size. -system requirements- * PC running WinXP with USB port * OpenPort 1.0 interface (www.tactrix.com) * ECU reprogramming connector (see openecu.org for details) * One of the following vehicles: + 2002-2005 USDM WRX (probably many other non-US models too) -usage- [general] * The green test mode connector must be plugged in when using EcuFlash * The programming connector only needs to be plugged in if relashing (not reading) * Unpack EcuFlash to a directory on your computer * EcuFlash is run from the command line * To see a list of options, type ecuflash /? which results in: EcuFlash V0.90 flashes WRX Denso ECU plus other functions. ecuflash {switches} where switches are: -one of the following switches- /ci [image file] - compare image /fi [image file] - flash image /tfi [image file] - test flash image (no writing) /dm [hex start] [hex end] [dumpfile] - dump specified memory area to a file /dq [filebase] - quick dump all of flash memory to file(s) -and any of these optional switches- /l [logfile] - log output to a file /c [comport] - select comport for interface hardware /m {wrx2002,wrx2004} - select vehicle model * You should always specify what comport and vehicle model you are using, e.g. ecuflash /c com5 /m wrx2002 (other switches) [dumping flash images] * To dump a 2005 USDM WRX connected via com5, type ecuflash /c com5 /m wrx2005 /dq my2005wrx * At the end of the process, this will result in two files: my2005wrx_cpu.hex my2005wrx_tpu.hex * The *_cpu.hex file is a dump of the main flash memory, like the others on the openecu.org site, with zero padding for the 0x20000-0x27FFF RAM area. This file can be used to reflash your ECU or others of the same model. * The *_tpu.hex file is a dump of the TPU flash memory, like the others on the openecu.org site. The TPU code is not reflashed with this application, but is useful in understanding how to load a kernel into the ECU. [comparing flash images] * This feature does a graphical comparison between what is in flash versus a flash image file. The comparison is made using CRC32 checksums of 256 byte blocks in memory. A "." indicates 2 blocks have the same checksum, a "*" indicates that they are different. Obviously, EcuFlash can make this comparison much more quickly using one large CRC32, but I thought it would be useful to see where the differences are in the this early release. * To compare an image file myimage.hex to flash memory of a 2002 USDM WRX on com2, type ecuflash /c com2 /m wrx2002 /ci myimage.hex [test flashing an image without writing] * This feature mimics as much as possible the real reflashing process without actually writing to the ECU flash memory at all. It is a useful sanity check to be sure that EcuFlash is communicating with its kernel in the ECU correctly, and that the reflashing process will rewrite the memory areas that you expect. It is highly recommended to try this option before actually reflashing. * To "test" flash an image file myimage.hex to flash memory of a 2003 USDM WRX on com3, type ecuflash /c com3 /m wrx2002 /tfi myimage.hex [flashing an image] * This feature performs an actual reflash of the ECU. Do not use this until you are sure of what you are doing, and have had success with the "test" flashing. Obviously, any interruption of this reflashing process could render your ECU inoperative. As can flashing a corrupt flash image, or one intended for a different model ECU / car. * To flash an image file file myimage.hex to flash memory of a 2004 USDM WRX on com1, type ecuflash /c com1 /m wrx2004 /fi myimage.hex