User Tools

Site Tools


Early Access RGB Shades

This is the documentation for the Early Access RGB Shades, which were the first 80 sets shipped after our Kickstarter campaign successfully funded.

rgbshades.jpg RGB Shades are a wearable LED matrix shaped like slotted sunglasses. They are made from FR4 PCB material and M3 hardware. An Arduino-compatible microcontroller can generate a wide variety of colorful pixel patterns. The RGB Shades are powered and programmed over USB; a rechargeable USB battery pack can be used for portability. New patterns can be developed and uploaded to the RGB Shades from any computer with a USB port.

Safety and Care

The RGB Shades are intended for entertainment purposes only. They do not provide any eye protection, either from sunlight or flying objects. Vision is partially limited while wearing these, and they should never be used while driving or operating any other machinery that could potentially cause harm to yourself or others. Please take extra care while walking, and remove the glasses if there is a risk of tripping or bumping into objects or people. In most cases, vision is more than adequate to navigate a crowded room without any problems, but removing the RGB Shades for a few seconds is much less embarrassing than falling down.

Since the RGB Shades are made from exposed circuit boards, they are FRAGILE and should be treated with care. Do not bend, twist, hit, or scratch the circuit boards. A small scratch from a metal object could easily prevent one or all of the LEDs from working. Keep away from liquids; if splashed, turn off immediately and let dry before testing again. Keep away from any conductive objects; placing them in a pocket with keys and coins is likely to result in damage. Don't drop the glasses on a hard surface…we recommend tying a string through the holes at the ends of the side PCBs. In summary, the RGB Shades are more fragile than your cell phone, so please treat them accordingly. Damage to the PCB itself (scratches or excessive bending) cannot be repaired.

The above is what COULD happen, but in practice they are fairly durable and will likely survive accidental contact with dirt and liquids. The main cause of damage would be impact with sharp objects or actual destruction of the circuit boards.

Open Source Hardware

The RGB Shades are under active development. The current version (Early Access) delivered to Kickstarter backers is essentially a rebuild of our second prototype. The hardware files are distributed as Open Source Hardware (OSHW) under the CERN OHL v1.2 license. The firmware files are distributed open-source under the MIT software license. The firmware, hardware, and 3D part source files can be downloaded here:

RGB Shades code on GitHub:
RGB Shades hardware files:


RGB Shades are optionally delivered as a DIY kit for assembly. The following YouTube video explains how to assemble the RGB Shades.


Technical Specifications
Display Area 68 WS2812B RGB LEDs, 16×5 logical matrix
Display Bitdepth 256-level PWM brightness control of each color on each LED
Display Brightness Global brightness control of full array (up to 256 levels)
Power Supply 5V 1A (through mini-USB connector)
Battery Life ~3 hours on 2000mAh battery pack, variable
On-board Processor ATmega328P at 16MHz, Arduino-compatible bootloader
Communications Built-in FTDI USB-RS232 converter
Auxiliary Interface I/O pins available for hacking

Operating Instructions

Power Switch

rgbshadescontrollerswitch.jpg The RGB Shades power switch is actually a selector between external and USB power. If both power sources are available, then the switch will only select between the two sources. However, in most cases only one source of power will be available, so it will act as a power switch. When the switch is in the USB position, the RGB Shades will draw 5V power from the mini-USB connector. When the switch is in the EXT position, the RGB Shades will draw 5V power from the 5VIN pin. Only regulated 5V power should be connected to the 5VIN pin. A regulator can be soldered to the VIN, GND, and 5VIN pins to get 5V from an unregulated source.

Control Functions

Control of the RGB Shades is possible by pressing the two small pushbuttons labeled SW1 and SW2. These buttons are read by software in the microcontroller, so their functions can be completely altered in code. However, our default software uses the buttons in the following way:

SW1 short press / click: Select the next animation available in the list of animations.

SW1 long press / hold: If the button is held for more than one second, it will toggle between auto cycle and manual cycle modes. Auto cycle mode will automatically switch to the next pattern in the list after 15 seconds. Manual cycle mode will stay on the current pattern unless SW1 is clicked to select another pattern. When auto cycle mode is activated, the RGB Shades will blink blue once. When manual cycle mode is activated, the RGB Shades will blink red twice.

SW2 short press / click: Increases the overall brightness level. When maximum brightness is reached, it will cycle to the lowest brightness.

SW2 long press / hold: If the button is held for more than one second, it will set the brightness to the default startup value (midrange).

Power Source

Since the RGB Shades are powered using 5V, a range of power supply configurations is possible. The most useful power supply is a rechargeable USB battery pack capable of at least 1A output. They are available in a wide range of capacities, but 2000-3000mAh is a good compromise between runtime and size. Power requirements vary significantly depending on the currently displayed pattern and the overall brightness setting. Our default software sets the initial overall brightness between 50 and 70 (out of 255). This is usually bright enough for most environments, and can actually be far too bright for a dark room. We don't recommend modifying the code to the maximum brightness, as the LEDs will begin to heat up and it will draw more current than most USB battery packs can provide.

