Not logged in - Login

Komby overview

Komby devices are based on the Arduino microprocessor and development platform, which is combined with a radio transmitter from Nordic Semiconductor (with the friendly name of nRF24l01). While you don't need to be an expert in either Arduino or the Nordic transceiver, some basics won't hurt and will make things easier for the novice.


The Arduino was developed to allow easy access to microcontrollers for people with little or no electronics or computer background. The environment is based on various chips from Atmel Corp. (most specifically, the ATMega328p controller) and on a programming language which has been designed specifically for non-programmers (it's an amalgam of the languages called Wiring and Processing with simplified C++ attributes).
The Arduino UNO with socketed ATMega328. (Image courtesy MediaWiki.)

The Arduino hardware is open source and the schematics are freely shared. The inventors have developed as many as eight different "official" versions of the hardware, but from the Komby perspective, we focus on the UNO, which uses the ATMega328 microprocessor.

An Arduino can be no more than just that 328 chip, a resonator (or crystal) to help the processor keep on time, a few capacitors, a resistor and a power supply (these go by names like Bare Bones Board, Boardino and Freeduino). Full boards are distinct in that they also have a USB connection that can provide power and allow the board to be programmed, as well as one or more status LEDs.

An UNO clone. (Image courtesy MediaWiki.)

In the Arduino environment, the 328 chip is pre-programmed with a small file called a "bootloader," which tells the chip it is in the Arduino world and can accept Arduino firmware.

The Komby controllers are just a basic Arduino; they have the chip, the resonator/crystal, the capacitors, the resistor, one or two (depending upon whether they're controlling 5-volt or 12-volt pixels/devices) voltage regulator(s) and standard pin headers for output.

The Arduino firmware — called "sketches" — tell the chip what to do. The most basic Arduino sketch (known among computer programmers as a "hello world" application) is the Blink, which causes one of the status LEDs to go on and off.

Here is the Blink sketch:

  Turns on an LED on for one second, then off for one second, repeatedly.
  This example code is in the public domain.
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
The lines with two slashes (or the areas defined by slash-asterisk and asterisk-slash) are comments and explain what's going on.

While not completely necessary in order to use the Komby environment, it is suggested that a Komby enthusiast acquire an dual inline package (DIP — where the chip is in a socket rather than soldered to the board) Arduino UNO or a clone; UNOes are now carried in Radio Shack stores or can be purchased online from a wide variety of sources, including UNO clones are available on for prices as low as $10.

Once you have an UNO board, take a run through the designer's "Getting Started with Arduino" page.

Nordic transceiver

The nRF24l01 chip is designed to both transmit and to receive digital signals in the 2.4GHz frequency, which is the same as WiFi computer connections, cordless phones and other industrial, scientific and medical transmissions.

The chip is surface-mount technology and is about 3/16-inches square. Though a hobbyist could work with a chip that small, fortunately no end of Chinese manufacturers purchase the chip and mount it on a small board, complete with crystal, resistors and an eight-pin male header making for easier use.

There are two basic versions of these small boards:

  • A 5/8-inch by 1-1/8-inch board which has an antenna built into the board itself. The antenna is a distinctive feature of the board, running back and forth, giving it its nickname, the Zig Zag.

The Nordic transceiver with the telltale Zig Zag antenna.

  • A three-quarter-inch by 2-inch board that adds power amplifier and low-noise amplifier circuits to the basic chip and is distinctive for its large brass female SMA connector (to which is usually added a one-piece, soft plastic antenna that's called a rubber ducky). This one's nickname is PA/LNA or "the one with the antenna."

Typically, with two Zig Zag Nordic transceivers there is a useful signal for about 50-80 feet (the quarter the length of a football field) but that is unobstructed line of sight (and leaves in a tree or a wall in a house count as obstructions). Two Zig Zags can be defeated by a couple of walls (especially if one is stucco).

By substituting a PA/LNA for one of the Zig Zags (usually as the transmitter), the range can be extended and some obstructions can be overcome.

Since the receivers usually need to be placed close to the devices they're controlling, strategic placement of the transmitter is essential.

Why Arduino & Nordic for Komby?

The Nordic transceiver has been chosen because of its low-cost nature — the Komby store sells the Zig Zag for about $1.50 and quantity purchases from China can drive that price down substantially.

Any one of a variety of microcontrollers can be used to drive the Nordic transceivers and there are libraries for processors from ARM, Microchip and even other Atmel chips. Why the Arduino?

The Komby environment was originally developed to drive General Electric Color Effects pixels and time was of the essence in order to make the 2012 holiday season. The ease of developing for the Arduino platform coupled with an existing Nordic transmitter library made it the choice.

Another key library — the one that drives pixels — was also initially developed by non-holiday lighting hobbyists only for Arduino and using that library saved precious time for the 2013 holidays.