CBR250 Forums banner

Project CBR250RRi

91630 Views 295 Replies 60 Participants Last post by  motthomas
Its about time I stuck a thread up on this. :D I'm hoping that having something like this to keep updated will give me the motivation to push on and get it done.

The idea has been in my head to do an EFI conversion on a CBR250 ever since I read the feral injection website. I always thought I didnt have the know-how to do it what with building an ecu and designing the software to control the injectors. At least that was until I found out about megasquirt.
The megasquirt ecu did away with the need to be able to assemble complex enough electronics and design base software so brought it all back within reach. The idea got put on the back burner for a while until last summer when I started seriously researching it again and one thing led to another and now I hope Im in far enough to have to finish it. Actually finishing it within 2012 is my new years resolution! :p

Theres a few things to get and do before I start doing anything to the bike.
  • Throttle bodies sized and spaced
  • Injector selection
  • Sensors. Coolant temp, intake air temp, MAP
  • Fuel Pump
  • Fuel filter and pressure regulator
  • Air filter / airbox
  • ECU

The easiest bit is the ECU. I'm going to use the microsquirt ECU from Bowling & Grippo. The tuning software for it is free and it supports both fuel control and ignition control. If a wideband oxygen sensor is plugged into the ECU, it allows for datalogging and closed loop injection if needed.

I have chosen my throttle bodies already. I'm going to use GSR400 throttle bodies. The reason is because the OD of the intake stubs is the same as the CBR carbs so there will be no need to make up reducers to fit the throttle bodies to the engine. Also, having the same diameter bores will make for the best throttle control across the range. The problem with having too big bores is you end up with effective 100% throttle happening too early and losing some control over the throttle. Besides, bigger throttle bodies just wont fit in between the frame rails of the CBR.
The GSR throttle bodies will need to be modified though to suit the spacing of the CBR intakes. The spacing between #1-#2 and #2-#3 will need to be reduced while the spacing between #3-#4 will need to be increased. And with that, I'll need to get completely new butterfly valve rods made up to suit the new spacing.
The throttle bodies got bought from yahoo auctions japan and hopefully I'll have the gen soon enough to send them off to a machine shop to get the work done on them.
Here they are stripped down with most parts removed:

I picked up a set of GSXR750 injectors over the weekend that will hopefully fit the GSR TBs. They are a higher flow rate than I have calculated I'll need for the CBR but I got them for nothing so if they dont work I've lost nothing. If they are too big it will be obvious straight away when trying to tune the idle.
The GSXR TBs have a few other bits that will be handy aswel. I'll be able to use the MAP sensor off them and the way the fuel rail is structured it should be handy enough to modify the spacing. I havent got a chance to pull them apart yet to see how they go together.

The fuel pump is the part thats bugging me at the moment. I can either go with an external pump or in-tank pump/filter/regulator assembly.
I want to make this conversion in such a way that I can easily revert back to stock carbs at any time. From that perspective the external pump works best as all I'll need to change is to tap in a return line fitting into the tank and that could be blocked up easily enough.

The disadvantage of the external plumbing is space. Where to mount the pump, regulator and filter and route the plumbing so it all stays tidy and servicable. Thats where the in-tank assembly comes up trumps. If I can get hold of a spare petrol tank for handy money it will be worth modifying it to accept the internal pump assembly. It would tidy up things a lot what with only having the one fuel line running from the tank to the fuel rail. I would lose fuel capacity but I think that will be a small price to pay.

Thats about all for now. The next steps are to make up drawings for the machine shop to modify the TBs and make up new throttle rods and also to see about getting hold of a spare tank.
Watch this space.
See less See more
261 - 280 of 296 Posts
I've really let this thread and the blog at the wayside this last year and I'm way behind as a result. I'll attempt to drip-feed the posts as opposed to having one massive one!

After the last entry, the bike got a TSR 4-2-1 exhaust system to replace the old 4-1 system I had made up a few years ago. Before I installed the system I gave it all a good polish & took down the welds on the inside of the primaries where they join to the cylinder head. This area was the only part of the system where I felt the workmanship wasn't as good as it could be. Everywhere else the welds are beautiful & the fit is very nice!

Here is the before picture:

And the after:

This was the old system. Not very pretty but it served its purpose for a while!

And the new TSR system shined up and with some new stainless springs:

