• You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will see less advertisements, have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

    If you have any problems with the registration process or your account login, please contact us.

DDFI-3 tuning with stock o2 sensor

Buellxb Forum

Help Support Buellxb Forum:

34nineteen, no problem but keep in mind the stipulations AZ and I posted. If you go down that road this is the tread you will want to reference to get it up and working.
 
Oh, no... I find the scalability of the system to be interesting, but I'm still working on the basics of tuning... with emphasis on "basic".

The BT dongle for my bike has been very flakey lately, so I'm afraid to really even mess with it as this point. I'd hate to be flashing a map to my ECM and lose the connection halfway through.

I may have to lean on you for some tuning advice later, but thats another thread. :)
 
OE Narrowband Tuning

Was just reading this thread and found it interesting. I have a tuning method which works pretty good for the DDFI-3 Buells and it's derived from about 10 years of messing around with tuning Buells with various software tools. I've had some very good success in tuning both of my DDFI-3 bikes ('08 XB12Ss and '09 1125CR), so thought I should share this in case anyone is still struggling with fine tuning their mapping.

Tools and software needed before you begin:
  1. Laptop for datalogging, preferrably as compact as possible and capable of running TunerPro RT.
  2. Buell ECM interface cable - you can construct one yourself or buy one pre-made.
  3. Some straps or any other method to securely fasten the laptop to the seat or tank of your motorcycle.
  4. MegalogViewer HD license - well worth it (I also use this software to analyze and adjust many other ECMs on other vehicles).
  5. Microsoft Excel or any decent spreadsheet application.

Process:
  1. Save and backup your stock or existing tune, so you have something to fall back on and for comparison purposes.
  2. Lock your AFV to 100% by setting the min/max and related values.
  3. Datalog the ride - a 20 minute ride is good data in hopefully varied RPM and load conditions.
  4. Export the XDL log from TunerPro to CSV format.
  5. Load the CSV log into MegalogViewer HD (MLV has a Buell datalog format built into it).
  6. Inspect the datalog for anomalies, things like when you blip the throttle to downshift, the O2 sensors shouldn't be maxing out rich or lean (indicating an issue with accel enrichment). Verify that the AFV is locked to 100% the entire time.
  7. Click on the Histogram/Table Generator tab.
  8. Setup front cylinder view by selecting RPM for X axis, TPS 8Bit for Y axis, and EGO Cor2 for the Z axis. Save current view as "Buell Front Cylinder View" or something similar.
  9. Setup rear cylinder view by selecting RPM for X axis, TPS 8Bit for Y axis, and EGO Cor1 for the Z axis. Save current view as "Buell Rear Cylinder View" or something similar.
  10. You may need to adjust the table size to 16 rows x 20 columns to match your fuel maps in the ECM. Do this by clicking on the axis intersection icon and manually typing the X and Y axis values as they appear in TunerPro RT.
  11. Generally, you want the table coloring to appear based on Hit Weight - this will tell you where you have the most confidence in the data.
  12. Create a cold engine filter. Click on the Data Filters icon and create a new filter with the expression "[CLT_F] < 160".
  13. Create an open loop filter. Expression: [Flags2] < 128
  14. Create a closed loop filter. Expression: [Flags2] >= 128
  15. Now, you may need to setup an Excel spreadsheet to apply corrections in MLV to your existing fuel maps. I can provide this spreadsheet to anyone who needs it. Let me know and I will post it up here.
  16. To obtain your closed loop region corrections to either front or rear fuel maps, select either the front or rear view you have previously saved and turn on your cold engine and open loop filter (filter out data that is open loop and cold).
  17. To obtain your open loop region corrections to either front or rear fuel maps, select either the front or rear view you have previously saved and turn on your cold engine and closed loop filter (filte rout data that is closed loop and cold).
  18. These EGO corrections are percentage multipliers to your fuel maps. The way I setup my spreadsheet, I have the original fuel map for each cylinder side by side, below that I have a blank fuel map of identical dimensions setup to store these corrections. Below this I then have the resulting fuel maps from the multiplication of the EGO corrections with the original fuel maps. I have a conditional formula on the result so that blanks in the EGO correction map just uses the unaltered original fuel map value.
  19. Copy and paste the resulting fuel maps from the spreadsheet back into TunerPro. You will see the differences highlight in red. Once you save the maps and reopen them in TunerPro, you can invoke the comparison mode view with the original maps and see how much adjustment was made to each cell. This is a bit of a sanity check for your data. You can also 3D graph the maps and even 3D graph the comparison between old and new to see where the adjustments were made graphically.
  20. At this point, you can either burn it back to the ECM with the AFV still locked at 100% for continued tuning, or reset the AFV parameters to stock so they can adjust as needed dynamically for a final tune.

