Scope Creep (Bimota DB2 2v 944 and custom ECU)

I've been thinking over what you wrote there and I also agree something is odd. Mostly because I was lost on page one but I am enjoying your thread and posts and they are interesting reading. Good luck (y)
 
I've been thinking over what you wrote there , and I agree , there's something odd .

Given how good ( and accurate ) modern injection / ignition systems have become , I can't think of any sensible reason why fuel
should ever be injected to closed inlet valve .

I suspect the answer is in the ECU - TDD made these ECUs in limited numbers, and mainly for Italian Group-N rally cars (as I understand), so they wouldn't have been designed with V-twins in mind (bearing in mind that there were only 148 or so Bimota DB2SR's produced with these ECUs). I suspect they would have more normally been used with banked injectors across multi-cylinder car engines (banked, because there are only two output channels for IGN and INJ).

Perhaps the code in the firmware just didn't accommodate adjusting the fuel pulses between the channels (because, as we know - ignition timing is very crucial, but fuel delivery is not), because the ECU was generally used on cars with more cylinders that output channels (I'm guessing - I don't know for sure).

It's going to make the next combustion stroke over-rich , surely ?

Depends on how you look at it, I suppose.. but it would be accounted for in the map once tuned. Bear in mind that a carburettor is *always* spraying fuel into the port, even on a closed inlet valve - it's the same thing, isn't it?

Though, I agree it just must be more efficient to time the spray to an open valve - and that's something that the custom ECU *can* do for half of the load, but for reasons mentioned previously (no cam sensor), it'll be squirting twice in each engine cycle, so half will be still against a closed valve. (y)
 
I've been thinking over what you wrote there , and I agree , there's something odd .

Given how good ( and accurate ) modern injection / ignition systems have become , I can't think of any sensible reason why fuel
should ever be injected to closed inlet valve .
It's going to make the next combustion stroke over-rich , surely ?

Seems like throwing out the baby with the bathwater !

BTW - Keep up the great work and the fascinating posts .... really enjoying it ...... (y)
I think H-D developed constant firing just to give their engines a chance 😁
 
Bear in mind that a carburettor is *always* spraying fuel into the port, even on a closed inlet valve - it's the same thing, isn't it?

Hmm .... not sure if I agree on that point ..... I'm still ruminating
Traditional carburettors rely on the Venturi effect to work , which depends on air flow .

I would think that no air flow means that no fuel leaves the carb ( regardless of needle position )
then on the induction stroke , the inlet valve opens and the descending piston creates suction ( air flow ) .
I watched someone doing artwork with an air brush , and no paint comes out without the air flowing .

On a side note , I was binge watching some car restorations over the weekend .....
" I found an Italian supercar in a barn " .... you know the sort of thing .

Those TDD ecus came up a couple of times , and they seem to be in the "Rocking Horse Poo" category ,
not least because salvaged units rarely work ( I think they tended to burn out injector drivers on the board )

There's a firm in Florida that have started prototyping their own "copy" boards
and claim to be able to take all the data off the old units and write it to a new one .

So it looks like it is do-able ..... ?
 
Those TDD ecus came up a couple of times , and they seem to be in the "Rocking Horse Poo" category ,
not least because salvaged units rarely work ( I think they tended to burn out injector drivers on the board )
Interesting!

The ignition and injection drivers on them are fairly standard IGBT or MOSFET components, so easily replaced if they fail.

