The [hopefully] correct answers to quiz, or at least my new understanding of how this all works, are:
Q6: Does a Wideband O2 Sensor actually measure AFR or Lambda?
A: A wideband O2 sensor measures Lambda, where Lambda is (current AFR) / (stoichiometric AFR). The value shown by normal dashboard AFR gauges, and in the default MegaSquirt setup, is:
AFR Gauge = 14.7 * lamba
This displayed value is the actual AFR for 93octane gasoline but is not the actual AFR for other fuels (E10, E85, etc.)
Q1: When using gasoline, the WB02 gauge reads 15.1. Is the engine running rich or lean?
Q2: When using E10, the WB02 gauge reads 14.5. Is the engine running rich or lean?
Q3: When using E85, the WB02 gauge reads 11.0. Is the engine running rich or lean?
A: Lambda=1.0 is stoichiometric (neither rich nor lean), lamba less than 1 is rich, lambda greater than 1 is lean. Since normal WB02 gauges are actually showing lambda*14.7, anything less than 14.7 is rich and anything greater than 14.7 is lean
regardless of the fuel. So the answers are: (slightly) lean, (slightly) rich, (hog) rich.
Q4: True or false - Stoichiometric AFR is the mixture for complete combustion, resulting in no leftover fuel and no leftover oxygen; rich is insufficient oxygen, resulting in leftover fuel; lean is insufficient fuel, resulting in leftover oxygen?
A: True - I didn't mean for this to be trick question, but just something to think about before the next question.
Q5: A Wideband O2 or Universal Exhaust Gas Oxygen (UEGO) Sensor is often described as measuring the O2 content of the exhaust gas to provide an accurate AFR reading. When running rich, there is no leftover O2 in the exhaust - what's going on?
A: This is the interesting question, and I'll try to explain my new understanding of what's going on. For reference, these links provide varying levels of more in-depth information:
A wideband O2 sensor is built up from a narrowband O2 sensor, a tiny exhaust gas test chamber, and a bi-directional oxygen pump cell. The test chamber is setup so that it is continuously sampling the exhaust as it flows by. If a positive current is run through the O2 pump cell, oxygen is pumped out of the test chamber. If a negative current is run through the pump cell, oxygen is pumped into the test chamber. The pump cell can generate its own oxygen from the water in the exhaust as needed (i.e. when running rich and no oxygen remains in the exhaust, the O2 pump can still generate the tiny bit of oxygen needed for the test chamber).
For lean measurements, the oxygen pump removes O2 from the test chamber until the narrowband O2 sensor flips around stoich. The pump current is proportional to the O2 removal rate, and that rate that is proportional to the excess O2 in the exhaust.
For rich measurements, the exhaust includes partially combustion by-products of Carbon Monoxide CO, and Hydrogen H2. When O2 is added to these in the test chamber, they recombine into Carbon Dioxide CO2 and Water H2O. If enough O2 is added, the CO/H2 by-products will all re-combine and excess O2 will remain. This excess O2 then flips the narrowband O2 sensor reading around stoich. The pump current is proportional to the O2 generation rate. This can be scaled to get the percent of excess fuel in the exhaust.
[Side comments: pumping oxygen into the WB02 test chamber to complete the fuel reaction is the same mechanism used to reduce tailpipe emissions, but on a tiny scale. In the dark days of early emissions control, aka 1970s emissions monstrosities, air injection or air pumps were added to pump air into the exhaust to complete the fueling reaction when running rich.
Modern catalytic converters temporarily store oxygen to react and reduce NO and HC emissions. The catch is that the oxygen storage capacity of a cat is limited and the engine must be cycling rich-lean-rich-lean around stoich to allow the oxygen storage to be replenished during the lean cycles.
If there is a misfire when running rich, both partially burnt fuel and unused oxygen go into the exhaust gas. In this case, combustion may continue in the exhaust pipe but usually excess oxygen remains and the wideband reads the mixture as lean (O2 remaining). I'm a little fuzzy on the full details here -- the actual reading depends on reaction rates and percentage composition of the exhaust from a misfire.]
OK? Is this understandable? Anything I can try to explain better?
Q7: If I want to run E85 with MegaSquirt, can I simply change the AFR table to the desired E85 AFRs (~7.5 to ~10.5) then run VE Analyze to tune the VE table?
A: No! Since the WB02 is measuring lambda, and the default gauges are reporting lambda*14.7, you want to setup the AFR table as if you were running 93octane gasoline with an AFR of 14.7. VE Analyze compares the reported AFR value to the value in the AFR table and adjusts VE based on the ratio of: (reported AFR / target AFR). Since this is actually using lambda, VE Analyze is adjusting VE to reach lambda of (target AFR/14.7). If you put the E85 stoich AFR value of 9.5 in the table, VE Analyze thinks you want AFR of 9.5 for gasoline (aka hog rich), and will max out the injectors trying to dump huge extra fuel into the engine.
[Side comment: I haven't tried this, but MegaSquirt does allow you to enter a custom wideband O2 calibration curve that includes two voltage and "AFR" endpoints. If you can find the lambda calibration curve for your WB02 sensor, you should be able to enter the voltages with the corresponding scaled AFR values for the fuel that you're running. You'll also then need to set the "StoichiometricAFR" value in GeneralSettings and setup the AFR table for the actual AFR of the fuel you're using. Finally, you'll need to reprogram the dashboard O2 gauge to display true AFR for your fuel instead of 14.7*lambda (I don't think some gauges even allow this). All in all, it seems
much easier to keep everything scaled to a stoich gasoline AFR of 14.7 and just understand that the readings are lambda*14.7 regardless of fuel.]
Q8: In MegaSquirt, how can I adjust for seasonal fuel blend changes (e.g. E85 goes to E70 during Winter)?
A: I'm not sure, but I'd agree that changing req_fuel would be easy and would esentially rescale the whole VE table for the change in actual fuel AFRs. You'd probably want to run a log with the new fuel and use offline VE Analyze to figure out an average change in fueling (unless you somehow know exactly what your local gas station is supplying), and then use that average change to adjust req_fuel.
Since Acceleration Enrichment is specified in terms of milliseconds of additional injector opening time, the AE won't change when req_fuel is adjusted (AE is a fueling adder, not a multiplier). This is a relatively small error, but you could re-adjust AE when changing fuel blends if really needed.
[Side comment: I was surprised how cheap new flex fuel blend sensors have become -- looks like <$100 for name brands, and only ~$50 for chinabay. MS2, MicroSquirt, and MS3 all support using a flex fuel sensor to provide a fueling multiplier (based on the sensor output frequency) -- see the Fuel Sensor menu under Fuel Settings. For a standard 240/740 brick, what fuel system components need to be changed due to the more corrosive nature of E85?]
Q9: What does the MegaSquirt IncorporateAFR mode do?
See:
http://forums.turbobricks.com/showpost.php?p=5568956&postcount=14
[Side comment: I like incorporateAFR mode because it let's me think about the problem in terms of true engine VE, with desired AFR accounted for separately, but yes, it's certainly more complex when first starting out.]
Cheers,
Bob