Electronic Sensing and Control of Woodgas Engine Systems

There’s a current thread called: “OBDII in your future”. OBDII really means "On Board Diagnostics, version 2, doesn’t it? An OBD reader looks into the actual ECU and tells the user what’s going on and what’s wrong, doesn’t it?
But the discussion really seems to be about sensing engine conditions and then controlling them in real time.
Looking for other discussions on actual electronic/software based information, I searched the topics for these words:


I only found a dozen or less topics related to these keywords. And they are sorta scattered all over the place.

So I just thought I’d start this topic which I have called “Electronic Sensing and Control of Woodgas Engine Systems” to deal with this sort of thing. I know there’s a topic that says something like “Arduino Management----”, but maybe focusing on the Arduino (my own favorite) is too narrow .

I agree with previous posters that controlling ignition timing and fuel/air intake are the most important engine requirements. And I add that sensing crank and cam angle are probably the most important engine sensors.
Of course modern engines have MANY more inputs and outputs in their control systems.
But, for woodgassers, we can add many inputs and outputs to the same controller to deal with the fuel production part of the system.
And, since just about any system we might consider will run on some sort of software, programmable by the user, how we handle all the incoming sensor information gives us an almost endless toolkit of opportunities.

Chris, if you feel this post is inappropriate, just delete it.
It just now occurs to me that maybe a Category for this general topic might be in order.

Pete Stanaitis


I have one simple question, how can we tell Arduino to output varying voltage signals. Is PWM output the only way and would the ECM read this as a varying input signal? If we can figure this out then nothing is impossible for us and no special software is then needed. I think most ECM’s now days wont let you in them especially GM not even techs can get in them anymore.

So basically we could route any sensor input into our Arduinos and map that sensor to our desired outputs and then back out the ECM.


Pete, why do you say the crank and cam angle sensors are probably the most important? They are the most fixed sensors in the whole system the way I see it. They are tied together by the timing chain/belt/gears and do not vary relative to each other. I was hoping you would say a combination of oxygen sensor, MAP sensor, knock sensor, vehicle speed sensor and the temperature sensors which measure variables would have the most important effect on timing and fuel delivery in relation to wood gas.

1 Like

Hi Matt.
We simply need to add a DAC (Digital to Analog Converter) chip or break-out board to the Arduino.
Here’s one:

If you have a few minutes to waste, go here where I discuss using Arduino for my woodgas experiments (at the front end of the video) and then, later on demonstrate a “Digital Potentiometer” to produce an analog output:

Please let me know if I missed the point of your question,
Pete Stanaitis


Thats it!!! all we need is the ability to change the voltage output and we can do just about anything with Arduino.

Hello Don.
To address your question about the most important sensors:

Yes, all the other sensors that you mention are very useful. But I was identifying the absolute minimum sensors needed to get a gasoline engine running. You correctly mentioned that they “are the most fixed sensors”. This is true, fortunately, because without them, we’d get no spark. One might argue about the need for the cam sensor. And rightfully so, if you only need the most basic of info and you don’t care if it takes several engine revolutions to get “sync” for the sparks.
The crank knows where the pistons are but it only knows where the valves are half the time. That’s why(I think) all modern production vehicles also use the cam sensor. By the way, these days, the systems are so advanced that if one or the other of those two sensors fails, the ECU can get you home in “limp in” mode. Having said all that, I guess I will have to take back my vote that the cam sensor is totally indispensable, as long as you can put up with a wasted spark system.

I know I am glossing over many important points here ie: using cam data for fuel injection timing.

Pete Stanaitis

1 Like

This thread is actually the same question. :slight_smile:

Is the fuel sensor output analog or does it spit out can (which is also 12v)

