Skip to content

Arduino Feather and NeoPixel LED bike lights that synchronize across multiple bikes

Notifications You must be signed in to change notification settings

trgregg/BikeSaber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 

Repository files navigation

BikeSaber

Arduino Feather and NeoPixel LED bike lights that synchronize across multiple bikes

Utilizes the Adafruit NeoPixel library to drive LED strips and RadioHead library to interface with the RFM69.

Shopping list

Wish lists

For convenience, the following wish-lists exist to quickly order the necessary parts. These overlap with the individual parts listed below.

Per-saber you will need the following:

Remaining supplies tend to come in packs of 5, 10, or more. These it will make sense to make one order for a group of people making sabers, or just to have extra supplies on hand for future:

Tools

If you don't already have them, you'll need some tools and consumables to go with them.

Controller

Light pole

Power

  • Anker PowerCore 10000
    • Depending on how many LEDs you use, you may need 2 batteries wired in parallel to provide enough current. If you use ~180 LEDs (90 on each side of the pole) only 1 battery is need. If you add extra LEDs, you may need 2. https://us.anker.com/products/a1263
  • Cheap USB cables

Logistics

Saddle bag for your bike to hold the battery

Electrical tape and zip ties… you can’t make anything for Burning Man without zip ties!

Controller Wiring Diagram

Yeah yeah… I’ll make a picture diagram someday soon™. It’s not complicated though:

  • Controller power and connector
    • 5V and Ground from USB-A (normally red and black) goes 5V and Ground of Feather
      • Trim off the USB-A data lines. We don’t use them.
    • Parallel 5V and Ground to the 3-conductor wire, then to female connector (Red and Black)
    • Pin 5 from Feather to 220ohm resistor, then to Yellow data wire of the 3-conductor wire, then to female connector
    • Add the antenna to the antenna hole
    • zip tie the USB and 3-conductor wire to the Feather through one of the holes in the board
  • Accelerometer (optional)
    • 3.3V output of the Feather and Ground go to the LIS3DH matching pins
    • SDA and SCL pins of the Feather go to the LIS3DH matching pins (these are “serial data” and “serial clock”)
  • Pole
    • Male connector Red and Black to 5V and Ground of LED strip
    • Male connector Yellow goes to “Din”, or “data”, or “DI” on the LED strip
    • Parallel all 3 to the other side of the pole

Build It and They Will.… Shine?

You can make your poles as long or as short as you like. In my experience, too long leads to all sorts of headaches: takes too much power, too heavy causing the bike to be hard to ride, pulls the bike over when you park it, hits trees and other low-hanging things, can’t get in/out of doors, breaks when you crash.… etc. So these instructions are for what I found to be the happy median: 66inches.

  1. Cut your tomato stake to 66in using a hacksaw or similar.
  • If you are using a 3/4in stake and want to insert conduit, now’s the time!
    • Designate the cut side of the stake the bottom of your Bike Saber
    • Cut a 2ft section of 1/2in conduit
    • Slide/force the conduit into the tomato stake.
  1. Cut two 1.5m (~55in) strips of LEDs, or 90 LEDs each
  • The LED strips have solder joints every 50cm (30 LEDs), so you need 3 segments.
  • When cutting the LED strips, cut in the middle of the copper solder pads so you can use both sides.
  1. Tape the LED strips onto opposite sides of the pole starting at the top of the pole
  • Be sure to orient the LED strips so the Data In is at the bottom. There will be arrows or similar markings on the strii.… make them point to the top of the pole.
  • Use zip ties to help secure the strips if the adhesive isn’t holding well.
  1. Unsolder any connectors that may have come with the LED strips. We won’t use them.
  2. Solder the Male connector (naked pins) to one of the LED strips
  • Red == 5V
  • Black == Ground
  • Yellow == Data
  1. Cut a small (~2in) piece of the 3-conductor wire and pull out the individual conductors
  2. Jumper between the LED strips using the individual 2” wires
  3. Secure the wires just under the bottom LED with a zip tie.
  • Optional: Put a zip tie just above the bottom LED to help hold the LED strips in place
  1. Slide the heat shrink over the pole starting from the top and extend it 2-3in past the bottom LED, then cut it off at the top of the pole leaving ~1in overhang at the top of the pole.
  2. Use your heat gun to shrink the heat shrink starting from the bottom of the pole.
  • Rotate around the pole and be careful not to melt through the heat shrink
  • At the top, heat the extra 1in section, then fold it over and squish it onto the pole. Note: It’s hot-ish, but just move quickly and/or wear gloves. This seals the top of the pole to keep dust/water out.
  1. Place a hose clamp near the bottom of the LED strip, preferably on top of the heat shrink
  2. Bolt one your bike-clamp.
  3. Place a hose clamp near the bottom of the pole
  • You may need to use a bit of heat shrink to the bottom of the pole if the hose clamp is too loose
  1. Bolt one your bike-clamp.

Congrats! You have a Bike Saber!

Source Code

You’ll need Arduino IDE, or equivalent: https://www.arduino.cc/ After installing, be sure to download the libraries and board definitions mentioned in the header of the project.

Project available at: https://github.com/trgregg/BikeSaber

Installing the software and flashing it on the controller is straightforward. If you need help, there are lots of great walkthroughs on the Arduino site, as well as Adafruit’s site

Photos

image

image

image

image

Original Google Doc of this Readme

A rough "how to" for building the poles and boards: https://docs.google.com/document/d/1k9FfZQvLQc-7zv1n-4YBiCZN0Z81B0xxiRZpR2TZl2g/edit?usp=sharing

About

Arduino Feather and NeoPixel LED bike lights that synchronize across multiple bikes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published