last posts

Basics of Engine Control Unit Programming


     in this topic should to understand how we can read and write in a memory. To read and write in a memory we need an electronic tool called a universal programmer. With this programmer we can read the data contained in a memory and save this data on your computer . We can also write data that is modified or saved on the computer in a memory to changing then its original programming .

     There are several needs for this reprogramming, such as updating the ECU program ,They are also necessary in some cases of disabling the starting immobilizer. This disabling is done by exchanging the original ECU file for a modified file to disable the immobilizer function.


     The memory programmers have the function of reading and saving the contents of a memory data and also of recording new content. The program is responsible for all contact with the user, in this program we can find a screen called buffer where the data read or to be written in memory is loaded. These data are converted from binary to hexadecimal, where a huge reduction in the size of the data representation is achieved, with the hexadecimal notation we can represent any binary number, and with that, any letter, number or character.

universal programmer

     Hexadecimal notation is used for its practical representation, with fewer digits than other notations, such as decimal notation.

ecu programming

     As the name implies, universal programmers are designed to serve all types of existing memory. In our case, we will only use a small part of these resources, since the automotive ECUs and immobilizers are equipped with DIP, PLCC, TSOP AND SOIC housings, and there are also special features, which many universal programmers do not have, the programming of the embedded memories on processors.


     Many memories need an adapter to fit the fit of universal programmers, as their component socket has a unique shape for use, this shape is usually the DIP .With this, it is necessary an adapter for each type of memory. Providing dip conversion for the respective enclosures. The adapters used in automotive ECUs are: DIP PARA SOIC Two adapters are used, a socket and tweezers.



This adapter will depend on the number of pins in the memory

dip adapter


In most cases, the one adapted according to the picture bellow is used:



     The memories built into the processors have a different programming mode than the conventional ones, since they can be programmed in weldable sockets, which are of little practicality, since it is necessary to remove the processor from its board, a new solder in the adapter socket, where it will be read or changed your data, and again, the reverse process to the one described when returning the processor to your board.

     The most used process is circuit programming with the acronym ICP (In Circuit Programmer). This process consists of soldering the wires needed for programming on the CI plate itself , without the exhaustive removal of the processor.

pinout programming

     In general, it is necessary a specific programmer for programming of embedded memories, and that most of the times, it has a high cost, because such devices have software and interface directed to each processor, which can also be called a development tool.


     The reading mode in boot mode, or boot loader, which comes from the English boot. Through this initialization mode we can use the specific program to load or read the processor's built-in memory. This mode aims at savings in programming processes, since more expensive tools are not necessary, thus attracting the interest of electronics manufacturers.

     The activation mode in this way is done physically, through connections with resistors, on the specific ports. Usually the activation port is raised to 5vdc voltage that denotes level 1 or high level in the internal circuits of the ECUs. When we bring this port to level 0 or low, the boot loader process starts.


     The ST semiconductors processor ST10fxx, was widely used in automotive ECUs from the year 2004. This processor is widely used in embedded processes, such as ECUs, toys, process automation in general and etc.


     There is no need for development tools and special programmers to program the memory built into these processors, as it uses a very practical boot loader system, as previously described. In addition to its practicality, the program used for the boot loader process is free and can be downloaded from the manufacturer's website. Below the screen of the program ST10 flasher.

ST10 flasher tool

     The use of the ST10 flasher program and the activation of the boots is simple, just open the ECU, solder the resistors as described in the boots and ECU model manual, connect the interface via the k diagnostic line, open the ST10 program flasher and follow the program instructions.

     There are cases in which a single resistor is required to activate the boot mode process, as in the IAW 4AFB ECUs, which uses the ST10F168 processor.

boot mode

And there are ECUs need more than one resistor  to activate the boot mode process.

boot mode

We can read the data contained in the ecus memories in two ways, which are:


     In this mode, there is no need to remove memory or boots. A special tool called a serial programmer and connected via the vehicle's diagnostic plug to read the ECU processor, with communication being successful, the processor sends the data from memory to the computer, through the diagnostic line and the serial programmer.

     In the same way with programming, however in reverse order, the programmer asks the processor to write, or that is, save the data that is on the computer, in the internal memory of the ECU.

    This feature is common in hybrid ECUs, hybrid ECUs as the name says are ECUs that use encapsulated components in conjunction with non-encapsulated components, only covered with a protective gel. These ECUs had their manufacturing discontinued in 2003 .


     The reading and writing indirect of the memory data in automotive ECUs is done through universal programmers and boot modes, as previously described. This is the way in which there is a need to remove the memory for programming. There are many ECUs that use this mode for programming


Font Size
lines height