Last issue in Project Honda Insight, Part 10 I started wiring-in the MoTeC M400 programmable ECU, working first on the straightforward connections of the MAP, intake air temp, coolant temp and throttle sensors.
The next step was to connect the injectors and ignition coils.
The M400 has a ‘test’ function that allows each injector, and each ignition coil, to be test-triggered. So like the input sensors, these can be tested immediately they are connected, thus ensuring that the wiring is correct before going to the next step.
I connected the injectors, being careful to wire them in the correct 1-3-2 firing order, and then set the required ECU parameters As the Honda injectors are of the high impedance type, this was straightforward – no ‘peak and hold’ settings were needed. Then, when tested, the injectors clicked encouragingly.
Next were the coils. The Honda uses smart coils, one on each plug, that run transistor drivers inside them. I made the connections in the appropriate firing order, then checked the parameters already set in the M400 for the coils. Because the M400 is second-hand (it was previously used in a jet ski), it already had data inserted under the coil settings. I left that data as it was (bad mistake!) and then tested a coil.
The coil immediately melted. Literally melted, as in the plastic deformed.
Rather stunned at the ease with which I’d just destroyed a coil, I went back to the ECU settings. It was then that I noticed the ECU had been set to a dwell period (ie the length of time that the drive transistor in the coil is switched on) of 5.8 milliseconds. This was obviously too long… long enough to fry the coil.
I then measured the dwell time of the coils at idle on another Honda Insight – to find that it was 2.6 milliseconds. Armed with this information, I reset the dwell in the M400 to 2.6 milliseconds. Having sourced another coil, I again tested the output.
I did so – and the replacement coil melted.
This was becoming seriously unfunny.
Just guessing now, I set the dwell to 2 milliseconds and tested (yet another) Honda coil. It fired fine – and ran completely cool.
I then tested all three coils, and they ran without problems.
But I was a bit uneasy about all of this – why did the coil melt when run at the factory dwell time…. and had then been quite cool with dwell reduced only a little?
(In this narrative, I am now going to temporarily skip many other wiring steps that I actually did next – and instead, go straight to the point where I tried to start the car.)
With everything wired-up and checked, the car wouldn’t start – there was no spark at all.
What was wrong now? I didn’t know. In fact, there was a lot about the ignition system that I didn’t understand. Was I under-driving the coil transistors? Or over-driving them? Or was I reaching an internal current limit? With no data available, it was all a bit hit and miss.
So I could go on replacing Honda coils and stumbling around in the dark – or I could fit a new system with known coil characteristics, and a well-proven ignition module. I chose the latter approach, using all Bosch parts.
New Bosch ignition system
Using data sourced from Darren Todd’s page at http://www.dtec.net.au/Ignition%20Coil%20Energy%20Testing.htm, I selected three MEC-723 Bosch coils. Compared with common coils (eg the Bosch 717 or 718) used in many aftermarket management systems, the MEC-723 coils have almost 75 per cent more energy per spark discharge. Each coil cost AUD$75.
These coils are driven from an ignition module normally used in Volvo models 960, S90 or V90 (3 litre and 2.9 litre engines) – Bosch part number 0 227 100 203. This module is a three-channel design. The module cost AUD$285 and the wiring plug to suit, $39.
The ignition module is mounted on a heatsink. This heatsink was formed from a large audio amplifier heatsink that was cut down and reshaped to suit the ignition module. So that there is plenty of airflow around the heatsink, it is mounted on stand-offs.
The heatsink is attached to the inner guard. Initially it was hard-mounted, but then I realised that the slight curve of the guard was tending to twist the heatsink. You certainly don’t want the ignition module twisted, and so I added rubber mounts to absorb the change in angle.
The coils are mounted above the turbo – not ideal, but one of the few places left in the engine bay with enough room! To protect them from turbo heat, a stainless steel heat shield is positioned beneath the coils. (This is in addition to the sandwich-type heatshield over the turbo exhaust housing.)
Short ignition leads connect the coils to the spark plugs.
At a dwell time that gives a peak coil current of 7 amps, the coils and module run quite cool. At this current level, there should be a substantial 120mJ of spark energy available to each plug – more than some CDI systems develop.
Camshaft position sensing
In order to sequentially run the ignition coils and injectors, the M400 needs to know when the piston of cylinder #1 is at Top Dead Centre on the firing stroke. Because the crank rotates twice for every time in which this situation occurs, a sensor on just the crank is insufficient. Using a sensor on just the crank, the ECU wouldn’t be able to work out whether TDC was being achieved on the exhaust stroke – or whether it was occurring on the power stroke. Instead, typically the crank is used to provide only engine speed information, and the camshaft is used to provide TDC-on-power-stroke information.
(There are exceptions to the above statement where special tooth patterns are used on the crank wheel and the ECU is programmed to allow two rotations of the wheel per TDC sensing. However, in most cases this is not done.)
As standard, the Honda runs a crank position sensor and two (not one) camshaft position sensors.
The crank system is straightforward – there are 12 evenly-spaced teeth working with a magnetic sensor. The higher the frequency of this waveform, the greater the speed of the engine. The MoTeC M400 ECU can be easily set to recognise this pattern and then use it appropriately.
However, the Honda cam is much less straightforward.
The cam has two teeth cast into it, spaced at 120-degree intervals. (Imagine three teeth placed evenly around the camshaft, in the shape of a ‘Y’. Remove one of the teeth and the result is that the two teeth form a ‘V’ shape with a 120-degree included angle.)
The two magnetic cam sensors are placed at the same 120-degree interval as the two cam teeth. Therefore, for one rotation of the cam, each sensor has two signal outputs. And at just one point in the rotation, both cam sensors output simultaneously.
But can the M400 read this signal – either from TDC#1 cam sensor, from TDC#2 cam sensor, or from both? The answer is ‘no’. Reading from one sensor, it will see two pulses per cam rev. But which one is the TDC pulse? – it doesn’t know. Reading from both sensors, it will see four pulses – but again it can’t make sense of it.
The widely suggested method in this situation is to grind off one of the two cam teeth, and use the output of only one sensor. That would give just one pulse per cam rotation. However, to do this would require removal of the cam from the engine – a fairly major job when no other internal engine mechanical work was being undertaken.
My first thought was to parallel the cam sensors. Then the output when both sensors were activated would be a greater wave amplitude (height) at that time – greater than when only one or other of the sensors was being activated. However, sensing just this ‘big wave’ was hard – especially since the height of all the waves grows with RPM.
I then approached eLabtronics, an Adelaide-based company that we at AutoSpeed have been working with for over 14 years.
Miro Kostecki, eLabtronics technical director, was tasked with coming up with a module that would produce an output only when both cam sensors were triggered. Making it more complex was that the module had to be able to react very quickly (any appreciable delay would cause timing to become more and more in error as engine speed went up), live in an electrically harsh environment of spikes and noise, and be reliable.
Miro developed an elegant and simple circuit using a buffer chip and diode logic. It was designed to output a square wave of 5V, but only when both cam sensors had an output of greater than 0.6V.
This MoTeC software screen grab shows the signals as the ECU sees them. The crank signal (yellow line) shows the waveform of the magnetic sensor – 12 teeth (so 12 pulses) per crank rotation.
The blue line shows the square wave output of the Miro Module.
If you count the crank output pulses, you’ll see that there are 24 pulses between the square waves, confirming that the module is outputting one pulse per two crank revs – ie one pulse per firing stroke of cylinder #1.
To read these signals, the ECU needed to be configured to read the crank signal on the falling edge, and as coming from a magnetic sensor. The cam signal needed to be configured to read the rising edge, with the sensor termed for the ECU a Hall Effect sensor.
Configured in this way, the ECU could read the standard Honda sensors perfectly.
The sorting of the cam and crank signals, and developing an ignition system that has a powerful spark but should also be durable, were two of the greatest challenges in the project so far.
Next issue, I take on the third major challenge in this area – measuring the required Crankshaft Index Position (CRIP) number that the ECU needs to have before it can fire the injectors and coils at the correct time.