The location of the lambda boss on the TSR system is not ideal but it works for calibrating the EFI system as I will ultimately be running open loop fuelling. The length of the secondaries meant that to get a good averaged lambda reading, I needed to mount the sensor just before the end can. Ideally the sensor needs to be mounted on top of the pipe to stop condensation forming but there is a spring in the way so the next best thing was to mount it in the bottom of the pipe to keep it somewhat hidden and accept the fact I would need to remove the sensor after every run to help it last longer.

I also finally sorted out my front brake setup. The GSXR600 master cylinder was not doing it for me so I decided to change it. It was a post-recall master so the brake fluid entry was on top of the cylinder rather than at the side and this meant the spring clip on the reservoir hose fouled the front fairing when turning right. The reservoir was also too big to fit under the fairing so something had to be done.
First I trawled eBay looking for suitable candidates for a replacement master cylinder. The criteria were it had to be radial and it had to have the fluid entry on the side of the cylinder. I ended up going for a Brembo master from a big bang R1. It is really quite a tidy bit of kit!
To get around the reservoir issue I replaced the fluid reservoir altogether with a short length of clear tubing. It works quite well from a clearance point of view and there have been no issues with it to date. I will keep an eye on it to see how it works when the fluid gets a bit more abuse and will rethink the solution if needs be.

Here is the new brake setup:

I still wasn't happy with the feel of the brakes though. I had been very happy with the combination of GSXR600 master & GSXR1000 calipers that I had used when I first did the conversion. But since swapping the GSXR1000 calipers for a set of GSXR600 calipers I hadn't been happy with the feel. The bike stopped brilliantly but I felt the lever had too much travel and no matter what I did with bleeding & adjusting the lever, I couldn't get the lever as hard as I would like.

When I swapped to the R1 master there was little to no change in feel so I broke out the Excel spreadsheet & the manuals for all the parts in the system and did some sums. I wanted to get a feel for what each combination of master & calipers did in terms of feel (lever travel for a given pad travel) & braking power (force at the pad for a given force applied to the lever). I also did the sums for the standard MC22 setup to act as a base of reference as I had been very happy with the feel of the standard lever before swapping the front end.
The sums confirmed my suspicions and pointed towards using the GSXR1000 calipers in combination with either the GSXR600 or R1 master. Even though both masters are different bore sizes, the lever ratio ended up cancelling out the difference so either would result in similar feel & braking power which explained why installing the R1 unit seemed to have little to no affect on the feel.

Here is the graph I came up with. The numbers themselves are meaningless as it is all calculated on relative terms. The higher the number the higher braking force or harder lever.

Resulting from that investigation the GSXR1000 calipers got reinstated and they will stay on for the foreseeable.
See less See more
  • Like
Reactions: 1
Just curious, why did you swap out the 1000 calipers to begin with?

I also had trouble getting the right lever feel and power on my bike with the gsxr600 brembos. Right now i have a zx10 master cyl but it's a bit smushy. Brakes like crazy tho.
I'm still trying to figure out a setup for my rvf front brakes.
I've tried the stock mc with sp1 calipers, sp1 full system and cheapish ebay radial mc with the sp1 calipers.
I'll likely be getting a brembo rcs mc for my Daytona so I'll be trying my daytona's stock brembo mc on the rvf when the time comes.
Just curious, why did you swap out the 1000 calipers to begin with?

I also had trouble getting the right lever feel and power on my bike with the gsxr600 brembos. Right now i have a zx10 master cyl but it's a bit smushy. Brakes like crazy tho.
Cosmetics & cost really. The 600 calipers I have are in far better condition and since the 1000 calipers are from a K3, they have the 4 small pads in each caliper as opposed to 2 pads and replacements are more expensive. False economy really since I have ended up with 3 sets of calipers & 2 master cylinders! :p
Another instalment for you. :)

Not much has happened in the way of real engine calibration since the exhaust went on & the brakes got sorted but still some reasonable progress in terms of fine tuning settings. The bike got MOT’d right after the brakes were sorted and had a few outings afterwards but the bike hasn’t really moved since Christmas.

I wanted to check a few things that were bothering me about the Microsquirt control and so ended up carrying out quite a lot of bench testing on the ignition side of things over several months.