Aside from the one on the DB2, I have another two TDD ECUs sitting on my desk right now - condition unknown. Not the same version as used on the DB2 unfortunately - I think these were from a V-Due, and probably use a different microcontroller and software (though, I've yet to open them up and investigate).




There's a firm in Florida that have started prototyping their own "copy" boards
and claim to be able to take all the data off the old units and write it to a new one .

Ultimately, that's what my little project is doing also - a plug-and-play replacement for the original TDD ECU
 
Ultimately, that's what my little project is doing also - a plug-and-play replacement for the original TDD ECU

More power to you , that's what I say (y)

I think there is rich seam there , just waiting to be mined .

Some of those restoration fanatics spend silly money on just the electronics parts alone ,
but in some cases , the smarter guys hunt down the very same unit that was used on a way cheaper vehicle
eg. Fiat / Lancia / Peugeot / Renault .

Example : The hydraulic slave unit that works the F1 paddle-shift gearbox on Ferraris
....... was also used on a mid-priced Lancia !!!

On my own bike , all of the sensors needed for the ecu are actually BMW parts , except for the throttle sensor ,
which is made by Weber

I'd like to be able to post some links to the cars that needed those TDD units , but I just watched so many videos ,
and I only picked up on this thread again this morning ..... sorry !
 
More power to you , that's what I say (y)

I think there is rich seam there , just waiting to be mined .

Some of those restoration fanatics spend silly money on just the electronics parts alone ,
but in some cases , the smarter guys hunt down the very same unit that was used on a way cheaper vehicle
eg. Fiat / Lancia / Peugeot / Renault .

Example : The hydraulic slave unit that works the F1 paddle-shift gearbox on Ferraris
....... was also used on a mid-priced Lancia !!!

On my own bike , all of the sensors needed for the ecu are actually BMW parts , except for the throttle sensor ,
which is made by Weber

I'd like to be able to post some links to the cars that needed those TDD units , but I just watched so many videos ,
and I only picked up on this thread again this morning ..... sorry !
I'll bear the Ferrari tip in mind, thanks 😁
 
Time for an update - I ordered the last set of boards sometime in July, and they arrived from China somewhere around mid-August. It doesn't take long to solder in the components that aren't already surface-mounted by the fabrication factory (the connector, ignition transistors IC sockets and a few other components that are cheaper to hand-solder than to have the factory place). Here it is - the new version is in red, the previous version in green.



Connecting it up to my test rig in order to bench test, showed that it worked, but I did notice that there was more retardation than previous versions - you can see this as the yellow series in the chart below, which is a test run with the ECU set to fix ignition at TDC, and the test rig measuring the horizontal ignition pulse. Any retardation from TDC is either measurement error, or an issue with the ECU.



Because the parts of the circuit that deals with ignition hadn't changed at all, I wasn't quite sure what to make of that, so I decided to hook it up to the bike, only to find that it wouldn't start. It didn't take long to figure out that neither of the plugs were sparking. Very odd indeed. After a bit of troubleshooting I came to the conclusion that both of the ignition transistors that I'd soldered onto the new board were duff - (that's the two components sticking up at the top-left and top-right corners of the red board in the picture above, just underneath the connector).

Trying some more of those transistors, it would seem that the whole batch that I had were the same (it was a new batch that I'd ordered from China some months previously). They must have been faulty in a way that sort of allowed the test workload to work (badly), but not enough to discharge the coils correctly. Very peculiar - they all went in the bin.

To confirm that hypothesis, I placed an order for some more of those ignition transistor components from a reputable UK supplier, and re-ran the bench test, which can be seen in the red series:



This is *much* better - in fact, much better than even the previous two versions of the board. Popping the ECU onto the bike, it started and idled from cold on the first buttonpush. Quite happy with that.


This experience has got me thinking more about the test harness that I'm using for bench testing at the moment, because I have a strong suspicion that a lot of the apparent retardation in the charts above are coming from measurement errors.

So after some thought, I've designed a new rig, based on a much faster microcontroller (about 40x faster than the Arduino microcontroller that I'm currently using) and improved code for detecting and measuring the pulses.

Although I have this running as an ugly prototype, I really need a few additional things before I can get it hooked up to an ECU for testing. In the meantime though, initial testing of the prototype suggests that it can measure up to about +/- 0.01 of a degree at 2000rpm and +/- 0.05 of a degree at 9000rpm, which is far better than before, and it'll be interesting to see what effect it has on these test results. Perhaps I'll write that up in a few weeks time once I have all the components for final assembly of the new test rig.

Mike
 
Last edited:
Yes, very much so, there is always an element of satisfaction when you solve each problem that presents itself, and while it's definitely good to see it slowly come together - at the moment, I think it's largely for academic interest, otherwise I'd have probably put more effort into doing it sooner/faster!
 
Well. you've got all winter to sort this now.! ( A Scottish winter too!)
Expect to see you blasting down some Highland roads on this come next year
I cant say I understand all the electronics but I can certainly appreciate the thought and perseverance going into your little 'project'
All the best from wet and warm S.Wales!
 
Probably about time that we closed off this particular story. Last year, I took the bike to the local dyno shop (again) to start getting the fuelling tuned in a little better (configured running the original Bimota/TDD ECU and a Power Commander V). The plan was to dial the PC in, then use the data from it to burn a new EPROM for the original ECU (and thereby remove the need for the PC, and also use the fuel map data on the homebrew ECU).

The Dyno run confirmed that my initial PC setup wasn't too far off the mark - (I'd applied a fuel pulse modifier based on volumetric ratios of the big bore conversion, and also adjusted for the faster flowing injectors).

