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


We typically ship most Monday through Thursdays. We will have reduced staff through June 21st for a family trip. There will still be 1 or 2 shipping days per week during that time, but not daily. You will receive an automated email with tracking information the evening your order ships. If you can't wait, consider purchasing from STM Tuned who ship in the USA and internationally, or email us for suggestions closer to you. We thank you for your patience!


Download EcuFlash 1.44

If you experience any issues in downloading the files on this page, please use a browser other than Internet Explorer.

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.

Uninstall Info


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
Uninstall Info




--- bug fixes --

  • Fixed Openport 1.3 driver INF file section naming error which was preventing this driver from installing correctly
  • Fixed MSVC compiler library issue which made J2534 DLL incompatible with Windows XP
  • Changed driver signing certificates back to SHA1 from SHA256 for compatibility with pre-Win8 OS versions until MS release SHA256 kernel mode signing updates for these


--- features ---

  • File dialogs offer all ROM types by default
  • Added SH boot mode support for SH725XX processors. User Boot MAT is still not supported yet pending read support for this area.
  • adding clarification to message indicating nothing was written due to no differences in ROM images.
  • support for 2015 WRX with Hitachi ECU
  • support for OEM reflashing of BRZ
  • mitsucan heuristically determines correct checksum area size
  • Allow for other responses in wrx02 bootloader init sequence (possibly for ecutek'd ECUs)
  • Update checker now looks at build numbers to notify you of incremental improvements that don't have a new minor version change

--- bug fixes ---

  • added additional delays when communicating with Mitsubishi bootloaders to avoid the ECU occasionally not receiving bytes
  • fixed MSVC compiler library issue which made EcuFlash incompatible with Windows XP
  • fix bug where reading response from kernel could report "msg buffer too small" when it was not
  • get Evo X recovery mode write back in ECU menu options
  • Fix bug where vehicle type dialog selects first item if you do not interact with tree view, even though another item is shown as selected.
  • Fix problems with FTP uploads of unknown ROMs
  • Problems with failed readEcuIdentification requests in CAN Mitsubishis are ignored in case they are not supported in the current mode.
  • Fixed problem with non-ASCII (e.g. Cyrillic) filenames
  • Fix bug where patches and some other metadata was not appearing in metadata view

J2534 DLL

--- features ---

  • DLL no longer uses Qt to make smaller and more portable, uses boost library instead
  • OSX support coming shortly

--- bug fixes ---

  • fix bug where startMsgFilter was looking for the wrong synchronization stamp
  • fix wait condition problems in port to boost library causing communication problems with driver
  • report ERR_TIMEOUT in more places where waits fail
  • fix missing ExtraDataIndex values when dequeing rx messages


-- new features --

  • change voltage / pin enable logic to allow more than one OEM pin to be set to the same voltage
  • add more Subaru seed-key tables
  • ISO: add beginnings of a ISO9141 "max msg len" J2534 custom parameter to allow chopping up of continuous ISO9141 stream to cut down on latency and potential message size overflow.
  • logging: add length limit to UDS requests (will break into multiple requests)
  • logging: add logical not function
  • logging: reduce SSM retry time by half
  • logging: improve error reporting
  • logging: disallow params that start with a number
  • logging: add mode23 UDS logging option "mode23uds"
  • logging: add option to sort PIDs "sortpids = 1" for channel (mode23 logging needs this to work well as it tries to optimize sequential byte reads)
  • do additional range validation on many J2534 parameters

-- bug fixes --

  • CAN: only send additional flow control frames if ISO15765_BS is not 0
  • CAN: complete missing implementation of ISO15765_BS and ISO15765_BS_TX which are needed to limit the number of continuing CAN messages sent between waiting for additional flow control (FC) messages from the other party.
  • CAN: return CAN_29BIT_ID flag on appropriate read results (was being masked by accident)

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


Copyright © 2004-2016 Tactrix Inc.

This software is provided 'as-is', without any express or implied warranty. This software reads and modifies code and data for engine computers (ECUs). Improper use of this software or errors within the software itself can cause engine damage and/or render the vehicle's ECU non-operational. Many ECUs can only be reflashed a limited number of times before the flash memory is no longer functional. Additionally, modification of your ECU's software will most likely void your drivetrain warranty from the manufacturer and violate emission control regulations in some regions. In no event will Tactrix or other contributors be held liable for any damages arising from the use of this software.

This software allows you read code/data from ECUs which can potentially be subject to various copyright and intellectual property laws where you live. It is your responsibility to use (or not use) this software in adherence with these laws.

Permission is granted to anyone to use this software in its complete distribution for any application, including for-hire work such as tuning customer vehicles or delivering tunes to remote customers, and to redistribute it free of charge to others, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you authored or produced the original software. If you use this software as part of a larger product or service, an acknowledgment in the product documentation should be made.
  2. When used with a hardware interface, the software is to be used solely with OpenPort vehicle interfaces from Tactrix Inc. or other officially licensed interfaces. These sales fund the project development and keep the cost of such a tool reasonable.
  3. This software distribution also contains many definition files which are the work of a large number individual contributors as well as Tactrix. Where known, attribution has been made to the original authors and subsequent contributors, including links to their websites where it may be possible to donate to help encourage their work.
  4. The software will check if a new version is available based on your current hardware and software. You are strongly encouraged to upgrade if your receive such a notice as new versions sometimes fix flaws that can cause ECU flashing to fail on some vehicles.
  5. The software may not be altered in a way which circumvents or violates any licensing provisions.
  6. This notice may not be removed or altered from any distribution.

EcuFlash 1.44.4799 Released

Go here to download and see what has changed.