I actually don’t remember where it all started but at some point during the last year I started to question the accuracy of ignition timing provided by the Microsquirt ECU. I carried out some tests using a crude trigger wheel simulator on the bench & then on a running engine which confirmed my suspicions; ignition timing appeared to drift as much as 5 degrees at 18,000rpm. On top of this I noticed two further uncertainties while testing.

  1. Battery voltage as read by the ECU did not track actual battery voltage. There appeared to be some hysteresis in the measurement as the ECU recorded a different offset depending on whether the battery voltage was rising or falling. This was obviously an issue as it would result in incorrect coil dwell times & injector dead times.
  2. During ignition coil testing using the ECU’s output test mode, coil dwell times measured did not match what was demanded by the ECU even with battery voltage compensation disabled.

When I first noticed the timing accuracy issue I figured I could simply get a new, higher resolution trigger wheel made to replace the standard 12-3 wheel. However I hadn’t reckoned with the fact that the Microsquirt doesn’t have the processing power to cope with a higher resolution wheel at the kind of engine speeds seen on the CBR250. The Megasquirt developers have stated that even with the low resolution wheel on the CBR250, 18,000rpm is pushing the boundaries of the Microsquirt hardware capability and that an MS3Pro ECU would do a far better job at controlling the engine at these speeds. Coming out of this, I will most likely be upgrading to an MS3Pro ECU sometime in the future but given the expense and the fact the wiring harness would need to be redesigned to work with the new ECU I tried to find a way to make the Microsquirt work acceptably until I was ready for the upgrade and so I continued with reasonably extensive bench testing in order to measure and understand how the ECU controlled the ignition side of things.

Ignition Timing Accuracy
Firstly I wanted to spend some more time bench testing the ignition control both to understand the issues better and to be able to present the issue properly to the Megasquirt developers which would help find out if the MS3Pro would actually fix the issues. That meant making sure that all other variables were as accurate as I could make them. The most important of these was the trigger wheel offset relative to TDC. I had determined this value early in the project using a timing light so it was potentially not as accurate as it could be.

To determine this properly with the oscilloscope, I needed to compare it directly with the output of the standard MC22 ECU at a known engine speed and spark advance. I wanted to have a way of accurately simulating the crank trigger signal as would be seen by the ECU in a running engine. There are lots of ways available to simulate hall effect trigger signals but I specifically wanted to simulate the VR type of signal that creates a zero crossing. After some research & trial & error I settled on using an Arduino board to create the signals using a modified version of the Ardustim code.

The Ardustim code normally generates a hall type signal by asking a single pin to go high at specific times. With some modification to the Ardustim code I ended up creating a VR type signal by switching two separate pins & merging them into a single channel. The voltage output from the merged channel would depend on the combined state of the two Arduino pins.

Both pins high = 5V; Both pins low = 0V; 1 pin high + 1 pin low = 2.5V.

The output is fed through a transformer to create the needed zero voltage crossing. The simulated VR signal could then be used to determine the 1st tooth angle offset to TDC from the standard MC22 ECU.

As I had a CBR250RR(R) ECU, the benchmark from the manual is spark demand at 20°BTDC at 1,500rpm. Measuring the time delay on the oscilloscope between the 1st tooth trigger & coil firing signal and converting to degrees at 1,500rpm gave me a 1st tooth angle of 70.5°BTDC. 0.5° closer than I had measured with the timing light.

1st Tooth Offset Determination. Note the simulated VR signal

With the foundation settings correct in the Microsquirt I then proceeded to map the ignition angle error across the engine speed range to build up some data and understand what the exact nature of the error was. It was only when I actually wrote the error values down that I discovered that the errors were consistent in terms of time throughout the engine speed range. This led me to wonder if this was something that could simply be corrected for in the calibration by adjusting the spark hardware latency offset setting. I had not used this previously as I had understood that it was to be used to correct for any delays which might exist within external hardware and since the errors I had been seeing were from within the Microsquirt itself, I ignored this feature.

I made some small adjustments to the latency offset and rechecked ignition timing across the speed range each time until I was happy that the measured ignition timing was consistent with what was being demanded.

Voltage Reading
It was actually quite straightforward to fix the battery voltage reading error within the calibration. I used a digital benchtop power supply to vary the voltage supply to the ECU & noted the voltage readings within the ECU. I quickly found that the different voltage readings depending on if the voltage was increasing or decreasing was being caused by the smoothing function which I had set quite high initially. Once the smoothing was removed, the ECU voltage readings tracked consistently all the time but were offset slightly from the supplied voltage.
I used the measured error to determine new values for voltage at max & min ADC to change the voltage reading calibration which brought the voltage readings in line with the supplied voltage.