When connecting the RGB Shades to a computer for programming, it's also best not to set the brightness too high. Computer USB ports vary widely in the amount of current output possible, so it's best not to ask for more than 500mA. If you're having trouble uploading code to the RGB Shades, try setting them to minimum brightness first.

Programming Instructions

Install FTDI Drivers

The RGB Shades use an integrated USB-to-serial converter chip (FT230X). This will allow your glasses to appear as a USB serial port when plugged into your computer, which is required for downloading new firmware to the glasses. Many computers already have FTDI drivers, but the FT230X chip is relatively new and may require a driver update. We recommend that before you begin, you should visit the following website, locate the appropriate driver for your computer's operating system, and install it:

Install Arduino IDE

The Arduino IDE is necessary to edit and download firmware to the RGB Shades. It is not just used for the RGB Shades; in fact it is used for many different types of hardware from different vendors (small controller boards such as the Arduino Uno). Since it is free open-source software and works on Windows, OSX, and Linux, we have chosen it as a convenient way to share and modify the firmware that controls the RGB Shades. Many of our customers may already have the Arduino IDE installed; if not, please visit the following website, choose the correct download for your computer, and follow the installation instructions:

Verify Installation

Plug in the RGB Shades and turn them on. Start the Arduino IDE; a blank editing window should appear when it's ready. On the Arduino IDE main toolbar, click on the Tools menu and hover over the Serial Port option. A list of ports should appear. On Windows computers it will appear as “COMx” where “x” is some number. Your computer may already have other serial ports, so the easiest way to find the LED Shades is to check the list with the RGB Shades unplugged from the computer, and then check again for a new COM port with the glasses plugged in. Don't select any unknown ports or anything marked as Bluetooth; none of that is attached to the RGB Shades.

Select Board Type

In the Arduino IDE main toolbar, click on the Tools menu and hover over the Board option. A list of possible board types will appear; only one will work correctly with the RGB Shades. Select the “Arduino Pro or Pro Mini (5V, 16MHz) w/ Atmega328” option. This is a standard type of Arduino board that is available for purchase elsewhere, but the RGB Shades are designed to be compatible with that board type as a matter of convenience. Otherwise, these instructions would also require you to modify your Arduino installation.

Install FastLED Library

The RGB Shades code uses the FastLED library, which you will need to download from GitHub ( On the right side of the page, click the Download ZIP link. Uncompress the ZIP file and rename the “FastLED-master” folder to just “FastLED” and copy the entire folder to your Arduino libraries folder (usually found in the Arduino sketch folder…create a “libraries” folder there if one does not exist).

Install RGB Shades Code

The RGB Shades require fairly complex code in order to manage the basic functionality, so it's a good idea to start with our example code. We are developing the code on Github, and you can download it by clicking the “Download ZIP” button on the right side of the page:

First, close the Arduino IDE. Unzip the file; it should contain a folder named “RGBShades-master” which contains several other files. Rename the folder to “RGBShades”. Place the entire folder in your Arduino sketchbook folder. If you don't know where the sketchbook folder is, check in your personal Documents folder for an Arduino folder. Otherwise, you can find the sketchbook folder location by checking the Arduino > Preferences or File > Preferences menu when the Arduino IDE is running. Move the entire RGBShades folder (not just the files inside) to the Arduino sketchbook folder. Now, start the Arduino IDE again.

Test Firmware Upload

Start the Arduino IDE again, and make sure the RGB Shades are powered on and plugged into your computer. Click on the File menu and hover over the Sketchbook option. A list of sketches installed should be visible; if this is your first time using the Arduino IDE, then the only visible sketch might be “RGBShades”. Regardless, click on “RGBShades” and a window containing a lot of code and several tabs should appear. Go to the top of that window, and click on the right-arrow icon to upload the code to the RGB Shades. If the FTDI driver installation and serial port selection is all correct, then two LEDs on the right side of the glasses should start blinking. The upload process will take several seconds; please wait for it to complete before doing anything else. After a successful upload, the RGB Shades should start running patterns, and there should be no orange errors at the bottom of the Arduino IDE window. If there are errors, review all the previous steps carefully.

Modify Code and Upload

You can easily edit the code to display other patterns. It does require a level of programming knowledge, but we are working on more patterns you can simply upload without writing code. We are also working on easier ways to create and upload patterns with a graphical tool instead of code.

/home/macetec/public_html/docs/data/pages/early_access_rgb_shades.txt · Last modified: 2016/11/08 02:05 by macegr