GEK Wiki / Gasifier-Control-Unit
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!



Page history last edited by jim mason 12 years, 1 month ago


The Gasifier Control Unit v3.02

(now the Process Control Unit)


The GEK Gasifier Control Unit (GCU) is an open source sensing and control board designed to solve a broad range of instrumentation and automation needs in thermal industrial processes.  We originally developed the board for testing and control of gasification machinery.  However, it is proving equally useful for pyrolysis biochar reactors, as well as many other research and industrial control needs beyond biomass thermal conversion.  The board is a "kitchen sink" solution, including most everything one want for thermal industrial control, all at a price point far removed from typical industrial and scientific instrumentation options.


The board offers a generous number of thermocouple, pressure, analog signal, and rpm timer inputs, with a similarly generous array of PWM speed control, servo driver and higher current DC switched outputs.  Networking to other devices is supported via USB, serial, SD card and CANbus (the networking standard for contemporary engine systems).   These features operate on top of a powerful native processor for stand alone operation, with a 4 line screen included for in situ instrument reading without a computer monitor.  

Internally at ALL Power Labs, we use this board to generate datalogged test results like this.




The GCU is uniquely suited for research applications that need robust and integrated instrumentation and datalogging.  It is equally relevant for industrial applications where sensor input is used to control various motors, solenoids, fans and other control devices.  In both cases, our goal is to provide the type of expert sensing and control solutions usually only found for 10s of thousands of dollars through scientific or industrial equipment suppliers.  The GEK GCU offers equal or superior features for $1395 with the "full fill" version, or $695 with the "half fill" (see details below).  Most will probably realize that just the 16 channel thermocouple reader to serial or usb interface would cost this much from a typical scientific supplier. 


The GEK GCU is based on an Atmel AVR processor, with Arduino compatible firmware and software installed on top.  This allows us to leverage the tremendously large user base and code libraries of the Arduino environment, though deployed over a richer measurement and control base than typical Arduino projects.  Power and ease of use, together at last-- all in the service of the "Cult of the Black Goo".


Here are the specific details of the full and half fill versions:



  Full Fill
Atmel ATmega 1280
Atmel ATmega 1280
Thermocouple Inputs
16 K-type
4 K-type
Pressure Inputs (High Range, +/- 28 inH2O)
Pressure Inputs (Low Range, +/- 8 inH2O)
FET Outputs (5 A continuous)

Analog Inputs

(10-bit, Phidgets  compatible connectors)

Frequency Counter Input
R/C Hobby Servo Outputs 3 1
Display (4x20 character) yes yes
4 Button Keypad yes no
MicroSD Slot yes  
CANbus hardware yes no
RS-232 Interface yes no
Prototyping/Expansion Area yes yes
Click here for purchase info $1395




User's Manuals

Technical Manual: v 0.6 - draft form (pdf)

Operating Manual:

GCU Part Positions

ATmega1280 microcontroller documentation:doc2549.PDF 







//install libraries in Arduino application folder/hardware/libraries/KSlibs.

KSlibs - Arduino support libraries


Note (the function GCU_Setup should be placed inside setup() with values to properly specify the GCU in use):

  //Specify GCU: (version,fill,psequence)
  //version = V2 or V3 / 2.0 or 3.0
  //fill = FULLFILL | HALFFILL | LITEFILL / full, half, or lite fill boards
  //psequence: for V3.01 boards, check sequence of P sensor part numbers (e.g. MXP7007 or MXP7002, and use last digit). V3.02 boards use P777722:
  // P777222, P222777, P777722



//Install sketches into the Arduino folder (Windows: My Documents/Arduino; Mac: User/X/Documents/Arduino)

//In the Arduino interface you will see these sketches show up under File/Sketchbook.

KS_Datalogging2 - Arduino sketch

KS_Engine3 - Arduino sketch for running Power Pallet (includes energy monitoring code, PID O2 control, alarm code) (note: when downloading from GitHub, you will need to rename the sketch "KS_Engine3". Baud rate for the Power Pallet is 57600).

Recommended Additional Libraries

You may want or need to install additional libraries, depending on the code you want to run:



Code Examples

GCU Example Code


Communication and Datalogging

A serial terminal can be used to communicate and datalog with a computer:

  Windows: puttytel

Datalogging/Graphing Application for the PCU/GCU (Windows)

  Mac: terminal

  How to do datalogging with the GCU

  Process Control and Visualization Software



Power Monitoring

