Blight – The Boulder Bike Light project

Introduction

Welcome to the Boulder Blight (or ‘Bike Light’ if you’re not into the whole brevity thing) project. It is a work-in-progress and this page will be seeing some updates over the coming months. I’m hoping to document my prototypes, outline the evolving project roadmap, and maintain links to various resources and hardware.

To make a long story short, I’m working on a way to wirelessly synchronize bike lights.

 

The Happy Thursday Night Cruise

Boulder, Colorado is famous for many things. There’s a talented buffalo, Johnny Cash mentioned the place by name in The Highwayman, and it’s a great locale for doing tai chi while drinking gmo-free artisanal chai tea with your dolphin-safe, gluten-free sacred geometry. Plus it’s renowned for the abundance of super affordable housing. But it’s mainly famous for the Thursday Night Cruise.

Started years ago, the cruisers are a fun bunch who ride bikes around town, lighting up the night, honking, ringing and proclaiming to anyone within earshot that it is, indeed, a Happy Thursday. The ride, and other rides down in Denver and other colorful cities around the country, involve a veritable cornucopia of custom bikes, sound systems, and lighting effects.

 

What is this page not for?

Teaching you how to become a master builder. I have a working knowledge of Arduino but still consider myself an amateur, including coding in C++. I may be helping people get up and running with workshops and individual projects, but there are numerous websites and books already dedicated to mastering Arduino (and Raspberry Pi, XBee, nRF24L01, etc.), some of which I’ll link to along the way.

So now onto the actual project!

 

Hue, Saturation & added Value

As has been of previous note, I do love me some homemade amateur electronics. I was tinkering with lights and remote-controlled Arduinos years before I moved to Boulder and joined the cruise, and as my own efforts and setups have evolved over the years I’ve become interested in taking it another step.

I’ve got three current focuses:

  1. Establishing a standardized, low-cost, easily replicated means of communicating light data between bikes
  2. Making it easy for people without technical expertise to install their own light setups
  3. Working with more technical people who want to integrate this standard into their own light setups, potentially using different hardware than is currently employed in my prototypes

The problem is, half the people interested in this project have already scrolled down looking for a link with a dollar sign associated with it, and that’s a little ways off. I have some knowledge, experience with a specific implementation using a specific subset of technologies, but I don’t have a little box that you can strap on your bike yet. YET. I’ve got one that I can strap on my bike, and it’s really not that complicated. Speaking of which…

Disclaimer

Don’t screw with electricity if you don’t know what you’re doing. A few AA batteries never hurt anybody (whose parents knew the Heimlich Maneuver). A little voltage and a little amperage can’t really hurt you, and most setups won’t involve anything approaching the danger zone. But too much voltage or amperage and bad things can happen to conductive people.

A general rule is to be careful of any battery whose name includes the word ‘lithium’. When you see a video of somebody’s pocket exploding from a vaporizer, that’s somebody who didn’t have enough respect for lithium and probably let their keys short out a spare battery. You don’t want to do that. And if a Lithium Ion or Lithium Ion Polymer cell has taken a bad impact, it needs to be safely disposed of unless you have a thing for firemen.

In this camp we have electronic bike batteries. My own setup involves a 52 volt battery. I use golf cart DC converters to get 12 volts and 5 volts for my lights and electronics. Those converters are rated for 60 volts, because a 52 volt battery charges to nearly 59 volts. My battery can discharge enough current to seriously injure someone, and I never forget that when using it. Please be careful above all else!

The BLight System

I currently (April 2018) have a working prototype system for controlling lights wirelessly over several hundred feet.

Preliminary tests have gone well and I want to iron out a few more issues (mainly loose connections over bumpy terrain) with field tests over the next few cruises.

Components

The system currently uses Arduinos for both sending and receiving light data. I want to integrate Raspberry Pi’s into the system eventually, but don’t currently have enough of a foothold in that ecosystem so I’m hoping to enlist the help of additional folks for that.

That’ll be gibberish to some people reading this, so I’m going to break things down to help keep this friendly to all experience levels.

Overview

An Arduino is a small microprocessor, or simple computer, that fits in your hand. It doesn’t have an operating system like Windows, OS X or Linux. It has inputs and outputs, lets you easily connect buttons and various devices, and allows for all manner of cool projects. If you want something cool and nobody sells it, make one yourself with an Arduino.

A Raspberry Pi is another type of microprocessor device, but a much more powerful and capable one that can essentially act as a desktop computer, media center, camera, outputting a full video signal over HDMI and using a keyboard and mouse. It does have an operating system, running Linux, and is capable of much more complex tasks than an Arduino.