After riding your "final" tune for a while, it will be useful to periodically check your dynamic AFV to ensure it is close to 100%, which it should be if you've done a good job datalogging and tuning the maps. The end result of several successful tuning iterations will be:
  • Engine runs dead smooth at all RPMs and load ranges.
  • Engine runs as efficiently as possible in all ranges.
  • Engine does not overheat or overcool at any point.
  • Idle quality is excellent and stable.
  • The engine sounds awesome throughout the RPM range.
  • There are no flat spots throughout the operating range, the engine has tons of power everywhere, the way it should've been tuned from the factory! (To Buell's credit, the IDS ECM is great - each engine is different and fine tuning it will result in exactly that: a finely tuned engine).

You can certainly install some wideband O2 sensors and spend some time on the dyno to fine tune the open loop, but it's definitely kind of a pain in the ass to schedule dyno time, etc. Narrowband tuning is a great way to get into tuning your engine that is accessible by most computer literate riders.
 
That^^^^^ is a great comprehensive step-by-step. I like the included checks, so you know your new corrections are going in the right direction:eagerness: Very helpful and thank you for posting!

Do you have any experience with using a WB (and controller) instead of NB to datalog?
I know you can convert the WB signal to NB for the stock ECM, but why? Does the ECM need to see the O2 data in order to datalog? With the AFV locked at 100 it is temporarily dis-allowing the ECM to make changes while tuning (good thing) anyway.
Can the stock ECM even read or adjust according to a WB sensor (I don't think so)?
So why use a WB sensor at all? Does using a WB sensor give you better data targets to hit with MLV?

Remember, I'm a tune swapper, NOT a tuner:black_eyed:) lol.

Since the target in closed loop is stoic (and should be, IMO) seems easy to tune with a NB.
But the target in open loop should be richer (for power) and every bikes combo will require a slightly different target. What is your O/L target, and how can you tell how much richer it is with only a N/B sensor?
 
That^^^^^ is a great comprehensive step-by-step. I like the included checks, so you know your new corrections are going in the right direction:eagerness: Very helpful and thank you for posting!
Thank you. I hope it is useful to the Buell family of riders on this forum. I absolutely love my Buells. My wife is jealous of my Buells!

Do you have any experience with using a WB (and controller) instead of NB to datalog?
I know you can convert the WB signal to NB for the stock ECM, but why? Does the ECM need to see the O2 data in order to datalog? With the AFV locked at 100 it is temporarily dis-allowing the ECM to make changes while tuning (good thing) anyway.
Can the stock ECM even read or adjust according to a WB sensor (I don't think so)?
So why use a WB sensor at all? Does using a WB sensor give you better data targets to hit with MLV?
Yes, I have some experience tuning with a wideband. My weapon of choice is the NGK Powerdex wideband which has an external controller and display, making it very easy to strap the display (and control) to the bike while riding for realtime viewing. The reason why there is a simulated NB output on many WBO2s is that it allows the user to run the WBO2 in place of the NB, satisfying the needs of the ECM without altering its tune, but still being able to monitor the precise AFR measurement that the WBO2 is specifically designed to do. Unfortunately, the WBO2 sensor output is usually a 0-5V analog signal, where ECMs generally need a 0-1V analog signal for their NB sensors, so the WBO2 is useless without NB simulation. Narrowband sensors simply switch to the high or low side of midpoint voltage (say 0.5V) based on whether the mixture it met is richer or leaner than stoichiometric (14.7 AFR for 100% gasoline). Note that the stoichiometric ratio changes as the ethanol content goes up, so tuning should really be done with pure gasoline in order to be correct for the stoichiometry designed into the NB sensors. Stiochiometry is again, just the ratio of fuel and air that serves to combust fuel completely.

So why use the wideband. The wideband will allow the open loop tuner to adjust the AFR to a specific ratio at a given condition. It's really best done on the dyno, but if you have the ability to datalog the WBO2 output at varying cell positions in the fuel map, you can make adjustments similar to the NB tuning process. The factory 1125 tune enriches the mixture by 5% for open loop operation. The mixture is further enriched by 4% (for a total of 9% enrichment) when WOT. These percentage enrichment values correspond to specific AFR ratios: about 14.0 AFR for open loop and 13.4 AFR for WOT. Note that the WBO2 will display the precise AFR measured during operation. Say you installed a K&N air filter and upgraded the exhaust system on your Buell, so you know you need to remap your fueling at the very least (sometimes mods can require adjusting the ignition timing too, like if you do cylinder head or combustion chamber work). The factory ECM fuel maps were tuned to provide the correct AFR during open loop and WOT (14.0 and 13.4, respectively). When you datalog with your WBO2 you might see that the indicated AFRs are not quite at those values during open loop or WOT. That's when you can benefit from tuning with the WBO2. You know what the AFR should be, you know what you just measured the AFR to be with your fancy WBO2, now you can make an adjustment to pull or add more fuel where needed to get those measured AFR readings inline with what they're supposed to be. Supposedly, after you do that, your bike will haul ass even more than it already did, like with 20 more hp or something if done correctly. LOL Like the 1125 needs anymore power!

Since the target in closed loop is stoic (and should be, IMO) seems easy to tune with a NB.
But the target in open loop should be richer (for power) and every bikes combo will require a slightly different target. What is your O/L target, and how can you tell how much richer it is with only a N/B sensor?
It is correct to state that the open loop operation should be richer (for power), but it is generally accepted that best power is made it a specific AFR target. As combustion chamber design has evolved to become increasingly more efficient at producing power, it's no longer required to dump fuel at 12.5:1 to make peak power. Buell engineers clearly recognized this and set the peak power AFR to 13.4:1, so that's the target to aim for when WOT for peak power. You can test their theory by running the motor at WOT on the dyno and measuring the WBO2 readings. What you'll likely see is that any richer than causes a drop in peak power and any leaner than that does as well. The WOT AFR target is usually tuned specifically for the engine in question.

But you don't necessarily require a WBO2 to tune your open loop operation. While it would speed things up considerably, you can use the DDFI-3 ECM's EGO corrections to achieve the same result. It will take longer and more iterations and possibly place the rider in more illegal and dangerous riding situations, but that's not something most Buell riders are afraid of. What will happen is that the EGO corrections in the open loop and WOT regimes will report accurately for their specific AFR targets. This is because open loop is known to be 5% richer already, so any EGO correction reported will be based on the fact that it's supposed to be 5% richer. Same for WOT, at 9% for the 1125, I believe it's 10% for the XB. It will take longer and no, you don't get specific AFR measurements made by the WBO2, but over time you can feel additional power in your pants.

If anyone knows more about how the IDS DDFI-3 ECM processes EGO correction during open loop and WOT, please speak up if I'm not correct in the above statement.
 
Ok, that makes sense. I'm actually surprised 13.4 is the WOT target. Your point is valid, my old assumption would be even richer than that but I'm used to "taking the cats off the Red Dragon"...:eagerness:

So, while I have your attention (thank you), I have a question about theory:

If the DDFI-3 EGO correction can be seen cell by cell, why won't it alter it's own map that way and never need tuning (regardless of mods either)? Why is Global (AFV) the only adjustment the stock ECM can make? Just too rudimentary?


So lock it to 100 AFV so it's not trying to compensate for your changes while tuning, Use a WB O2 sensor to datalog (no need to bother emulating a NB for the ECM input while tuning?) And MLV will show you where (and how much thank you WB) to change the OL fuel map. Yes?
 
Ok, that makes sense. I'm actually surprised 13.4 is the WOT target. Your point is valid, my old assumption would be even richer than that but I'm used to "taking the cats off the Red Dragon"...:eagerness:

So, while I have your attention (thank you), I have a question about theory:

If the DDFI-3 EGO correction can be seen cell by cell, why won't it alter it's own map that way and never need tuning (regardless of mods either)? Why is Global (AFV) the only adjustment the stock ECM can make? Just too rudimentary?


So lock it to 100 AFV so it's not trying to compensate for your changes while tuning, Use a WB O2 sensor to datalog (no need to bother emulating a NB for the ECM input while tuning?) And MLV will show you where (and how much thank you WB) to change the OL fuel map. Yes?

The DDFI-3 EGO correction is an instantaneous computation associated with a specific cell within the fuel map, but unfortunately, the ECM doesn't track the correction for that cell. The purpose of the ECM computing the correction is so that it adjusts the fuel mixture during closed loop operation right then and there. I don't believe it performs any correction to open loop operation aside from the global AFV scaling, which is a pretty delayed adjustment. Eg., if your open loop fueling is out of whack, it will take a lot of time running in those cells before an AFV adjustment is made... and the AFV adjustment usually throws the rest of the map off considerably. External analysis software like TunerPro RT's history views, MegalogViewer, and a few other tools accumulate the correction data by running through a datalog and associating the correction with specific cells, making it possible to tune the fuel maps correctly. Any further AFV adjustment to compensate for climate and altitude change on a well tuned map results in proper scaling.
 
I know you can convert the WB signal to NB for the stock ECM, but why? Does the ECM need to see the O2 data in order to datalog? With the AFV locked at 100 it is temporarily dis-allowing the ECM to make changes while tuning (good thing) anyway.
The ECM will take the 0-5V signal from a wideband for datalogging by simply feeding into the same pin for the NB sensor input, you do not have to enable anything to do this BUT you need to turn off the ECM's use of the data (run in full open loop). Also note that you will need to fine tune the voltage output to the proper AFR reading within whatever datalogging software you intend to use. This graph is supplied with the WB that you choose. The above statement is for utilizing 1 WB sensor only, to use it for the front cylinder you would just swap the sensor and apply the datalogged voltage to your front cylinder map in the analyzing software (no need to mess with the ECM pins). If you have dual WB sensors and an DDFI3 ECM with firmware after BUEOD, you would pin the front into the ECM and log it as well (need to enable in software to datalog both cylinders).
Alternatively you can feed a NB signal from the WB (if available) and keep the parameters as they were stock letting the ECM make adjustments (good for visually varifiying on the WB gauge while riding that your fuel table adjustments hit your target AFR's). This same thing can also be done if you have 2 O2 bungs on the rear cylinder, one with the WB to its gauge and the other with the stock NB fed back to the ECM input with it enabled for adjustments (like stock).

Can the stock ECM even read or adjust according to a WB sensor (I don't think so)?
So why use a WB sensor at all? Does using a WB sensor give you better data targets to hit with MLV?

No the ECM cannot make use of the sensor data but it can pass the data into a log file and give you accurate AFR readings for the entire fuel map (NB only useful for closed loop), armed with this AFR data you can accurately change the fuel map for each cell to get you the exact AFR you are after (this is why parameters are locked). Depending on your AFR goals within the map is where you would start to turn back on parameters or adjust there window of use, so if your maps have been tuned for AFR 14.0-1 in the closed loop region instead of 14.7-1 you won't enable closed loop as the ECM will just pull fuel from these cells to get back to 14.7-1. The ECM does this with EGO correction, EGO is the real time adjustment factor it either adds or subtracts fuel in real time for the given fuel cell you are in based on O2 sensor voltage while the ECM is operating in closed loop.

Since the target in closed loop is stoic (and should be, IMO) seems easy to tune with a NB.
But the target in open loop should be richer (for power) and every bikes combo will require a slightly different target. What is your O/L target, and how can you tell how much richer it is with only a N/B sensor?
AFR bins.jpg
Here is the Target AFR bin pulled from BUEIB DDFI2 .msq file. RPM's go from left to right but TPS closed is at the top left and WOT is the bottom left. If you were to overlay closed loop window that you can pull up over your map in software you can see AFR falls in 14.7, open loop 14.0/13.7/13.2 depending on the cell and WOT at 13.0. These are the targets that the map was built on from Buell from the factory, since they sent the bikes out the door with NB sensors the open loop and WOT portion cannot be used, in comes all the other correction factors found within the ECM to compensate for environmental and sensor deterioration. If closed loop is off by X then open loop and WOT are off by X as well.

Ok, that makes sense. I'm actually surprised 13.4 is the WOT target. Your point is valid, my old assumption would be even richer than that but I'm used to "taking the cats off the Red Dragon"...:eagerness:
The above chart shows WOT @ 13.0 but I cannot say for 1125's

If the DDFI-3 EGO correction can be seen cell by cell, why won't it alter it's own map that way and never need tuning (regardless of mods either)? Why is Global (AFV) the only adjustment the stock ECM can make? Just too rudimentary?
Covered above.

So lock it to 100 AFV so it's not trying to compensate for your changes while tuning, Use a WB O2 sensor to datalog (no need to bother emulating a NB for the ECM input while tuning?) And MLV will show you where (and how much thank you WB) to change the OL fuel map. Yes?
All correct, except you will have accurate AFR numbers for the entire map from idle to WOT/redline, not just open loop.:up:
 
Last edited:
If anyone knows more about how the IDS DDFI-3 ECM processes EGO correction during open loop and WOT, please speak up if I'm not correct in the above statement.

It doesn't process EGO in those two portions of the map, open a datalog and open your fuel map. Watch the log while the fuel map cells are lit corresponding to the log, once the lit cells go out of closed loop the EGO reports the last EGO correction (last closed loop cell correction) until TPS/RPM falls back into closed loop where it again regains control over correcting the fuel map. As you previously posted and you understand, the ECM has a 5% additional fuel added to open loop cells and 10% additional fuel added to WOT cells. Also you have to factor in the acceleration enrichment table, AFV correction, etc...

I believe on page 3 or 4 of this thread there is a log file screen grab from Mcaff demonstrating this exact description.

EDIT: One caveat to the above statement is that if you have open loop learn enabled and under acceleration EGO gets an 02 sensor voltage leaner than 14.7 it will push AFV for a richer value. Under open loop deceleration with learn enabled, an O2 sensor voltage richer than 14.7, EGO will push AFV for a leaner value.

http://ecmspy.com/ug_mono/V2.0/o2setup.shtml
Go to this link and scroll down to "OLL and AFV settings"

If you want AFV to react for lean conditions (in open loop) quicker, change the delay from 2 seconds to 0, this way EGO changes AFV richer if it encounters lower than 14.7 in open loop instantly.

For more info on open loop percentage correction applied and WOT percentage applied have a look here from "open loop" down:http://ecmspy.com/ug_mono/V2.0/corrections.shtml#open-loop
 
Last edited:
Who can confirm that the NB input to the DDFI-3 ECM is 5V tolerant? The last thing you want to do is fry the microprocessor. If you can replace your NB sensors with WBO2 sensors and the ECM is 5V tolerant on the NB input pins, you're really in business. I would simply disable closed loop completely and tune the the open loop, high load, WOT regions with the WBO2 inputs. It's probably best done on the dyno, though.

I would suspect that the 1203cc Thunderstorm cylinder head isn't quite as efficient as the 1125cc Helicon head (partly in due to static compression ratio), so that would explain the lower "old school" AFR target that is closer to 13.0:1.

All this got me stoked again on tuning, so I've ordered a replacement sensor for my Powerdex WB!
 
Who can confirm that the NB input to the DDFI-3 ECM is 5V tolerant? The last thing you want to do is fry the microprocessor. If you can replace your NB sensors with WBO2 sensors and the ECM is 5V tolerant on the NB input pins, you're really in business. I would simply disable closed loop completely and tune the the open loop, high load, WOT regions with the WBO2 inputs. It's probably best done on the dyno, though.

Consider the countless Buells tuned with a WB confirmed if you'd like. The process is outlined in the links I provided as well.

0-5V 02 sensor output.jpg

unedited O2 values from stock ADX file, This is where you would edit voltage values to correspond with the values provided from whichever WB people go with (stated earlier needs to match the provided graph so AFR values are accurate).

You can't utilize the WB for ECM input as the reference values are based around 0-1V.
O2 sensor values.jpg

I know what your thinking... why not just up the values to cover the 0-5V range. There is a lot more going on in the background. I'll just say at this time it is not possible...
 
Last edited:
Thanks guys, those are the answers I expected which makes me happy:D

I can confirm that the WB input to the stock ECM is fine and 'passes thorough' to the datalog file without issue.

I am running a DDFI-3 BUE2D with a front NB O2 sensor (enabled) now, and would like to get a dual WB sensor set-up to use for it (and possibly others).

Sounds like taking the delay off the AFV adjustment and using OLL are both enabling the ECM to make faster and more accurate changes. Any idea why the stock settings seem to be limiting the ECM's ability to change fuelling?
 
Last edited:
MLV WB output.jpg
Here is all the preset WB sensors MLV offers.

MONO 02 sensor log output.jpg
Here are the two WB options MONO offers.

EDIT:

0-5V 02 sensor output.jpg
And the TunerProRT is fully scale able for practically any WB available.
 
Last edited:
I would simply disable closed loop completely and tune the the open loop, high load, WOT regions with the WBO2 inputs. It's probably best done on the dyno, though.
You have it backward, disabling closed loop provides no ECM adjustment. Alternatively making the whole map closed loop would provide the ECM full cell adjustment BUT stuck at one 02 voltage value for target AFR across the entire map.

I would suspect that the 1203cc Thunderstorm cylinder head isn't quite as efficient as the 1125cc Helicon head (partly in due to static compression ratio), so that would explain the lower "old school" AFR target that is closer to 13.0:1.

Keep in mind the XB it is "air cooled", the extra fuel provides some amount of cooling in the combustion chamber. Running an AFR right on the line for power would have to deal with knock as the combustion chamber temperature gets hotter (no knock sensor on our bikes = very bad).
 
Sounds like taking the delay off the AFV adjustment and using OLL are both enabling the ECM to make faster and more accurate changes. Any idea why the stock settings seem to be limiting the ECM's ability to change fuelling?

Open loop learn is on by default (BUEID), the delay is 2 seconds in the stock EEPROM. I have it set to 0 seconds right now, no idea why you would want a 2 second lean condition delay before adjustments are made...

For you only I can send my WB and plug-N-play harness when I am done with the video series. Are the DDFI3 NB plug ends the same 1 wire as DDFI2? Video will start coming soon I promise... :up:
 
Last edited:
Hmm, My OLL wasn't checked on the BUE2D ECM parameters. But I have no idea if it was a stock program when I started messing with it and bad on me for the assumption. I have no idea why adding a delay would be necessary either. Maybe we'll find out one day, lol.

That's super generous lowkey! I appreciate that hugely. Not only are these discussions informative, but I do find them entertaining as well (Dork alert!) haha.
The DDFI-3 O2 sensor plugs are single wire because they aren't pre-heated. I'm 98% sure they are the same as the DDFI-2 single wire plugs.
 
Hmm, My OLL wasn't checked on the BUE2D ECM parameters. But I have no idea if it was a stock program when I started messing with it and bad on me for the assumption. I have no idea why adding a delay would be necessary either. Maybe we'll find out one day, lol.

That's super generous lowkey! I appreciate that hugely. Not only are these discussions informative, but I do find them entertaining as well (Dork alert!) haha.
The DDFI-3 O2 sensor plugs are single wire because they aren't pre-heated. I'm 98% sure they are the same as the DDFI-2 single wire plugs.

This is the problem with not backing up the stock EEPROM first! Haha you know better Cooter! As for the O2 plug ends, I was just curious if they are the same because I've already made the plug-N-play harness with a spare plug end (old O2 sensor) to feed the datalog output + signal to the harness wiring NB input. This way I can swap the input signal between the stock NB sensor installed in the rear header or the WB in the second bung on rear header pipe or move the sensor to the front header pipe bung I had welded in (3 bungs total on my header now).
 
Back
Top