Coil Dwell Time
While testing and characterising the ignition coils using the controller’s output test mode to drive the coils, I found that the measured coil dwell tended to be longer than what was being demanded from the ECU by a factor of c.1.14. This did became a little worry at the time but I have since noticed that the error appears only when controlling the coils in the output test mode. When the engine is running (or simulated) the measured dwell time matches what is being demanded by the controller and so this became a non-issue.

Ignition Coil Characterisation
A major unknown in the ignition system was the dwell time required for the ignition coils.

First, the standard MC22 RR(R) ECU was mapped in order to determine what dwell times it was requesting at different engine speeds and then compared against how the Microsquirt code handles dwell.
Looking at the dwell times that were being requested by the standard ECU and how they changed as engine speed increases gave the impression that the coils may be performance limited at high speed as the dwell time at 17,000rpm is significantly shorter than at 5,000rpm for example and if the dwell being provided at lower engine speeds is necessary for good coil performance then it would mean that the coil is not getting fully charged at higher engine speeds and ignition performance may be compromised.

This observation prompted an investigation into trying to fit some higher performing pencil coils from a more modern machine to try and get consistent ignition performance throughout the speed range. The biggest issue was and still is finding coils which will physically fit in the MC22 plug bores. All TCI coils found are too high and protrude quite a lot above the cam cover and foul the radiator fan. CDI coils such as installed in ’97-‘99 Suzuki GSXR600/750s & 2009 Yamaha YZF250 seem to be the smallest coils physically and could be made work but even these are c.10mm longer than ideal for the MC22. The issue with the CDI coils then is that while they can be made work with a TCI ignition system, the charging current is far higher and the dwell times are far shorter than a normal TCI coil and the ECU and coil drivers would need to be capable of controlling them very accurately.
The charging current can be dealt with using an appropriate ignition IGBT specced for the high current & fly-back voltage. I did purchase a number of appropriate transistors which were capable of driving the CDI coils successfully during bench testing.

However it was found during testing that the Microsquirt firmware did not have the dwell demand resolution needed to accurately control the GSXR CDI coils. The Megasquirt firmware can only control dwell to the nearest 0.1ms but the GSXR coil nominal dwell is c.0.3ms so accurate control of the dwell is impossible with the Microsquirt controller. Due to this control limitation, the coil upgrade idea has been parked for the foreseeable future.

Given no alternative ignition coil solution was on the horizon, the standard MC22 wasted spark coils were tested to characterise them and ensure they were being driven properly by the ECU. The coils are nothing special for the MC22 as one might expect for an engine that was being asked to rev higher than most other engines at the time. They are TEC MP08 coils which seem to have been the standard Honda wasted spark coil of choice during the 1990s.

A current clamp was connected to the oscilloscope to observe how the charging current increased with dwell time & determine the optimum dwell time for a range of battery voltages to provide consistent performance. Observing the way that current draw increased with time it was decided to limit the charging current to 2.75A. The standard ECU does not correct for battery voltage and dwells the coils for 6ms at idle and up to 4,000rpm. As can be seen in the current trace below, this level of dwell overcharges the coil and dwell times could be significantly reduced without too much of an effect on ignition performance. Reducing dwell times would also ensure the coils are performing consistently across as wide an engine speed range as possible. At 12V, the dwell time to 2.75A is 2.5ms and even at 10V there is no sense in dwelling the coils for more than 4ms although it does not reach 2.75A.

TEC MP08 Primary Current at 12V Supply, 6ms dwell

This investigation showed that as long as battery voltage is kept above 12V there would be no reduction in ignition performance across the full engine speed range. Another benefit is that by keeping the dwell as low as possible at lower engine speeds, this would reduce the load on the charging system compared to the standard settings. Also the old adage, “leave well enough alone” holds true as there is no point in chasing the COP coils option when there is nothing suitable on the market at the moment for reasonable money. For a bigger engine it would be worth it purely to free up some space and provide the option for sequential ignition at a later date.

While getting all this information took a lot of time and investment in new equipment, it is worth it to ensure that the basics of the system are working correctly otherwise it would make future calibration more difficult.
See less See more
  • Like
Reactions: 1
Idle Valve

One of the things that was bugging me about the whole install was the fact that because I had converted the carburettors to throttle bodies and disabled the choke, cold starting was still a bit of an issue. There was a fine line between setting the throttle stop such that the engine would run when cold and still not idle massively high. I had got it to a point where it would idle at c.2,000rpm when hot but when cold it would struggle to life & I couldn’t touch the throttle until a reasonable amount of heat had built up in the engine. It was ok for the short term but it wasn’t good enough for a road engine so I started looking into getting some form of idle control implemented.