However - during the course of the dyno run, it became clear that the Power Commander unit was showing that we were having dropouts on the injector pulses - the PC measures RPM by counting the injection pulses, and on occasion, particularly at high revs, it was intermittently dropping to zero RPM.

I would later confirm this same thing on the road, though, of course - seeing the numbers with my own eyes during the dyno run made it far easier to understand what was happening than if it had been on the road. It could have been a wiring issue, a power commander issue, or an ECU issue.

After some chin-stroking, and remembering the peculiar 180 degree fuel-pulse pattern that I mentioned in a previous post, I figured that the original ECU was limiting progress, and I had two options - either do more work on the homebrew ECU, for that to become the primary controller, or to fit an aftermarket ECU - one that gave full access and control.

The homebrew ECU was fully operational, but I had observed some electrical noise which was bothering me, and was finding myself with insufficient time to fully understand and learn what the right course of action. When I started researching aftermarket ECUs, I felt that this would probably be the better way.

So - fast forward six months, and the DB2 is now running a MaxxECU device, using a new Fuel Injection loom that I built from scratch over the Christmas period (yikes! - don't ever underestimate how much work is involved in designing and making a robust loom..)



The new loom allowed a few benefits - I could rewire it to accept "normal" relays (the bimota uses the same Italmec relays that the early Ducati's use, that are difficult to obtain these days). The new loom also meant that I could wire the wideband O2 sensor in, as if it was factory fitment, but also, because the MaxxECU did not have onboard transistors for firing the coils, I had to include wiring and connector for an ignition amplifier (similar to the Marelli equivalents that many of us will have on our bikes). For this purpose, I chose a commonly available module, used on many cars and 3d printed a bracket to allow it to be attached to the frame of the bike.



Over the subsequent weeks/months, I set up the new ECU


Helped by a particular party trick of this new ECU, the bike is running beautifully. The DB2 is based on a 900SS engine, it only has a crank sensor (unlike the 851/888 and early 916's which have both a crank and a cam sensor). So the engine management can measure the position of the crank, but has no idea which phase of the engine (compression or exhaust) - so, to be sure - it fires the spark plugs and sends fuel pulses on every crank rotation, which works, but probably isn't the best efficiency.


However - like many of the newer single pickup bikes, the new ECU can figure out the phase of the engine by measuring the deceleration of the crank caused by compression.

So, using this functionality, the bike now runs fully synchronously, meaning that there is only one spark and fuel pulse per engine cycle, and the fuel pulses are accurately timed to the intake opening. Enabling that option for the first time was peculiar, it definitely changed the note of the exhaust, and also made the bike *much* easier to start than it has ever been, and I found I also had to reduce the fuelling by about 10% to get to the right idle and lambda/CO rating - quite a remarkable difference, really. Perhaps it's the only 944 DB2 on the planet running a fully synchronous fuel injection system?

I spent a few hours at a local dyno, ironing out the fuel map, and goodness - what a difference!


Now I've got a decent baseline position for the fuel map, I've been doing some more runs, and it's clear that I've still got opportunity to improve it further. The ECU logs how the engine is running, and can propose auto-tuning opportunities, which I'll investigate through the summer.

What does appear to be clear though is that I'm pretty close to the maximum fuel duty cycle of the current injectors. If I need the engine to get much more juice in the future, then I'm probably going to have to do something dramatic with the throttle bodies to be able to take faster flowing injectors.

For now though, I'm considering this to be the project completed. (Until next time - I've been eyeing up high compression pistons for no good reason...)


Mike
 
Thanks Noobie - It was never a chore - I thoroughly enjoyed the learning opportunity of each stage of the process.. I now feel like I've got an adequate understanding of how fuel injection works at its most fundamental level, which is quite satisfying (though I've no real clue where that level of detailed knowledge will come in handy in the future)
 
Thanks Noobie - It was never a chore - I thoroughly enjoyed the learning opportunity of each stage of the process.. I now feel like I've got an adequate understanding of how fuel injection works at its most fundamental level, which is quite satisfying (though I've no real clue where that level of detailed knowledge will come in handy in the future)
Perhaps not, you never know. It's your approach and determination to problem solving then the deep understanding of how it works that is truly impressive.
 
Mike, glad you got a solution that works. Not only that but you could probably bill yourself as the worlds leading 900ss injection expert ! In any case glad to see the bike being appreciated as all Bimotas deserve to be. Cheers
 
For your dedication I applaude you sir. I've not been on the Bimota forum for some time, but remember reading the beginnings of this epic some time ago ! (y);)