Hello Sean.
Not sure exactly what you mean by “This thread is actually the same question”.
I think Matt is probably asking about MOST Arduinos, which use 5 volt power (actually 5v to about 12v and take mostly zero to 5 volt inputs while providing zero to 5 volts out on their GPIO ports. But the Arduino in your link is sorta special. It’s the Arduino Due which is a 3.3 volt machine. Which, by the way already HAS 2 DAC (Analog) output pins!

I don’t know the answer about the fuel sensor’s output level or waveform. I suppose you could be asking about fuel tank level sensing or about fuel flow sensing. I suspect they’d be very different animals from a signal output standpoint. The tank level sensor could be just about any simple analog voltage that would be easily averaged. But the fuel flow sensor could well be a pulse train that would require quite a bit of processing.

Back to the list of other sensors:
One very important, but not absolutely critical one (that hasn’t been mentioned yet): Battery voltage. It is used to trim ignition coil charge time and to modify fuel injector on-time.

Pete Stanaitis

For the fuel sensor, we’re talking about the sensor on the tank for Flex Fuel systems. This is how the ECM knows how much E-85 fuel you have vs typical gasoline. Im going out on a limb but I think most sensors on new cars OBD 2 and above are now all 5 volt now days. So in this instance I think with an E-85 engine modding this signal is all we really need to do. I bet the engine systems would completely happy running woodgas if the ECM thinks its running a full tank of E85. The timing should be pretty much identical for E-85 vs woodgas.

i meant the link was actually someone asking about how to up the arduino output voltage to an analog 12v signal for an ECU. :slight_smile:

For starters: love this topic…

second: if you know how to "spoof"your ECU to think its running on dyno fuel, then the rest is “basic easy” but…

disengaging fuel trims or being able to reset them when switching over…

What value is the ECU trimming itself ( ignition timing )
and what function in this trim has the “knock sensor”
Most systems have only a narrow trim with the Knock sensor and are basicly running on cam shaft timing/mapping
trimmed by the Map and temperature, with a coldstart programmed…

spoofing that cold start sequence is for us important to avoid the more new ECU going into “safe mode”
To lean in cold condition can trigger certain ECU conditions / memory storage reset needed ?
It all depends the OEM programming…

I am thinking of building a redundant system, that actually puts the OEM ECU to “sleep/standby” and bypass the sysytem, or even kick out the original and get a full fledged new ECU from the racing strip…
In short time thinking the latter would be the most fun/ easiest way to go, be it a “bit” more expensive… unless you’l fry your original of course… ( been there lately :grin: )

To build for woodgas only :slight_smile:
1: basic ignition map with cam and trim with knocksensor
2: gas mix based on AFR sensing

option: injection trim from dyno/other liquid fuels based on AFR sensing

The system will lack on fast throttle response, but will be doing its job just fine in relax driving / steady pulling
Having a adjustable “knob” for playing with some “values” whilst driving is a bonus…

rest: SWEM


Koen I love your idea I just don’t think it would fly in places like the USA where we have inspection every year. They have to plug into your cars computer and get a report out of it to pass inspection and I bet it would be very difficult to get something different approved by the government.

I keep wondering if maybe a better method for the do it yourself type is to “rebuild” a older pre emissions vehicle as a ground up restoration designed for wood gas. It would get way off topic for this thread but my basic idea is learn from the drag car industry build a small block chevy up to 14:1 use an electronic conversion in a distrubitor then set the timing where you want it. Also gear the drive train so you don’t spin up beyond something like 1800 - 2000 rpm. Like the old tractors. The lower speed will go along ways to offset the higher compression. I have been giving this alot of thought with respect to tractor repowers. The one big catch to running a small block chevy from about 500 to 2000 rpm is cooling I think you need redo the belt drive pullie to double the water pump flow rate. More then one small block has been cooked in tractors at low rpms. I have probably already gone into more detail then belongs here. Just wanted to float the idea of using proven modifications to an older engine in order to avoid the inspection laws and improve performance. The truth here in the usa is that the Vin number is what you need to save to have a certain year car everything else can be replaced as repairs.


Sorry Sean.
I thought we were still talking about analog outputs. I guess I was answering the wrong guy.

Pete Stanaitis

It was analog, but they need a 12v signal so you need to amplify the 5v signal. However, there are a couple of different ones.

This is a desc of the newer generation:

This makes it sound like it is 5v canbus.

this is the older generation which i read (not official) was 12v analog.
ACDelco 12570260 GM Original Equipment Flex Fuel Sensor

This one sounds complicated

I didnt get that far into this, (working) but this sounds like this is exactly what we will want to do for our applications.

What vehicle is it?
The problem is if it is actually a 5v signal, it could be a pwm signal. Or it could be a canbus signal, they will both appear as square waves. The patterns will be different, so you would have to put a scope on it.

Its a PWM pulling to ground on one side and to 5 v on the other. This is for GM and also others

you might be able to do it with one of those IOT lua arduino things with built in wireless then. You intercept the actual signal figure out what it is, then send it on it’s way, unless you connect to it and say you are using woodgas. then you just disregard the actual signal and send it a fake one.

You might have to -slowly- switch signals so the timing doesn’t switch immediately.

1 Like

I think all we would do is in woodgas mode is bypass the sensor completely and tell the ECM with artificial signal from Arduino that we have a full tank of E-85. Just have a selector switch to switch the feed back signal to the ECM.

Yeah if your running gasoline that is a good point if you are switching over on the fly.

At 3000 rpm the motor turns over once every 20 millisec. Alot of the lower cost micro controllers have a 2 millisecond update rate. That means only 10 updates per motor rev or 36 degrees of resolution. You can get faster controls but they cost more. Cycle time is something to keep a close eye on when you start to look at the speeds a motor runs at.