EcuFlash

From OpenECU

Revision as of 03:11, 28 June 2009 by Cboles (Talk | contribs)
Jump to: navigation, search

EcuFlash is a general-purpose ECU reflashing and editing tool that supports an ever-growing list of vehicles. EcuFlash uses the OpenPort vehicle interface to reflash vehicles via the OBDII port. EcuFlash also allows you to edit ECU data (known as 'maps' or 'tables') in a human-readable format using a XML-based definition system to translate the data. With properly setup definitions, the ROM from any vehicle can be edited. Future plans for EcuFlash include logging support / overlay, and live tuning.

Image:Ico-win.pngDownload EcuFlash 1.42 Here (Windows XP/Vista x86/x64) - includes all needed Openport 1.3/2.0 drivers

Image:Ico-osx.pngDownload EcuFlash 1.38 Here (Mac OSX 10.4-10.5 x86/x64)

Image:Ico-win.pngDownload Openport 2.0 J2534 DLL and Drivers Here (Windows XP/Vista x86/x64) - only use if not installing EcuFlash, but still trying to use the Openport 2.0 hardware with other J2534 software

Info icon
Revision History
  • 2009-06-27: Version 1.42 released
    • -- EcuFlash Related Changes --
    • support for flashing H8/539FA processor (e.g. Evo 6.5) via new H8539FA memory model
    • add many generic memory models to allow support for arbitrary ROMs from ECUs that EcuFlash has no flashing support for. these are named Generic1K, Generic2K, ... up to Generic2048K, including all powers of 2, plus many other common sizes.
    • fix programming voltage warning errors in Subaru HC16 kernels
    • actively pull up OBD pin 9 when communicating with HC16 Subarus to avoid reflash mode initialization problems on some EDM models
    • add some retries to kernel reads, instead of failing
    • allow unique ID data in Subaru CAN ROM protected area to be different without requiring this area to be reflashed (which is not allowed). this allows ROMs of the same version to be shared amongst users without refusal-to-flash errors.
    • fixed error that limited data type to 4 bytes in size (doubles and bloblists can be bigger)
    • fixed bug in Subaru K-line reflashing that did not initialize the parity mode of the vehicle interface, causing errors if the interface had previously been used with odd or even parity
    • -- J2534 DLL Related Changes --
    • (no changes other than new firmware payload)
    • -- Firmware Related Changes --
    • fix bug which can cause CAN receive buffer overruns during large ISO15765 transfers
    • fix bug where resting voltage of adjustable power supply can be low enough to trigger undervoltage protection of voltage multiplexer IC
    • increase maximum allowable ISO9141 baud rate to be 125000 baud
  • 2009-01-29: Version 1.41 released
    • -- EcuFlash Related Changes --
    • add support for EVO X CAN reflash
    • add support for EVO 5/6 and other Mitsubishi H8 reflashing
    • we will not be able to release a version of EcuFlash for the Mitsubishi H8 processor family of ECUs that works with the Openport 1.3. The reason being that the Openport 1.3 power supply circuit that generates the ~16V the ECU needs to supply the regulated reflashing voltage to the CPU does not have a sufficient current capacity, causing this voltage to drop to levels insufficient to safely flash the CPU (the CPU goes into a protection mode to prevent you from even trying). The Openport 1.3 does generate a voltage large enough to cause the processor to startup in boot mode, which is why you could read and compare in past versions, but unfortunately, it just isn't usable for reflashing. Later processors like the SH2 and M32R generate this reflash voltage internally, and have minimal current requirements, which is why the Openport 1.3 works with the Evo 7/8/9 without a problem.
    • add variable block sizing for troublesome Mitsubishi CAN vehicles
    • create UI for Openport 2.0 firmware update process
    • make table editing shortcuts quicker by not using Alt key anymore
    • fix bitmask errors when using blobbits data type
    • protect some areas of Subaru CAN ROMs to avoid accidental reflashing of critical areas
    • add DTC clear option for Evo X
    • add kernel speedup to skip blocks of 0xFF writes
    • add flash recovery mode option and flash recovery mode for Evo X
    • allow EcuFlash to recover failed Openport 2.0 firmware update
    • log Qt and OS version at startup
    • correctly flag if ROMs are truly modified by differencing
    • add licensing manager for beta program participants
    • -- J2534 DLL Related Changes --
    • add ability to detect bootloader from failed firmware update and resume update
    • fix bug in reading fast init results when response is comes in multiple chunks
    • make firmware updater wait longer to detect Openport after an update
    • increased timeouts of 5 baud and fast init IOCTLs to avoid premature failure
    • increase speed and reduced latency of serial reads and writes with semaphores
    • fix bug where multiple J2534 activities sometimes caused some J2534 calls to return the incorrect error status
    • increased serial request timeouts to avoid crashing bug in USBSER.SYS
    • make serial I/O asynchronous to avoid sluggish behavior on single core processors
    • remove polling from serial I/O to minimise CPU usage and response time
    • fix serial-level CAN parsing bug where incomplete messages may be parsed prematurely
    • add built-in firmware updater to avoid user priviledge problems spawning additional executable to do firmware updates
    • add callback to enable UI for firmware updates for any host program
    • -- Firmware Related Changes --
    • relaxed constraints on 5 baud init response timing
    • fix errors in 5 baud init and fast init functions
    • fix ISO K and L lines to do proper J2534 LOOPBACK functionality - you will no longer get echoes of your commands unless LOOPBACK=1
    • add information services for serial number and the like
    • add object store for licensing data
    • fix bug where zero length packet (ZLP) was not sent when final IN packet is 64 bytes long
    • support C and D revision hardware changes
  • 2008-10-20: Version 1.40 released
    • this release fixes a bug in op20pt32.dll which can allow older firmware to be used if the firmware update fails. using older firmware can lead to flashing failures.
  • 2008-10-09: Version 1.39 released
    • this release include new Subaru CAN ROM definitions from merchgod
    • this release fixes a number of ecuflash bugs:
    • fix regression bug where SH7058 CAN kernel erase function is non-operational
    • fix bug which allowed user to attempt to load ROM from file that has no definition
    • skip writing 0xFF blocks for increased flashing speed
    • prevent flash / test flash failures from retrying too many times
    • this release also contains the following J2534 and OpenPort 2.0 improvements:
    • fix bug where ISO15765 TX_FLAG_DONE messages had incorrect timestamp
    • removed error results for setting some illegal P parameters so that Mitsubishi factory J2534 software is compatible
    • add CAN mixed mode support to J2534 DLL and firmware
    • add debugging IOCTLs
    • fix firmware bug where ISO15765 CAN packets could occasionally be sent out of order on a busy CAN bus
    • fix firmware bug where CAN / ISO15765 transmit functions did not wait to see that transmissions were received
    • fix firmware bug where unreceived CAN / ISO15765 transmissions could disable transmitter
    • fix firmware bug where first time programming voltage is set, it may shut off
  • 2008-09-08: Version 1.38 released
    • the main features of this release is bringing OpenPort 1.2/1.3 support to OSX 10.5
    • note that this version does not yet support the OpenPort 2.0 with OSX
    • fix bug where map graphs and help were being hidden in an expanding window
  • 2008-09-05: Version 1.37 released
    • the main features of this release is support for Subaru CAN vehicles and the J2534 OpenPort 2.0 cable
    • this release has no Subaru CAN definitions in it yet - those will be supplied in a few weeks once we collect all of the new ROMS.
    • some mitsubishi definitions have been updated (thanks mychailo!)
    • J2534 OpenPort 2.0 applications supported with new op20pt32.dll
    • op20pt32.dll automatically updates OpenPort 2.0 firmware when needed
    • test mode connection no longer needed with newer Subaru ISO and CAN vehicles when using OpenPort 2.0
    • fix bug with unknown ROMs not carrying memory model through wizard
    • fix bug with loading inherited XML when the rommetadata path is a relative one
    • make shbootmode less picky about receiving ACK responses
  • 2008-05-15: Version 1.35 released
    • this is a minor update to support some recent cable changes - a major release is coming soon!
    • FTDI drivers updated to CDM 2.02.06
    • Qt updated to 4.4.0
    • Qwt updated to 5.1.0
    • bitfields now supported in bloblists
    • Subaru definitions update to merchgod's 0.8 release
  • 2007-11-05: Version 1.34 released
    • fixed crash which occurred when using older OpenPort 1.2 cables
    • added automatic notification when new version is released
  • 2007-10-01: Version 1.33 released
    • Subaru metatdata updated to version 0.79b
    • removed test mode detection altogether as it causes problems on many ECUs
    • fix to HC16 kernel to allow bootloader communications to complete before starting kernel
    • fix bug causing extra data to be sent when loading some kernels
    • improve KWP2000 resynchronization
  • 2007-09-06: Version 1.32 released
    • removed test mode detection for 2005+ DBW Subarus because some models do not have a test mode connector
  • 2007-08-24: Version 1.31 released
    • added Mac OSX (intel) support! - still some minor Qt issues on the mac...
    • moved to Q 4.3.0
    • 2D and 3D graphing features working
    • task pane is hideable and has resizing splitter
    • significant improvements to the Subaru ECU defintions thanks to merchgod
    • add better visibility options for invalid or higher user level tables
    • faster on-demand XML parsing
    • add relative directory support in the options
    • read only support for H8/539 based mitsubishis - flashing disabled due to lockout problem
    • switch to true kwp2000 protocol stack for Subarus
    • fix endian reversal in metadata parser - old metadata files are no longer compatible!
    • add shbootmode for SH705x processor recovery
    • fix asymmetry error in substeps for undo and redo. undo now does steps in exact reverse order, in case two or more substeps operate on the same data (as happens in a 2D interpolation)
    • fix crash on editing of static values
    • automatically detect and warn if Subarus are not in the test mode when flashing
  • 2007-03-09: Version 1.30 released
    • added OpenPort drivers for Amd64 processors
    • simplified kernels to support both register-based and flash-routine versions of the SH7055
    • moved to Qt 4.2.2
    • prepare code for linux / OSX versions
    • some new XML definitions / fixes
  • 2006-10-03: Version 1.29a released
    • fixed bug in install preventing driver installer from running
  • 2006-09-29: Version 1.29 released
    • Added many new Subaru ROM definitions thanks to merchgod of enginuity.org
    • Added some Mitsubishi ROM definitions
    • Added auto-selection of OpenPort cables
    • Added descriptive icons to tables in metadata view
    • Fixed bug with tables having 2 generations of parents
    • Fixed bug with incorrect XMLID in new ROM wizard
    • Added ability to load a ROM file from the command line
    • Improved color scaling handling
    • Changed table to show only units for main data
    • Improved table layout
    • Added help text to tables
    • Fix metadata ordering to match XML file order
    • Add support for bloblist data type which enables DTCs
  • 2006-06-20: Version 1.28 released
    • Evo 9 reflash support added
    • Eclipse AT reflash support added
    • Evo 9 map support improved
    • Update all Mitsubishi XML definitions to use new reflash tool names
    • Improved cell sizing further
    • Fix problem of options changing when browsing options menus and canceling
    • Add support for hex data entry when editing
    • Switch to Qt 4.1.3
    • Remove need for C runtime DLLs
    • Fix update logic when editing map definitions
    • Reset reference ROM data when reading a ROM
    • Fix crash on edit of table with no parent
  • 2006-05-15: Version 1.27 released
    • Some new maps added to Evos
    • Improved programming voltage messages for Subaru
    • Fixed bug in tracking open map views when metadata view changed
    • Expanded table cell sizing a bit to prevent ellipses
  • 2006-05-10: Version 1.26 released
    • This is the first version to officially support Mitsubishi vehicles (Evo 7/8,Eclipse,Lancer). Some ROM definitions are included, more will be added later
    • Added driver installer to EcuFlash installation
    • Installer backs up your current metadata to 'backupXXX'
    • Removed option to delete maps until it works
    • Added a needed checksum module for DBW Subarus
    • Added support for float and double data types in scalings
    • Added idle category
    • Improved help in scalings editor
    • Adaptive cell sizing in tables
    • Map windows have ROM file in the title
    • Added procedure steps for connecting to Mitsubishis
    • Added directory browsing to options
  • 2006-05-01: Version 1.25 released
    • Add user level option to hide obscure tables
  • 2006-04-30: Version 1.24 released
    • Fix bug causing crash when ROM images are closed out of order
  • 2006-04-27: Version 1.23 released
    • Fix bug in SH7055 kernel that caused incorrect FMCLR register to be chosen
    • Table checkboxes now single click and only hot within checkbox
  • 2006-04-16: Version 1.22 released
    • Add flipx/flipy to axes widgets
    • Change default color map
  • 2006-04-15: Version 1.21 released
    • Add support for drive by wire Subarus (STi,Forrester XT,Legacy GT,Baja,2006+ WRX)
    • Switch to 'Mac' styled UI
    • Add table view / editing with infinite undo
    • Add user definable color maps
    • Make 68HC916Y5 (WRX) kernel deal with bad serial data better
  • 2005-11-14: Version 1.01 released
    • First GUI version of EcuFlash using the Qt Toolkit
  • 2005-10-25: Version 0.91 released
    • This version has been created to support the new OpenPort 1.2. The OpenPort 1.2 has a 12V reflashing voltage that is controlled by RTS line of the virtual serial port which is off by default. EcuFlash now switches this voltage on at the appropriate times.
    • This is intended to be the last command line version of EcuFlash. Future versions under development use a GUI and are supported under Windows / OS-X / linux.
  • 2005-07-06: Version 0.90 released
    • First official release
    • Command line supports read / flash / compare
    • Supports 2001-2005 WRXs
Personal tools