Nice to see you too Welshlamb over here (y)
 
Here's another interesting experiment that I did recently with the DB2. It's a thing that I really didn't need to do, but was interested in what the outcome might be. It's a bit of a technical/mathematical one, but hopefully someone finds this as interesting as I do. 🤓

When setting up the DB2SR ECU, I set the timing of of the fuel injection so that the injectors finished squirting into the throttle bodies 400 degrees after TDC. My logic was that this was a point about a third of the way into to intake cycle - the valve would open midway through the injection event, and the inrush of air would pull the atomised fuel in nice and efficiently.

I figured this from Brad Black's excellent discussion on cam profiles...

1705262661094.png


I'm running ST2 cams on the Bim, so, when measured on a full 720 degree engine cycle (that is, two full revolutions of the crank), using the above data, we can calculate that the intake valve will open at 331 degrees and close at 613 degrees, and the chosen 400 degrees was a point midway between the valve opening and the centreline of the intake phase.

Now, I was recently watching the excellent YouTube channel Superbike Surgery, and Jim has been doing a bit of work on a Bimota SB8R, which caught my interest. Jim was lamenting over the spray pattern of the injectors that the SB8R uses (which are side-fed versions of the same Marelli injectors that the DB2SR, and many other Ducs use).

Later in the video - he was looking at a timing diagram of the Suzuki TL1000R engine - glancing at the diagram onscreen - it dawned on me that the Suzuki was firing the injectors on closed valves, and deliberately so. This started my brain churning a bit.

Last night, I stumbled across this super-interesting article - (click here) - highly worth a read. In summary, atomisation is important for cold starts, but once up to temperature, it is not a significant factor (the valve-open time will decrease as the crank speed increases, meaning that you can never have all of your injection into an open valve, and the ratio of spray to closed valve/spray to open valve will reduce as the engine speeds up - instead - the significant factor is the vapourisation of the fuel as it hits the hot valve. Interesting).

So, of course, that left me wondering: the 400 degrees ATDC setting that I used on the DB2SR was a guess based on what I understood at the time. Knowing what I do now - what should I do? Well - I decided to run a test.

I warmed up the DB2SR in the garage at idle, hooked up my laptop to the ECU, then ran some automation software that would set the (end of the) injection event to 200 degrees ATDC (which is well before the intake opens), and increase it by three degrees every five seconds until it got to 650 degrees ATDC (well after the intake closes), whilst carrying out full logging of what was going on. The results are interesting - here's a chart that I plotted using the ECU software.

injection-angle.png


Because I have an wideband O2 sensor in the exhaust, I was able to plot a scatter chart of Fuel Angle against RPM and Air Fuel Ratio (AFR). Engine tuning often looks to these values - after all, an engine running efficiently will run with higher RPM for a given amount of fuel, and of course the AFR figure will give an indication of the completeness of the burn. In the chart above, you can see a clear curve where the mean RPM appears to be highest around about -460 BTDC. I loaded the dataset into a statistics software package (R) and did some magic to fit a curve to the data so you can more precisely see the shape.

Rplot.png


Slightly annoyingly - the metric that the software recorded appears to be the start of the injection event (which I think explains the slightly diagonal nature of some of those vertical stripes that you can see - if the fuel pulse width changes - for example, because the RPM went up), also it records it as the angle BTDC. That makes it quite difficult to understand what the *end of injection* angle should be and how it relates to the configured settings (end of injection between 200 and 650 ATDC). However - with a little bit of thought and maths, we can refactor the data to compensate for this- in this next one, the chart relates to the 200-650 degree range that I tested, and I've also marked up the points of intake open and close for clarity.

Rplot01-finished.png


The point of max RPM appears to be about 515 degrees ATDC, which is interestingly much later than my original choice of 400 degrees, and before the valve fully closes, and does seem to suggest that the original hypothesis (firing on a closed valve is a good thing) may be incorrect.

However - while I'm surprised that this "sweet spot" appears so late, I then realise that there is another variable at play. Here's that same scatter plot again, this time, with the colours showing engine temperature, rather than AFR. Are we measuring a sweet spot due to the injector timing, or just that the engine is hotter, and vaporising the fuel better?

Screenshot-2024-01-14-190657.png


Hmmm - more thought and development required, I think. Perhaps I'll try the test again, but tuning the injector timing in reverse order from 650 to 200, or in a randomised order, and see if I get similar results. Not tonight though, best that I give the neighbours a break from the noise.

Interested in your thoughts!

Mike
 
Last edited:
Just a thought, but do they fire the injector on a closed valve for some cooling or cleaning effect perhaps ?
 