AC Power Monitoring

OpenEnergyMonitor Library

Flow Measurement

Orifice Flowmeters: Building and Calibrating an Orifice Flowmeter & Code

APL Research Kit


Humidity Measurement 


Current Measurement 


Temperature Measurement 


Force Measurement 


Voltage Measurement 



Working with Inductive Loads

Using inductive devices (motors, relays, solenoids...) with the GCU



GCU Can-Bus Support


Menu Screens

The basic software that comes with the GCUv3.0 has five data screens displayed on the LCD. 

1)Main Menu



4)Fet Drivers

5)Servo controllers



More pictures of GCU v3.0. 




If you would like to place an order for the GCUv3.0 visit the instrumentation page in the GEK gasifier store.



  1. Q: The Arduino compiler states: "Error: DDRJ was not declared in this scope." A: Confirm that the Arduino Mega board is selected from the Arduino->Tools->Board menu. 

2.  GCU: Getting Started (pending)



Comments (7)

Daniel Chisholm said

at 9:19 am on Mar 22, 2009

Ballpark price.....?

Is there any intelligence on it, or is it just meant to serve as an interface card for a (laptop) computer?

Can it be arranged so that power for the board can come from the USB connection? (i.e. no need to explicitly supply power to the board).
If there is intelligence, and it is programmable, what language(s), processor, etc?

What's the RS-232 port for? (i.e. why bother with it, can't everything be done with USB?)

FWIW I think that pair of RC servo outputs is smart.

Geo said

at 9:53 am on Mar 24, 2009

Hi Daniel--

we're still working on what the pricing and options are going to look like.

There is intelligence -- there's an Atmel ATMEGA1280 on the board. 128kB flash, 8kB RAM. Programmed in anything you want. We plan on shipping it with basic OS code written in C, compiled with open source tools (gcc toolchain).

It cannot be arranged so power comes from the USB port. Reasoning was that anything you do with the higher voltage FET drivers wants a higher voltage supply. In retrospect, though, that was a bit stupid. I will make the next rev so that it can be powered via USB.

The RS-232 port is for expanding to legacy laboratory equipment (gas analyzer, etc).


Daniel Chisholm said

at 11:22 am on Mar 24, 2009

On the one hand, I don't want APL gong down a rathole and producing yet another computer interface board. I recently heard of the LabJack U3, and thought "wow, that's great, that should be the GEK controller, APL shouldn't waster their time reinventing the wheel". Then I realized that you are including pressure transducers and thermocouple inputs, both vital for a gasifier task, and these aren't part of the LabJack (and while they can be added to the LabJack, to add so many might not be cost effective). Then I thought, "hmmm, why not use the LabJack as the central part of the GEK GCU"; but that would work only if the idea was to also always have a source of smarts (a laptop) on hand and connected. Which is a long way of me saying, maybe what you guys are doing is the right way after all.... ;-)

How much voltage do the FET drivers need to provide? (I haven't priced out small DC-DC converters in the past 15 years, but that would be my thought there....).

Daniel Chisholm said

at 11:23 am on Mar 24, 2009

P.S. I am _really_ looking forward to browsing your source code. There's even a chance I could contribute, too! (will you be putting it up on sourceforge, or something like that?)

Geo said

at 12:32 am on Apr 7, 2009

Hi Daniel--

yes, the reason we rolled our own was originally to get the costs down on many thermocouple inputs (I've designed a pretty cool low-cost, high accuracy circuit for it). But then everyone and their uncle started tossing in features. So now we have what I call the "kitchen sink".

I'm not sure how much source code there's gonna be to browse in the near future (maybe you can help with that?), but yes, it will all be on sourceforge.

Steve said

at 7:00 pm on Oct 5, 2009

Please forgive the Newbie question, but I have a Newbie question. I managed to wipe my KS board clean of its program while playing with all its shiny objects. I thought it would be no problem to restore the "factory" code, but all attempts to reinstall the 2.02 basic program have failed due to what is most certainly user incompetence.

I am getting this error upon compilation: "17: error: adc.h: No such file or directory In function 'void setup()':"

I assume it is a path error while trying to find the dependent include files, but I can't seem to crack the case. Does anyone know how to reinstall the example code, or what I may be doing wrong?

Steve said

at 7:26 pm on Oct 5, 2009

Please disregard my previous Newbie post. The most amazing thing happened. I read the manual! wow, these "manual" things are pretty neat!

You don't have permission to comment on this page.