Today I would like to share with you the schematics of the DIY ECU which I built for my Honda CBR125R. This additional ECU does not have the purpose of substituting completely the original Honda (Keihin) one; it is an ECU which works, in series with the original one, to manage the signal of the fuel injector. The purposes of my project are as following:
- Measure the injection time of the original ECU;
- Adapt the injection time (increasing it or maintaining it as it is), by means of a "man in the middle" operation between the original ECU and the injector; this signal is supplied to the original fuel injector;
- Measure the time between 2 consecutive fuel injections, in order to estimate the current rotation speed of the engine (each injection happens every 2 crankshaft rotations);
- Measure the throttle position sensor voltage (TPS signal from 0% to 100%); this signal varies in the 0V-5V range, according to the Honda CBR125R Service Manual;
- The above info are available, via serial communication interface, to an external tool (data logger or PC); a simple service communication protocol has been created for this purpose.
The layout of the Electronic Fuel Injection ECU is visible in the figure below. The PDF version of the layout is available here: 20160207_ECU_layout.pdf.
The ECU has many input and output plugs, which are needed to interface it to other systems around:
- Connector coming from the original Honda ECU injector pins (+BB and injector minus pin);
- Ground connector connected to the motorcycle chassis;
- Throttle position sensor (TPS) connector;
- Injector output connector (+BB and injector minus pin);
- Power supply for USB phone charger (12V to USB);
- Service cable (for Data Logger and PC data acquisition in real-time)
- USB cable (for software flashing of the Arduino Micro microcontroller).
The ECU electronic circuit schematics is visible in the following figure. The PDF file is available here: 20160207_ECU_schematics.pdf.
The schematics can be divided in the following areas:
- Voltage regulator. This circuit contains an LM7809 to convert the battery voltage (+BB, 12V nominal) to a 9V stabilized voltage. This voltage is used as a power supply for the Arduino Micro, and for the LM358N operational amplifier;
- Throttle Position Sensor (TPS) buffer circuit (operational amplifier LM358N). The TPS installed on the motorcycle provides a signal in the voltage range 0V-5V;
- Injector input signal circuit (from Honda original ECU). This signal has 2 statuses: 12V (injector open command) and 0V (injector close command). In order to filter any noise, an hysteresis comparator has been added, using an operational amplifier comparator (LM339N).
- Microcontroller Arduino Micro. One analog input (A1), one digital input with interrupt (pin 2) and one digital output (pin 12) have been used.
- Injector output signal circuit (to Honda injector). The signal coming from the Arduino Micro activates/inhibits the N-MOS Power Mosfet (FKI10531) and controls the status of the injector (open or close).
The following video shows how the DIY ECU operates. The red LED shows the signal coming from the original ECU (a signal generator, in this video). The green LED shows the signals output to the motorcycle injector (in this video, this signal is connected to the oscilloscope probe).
The SW logic has been programmed using Arduino IDE, and it is partially shown in the figure below. Details on the software structure are discussed in another article. Check it out.
The figure below shows, on the right side, the injector control circuit. It is composed by a FKI10531 N-MOS Power Mosfet, and a network of Zener Diodes (GDZJ24D) and resistors with the purpose of limiting the injector voltage at the time when the transistor opens (injector closes).