As most idle control valves are based on a stepper motor driving open the throttles when cold I began to look at these. I contemplated mounting a stepper motor to the throttle bodies to drive the throttle stop screw in and out so that I could vary the closed position depending on coolant temperature. The issues with this were the placement of the stepper motor & also the stepper motor drive. The Microsquirt does not have a stepper motor output so I would need an external unit to convert the PWM output of the Microsquirt into something that could be fed into a stepper motor. Space constraints won out in the end. The thermostat housing is located pretty much exactly there the motor would need to be mounted and I had already moved the thermostat housing as much as possible just to get the fuel rail to fit.

I also considered a mechanical system with a thermostat that would retract a plunger as coolant temp rose and close the throttle more but the same space constraints also killed that idea.

I then thought that I could bleed air past the butterflies by using the carb synch nipples that I was already using to measure MAP from. Having air leaking in here results in rough running on a carbureted system but with the FI system I would have the ability to add fuel to compensate and make use of the additional air being drawn in. A solenoid valve could be driven by PWM directly from the Microsquirt to regulate the flow of air past the butterflies and the MAP sensor could be T’d in between the solenoid & the split to all the ports so that MAP could still be sampled in the same way as before.

After a little research I purchased a Bosch canister purge valve used in many cars and a selection of silicone hose & T pieces to plumb in the system. The diagram below shows a schematic of the plumbing I ended up with.


The idle valve so far has only been tested for a very short time on the bike but so far it is looking very promising. When the engine is warm, the difference in engine speed between valve closed & valve open is 1,000rpm and I can also use the valve to control to a target idle speed in closed loop mode. It certainly needs more running to dial in the settings but it is a big step in the right direction.

Wiring Harness Issue 02

Given the addition of an idle air valve, I needed to run the signal wire from the ECU to the injector harness to drive the valve so that required a small change to the ECU harness. Small changes spiral quickly with me though and this was no exception.

Even though I had spent some time this time last year tidying up the wiring harness, I had become pretty unhappy with it as time went on. In diagnosing a faulty main relay some months back I became sceptical about the quality of connections I had made in the harness. Since most of these connections were made at the very beginning of the project when I had little experience and were added on a “when needed” and “where is accessible” basis, I did not have a clear idea about how reliable they were and where the connections were physically located within the harness. The harness was also far bulkier than I cared for and was generally not up to my current standards.

At the time I started to doubt the harness I had decided that I would build a completely new main bike harness incorporating the ECU harness and dash and a few other upgrades that would make the bike a bit more modern so I thought the old ECU harness would do the job until I got the main harness built.

However, having to run a single wire along the harness presented the perfect opportunity to tear it all apart and start again to make the ECU harness tidier and more reliable until the upgraded bike harness would be ready to drop in. The main aims for the new ECU harness were:

  1. Remove all unused wires from the harness. Previously I had just chopped the unused wires back but they still ran within the harness up until the front of the pillion seat.
  2. Replace any wires within the harness which were deemed overkill for the level of current they are expected to carry.
  3. Replace all previously spliced wires with new more reliable spliced connections
  4. Tidy up the power connections around the fuse box & add proper relay connectors to make removing and replacing components more foolproof & straightforward
  5. Tidy up how the external coil driver box interfaced with the harness
  6. Mainly use the process to create a complete & up to date harness drawing and pinout chart including connector specs, wire routing, wire sizes, splices & splice locations and harness lengths. All this would take more time now but would really help with any fault diagnosis and harness alterations in the future. It would also get me one step closer to a full set of documentation to capture all the alterations & modifications I have made to the bike throughout this project.

While drawing up the new ECU harness I decided to change the way injector power was being delivered to enable me to fit in the idle valve wiring in the same connector that was already in the harness. Previously, each injector bank (2off) had its own fused power supply so I merged these two supplies into one which also provided power to the idle valve and allowed me to use a 4-way connector between the ECU & Injector harness. That change did however force a rebuild of the injector harness even though I was reasonably happy with that. At the same time it was a good excuse to make a few nice changes and make it altogether more robust.

