9.i. ShiftBrite App

A Wixel controlling a chain of ShiftBrites.


This app allows you to wirelessly control a chain of one or more ShiftBrite RGB LED modules at a distance of 50 feet or more from a PC. You will need two Wixels to set up the wireless link: one connected to the ShiftBrites, running the ShiftBrite app, and one connected to your PC with USB, running the Wireless Serial App (Section 9.b). Using a terminal or your own software, you can send a series of hex characters indicating the desired color for each module to the virtual COM port. The characters are transmitted wirelessly, received by the remote Wixel, decoded, and sent to the ShiftBrite chain, causing each module to light up with the specified color. Approximately 1000 color commands can be sent per second, allowing large displays or smooth animations.

The ShiftBrite App is also compatible with the ShiftBar, which uses the same control electronics.

Installation Instructions

Follow the instructions for the Wireless Serial App in Section 9.b to set up and test a basic wireless serial link between two Wixels, using the latest version of the Wireless Serial App. Download the ShiftBrite App (v1.1) (20k wxl). Open it with the Wixel Configuration Utility, choose your settings, and write it to one of the Wixels. See Section 4 for more information on how this is done.

Connecting the Wixel to the ShiftBrite chain

The following connections should be made between the Wixel running the ShiftBrite App and the first ShiftBrite in the chain:

Wixel ShiftBrite Function
P1_4 EI Enable
P1_5 CI Clock
P1_6 DI Data
P1_7 LI Latch
GND GND Ground

Additionally, the Wixel and ShiftBrites may share the same VIN as long as the voltage requirements for both modules are satisfied. For initial testing, you may alternatively use VALT to power the ShiftBrites from USB (see Section 5.a).

Using the ShiftBrite App

After making the correct connections and applying power, open a terminal program and connect to the COM port created by the Wixel running the Wireless Serial App. Type ffffff. As you type the characters, they will be echoed back to your terminal. Press Enter, and the first ShiftBrite in your chain will light up in white. Then type ff0000 and press Enter; now the first ShiftBrite should be red, and the second should be white (if present).

To shift out multiple color commands at once, for example when you want to set the colors of the entire chain, type a series of single-color commands without pressing Enter, then press Enter once to apply them all.


  • radio_channel: The channel number is from 0 to 255 and determines which frequency to broadcast on. The default is 128. Wixels must be on the same channel to communicate with each other. To avoid interference, Wixels that aren’t supposed to talk to each other should be at least 2 channels away from each other. For example, you could have one pair of Wixels on channel 128 and another pair on 130.
  • input_bits: The number of bits per channel that you would like to use to send color information. The allowed values are 1 to 16, and the default is 8, which corresponds to colors represented by 6-digit hex values. However, the ShiftBrite supports 10 bits of resolution, so choose a value of 10 to make use of its full dynamic range. In this case, you must send 9 digits to set a color. For example, 3ff3ff3ff is the brightest possible white and 001000000 is the dimmest possible red. Other values for this parameter might be useful in special situations (e.g. 4 bits of resolution lets you specify a full color in three bytes, such as f00 for red, which allows for a higher update rate).
  • echo_on: Set to 0 to disable echoing of every character sent. While echoes are useful for debugging, you might want to disable them for the highest possible speed.

Data Format

The data consists of a series of red, green, and blue (RGB) values, as ASCII hex strings. Each value contains from 1 to 4 characters, depending on the value of input_bits, specifying a number from 0 to 2input_bits-1. When a complete set of R, G, and B values has been received, the values are multiplied or divided by the appropriate factor to match the 10-bit ShiftBrite data format and shifted out to the ShiftBrite chain. An Enter character (ASCII 10 or 13) causes the Latch pin to be toggled, instantly setting each ShiftBrite to its new color.


  • The yellow LED is normally on, and flickers whenever data is received from the radio, which might be useful for debugging your wireless connection.
  • You can use wires with pre-crimped terminals and crimp connector housings to make a custom cable between the Wixel and the ShiftBrite chain.


  • Shiftbrite App v1.1 (20k wxl), released 2011-04-06: Changed the yellow LED to be normally on, but flicker whenever data is received from the radio. This version is only compatible with Wireless Serial App v1.2 and later.
  • Shiftbrite App v1.0 (18k wxl), released 2011-03-28: Initial release. In this version, the yellow LED starts off and turns on after the first Enter is received. This version is only compatible with Wireless Serial App versions 1.0 and 1.1.

Related Products

Wixel Programmable USB Wireless Module
Wixel Programmable USB Wireless Module (Fully Assembled)
Wixel Pair + USB Cable
Wixel Pair (Fully Assembled) + USB Cable
Log In
Pololu Robotics & Electronics
Shopping cart
(702) 262-6648
Same-day shipping, worldwide
Shop Blog Forum Support
My account Comments or questions? About Pololu Contact Ordering information Distributors