Interesting thought, thanks - there could well be reasons that I haven't considered. I don't know the answer for sure, but I think that given the relatively small volume of fuel, against the amount of heat being generated, I suspect that the amount of cooling here would be marginal (interesting sidebar - NASA's Saturn V rockets used the propellant to cool the exhaust nozzles, but as you can imagine the fuel flow in that use-case is significantly larger than my wee aircooled engine).

As for cleaning, well, given we have filters on both the air flow and fuel flow, I'm sceptical that there could be a requirement for using fuel for valve/valve seat cleaning on a well adjusted head, as the only contaminants could come from the combustion chamber.
 
Interesting thought, thanks - there could well be reasons that I haven't considered. I don't know the answer for sure, but I think that given the relatively small volume of fuel, against the amount of heat being generated, I suspect that the amount of cooling here would be marginal (interesting sidebar - NASA's Saturn V rockets used the propellant to cool the exhaust nozzles, but as you can imagine the fuel flow in that use-case is significantly larger than my wee aircooled engine).

As for cleaning, well, given we have filters on both the air flow and fuel flow, I'm sceptical that there could be a requirement for using fuel for valve/valve seat cleaning on a well adjusted head, as the only contaminants could come from the combustion chamber.
You're probably right in terms of cooling, gas turbines use excess air from the compressor to cool combustion chambers but they are ignited constantly unlike the intermittent ignition of a 4 stroke.

Direct gasoline injection engines have had issues with inlet valve fouling so there maybe merit in the cleaning action of fuel on the back of the valve (solvent washing any carbon deposits)?
 
Interesting - good info, thanks
If you want more detail on the car problems lexus produced one model which gave loads of issues (toyota didn't go that route strangely) the issues were fixed by secondary injection into the manifold as I understand but should be lots of info online 👍
 
Righto - let's finish off this particular exercise in rabbit hole diving and overthinking things..

Firstly - I did a bit more work on the dataset from the last test run, to help illustrate the change in engine temperature as the test ran. In the new chart, the bar at the lower of the plot area illustrates the increasing temperature (using colour and a slight upward trend). As mentioned above, we started by setting the injection angle at 200, and increased it over the duration of the test, with the engine getting warmer as the test progressed from left to right in the chart. I've also added the calculation of how far the point of maximum RPM is from the valve close angle (105 degrees, and 9.1 milliseconds when the engine is at that maximum RPM of 1909rpm).

run1.png


To explore whether the increasing engine temperature might be linked to the chart above, I decided to run the same test, but in reverse order - so the test would start at 650 degrees ATDC, and count down to 200. I also decided to at least try to keep temperatures a bit steadier, by having a desk fan blowing some cold air towards the oil cooler (I'm not convinced this did anything meaningful to the engine temperature, but it did have the effect of significantly lowering the Air Temperature sensor reading, which slightly increased the fuelling, and caused the bike to idle much faster).

Here's a quick vid of the test in progress:


Here's the output of that test - you can see that the temperature is rising from right to left (rather than left to right in the first chart). I was surprised to see the point of maximum RPM to move to *before* the intake valve opened - a full 361 degrees before the intake valve closed.

run2.png


So what conclusion can we gain from this? - I think it's clear from this that engine temperature is an overwhelmingly significant factor in the efficiency of the engine. I had started both tests at the point that the ECU had finished it's warm-up enrichment cycle - (when an engine is cold, the ECU will enrich the mixture for easy starting, and taper off the additional fuel trim until it is running at a reasonable temperature - in my case 45C on the temperature sensor), I now suspect that I should have ran it up to a much higher temperature before starting the test.

So - the change in engine temperature is definately skewing the results, however - notice that the second chart is bimodal - that is, it reveals a second smaller maxima, just before 500 degrees ATDC. If the engine was up to temperature at that point, I think it would become the peak - so let's redraw the chart on that basis..

plot3.png


We can now see that the first and third charts are showing very similar characteristics, with the point of maximum efficiency appearing when the end of the fuel injection event is timed to be at about 500 degrees ATDC or 9-10 milliseconds before the intake valve closes.

I've been testing this at idle, and I do also wonder what the effect of engine speed would have on this at higher revs. I rather suspect that the timing should be advanced as the engine speed increases and tolerances become tighter as a result of the increased velocity of the valves (and the fixed velocity of the fuel). But for now - I now have some good data to make a better judgement on how the timing of the fuel injection pulses should be set up.

Mike
 
Last edited:
Back
Top Bottom