First was to remove all the wires from the ECU Ampseal connector that were not being used. Also any signal wires which had been cut and spliced previously were removed and replaced with fresh wire. The harness was then laid out and laced together with the branches coming off the main trunk at the correct locations. Then connectors were added and the whole lot wrapped. Installed on the bike it is now far easier to install & remove the harness and it looks much tidier also.

Laced harness

Installed harness

While that all looked good, I felt that wrapping the harness tended to twist the bundle a little when wrapping and the wrap was also a little untidy around the areas where the branches broke away from the main bundle so for the Injector harness I took a slightly different approach. I sleeved the wire bundles with DR-25 and then covered the joints with adhesive lined heatshrink to provide some rigidity. I also redesigned the harness so that the main bundle would be tied to the throttle bodies just below the airbox rather than onto the fuel rail where it was previously.

Completed injector harness

Installed injector harness

Installed idle valve

See less See more
  • Like
Reactions: 1
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 I was able to keep the board size down to 25mm x 12mm.

Single sided PCB 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.
See less See more
  • Like
Reactions: 1
I've been riding the bike regularly over the last few weeks and improving the calibration as I go along. So far the bike is reacting really well to the changes. Power delivery is very good and any flat spots or fluffy areas in the fuelling are very quickly dealt with.

My method of calibration to date is quite simple but effective. I interrogate the datalogs and assign data points to the appropriate bins in the fuel table. I then filter out all cold and transient points to leave only the points which were collected when the engine was up to temperature and in a steady state condition. I am pretty aggressive with the transient filters so that only real steady state points are used. The average lambda in each bin is then compared against the target and the appropriate correction applied to the fuel table. While this works well and will get the fuel table 99% of the way there, I need to get it on a steady state dyno in the next few weeks to get it spot on and dial the spark table in.

As was expected, the charging system needed a look to deal with the additional electrical load the EFI system was putting on the bike. The original reg/rec was not able to keep up with charging the battery when either the dipped beams or main beams were switched on and I had noticed it getting quite hot after a night-time ride so the likelihood was it was going to fail sooner rather than later. I had purchased a new Shindengen FH020AA mosfet reg/rec to replace the standard unit so retrofitted it in the same place as the original. The FH020AA is quite a bit bigger than the OEM reg/rec but still fits under the fairing in the same place. Just... One additional hole had to be drilled in the mounting plate to accommodate the wider hole spacing and the standard connector was chopped off the loom and replaced with the 2 new connectors.

FH020AA vs OEM mc22 reg/rec

Battery charging voltage is rock solid now with the FH020AA and the reg/rec just gets a little warm as opposed to hot. Although, since the reg/rec does not magic up extra power from the stator, the bike is still a little short on electrical grunt. It isn’t so bad to the point that there is a risk of running the battery flat during a long night-time spin but rather means that battery voltage with the lights on tends to hover around 12V as opposed to 14V. As such, I need to find a way of reducing the electrical draw on the battery of which the most likely candidate is modernising the headlights, given they represent the biggest current draw on the electrical system. The method is still TBD.

On the brakes side of things, my suspicions that the tube brake fluid reservoir may not be up to the task when abusing the brakes a little have been confirmed. As the brakes heat up there is nowhere for the fluid to expand and it results in the pistons not being able to return to their correct position. Another look at what reservoirs might suit the installation without causing clearance issues came around to taking a chance on a Triumph 675 Daytona reservoir & mounting bracket. This prove to be a nice tidy installation which sits lower than the GSXR reservoir and so has no clearance issues with the fairing or mirror stay bracket. It has also proven more reliable than the hose reservoir under heavy brake use so I will call the front brake setup complete.

Front Brake Reservoir
See less See more
Headlight Upgrade

After much deliberation, research and changing of mind back & forth, the modernised headlamp solution I settled on was to install LED bulbs. The options were either HID or LED but eventually the LED won out due to being actually able to package the ballasts in the front of the bike, being more adjustable for beam pattern and having lower overall current draw although they were almost twice the cost of the HIDs for a quality set from a reputable manufacturer.

Each H4 LED bulb is rated at 20W compared to the 60W/55W rating of the standard halogen units so, in theory, a set of 2 should have freed up c.6A capacity which would be more than enough to cover the additional load the fuel pump, lambda heater & injectors placed on the system. Before installing the LEDs, I had measured a charge current of -7A (draining battery) at idle with dipped beam on and -6A at idle with main beam on. With the LEDs installed, charging current was measured at +3A at idle with both dipped and main beams on, leaving plenty of headroom on the charging system.

