Woodgas Cooking

Woodgas LE Stove

Woodgas LE Stove


So, here’s the thing. You want to go off for a bit of wild camping, which is technically not allowed in England without the landowners permission, so no tell-tail cooking smoke allowed,  or maybe you’re heading off into the wild blue yonder like the Omega Families trip to Kilimanjaro. In either case, who wants to bother with carrying gas cylinders? I mean, what happens when they run out? Nightmare.

Enter wood gasification in the form of the Woodgas LE camping stove. Wood gasification is to burning logs what natural gas is to lighting your own farts…it’s a lot more efficient (and less smelly). .

In essence, a small handful of twigs and bits of dry woody rubbish picked up off the ground provides sufficient heat to cook a meal. It sounds insane, but it works and is a priciple that has been used for about 160 years in one form or another. The Woodgas LE is great in concept but lacks finesse and needed to be modified Omega-style.

The effectiveness of the LE comes from its’ built-in electric fan. The stove will gasify, badly, without the fan. However, with it there’s a bunch more available heat and efficiency. You can maybe just about see in the picture above that there is an external battery pack which can plug into one of two sockets on the side of the stove. One of the sockets has a resistor in series with the fan motor to limit its’ speed. The issue is that on high speed it’s too hot to cook on and on low speed it’s neither use nor ornament.

This is where my favourite set of micro controllers comes to the fore in the guise of the ATTINY85 which is a little 8 pin chip that you can program.I hooked it up to a potentiometer with a built in power switch and a small transistor to control the fan speed using PWM (pulse width modulation). The c++ code for Arduino is included below. All it does is to read the voltage indicated by the potentiometer and convert it into a PWM signal to drive the motor speed. This means that it is continuously variable in speed from zero to max by turning the knob which gives fine control over the heat generated by the stove. This is ideal for cooking and also make it easier to light as you can set a small fire at the top of the stove and tweak the draught until it lights.

Another issue was the external battery pack. This didn’t seem to be a good idea as wires can get snagged and broken. So, I drilled out the three rivets holding the fan housing on the base of the stove and fitted three 3500mA rechargeable batteries. One of the original sockets is then used to recharge the unit and the other one provides an external power feed at 4.5V to power a small LED cooking light. The fan at maximum speed takes about 100mA so there should be around 35 hours of cooking from a fully charged set of batteries – in reality, you only run it at high speed to boil water, actual cooking uses a lot less power.

For my next trick, I have ordered a 5V Thermo-electric generator to re-charge the batteries so that I’ll never run out of power. This is from www.tegpower.com. I ordered it back in February and haven;t heard form them yet though. The buggers took my cash and haven’t shipped the goods which is naughty, to say the least. They have a lousy reputation and I’m only hoping that they haven’t gone belly-up; in which case, I’ll be building one myself I guess.


#include <EEPROM.h>
#include <Arduino.h>
#include <avr/wdt.h>


#define FAN_PWM 1
#define FAN_SPEED 3
#define LED 13

volatile unsigned int pot_value, old_pot_value, pot_average_count = 0, pot_average_value = 0;

volatile int one_minute_prescaler = 0, minutes = 0;
volatile int led_prescale = 0;

volatile int max_pot_value;

volatile boolean battery_charging = 0, inc_minutes = 0;

void setup()
int i;

wdt_enable(WDTO_2S); // Enable watchdog timer


void loop()
static int i;
for (i = 0; i < 5; i++) {digitalWrite(FAN_PWM, 1); delay(20); digitalWrite(FAN_PWM, 0); delay(20); }

pot_average_value = 0;
pot_average_count = 0;
old_pot_value = 0;

for (;;)
wdt_reset(); // Reset the watchdog

pot_average_value += analogRead(FAN_SPEED) >> 2;
if (pot_average_count >= 10)
pot_average_count = 0;
pot_value = pot_average_value / 10;
pot_average_value = 0;


if (old_pot_value != pot_value)
analogWrite(FAN_PWM, (byte) pot_value);
old_pot_value = pot_value;





Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.