1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer>

Download EcuFlash 1.44

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.



EcuFlash version 1.38 for Mac OSX is provided for legacy OpenPort 1.3 cable support only.  There is currently no EcuFlash support for the OpenPort 2.0 pending necessary OSX driver development.  Alternately, EcuFlash 1.44 will work by running parallels on OSX.

Download EcuFlash 1.38 for OSX 10.4+
ecufl..._osx.dmg 6701 kb .dmg









Changes since 1.44.3719 version:


--- features --

  • Update checker now looks at build numbers to notify you of incremental improvements that don't have a new minor version change

--- bug fixes ---

  • Fix bug where patches and some other metadata was not appearing in metadata view


Changes since version 1.42:


--- features --

  • Large number of definitions have been cleaned up and added (we recommend you use the default rommetadata folder settings)
  • Make category expansion on file open an option
  • Make MRU file list size adjustable
  • Apply 12V Vpp to 2004-2007 DBW Subarus, in case some models check for this
  • Definition XMLs errors are better identified
  • Definition metatdata has a notes field that displays in the log window when loading a ROM
  • Add option to show invalid leaf node tables for definition developers
  • Help prevent laptop from going to sleep during reflash
  • Switch to Qwt 6.0
  • Add Generic3072k and Generic4096k memory models
  • Added detail to read template selection
  • Added upload capability for unknown ROMs
  • Added display of VIN and CVN informationAdd additional checksumming for Mitsubishi M32R ROMs
  • Added patching module for Mitsubish CAN parameter logging
  • Added compare feature to compare any 2 ROMs that use the same table names - highlights changes in map tree and cells within maps
  • Added warning when checksumming is turned off in Subaru ROMs
  • Added scroll bars to maps that are too large to fit the screen
  • Support for flashing 512k and 768k M32R Mitsubishi processors (e.g. Colt)
  • Add H8 checksum module for editing of Evo 7/8/9 ACD ROMs
  • Add Mitsu CAN RAM parameter logging patch
  • Add support for Evo ACD reflashing
  • Show recovery mode in status bar
  • Add detection of Windows 7
  • EcuFlash.exe now has signing a proper version info
  • Add patching engine
  • Allow copy (not paste) of static values

--- bug fixes ---

  • Fix size of Generic3072k and Generic4096k memory models
  • Fix scaling color for NaN cases
  • Fix shbootmode progress bar
  • Improve table validation in reading of definitions
  • Fix document removal bug
  • Fix bug in checksum adjustment location that could be outside flashable area in the case of 768k Colt ECU
  • Fix bug where shbootmode FTDI devices were not enabled
  • Fix bug where OP1.3 (or other FTDI serial devices) had priority over OP2
  • Fix H8539FA kernel to flash reliably!
  • Fix table fix table cut paste to not lose precision on large uint32s
  • Make parsing of user input of 0xXXXX values unsigned to allow full 32 bit numbers
  • In SH boot mode, use actual multiplier values when calculating bit rate (newer 7058S have 8x mult instead of 4x)

J2534 DLL

--- features ---

  • Contains newest firmware for OP2 (see below for details)
  • Add J2534 extension to support variable number of stop bits in serial communications
  • DLL is now signed and has correct version info
  • Added ability to add phase offset to periodic messages to control the relative timing of multiple periodic messages
  • DLL now use OP2 driver for improved performance and reliability (see below for details)
  • Add device instances ioctl
  • Add 29-bit CAN / ISO15765 support
  • Add 5-byte extended ID CAN / ISO15765 support
  • Add SNIFF_MODE support
  • Add C++ code samples

--- bug fixes ---

  • Fix bug in PassThruReadMsgs where fix use of incorrect variable in determining the actual number of messages read affected the result returned
  • Change ERR_INVALID_DEVICE_ID to 0x1A as it should be
  • Fix error in parsing of messages when using CAN_MIXED_MODE
  • Up NUM_PT_CHANNELS to 9 to support innovate


--- features ---

  • Driver synchronizes OP2 to system clock to allow log files to have correct time / date if OP2 remains plugged into the car
  • IMPORTANT - the OP2 now uses a custom driver I wrote for better speed and stability than the Microsoft usbser.sys driver. This allows for reduced latency and a cleaner installation as well. *** This means that initially you must do a full EcuFlash and J2534 / driver install so that all of these components will work together. OLDER ECUFLASH AND OP20PT32.DLL VERSIONS WILL NOT WORK WITH THE DRIVER. **

--- bug fixes ---

  • Use exclusive file access to prevent multiple connections to the driver
  • Add USB data disposal when no file is opened


-- new features --

  • Add logging support for Zeitronix ZT2/ZT3 devices (see samples)
  • Add support for clock synchornization with dirver in order to have accurate file time / date
  • Add support for 32bit ints with no scaling to avoid loss in precision in that case (before, everything was promoted to a float32). This feature only happens if there is no scaling done to the value
  • Add finer granularity to "friendly" logging intervals
  • Add ability to tweak OBD CAN and MRMACAN logging timing using calcsampinterval and calcconstantdelay parameters
  • Add support for mode $01,$22, and $23 OBD CAN logging
  • Add support for logging from AEM UEGO and any other devices which output ASCII streams of data (see logging examples)
  • Add J2534 extension to support variable number of stop bits in serial communications
  • Add support for LM-1, in both headerless and V2 header configurations (see logging examples)
  • Add support for logging signed parameters using issignedint=1
  • Add support for 50kbps CAN
  • Up to 60 parameters allowed
  • Completely changed innovate MTS bus logging to support multiple LC-1 and other MTS devices (see subaru k-line adc lc1.txt sample for details)
  • Support for more flexible lower speed/priority parameter sampling through the use of a new additional parameter feature called sampgroup.