The physical installation of the bulbs was pretty straightforward. The heatsinks on the back of the bulb make it all a bit bulkier than the standard setup but the heat sinks are well hidden given they are black in colour. The two small ballasts found a nice place to sit either side of the clock stay bracket where they do not interfere with anything else. Getting the beam pattern right took the most time but the adjustment in the bulb housings worked a treat. There is also the advantage that the LED headlamps are quite a bit brighter than the halogens which makes night-time riding that bit more enjoyable.

EGT Instrumentation

I had also put a line in the sand for getting the engine calibration dialled in on a dyno for mid-February. That meant tidying up some small loose ends on the electronics side. I wanted to try and get EGT measurement implemented for running the bike on the dyno so that I would have a second metric to determine optimum fuelling and make sure port temps were under control. I could have done this in such a way that the EGT values would be displayed on a screen live and I would simply keep an eye on them while running the bike on the dyno.
However, there would be several advantages to being able to feed the data into the ECU so that it could be logged with all other engine parameters. Unfortunately, due to the limited I/O capacity of the Microsquirt, the only way of getting 4 additional data streams into the ECU would be via CAN-Bus. That meant using a microcontroller to read the EGT data from thermocouple amplifiers, arrange the data into a CAN message in a format that the Microsquirt could read and load the message onto the bus.

I played around with a CAN shield on an Arduino Uno first to get the data processing & CAN code working together properly. Getting my head around the Megasquirt CAN-Bus protocol was the most difficult part of the task as it is quite different from the standard protocol that I am used to. Once I had verified that the hardware and code combination worked, I designed a single PCB which used an Arduino Micro as the controller and contained every other peripheral that I needed to make the board work on the bike. The finished board is quite large as I was conservative about component spacing to allow hand soldering of components and only used one side of the board. If I was to make something similar again I would tighten up the component spacing, use a microcontroller with inbuilt CAN-Bus functionality and place components on a dual layer PCB.

EGT CAN-Bus Module Board

A protective case for the EGT CAN-Bus module was 3D printed.
Cased Board

On the instrumentation side, I installed 1.5mm K-Type thermocouples as close to the exhaust ports as possible without interfering with the fitment of the radiator or making exhaust fitment difficult. The small diameter probes would mean that I could get shorter temperature stabilisation but at the expense of thermocouple life. This was determined to be a reasonable compromise as the main purpose of the thermocouples was to monitor tempemperatures during dyno runs and short road tests only. As they would not be used for long term control, durability was not deemed critical.

The exhaust headers had to be removed to drill & weld the thermocouple compression fittings in place. While they were off I took the opportunity to rectify the much annoying (to me) issue of the exhaust header flanges bending from the studs being torqued up. The problem with the Honda design is that the flanges do not clamp between the nut and the cylinder head. Instead the flange is designed to be clear of the cylinder head when fully torqued up so the flange has a tendency to bend around the header collar as the studs are being torqued up. Maybe this would not be a problem if the specified torque was always adhered to but on both sets of headers I have owned (OEM & TSR), the flanges had been bent previously. Bent flanges mean that you end up needing to put more preload on the stud to achieve the same torque which only amplifies the issue and risks stripping the threads in the cylinder head. The studs also bend as the nut tries to sit flush with the flange and that can make removing the flanges a pain.
To try and combat this issue, I had a new set of flanges laser cut from 316 stainless steel plate. The new flanges are thicker (8mm vs 6mm) and the profile of the flange is also beefed up around the outer edge. These changes have the effect of making the flange approx. 3 times more resistant to bending at its weakest point than the TSR flange.

Thermocouple Tip Position In The Exhaust

Thermocouples & Flanges in Place

Dyno Calibration

With the EGT measurement equipment in place it was time to get the bike on the dyno and dial in steady state fuelling.
The dyno was an eddy current braked dyno which allowed me to hold whatever speed and load required to dial in each fuel map bin. The only downside was that as it was a car dyno designed for much higher power vehicles, it was impossible to hold the engine at the lower speeds and throttle angles. Therefore only the area above 4,000rpm & 10% throttle angle could be successfully mapped. As this represents the area where the majority of riding is carried out then that wasn’t much of a problem.
After the fuel mapping was carried out, an attempt was made to see if there was any additional power to be had in the ignition timing. The bike seemed to be very insensitive to part throttle, steady state ignition timing changes although this can be very difficult to judge on a chassis dyno, especially one with quite high inertia.
I carried out a few full throttle pulls from 8,000rpm to 16,000rpm with varying ignition timing to determine what effect it had on engine power. Baseline timing was the Bluefox ECU timing. I found that with a global adder of -2°, there a negligible change to engine power. Both +2° & -4° global ignition timing offset produced measurable power losses across the engine speed range. Given that the Bluefox ignition map is c.1.5° more advanced than the Honda curve in that region, it suggests that Honda did a pretty good job of mapping the engine to MBT timing from factory!

