MiniSSC on wifire16

The MiniSSC protocol used by some servo and relay controllers is very simple:

0xFF [channel] [value]

For servos, value can be from 0 to 255, with 127 being the midpoint. Relays are even easier: 0 is off, 1 is on.

As a result, the Arduino sketch for a wifire16 board that processes this data and activates the SSR channels is also very simple, and allows the wifire16 board to be used with any control software that supports the protocol. One example of this is VSA by Brookshire Software. (I've never worked with VSA myself, but it's what a friend uses to control and sequence his Propane Dancefloor project.)

The wifire16 MiniSSC code can be found here.

pixelboard64, try 2

In 2010, I worked on a project that required both flame effect controllers and very low resolution LED panels. The Heart Machine had 20 interactivity stations with touch-sensitive panels, requiring multiple participants at different stations to activate the flame effects. The panels were LED boards and a piece of metal screen behind acrylic; the screen was the line for a QTouch input, and the LEDs were controlled by three TLC5940 chips.

This was my first LED project, and I decided I wanted to make similar LED boards. However, the resolution was too low, so I decided to up the pixels from 4x4 to 8x8 in the same 6" square board.

The LEDs are Piranha/Superflux 5mm square RGB LEDs, chosen because they are very bright at a wide viewing angle.

The pixelboard64 worked out ok, for the most part. Due to a simple math error, the power regulator wasn't enough to power the entire board when all the LEDs were fully lit up. The TLC5940 chips were also very picky, and often weren't grounded well enough, causing them to burn out. Having 12 per board (at about $3.50 each) made these pretty expensive to play with and test, so progress kept on stalling.

This is what happens when you try to pull about 4A through a LM323 regulator that doesn't have a large enough heat sink on it:

Recently, I started working with WS2812 LEDs. Their low cost was enough to make me think about the pixelboard64 again - at $0.15/LED with no additional chips, instead of $0.50/LED with every 16 LEDs needing $10.50 worth of TLC5940 chips, it was worth another try. The board was shrunk to 4" square (half inch pixel density), and instead of using one big power regulator, I split it out to 4 UA7805 regulators.

The end result is a board where I can use a solder paste stencil and hot plate to quickly assemble the LED side, and then hand solder the power supply components to the back. 64 LEDs, super bright, and relatively cheap to make. For power, the board has a header for an Anderson Powerpole connector, to avoid the trouble of screw terminals.

Populated, the prototype looks like this. The camera can't really capture how bright the LEDs are - 64 of them all on at once is surprisingly bright.

Would you be interested in one of these boards? Depending on interest, I may organize a bulk order through Tindie or IndieGogo in order to cut down on costs, and maybe have them professionally assembled.

hadokenIMU on Tindie

I've just put the hadokenIMU up as a fundraiser project on Tindie. I'm hoping to pre-sell 50 units as a way to reduce the per-unit costs as well as get them professionally assembled; this will help us get 5 pairs of motion sensing gloves for Super Street Fire, and will also help me with my first attempt to sell an open source hardware project.

If you are looking for an IMU board that is reasonably priced (the SparkFun MPU-9150 breakout board is $50), or need an IMU with an integrated radio header, please consider the hadokenIMU. Not only will you be supporting an awesome fire art project, you'll also be helping me continue to work on future open source hardware designs. Thank you!

The difference between WS2811 and WS2812

I've been starting to work with a 5050/PLCC-6 RGB LED that is usually called WS2811 online, but sometimes called WS2812. It's a fantastic LED that is very bright and has the constant-current driver chip built in to the actual LED. It takes three inputs: 5V power, ground, and data in. Each LED takes 24 bits (8 bits for each color channel), then buffers and retransmits the rest of the data stream to the next LED in the chain.

At $0.14 per LED plus driver chip, this is incredibly cost effective, especially compared to the TLC5940 chips I usually use. The PLCC-6 form factor is easy to solder as well.

So, why are the LEDs sometimes called WS2811 and sometimes WS2812? The datasheets make this pretty clear, but here's the answer in picture form.

The WS2812 is the LED with embedded driver chip. The LED is 5mm x 5mm, but fortunately I have a USB microscope:

The driver chip is the WS2811:

It also comes in DIP-8 and SOP-8 packages if that one is too small to work with.

Datasheets: WS2811 (rar), WS2812 (pdf)

Class Notes: Wireless Communication With Arduino

Back in November, I taught a class at Site 3 coLaboratory on Wireless Communication With Arduino: Using the RN-XV to communicate over WiFi. This was a class for people familiar with Arduino who wanted to add WiFi to their projects, in the same way I did with the wifire16 boards - primarily building the XBee Adapter boards and configuring the radios themselves through the serial interface.

Yesterday I found myself needing to reference an RN-XV configuration option, and I dug up the slides from the class. If it's useful for me, it's probably useful for other people too, so here it is:

Wireless Communication With Arduino: Using the RN-XV to communicate over WiFi