sampgroups are numbered 1 through 15, the number simply being a label. All parameters in the same sampgroup will share a single timeslot. The OP2 will determine how many of each sampgroup there are, build a cycle of that size, and phase each of them properly. This allows you to have different groups of low speed parameters, running at different speeds, each optimally using the sample cycle. (see subaru k-line adc lc1.txt sample for details)

priority = 2 is still allowed, but all it does is assigned the parameter to sampgroup = 1

  • SD card uses DMA for greater speed in all cases
  • SD card multiblock read / write to increase speed when connected to USB (800kB/s read / 500kB/s write is typical)
  • Filesystem operations queued to a separate thread to allow seamless logging regardless of SD card latency
  • Multibyte parameter (up to 32-bit) mitsubishi support
  • Support for zeroing sample count each time a new file is started using zerosamplecount = 1
  • Support for zeroing time count each time a new file is started using zerotimecount = 1
  • Time count starts on nice intervals
  • Time only shows to the millisecond
  • Increased range and fine-granulatrity of possible logging intervals
  • Improved details in logcfg.out dumps
  • Support for filling in missing samples if ECU misses a response or two using fillmissingsamples = 1
  • Support for new file cuttting action "newfile" which starts a new file if your conditions are met (see subaru k-line adc lc1.txt sample for details)
  • Improved timing estimates for most logging protocols
  • Up to 4 logging channels allowed (e.g. ssmcan, lc-1, adc, & calculated data)
  • Support for fast RAM parameters on Subaru CAN vehicles (assuming ROM patch has been made). just use the known RAM parameter ID (0xFFxxxx) and the OP2 will do the rest. reading of multibyte RAM parameters is sped up by the ROM patch which allow reading up to 4 bytes with a specially encoded 3-byte parameter request. due to current Subaru output buffer limitations, only 80 bytes can be returned in a single request, so only 20 4-byte params can be read at a time. i will make some changes to the OP2 firmware in the future to issue multiple requests to overcome this 80-byte of data limit.
  • New "previous value" parameter added to RPN expressions (e.g. "#RPM" instead of "RPM"). this is useful in creating trigger conditions that are sensitive to the direction of change in a value. for example, if you wanted to capture each dyno pull from 2000rpm to 7000rpm to a separate file, you could set the following conditions:

conditionrpn = #RPM,2000,<,RPM,2000,>=,&&
action = start

conditionrpn = #RPM,7000,<,RPM,7000,>=,&&
action = stop

  • Writing of logcfg.out has been speed up 100x or more - there is little need to use the debug=noout option anymore
  • Added some more finely spaced "friendly" logging intervals
  • Time now starts at 1/1/2009 each time the OP2 boots to give more reasonable looking file times
  • Green status light now blinks during 5 baud inits (e.g. MUTII)
  • Parameters and triggers now use RPN based scalings so that you can do arbitrary equations or evaluations. i will add an infix (algebraic/parenthetical) to RPN parser later for those who are confused by RPN...
  • Calculated / derived parameters are now supported - you can now make new parameters based on equations of other parameters
  • MUTII logging is now much more robust - it will re-initialize if there is a break in communications
  • CAN (SSM/MRMACAN) logging is more robust - it will retry if there is a break in communications
  • SSM K-line logging is more robust - it will retry if there is a break in communications (it used to be this way before, but I had broke it with the priority logging)
  • Added the ability to set voltages or ground pins - this is handy for MUTII users who need to ground pin 1
  • Added isvisible option to parameters so that you can use them for triggering or calculations, but not write them to the log file
  • isfloat=1 parameters automatically default to databits=32 now

-- logging bug fixes --

  • Fix bug causing Innovate MTS to log at 9600 baud
  • Fix offset error in Mode $22 OBD logging
  • Fix bug writing more than 512 bytes at a time to file queue
  • Increase size of parameter header line buffer to accommodate long parameter names
  • Fix error in && and || tokens
  • Increase speed of SSM K-line comms
  • Fix occasional failed transition to logging after USB disconnect
  • Fix overly-rapid mitsubishi communication attempts if ECU not responding
  • Collecting lc-1 data does not cause additional steps in the sample countfix bug where logging could sometimes start immediately after a firmware reflash without they normal delay to check for USB
  • Fix bug where long SSM responses were not correctly parsed
  • Fix bug where 32 bit data fields (such as floats) were not masked correctly
  • Increased mrmacan logging interval estimates to avoid sampling overruns* logging mode now starts if the OP2 is already plugged into OBD and you remove the USB connection - this means you don't have to unplug the OP2 from OBD at all between logging / reading logs / tuning / flashing / etc.
  • Databits values over 31 could be truncated
  • Sample time is now in units of seconds
  • Sample number now should increment by 1 per log cycle for mitsubishis
  • Fix innovate baud rate bug

-- other bug fixes --

  • Fixed ISO15765 bug where long messages weren't dealing with CAN packets with lengths other than 8 bytes
  • Fixed cleanup of filters and periodic messages when using the CAN / ISO15765 / mixed mode channedls
  • Fixed data loss race condition in ring buffering
  • Fix rare but critical communications buffer bug that could cause data transposition
  • Corrected misuse of BS and STMIN in some cases
  • Fixed flow control bug in ISO15765

EcuFlash 1.44.3721 Released

Go here to download and see what has changed.