For the visuals I’m using a specific type of light in this project commercially known as ‘NeoPixels’. They use small WS2812 chips that control each light and allow instructions to be daisy-chained. If you have a strip of 60 NeoPixels, you give it instructions for 60 lights. The first chip updates the first light and passes the remaining 59 instructions to it’s output, which the next chip picks up, rinse, repeat.  They are available as a flexible strip, as a ring, a matrix with rows and columns, stick or individual lights. Flexible strips are available in a variety of densities (e.g. 60 or 90 lights per meter).

There is a lot to learn about Neopixels, which Adafruit’s The Magic of Neopixels explains in depth.

Another good read is Adafruit’s Powering NeoPixels.

I’ve admittedly spent too much money at Adafruit over the years. And I’m within biking distance of Sparkfun Electronics in Niwot, CO, I’ll let you guess how that’s gone. I’ve had great experiences with the products and articles from both companies so I’m a fan. But the cost of NeoPixels lights can add up pretty quickly, and there are Chinese companies that supply equivalent WS2812 products for a fraction of the cost, with the tradeoff of potential reliability issues. In years of programming, whoopsie-connections, 12 volts when I meant 5, and all sorts of terrible soldering, I’ve never had a single Neopixel go bad on me. I’ve got tentative plans to buy a few batches of the Chinese versions, allowing for the potential of bad ones that I’ll have to catch in testing. A quick cost comparison would be the 24-pixel ring:

Adafruit 24-pixel ring – $16.95

eBay 24-pixel ring – $3.61

Lights for large setups can add up pretty quickly, and I’d be okay with a 20% failure rate with those kind of savings, but that assumes it’s dead out of the box. It’s not such a great investment if it dies after a few hours glued inside an enclosure.

Parts List

Now that you’re an expert in the world of homemade microprocessor devices, let’s take a look at the parts I’m currently using. This is not a list of things you need to buy in order to build your lights. I mean, it is, but you don’t need all these parts simply to get bike lights up and running, I’m also going to explain all the hardware including the stuff that broadcasts the signal to everyone.

First off is some info on the nRF24L01 wireless chip. This communicates via WIFI, there are multiple size/strength options, below is a breakdown of those.

 

NRF24L01 Short range on-chip antennae

Short-range chip antennae

These are an on-chip antennae with an advertised line of sight (LOS) range of 200-300 meters.

A bunch of companies make them, and they’re really cheap, the ones pictured here are $11.98 for a 10 pack.

 

 

 

 

NRF24L01 Medium range adjustable antennae

The middle child antennae

Small, adjustable antennae with an advertised LOS range of 800+ meters

At a whopping three for $13.99 you’re not exactly breaking the bank upgrading to these from the chip versions, but they’re a little awkward to mount.

 

 

 

NRF24L01 Long range antennae

Long range antennae

The advertised LOS range for this is 2,400 meters. I’ve tested several hundred feet transmitting from this to the medium range chips without losing signal. It’s a little smaller than the medium range one, and has shielded components. If you’re a rich person, you can pick these babies up for $13.99 each.

 

 

 

To make a long story short, if you’re doing one setup and don’t care about saving a little under ten dollars, get the long-range antennae. It’s all about cost, form factor and range. If you’re going to be doing a bunch of friends’ bikes and don’t need much range, get a pack of chip antennae. And I highly recommend getting headers!

nRF24 header

nRF24 Header – This makes allows the Arduino to easily communicate with the nRF24L01 chip. The hookups and power connections are at a weird angle to one another, making them a little challenging to easily mount. Another decently cheap part, available here for five for $10.99.

 

 

Additional random parts you’ll need for a basic setup

330 ohm resistor – Protects Neopixels from voltage spikes on control line (see the above adafruit article on power)

Capacitor – Protects Neopixels from voltage spikes in power supply (ditto)

Breadboard or Arduino proto shield – For placing the resistor, capacitor, lights connection.

 

Arduinos

The lil brain that will run all this stuff is the Arduino. They’re available in all sorts of form factors from various vendors but to keep it simple I’m going to focus on three of them.

Arduino Uno

This is a ‘regular’ size Arduino. It’s easy to use, has a USB port for connecting to your computer for uploading sketches, has numerous shields that connect all sorts of hardware right onto it. You can plug wires into the headers and experiment without any soldering, and it’s about $20. Unless you need it to fit in something really small, this is a great platform for running your lights.

 

Arduino Micro Pro

If you’re willing to sacrifice a few connections for a smaller chip, this is a great little alternative, also for $20.

 

 

 

Arduino Pro Mini

If, like myself, you end up working on multiple setups, the hardware costs start adding up. For $10 you can get an Arduino around the size of the Micro Pro, but without a USB connection. That USB connection includes the ‘FTDI’ chip that lets your computer interface with the Arduino hardware. If you get a cable that has an FTDI chip, you can program the cheaper Arduinos. The catch is that you need this specific cable for any hardware updates.

 

Next… functional examples!