Well I guess that's a quorum and even Marcin and Swingtan are interested!
Anyway brought to you via LSXWorks and the capabilities of EFILive (and hopefull their approval..... We thought about "productizing" this idea, but WTF, just share it for everyone to use! Be green, use ethanol, use less gas, and go fast. So read and implement at your own risk . No claims are made regarding suitability, legality, or even full functionality. Any issues with operation on GM E38's, please contact GM at Renaissance Centre, Detroit Michigan, USA.
As you all probably know GM introduced Flex Fuel quite some time back, maybe 7 or 8 years ago. Not quite sure when exactly.
These days their ECM's support flex fuel with virtual fuel sensing (VFS). I.e. they use the O2 sensors, trims and some other (patented) smarts to run learn cycles to determine the ethanol content of the fuel.
This means they avoid having to fit a "hard" ethanol content sensor in the fuel system to measure the ethanol content and input to PCM/ECM. This sensor lists for around $500 so thats a good thing for customers in that failed $500 sensors no longer need replacing. (even if it probably costs GM $50 or less in quantity).
Given that EFILive kindly exposed the ethanol/flex fuel parameters some time ago:
Flex Fuel Option
{B0178} Flex Fuel Option
{B0184} Flex Fuel Sensor Type
{B0185} Flex Fuel Default Percentage
{B0186} Flex Fuel Sensor Diagnostic
{B0187} Flex Fuel Diagnostic Run Time
Which on 08 OS's at least, do work (well VFS seems a little challenging but thats another story), I figured that maybe GM still had support for hard sensors in the OS's and went looking.
To search was laborious, but it appears GM HAS left hard sensor support in there and it does work, at least on 08 Corvette OS (which also does some other trucks and maybe some cars), and may work on other OS's.
So...the magic pin? Pin 40 on the body connector (J1/X1/C1) of the E38 is the fuel composition sensor input.
Using EFILive to set the Flex Fuel parameters up:
Flex Fuel Option
{B0178} Flex Fuel Option = Yes
{B0184} Flex Fuel Sensor Type = Actual Sensor
{B0185} Flex Fuel Default Percentage 80% (set it to what you want, 0 is fine to, but remember it has an effect)
{B0186} Flex Fuel Sensor Diagnostic = Enabled
{B0187} Flex Fuel Diagnostic Run Time = 8 Seconds or less if you want.
DTC P0178 to "non emissions" or emissions if you want.
DTC P0179 to "non emissions" or emissions if you want.
MIL P0178 - No MIL (unless you want to observe the ECM failing the sensor when it sees no input frequency - then: MIL ).
MIL P0179 - No MIL (unless you want to observe the ECM failing the sensor when it sees no input frequency - then: MIL ).
(the DTC/MIL settings are suggested and the following probably works ok without this, but it is worth having a fallback ethanol % operating so if your "sensor" unplugs during testing, you know where things will go.)
Point a 100Hz square wave* into that port and the "Flex Fuel Sensor Frequency" PID kindly reflects that it sees 100Hz on the sensor, and also says that the fuel composition is 50% ethanol on the "Ethanol Fuel Percentage" PID.
Vary the square wave up and down from 50Hz to 150Hz and the % E content runs from 0 up to 85%. The actual range the E38 reads is around 20Hz to 190Hz or something like that, but the composition range runs 0 @ 50Hz to 100% @ 150Hz.
Tested this on several different E38 OS's from 06 through to 08 and the pin number and results are consistent.
So that's the overview of how to manually adjust ethanol content on the fly.
If it is purely flex fuel adjustment you are after, using a simple (or complex if you wish) external oscillator (the famous 555 timer chip is one way of generating the needed square wave pretty simply*) enables ethanol content to be adjusted according to your estimate of what is in the tank, or using your LTFT's just adjust the "virtual fuel composition sensor" until the LTFT's are near zero and you are done.
More on the square wave requirement to follow in the notes below*.
Yes to run ethanol in varying amounts it is possible to simply adjust B3671 to reflect your estimated stoich requirement based on E content, but the beauty of the Flex Fuel access that EFILive enables is that it brings the entire flex fuel subsystem into play. This means trims and other things like "intake valve temp" etc. etc. modelling work correctly.
So...on the fly timing and fueling.
To achieve this adjustability is pretty straightforward.
On the fly timing requires several parameters be setup:
1/. B3671 needs to be flatlined! i.e. running premium gas and you know it stoichs at 14.68 then the whole table needs to be set at 14.68. Running E10 then 14.3 or whatever suits your desires.
2/. B5114 Flex Fuel Spark & B5145 Ethanol Spark Multiplier need to be setup. Some OS's have data in there, some have zero's.
As ethanol content is adjusted/changes the ECM interpolates between the main timing tables and the ethanol spark table B5114 factored against B5145.
So B5114 gives you variability of spark. If you want up to 10 degrees of variance then set B5114 to 10deg across the board. +/- 5deg is obtained via selecting the mid point on the adjustment - 100Hz, calling this your baseline timing and then turning up to 150Hz or down to 50Hz.
If you want +/- 10 deg then set B5114 to 20 deg across the board.
So that's on the fly timing.
On the fly fueling:
This requires a little more detail to setup.
1/. ECM needs to be run in Open Loop. (Swingtan's VVE tutorial can assist with that one).
2/. Tables used are:
B0141, B0142, B0143, B0144 (all for auto, one or the other for manual trans').
B0145 (similar to B5145).
With flex fuel running in the ECM, the ethanol content interpolates between B0141 & B0142 for example for open loop fueling based on factoring from B0145.
Additionally PE tables B3618 and B3670 can be used to vary PE mode fueling.
(haven't tested this angle against the WB).
(Sorry Simon, B3670 does not natively appear for O6 OS's, but maybe it is there in the background just waiting to be exposed. .)
Anyone that has dug into E38's knows of course that unless speed density mode is engaged and VVE/VE based fueling is used with no MAF, that with a MAF in open loop the ECM limits open loop fueling to an EQRatio/lambda of 1.
That can be fixed luckily (but not necessarily easily) with a cax snippet or an EFILive tune tool addition, and if you want you can try adjusting cruise fueling at up to 1.2 lambda/17.5:1 AFR on gas. PM me for details.
Note 1:
The above has been tested on the road, but not to the nth degree, and probably not on your OS. Proceed at your own risk, effort, and hopefully in the end enjoyment and benefit.
Note 2: *
Using Pin 40:
E38's as you probably know use a regulated 5V for most sensors (not all). The fuel sensor input on pin 40 is no different. The 5V needs to be pulled up and down by the square wave oscillator.
Simply injecting a square wave from an oscillator into to pin 40 will in most cases not work. The oscillator ouput needs to drive a transistor which will sink pin 40 towards ground and back up to 5V again as it oscillates. It seems that it is best if the average voltage on the pin is 2.5V (makes sense) and swings from about 0.5 to 4.5 volts.
Electronics whizzes will know how to do this and maybe could post some details and a suggested circuit/components.
But in simple terms something like a BC558 transistor for example with the base driven by the oscillator, emitter to ground, and collector to pin 40 does work, but is dependant on the oscillator output level.
A 555 timer IC will support this, and maybe you will find electronics kits that can be modified, either based on 555, or a digital oscillator that runs off a small microprocessor with a display for the frequency.
Note 3:
Wiring up pin 40.
This is covered in detail in the E38 custom OS thread where a tutorial is available for download.
Note 4:
The PID that GM uses to provide sensor frequency is a little messed up. This is a GM PID issue, not an EFILive issue.
If you go to scan this, it appears differently on the V2 BBL to what it does in the scan tool on the PC. The PC Scan tool has the right readout (unless Paul "fixed" up the PID already). The V2 will read the PID but has a different multiplier.
Note 5:
If tune shops want assistance with this, we will consider offering a support service to help set it up. Various forms of currency are negotiable...normal money, beer, bananas, quid pro quo, beer, sea shells, beer.
Note 6:
Only EFILive offers the depth of flex fuel tuning needed to run this capability. Kudos to EFILive for doing this. Am sure they didnt feel visionary at the time, but they were.
Note 7:
The above is a little quick and dirty and leaves some details up to the talents of EFILive users who are a smart bunch anyway and more than capable of connecting the dots.
Edit - Note 8: I neglected to mention that the original hard sensor also supposedly reported fuel temperature via the duty cycle of the square wave. Haven't found anything that points to that.
There you go, long yes, all the details...maybe not. But the core info is there, no guarantees, but as mentioned, there has been on the road testing on and off for a while, but not extensive, so there will be further exploration required, but enjoy!
Cheers.