Table of Contents

LED Matrix Shades

ASCII LED Matrix Shades are a wearable LED matrix shaped like slotted sunglasses. They are made from FR4 standard PCB material and 3D printed plastic parts. An integrated battery provides hours of tether-free operation, and an Arduino-compatible microcontroller can generate a wide variety of LED patterns. New patterns and messages can be programmed using the Arduino IDE. Code is downloaded to the LED Matrix Shades through a standard USB Mini-B connector; the integrated battery also charges through USB.

Safety and Care

The LED Matrix 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 LED Matrix Shades for a few seconds is much less embarrassing than falling down.

Since the LED Matrix 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. Take extra care with the nose piece; it is protecting two extremely tiny chips on the back of the glasses. These chips can easily be snapped off the PCB if directly impacted by an object. 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 LED Matrix 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.

Features

Technical Specifications
Display Area 166 single-color LEDs, 24×8 logical matrix
Display Bitdepth 256-level PWM brightness control of each LED
Display Brightness Global brightness control of full array (up to 256 levels)
Power Supply 400mAh Lithium-Polymer battery
Battery Life 3-8+ hours depending on pattern and brightness
Charging Supply Charge from any USB port, 250mA maximum drain
Charge Indicators USB power and charging indicator LEDs
On-board Processor ATmega328P at 8MHz, Arduino-compatible bootloader
Communications Built-in FTDI USB-RS232 converter
Sensor Input Built-in ambient light sensor
Auxiliary Interface TTL-serial and I/O pins available for hacking

Operating Instructions

ASCII

Power Switch

The LED Matrix Shades have a power switch located on the left (battery) side. To turn on the device, push the small black tab toward the front of the glasses (push it from the O symbol to the I symbol). To turn off the device, push the black tab toward the back of the glasses. If the LEDs on the front of the glasses do not turn on, make sure that the integrated battery is charged, and the correct firmware is loaded on the glasses microcontroller.



ASCII

Control Functions

Control of the LED Matrix Shades is possible by pressing the two small pushbuttons on the right side of the device. The button closest to the front (SW1) is normally configured to allow switching between available graphics patterns. The glasses will start up in auto-cycle mode, where each pattern is displayed for a short time in sequence. If SW1 is held down for approximately two seconds, the glasses will switch to manual-cycle mode where SW1 must be pressed to move to the next pattern. When manual-cycle mode is activated, “MM” will flash on the display. When auto-cycle mode is activated, “AA” will flash on the display. Auto-cycle mode can be reactivated by holding SW1 down for two seconds again. All of the above behavior is controlled in software, and can be modified by editing the Arduino code.

Pressing SW2 is normally configured to select between five different overall brightness levels for the display. The hardware is actually capable of 256 brightness levels, but the default firmware only allows five. This can be modified by editing the Arduino code; for example, to use the ambient light sensor to automatically adjust the brightness depending on nearby lighting conditions.

Name Function
SW1 Pushbutton closest to front of glasses. Selects new pattern (in default firmware).
SW2 Pushbutton closest to back of glasses. Selects brightness level (in default firmware)
USB Mini-B connector used for charging and firmware download
Light Sensor Ambient light sensing for auto brightness or communications (not enabled in default firmware)
GND, RX, TX TTL-Serial interface
Other I/O Arduino-compatible I/O analog and digital pins


ASCII

Battery Charging

To charge the LED Matrix Shades, plug the included cable into the USB Mini-B connector on the right side of the device. Plug the other end of the cable into a computer, USB charging adapter, or other source of USB power (portable USB battery packs are a useful option). The integrated 400mAh Lithium-Polymer battery will typically last 3-8+ hours depending on brightness setting and the pattern selected. Reducing overall brightness saves power, as will using a pattern that activates smaller numbers of LEDs, or uses PWM for less than full brightness on some LEDs. Recharging the battery typically requires 2-3 hours.



ASCII

Charge Status

When USB power is connected, the green USBPOWER LED on the left side of the LED Matrix Shades will light. This LED will be on any time the glasses are plugged into an active USB port. When the integrated Lithium-Polymer battery is charging, the red CHARGING LED will light. This LED will turn off when the battery is fully charged.



Programming Instructions

Install FTDI Drivers

The LED Matrix 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: http://www.ftdichip.com/Drivers/VCP.htm

Install Arduino IDE

The Arduino IDE is necessary to edit and download firmware to the LED Matrix Shades. It is not just used for the LED Matrix 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 LED Matrix 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: http://arduino.cc/en/main/software

Verify Installation

Plug in the LED Matrix 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 LED Matrix Shades unplugged from the computer, and then check again for a new COM port with the glasses plugged in. On Mac OSX and Linux computers, it will likely appear as the only port containing “DA” followed by a string of other numbers and letters. Don't select any unknown ports or anything marked as Bluetooth; none of that is attached to the LED Matrix 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 LED Matrix Shades. Select the “Arduino Pro or Pro Mini (3.3V, 8MHz) w/ Atmega328” option. This is a standard type of Arduino board that is available for purchase elsewhere, but the LED Matrix 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 LED Matrix Shades Code

The LED Matrix Shades require fairly complex code in order to manage the basic functionality, so it's a good idea to start with our example code. Download the ZIP file here: http://www.macetech.com/LEDMatrixShades.zip

The code is also available on Github: https://github.com/macetech/LEDMatrixShades

First, close the Arduino IDE. Unzip the LEDMatrixShades.zip file; it should contain a folder named “LEDMatrixShades” which contains several other files. 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 LEDMatrixShades 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 LED Matrix 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 “AS1130Glasses”. Regardless, click on “AS1130Glasses” 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 LED Matrix 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 LED Matrix 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 scrolling text messages by going to the “messages.h” tab, and replacing the existing text with your own. Try replacing the first message with your name, and clicking the Upload button again. If the upload completes successfully, your name should appear instead of the old message, and you have a working setup for experimenting with the LED Matrix Shades. Changing messages after this point will only require starting the Arduino IDE, verifying the correct serial port is selected, modifying the text in the “messages.h” tab, and clicking Upload.

More Information

Additional instructions for changing the messages are available here: Changing Messages
An introduction to developing new bitmap patterns: Bitmap Patterns