For those of you that care about these things, the final figure was 37bhp at the rear wheel at 14,700rpm. I hadn’t expected any gains over the standard bike with EFI and given the engine is in an unknown state of repair, I consider it a good result. I never dyno-ed the bike before the conversion and even if I did, the comparison wouldn’t have been possible on the same dyno and so not comparable.
What did become very apparent from studying the power & torque curves was that the original 18,000rpm rev limit is totally unnecessary as power drops off quite sharply after the peak. There is no point in going faster than 16,000rpm in any gear as there will be more torque available in the higher gear above that engine speed. As such I will be imposing a soft limit at 16,500rpm and a hard limit at 16,700rpm, with the aim to shift at 16,000rpm.

Calibrating the Bike on the Dyno

The dyno run completed my base fuelling & spark for a given barometric pressure and manifold air temperature. All other starts and runs from here on out will help me to apply appropriate air temp & barometric pressure corrections and dial in the transient fuelling corrections.

I also took the bike out on a track day at Mallory Park in the cold, wet & snow recently to see how it would manage. I had also hoped to use it as an opportunity to get a lot of datalogging done to dial in the transient fuelling but unfortunately my brand new lambda sensor died within minutes of it being fitted so I didn’t record any fuelling data throughout the day.
Saying that, the bike rode really well on the track and throttle response & power were as good as I could have hoped given the lack of any form of transient fuelling corrections.

See less See more
  • Like
Reactions: 1
very interesting and there we have it - the engine can spin to 18000rpm but it is completely pointless (unless you want the ladies to take off their panties)
I love it when you make my head hurt Thomas,,,,
"There is no point in going faster than 16,000rpm in any gear as there will be more torque available in the higher gear above that engine speed",,lol,, yup,,ain't that the truth, the redline is the place you go if you want to spend $600 replacing the valves you just bent.
My seat of pants "big white dyno" testing in 2015 told me there aint no power after 16,200 indicated rpm with Jade cams, I'm geared to take advantage of that now, 15,000 indicated rpm in 5th will be 110 mph, & if it pulls 6th,,,,,,,,,,,,
Haha! Yeah I had long suspected that was the case but now I have definite proof. There is just too much friction to overcome at the higher engine speeds. I am sure you could help it out with cams that were optimised to the higher speeds and there are a few things you could do to help the friction but none of those are cheap.
Hey Thomas,

Great build man, I've been following your thread for a while and am looking to replicate a lot of what you did for my own build (megasquirt, machining the carbs to fit injectors, using the stock pulse generator, etc.). I was wondering if you could share your .msq file. Would really save a lot of time with the tuning.
Question, what sort of EG temps were you getting and how even was it across all 4 cylinders?
Question, what sort of EG temps were you getting and how even was it across all 4 cylinders?
  • Like
Reactions: 1
wow, 1 is cool. is 4 similar to 1?

I'm having issues with 3 being cooler for me. But i'm thinking it's spark.
wow, 1 is cool. is 4 similar to 1?

I'm having issues with 3 being cooler for me. But i'm thinking it's spark.
#4 runs even hotter, actually, #1 is #2, I swapped the egt probes around to see if the gauges read close to the same.
After I had slowed & turned off the track, things went belly up, I had a valve seat drop out in #3 (there was no coolant left after popping a hose, where in the run ? I don't know)
Seeing as I only have one carb, things of the weird kind happen in the plenum , EFI would help solve that ?
Question, what sort of EG temps were you getting and how even was it across all 4 cylinders?
At steady state I would generally see between 700-800°C at WOT and higher engine speeds. Under transient conditions I have seen spikes up to 850-880°C as I back off the throttle at higher engine speeds. Generally the 4 EGTs are within c.40°C of each other. That is with batch fire injection & no fuel trim applied.

Tiny, what units are those temperatures in? They would be very high for Celcius but seem quite low for Fahrenheit. Then again you are running methanol. Any idea what sort of lambdas you are seeing?
261 - 280 of 296 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.