Friday, 9 September 2016

ECU Modifications

There were two further modifications I wanted to make to the control system before getting the bike back on the road for a decent period of time and collecting data.

  1. Bluetooth connectivity
  2. Barometric Pressure Sensor

Bluetooth Connectivity

I had been looking at incorporating Bluetooth connectivity on the Microsquirt for quite a while and had purchased an RS232 to Bluetooth module for the purpose. I never got around to installing it permanently though as I needed to add a separate power connection for the module.
When I was building the new ECU harness recently I added a switched 12V power & ground connector with the intention of using this connector to power a Bluetooth module.

However, getting into the detail, I became less happy with the RS232 to Bluetooth module option. This option meant I would still need to use a 2.5mm jack to RS232 cable between the ECU harness & the Bluetooth module which not only made the setup bulky but also introduced more connectors than required  with the potential for connection issues.
I researched alternative serial-Bluetooth modules and came across the HC-05 & HC-06 modules which are commonly used in Arduino projects and can be easily reprogrammed using an Arduino. I decided upon using a HC-06 module as I did not have the requirement to switch between master/slave modes. The physical size of the module was a large part of the attraction. The plan was to use a linear voltage regulator to drop the switched 12V supply down to an acceptable level for the HC-06 and enclose the module in a small case with a flying lead terminating in a 2.5mm jack to communicate with the ECU. However when this setup was tested, the software would recognise a Bluetooth device was connected but it could not read the firmware signature. The signature appeared as though the baud rate was incorrect even though it wasn’t. After much frustration & further research, it was found that the HC-06 works with straight serial data and cannot deal with RS232 serial as it was receiving via the 2.5mm jack in the ECU harness.

Then I discovered an article online that described installing a HC-06 Bluetooth module inside the Microsquirt case. 5V power & ground connections were taken from the development header on the main board and Tx & Rx were soldered directly onto the main board prior to the RS232 chip. This installation had the immediate attraction of being extremely tidy as everything would be hidden inside the ECU case with no external wiring. I added a toggle switch to the 5V power connection so that the Bluetooth module could be switched on & off from outside the ECU, allowing the choice of connecting to the ECU via Bluetooth or via direct RS232 serial cable.

The internal installation worked great the first time and has made datalogging and loading calibrations onto the ECU significantly easier given that every ride can now be datalogged using a smart-phone in the pocket without requiring a laptop with wired connection to the ECU to be carried around in a backpack. It will significantly increase the rate of data collection and usability of the bike.

HC-06 Bluetooth Module

Barometric Pressure Sensor

Given the location of the lambda sensor on the TSR exhaust system, it is impractical to run closed loop lambda correction during daily use and so the intention was to dial in the fuelling as best possible and run open loop fuelling. In order to correct fuelling for varying atmospheric pressure and riding at altitude, the preference was to add a separate barometric pressure sensor which would allow constant fuelling corrections with pressure/altitude.

The simplest option was to add a second MAP sensor which would be dedicated to atmospheric pressure measurement. However, MAP sensors tend to be able to measure across a larger range of pressures than required so accuracy would be compromised. I also had not added the external wiring necessary when I renewed the ECU harness.

I had seen some examples of Microsquirt ECUs modified to include an internal MAP & Barometric pressure sensor such as the DIYAutotune MAPDaddy board. This particular solution did not appeal to me though as it is relatively expensive, includes 2 pressure sensors when only one was needed and the sensors are 4 Bar sensors which are likely to be quite inaccurate when trying to measure in such a small range of the sensor’s capability. This did however open up the idea of using a board mount pressure sensor located within the ECU case.

I looked at using a Bosch BMP sensor but as the output is digital I would need additional electronics to convert the signal back to analogue 0-5V so that the ECU could read it. A Honeywell pressure sensor was also an option as it gave an analogue output and being a through-hole package, it could easily be mounted on standard stripboard. However the cost was prohibitive being over half the cost of the dual sensor MAPDaddy board and the physical size and measurement range was still larger than I would have liked.

In the end I have chosen an Infineon KP235 Barometric pressure sensor as it is low cost, designed for use in automotive applications, narrow useable measurement range & small package size. The one disadvantage was that the surface mount package and small size meant I had to design and make a PCB to mount it and allow it to be connected to the ECU but this was a small price to pay for the size and cost of the unit.

A PCB was designed to accept the KP235 sensor and include smoothing capacitors on the input & output voltages as recommended by the manufacturer. Surface mount 0805 package capacitors were used to help keep the size of the board down and the interface with the ECU would be through standard size header pins and DuPont connectors. This way the board size was kept down to 25mm x 12mm.

Copper board was painted to mask the copper layer. Then a negative of the PCB layout was etched in the mask to expose all the unwanted copper. The exposed copper was then removed using an acid solution before removing the paint mask and protecting the remaining copper with a liquid tin solution. The header pin holes were then drilled and the components soldered in place. For additional protection and isolation from vibration, the completed board was coated in a layer of silicone rubber.

Completed Sensor & Board

Protected Sensor Board

5V power & ground were taken from the header pins on the main board as with the Bluetooth module and the output signal wire was soldered to the SPAREADC2 pin on the Ampseal connector between the connector and the ECU board. A 1.5mm hole was also drilled in the ECU case to allow pressure inside the case to equalise to atmospheric pressure.

Sensor Installed In The ECU

Both the Bluetooth module and barometric pressure sensor are held in place using hot glue. The Bluetooth module is located underneath the topside of the Ampseal connector and the barometric pressure is located underneath the lower side of the Ampseal connector. The Bluetooth switch is located on the RHS of the ECU and is easily reachable when it is installed on the bike.

Following these two upgrades to the ECU, the physical install is considered as good as complete. The bike is now back together again and on the road where the goal over the next few months is to collect as much data as possible and continue to refine the calibration.


  1. I'm very impressed with your blog and the very well written out information on the build as well as explaining things thoroughly. I've been toying with the idea to convert my project bike to EFI because the carbs parts are expensive, flat slide carbs are almost as expensive as a EFI swap, and I want to travel next summer. between this posting and a thread of someone who has already completed the mod on my exact model (1985 Yamaha XJ700N), I've decided to go forth and do it.

    I'm going to use Microsquirt, how do you like the bluetooth mod? and how well does it connect to a computer and smartphone? It's very hard to find any information on EFI Microsquirt motorbike conversations

    1. Hi! The bluetooth mod is a gift! It has massively improved the rate at which I can collect data and that in turn has really sped up the calibration process. Every ride becomes a data collection and test ride as opposed to having to connect a laptop and go for a specific ride to collect data. It also means I am getting more real-world data from rides as I ride more naturally without a hard-wired laptop on my back.

      As far as connection goes, I have found its seamless. Its certainly not as quick as a wired serial connection to reconnect after a power cycle if you are changing major settings but I wouldn't consider that a disadvantage.

      For a motorbike conversion, I think the bluetooth mod is a game-changer. Just be cautious when soldering the wires onto the board. You need to solder to vias on the board which were never intended for that purpose so they don't have a lot of surface area or clearance to each other.