top of page
buell ecm disabling closed loops


This page is not a thorough lesson in closed-loop vs open-loop operations, advantages, and disadvantages.   There are many online resources that explain the differences between the two in great detail.  This page is meant to show people that want to try running an open-loop on how to do it using Ecmdroid.  The great thing is, you can try it and if you don't like it you can easily change it back or fine-tune it to your liking using an Android device.

Running an open-loop means that the ECM cannot adjust the fuel delivery based on O2 sensor(s) data. This way, only the maps and compensation tables (based on temp and baro sensors) in the ECM are used to provide fuel scheduling. This is a very common practice on performance vehicles and air-cooled motorcycles where a slightly richer mixture than a stock narrow band O2 sensor will allow is desired. This will allow the engine to run cooler with improved throttle response.  It will also significantly reduce or eliminate low-speed jerkiness and decel-popping.


Of course, running too rich will cause problems too, so it is important to determine and set the optimum setting, which is explained later. Disabling a closed-loop can also be used as a method of troubleshooting your EFI system because you can often isolate the problem from being sensor-related or not.  This can save you a lot of time. Furthermore, Buells have a nasty tendency to develop a lean condition due to inaccurate O2 sensing which shows up as an AFV of less than 100 at or near sea level. In this case, the ECM "thinks" that the motorcycle is going up in altitude, so it is reducing the fuel delivery across the board.

Unfortunately, narrowband O2 sensors were never designed or intended for use as climate or altitude measurement devices. A properly tuned motorcycle without mechanical issues will not require a reduction in AFV at or near sea level. The fact that air-cooled Buell EFI systems rely entirely on O2 sensor data for altitude compensation is arguably why they have such a bad reputation for running lean, overheating, and being generally finicky and inconsistent.  The good news is, this problem is easily and cheaply resolved. Remember, running an open-loop does not disable the temperature compensation features of the ECM. These are based on Intake Air Temp (IAT) and Cylinder Head Temp (CLT) sensor data as well as barometric sensor data if equipped.

Using the settings below, your O2 sensor(s) is still actively measuring O2 and will report a LEAN condition if there is a mechanical problem such as an intake leak or fuel delivery problem. A sensed lean condition by the ECM will cause a Check Engine Light (CEL) and corresponding Trouble Code to warn the rider of an issue that requires attention. However, the ECM is not able to compensate for a mechanical condition without warning to the rider the way a stock ECM is configured from the factory.

Running an open-loop means you will lose altitude compensation on XB, X1, and S3 models unless you install a Baro Sensor Kit.

Disclaimer: This is for off-road use only since it disables the emissions control of the ECM.

Buell Ecmdriod troubleshooting


  • Ensure your bike is mechanically sound.  It must not have any intake leaks or other defects.

  • Have a tuning (maps) on the ECM that matches your configuration as close as possible.  This even works well with stock bikes running stock tuning.

  • Ensure static timing set correctly if you suspect it may have ever been adjusted.

  • Read and understand the AFV tutorial.

  • Save your original EEPROM file before changing any settings.  This way you can go back to it whenever you want or need to.  You're not going to do anything that can't be undone.  Going back to your saved file is the most thorough way of undoing everything.

This procedure is not a replacement for tuning your bike after an exhaust system change or other major modifications which requires many changes in many areas of the maps.  This makes an overall change.  It can make a well-tuned bike run better, but it can also make a poorly-tuned bike run worse.



  • After connecting to your bike in Ecmdroid, select the dropdown menu in the top left corner, then select ECM Parameters.


  • Select General Config.

  • Un-check the boxes for Idle closed-loop and Open-loop learn.

  • Return to the previous menu and select Apply Changes.


  • Select O2 Setup.

  • Select the Rich (V) setting.  Change this setting to 1.2


  • On 2008+ models (Except BUEOD firmware ECMs) un-check the box for Enable Closed Loop.  Other models will have this option grayed out.

  • Set Max. EGO Corr. (%) and min. EGO Corr. (%) to 100. 


  • Set the Maximum and Minimum AFV to the desired number.  Optimum setting at sea level is typically 100 - 105.


  • Return to the previous menu and select Apply Changes. Select the AFV Settings Page.  Set the AFV to the same number used for Maximum and Minimum AFV.

  • Return to the previous menu and select Apply Changes.

  • Select the Error Mask page and ensure that your O2 sensor(s) is enabled.  This is for lean condition reporting as explained earlier.    


The following is a sample scenario.  This method can be applied to any EFI Buell in any configuration:
The subject bike is a 2008 XB12 with K&N air cleaner, Jardine RT1 slip-on exhaust system, and EBR Race ECM with the RT1 calibration.  It has ~18K miles on the odometer, is mechanically sound and runs 91 octane gas.   However, the bike idles rough, has lurching acceleration and excessive decel popping.   The AFV is found to be at 84.  If the AFV setting is raised to 100 the ECM will adjust it back down after a short ride.  Why doesn’t a mechanically sound bike with a “matched” tune seem to want to run correctly? 
In this case, there is a known issue with this EBR calibration whereby a section of the closed-loop area of the fuel mapping is (mis)tuned to be richer than stoich. The ECM compensates for this condition by lowering the AFV.  Consequently, with an AFV this low (lean) it could cause damage to the engine if it is run at high RPMs for extensive periods.  Raising the minimum AFV is the easiest way to resolve this condition. Determining the optimum number to raise it to will require some trial and error. Unless you have a wideband sensor setup or a dyno it’s not scientific, but it is safe to do.
Since we are close to sea level we are going to set the minimum and maximum AFV to 100 and go for a test ride. If we were at a significantly higher altitude we could start at a lower number of maybe 95 or better yet, install a Baro Sensor Kit.  If it was a stock bike with a stock exhaust we may want to start at 104.  This starting point also depends on what your current AFV value, but it should be close to 100.

Our bike now has a smoother idle, better acceleration, and less decel popping.  It’s a definite improvement, but can we make it even better?  To find out, we simply bump the minimum AFV up 2 or 3% at a time followed by a test ride at each setting to see where the overall performance and behavior stops improving. 


When the AFV gets too high (rich) the bike will idle excessively high, have sluggish acceleration, and possibly some exhaust smoke.  If you’re “reading the spark plugs” properly as part of this process they will start to show signs of soot.  On our bike, we started to feel symptoms of running rich with an AFV setting of 107.  Optimum AFV seems to be 105.  At this point, we can simply leave it as is with Min and Max AFV set to 105.


Normally, performing this procedure would mean that the ECM cannot compensate for altitude.  This is resolved by using the Baro Sensor Kit found HERE

bottom of page