GEK Wiki / GCU


Page history last edited by jim mason 13 years, 6 months ago

Back to: Gasifier Control Unit


Getting started with the GCU

The board includes the basic software. Below you will find the tools necessary to upload Arduino onto your computer to be able to alter code and upload your new code to the board if you wish. Before you turn on the board, check out the last section " Troubleshooting and common questions" to make sure that your GCU project is successful.



Table of contents:

  1. Software
  2. Hardware
  3. Troubleshooting and common questions



1. Software

Note: this is a modified and updated set of instructions from the GCU manual v0.5

Obtaining and installing the Arduino environment

Go to, and download the latest version of the Arduino development environment. You will also need to install the FTDI USB drivers described in the installation instructions.  Follow the installation instructions.

You should now be able to start the Arduino application. Quit the application before proceeding.



Obtaining and installing the source code

Go to the Gasifier Control Unit page. Download the Kitchen Sink Libraries (KSlibs) and KS_Datalogging sketch (Arduino calls the programs you write "sketches").

Unzip the libraries into <arduino-install-dir>/hardware/libraries/KS

Unzip the Datalogging sketch into:

<My Documents>/Arduino                     (Windows)

/Users/<username>/Documents/Arduino   (Mac) 



Verifying the Code

Restart the Arduino environment.  This is necessary to get it to recognize that new libraries have been installed.

Open the menu File->Sketchbook, you should see a new sketch called “KS_Datalogging”.  Open it.  You will see the Arduino source for the Datalogging sketch in the editor window. For information on the Arduino language, see the Arduino reference here:

Pro-tip: The underlying language Arduino uses is C++, compiled by avr-gcc (see Build Process).

Type Ctrl-R, or select Sketch→Verify/Compile.

If all is well, after some time, the diagnostic window will display “Binary sketch size: <xxx> bytes (of a 126976 byte maximum)”.  If this message appears, you have there were no problems with the code and it was compiled sucessfully.

If there are problems, scroll upward in the Arduino diagnostic window for hints as to what may have gone wrong.  If all else fails, consult the GEK wiki user’s community, or contact All Power Labs.



Uploading to the GCU

Open the menu Tools→Serial Port and note the list of ports that are available.

Now, plug the GCU into a USB port on your computer (the GCU should also be connected to a power supply).

Look at the Serial Port list again. A new port should be shown, which should be the GCU (ports are named and assigned differently on different operating systems.

Note: If you don’t know what port number it is, try looking in “Control panel/System/Hardware/Device manager” (on Windows), do “dmesg” (on Linux), or System Profiler/Hardware/USB on Mac. The port may be recognizable by the FTDI USB chip used on the GCU.

Select the correct serial port name or number.

Tools→Serial Port→<your port name>  <<this tells Arduino what serial port it’s on>>


Tell Arduino what board you’re using:

Tools→Board→Arduino Mega   <<this tells Arduino what board you’re using>>

Note: The GCU uses the same AVR chip as the Arduino Mega. If you have problems uploading, it is helpful to confirm that the Mega board is selected.

Click the “Upload to I/O Board” button.

After a few seconds, the heartbeat LED on your GCU should go out (while the new code is being uploaded.  After a few more moments, it should start again, the diagnostic window will display a happy message.

If this all goes well, then congratulations – you have successfully replicated the entire GCU firmware development environment!  You are now ready to experiment with writing your own code for the GCU.


Note: Code development for the GCU is intended to be collabrative and open source. Please ask questions in the forum, provide your own code snippets, or commit code to the KitchenSink project on sourceforge:

Again, if all does not go well, scroll upward in the Arduino diagnostic window for hints.  If all else fails, check the GEK wiki and start asking questions on the GEK forum.



Modifying the Firmware

Modification of the firmware is accomplished by modifying the KS GCU support libraries, and/or the Basic App sketch.  Please refer to GCU Manual section 5.2 for details.

To review:  The firmware is licensed to you under the GNU General Public License.  This means, in short, that if you modify the firmware you must provide the modified source to All ower Labs and make it available to others free of charge.  This is to foster a spirit of cooperation rather than competition, and to allow the community at large to benefit collectively from the works of its members. This cooperation is most easily accomplished by uploading your changes or enhancements to the GEK Gasifier Wiki, or to the SourceForge repository.


2. Hardware


The jumpers (jp1/jp2) can be connected to directly connect the power of the board to the FET connections. You can also use it to backfeed power to the board (be sure to supply regular 5v power to the board if you use this method! There is no protection, you will damage the board).

Analog Inputs


The analog imputs come disconnected, you will have to connect them for them to work. Depending on the application, a resistor might be needed at these locations.



3. Troubleshooting and common questions

  •  When plugging in the board make sure that it is not touching any other conductive surfaces. This could fry the board!
  • Before plugging in the board, make sure that the JP1 and JP2 do not have connecting jumpers across the pins. This is an optional setting for other applications.
  • Q: The display screen is always totally blue with 2 rows of blanks squares. What is wrong?
    • A: Pull the LCD screen off of the board and look at the back where the connectors are. Notice any physical damage to the board? Make sure the screen's connectors are in the corresponding sockets on the board. Misallignment of the LCD on the board can fry the LCD screen only.
  • Q: Why doesn't my analoge input connectors work?
    • A: There are two spots for resistors right behind each of the screw terminal connectors on the analoge port. Depending on the voltage of the analoge signal coming into the board, these connections should be populated with the proper resistors to ensure that the signal is below 5v coming into the analoge port. Make sure 5v is the maximum voltage allowed through the analoge port.





Comments (0)

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