Introduction: LED Bike Light Programmable With Python
This tutorial will show you how to create some cool LED bike lights that are programmable with Python. First, make sure you have all the supplies:
- Gemma M0 Microcontroller
- 10k Potentiometer
- 1m NeoPixel LED strip 30 pixels/meter
- USB Battery pack
Alligator clips and bread boards can be useful for quickly debugging the circuit before installing
Step 1: Circuit Set Up
- NeoPixel Power (red) -> Gemma Vout
- NeoPixel Analog (white) -> Gemma A1
- NeoPixel Ground (black) -> Gemma GND
- Potentiometer Power (red) - > 3Vo
- Potentiometer Analog (white) -> Gemma A2
- Potentiometer Ground (black) -> Gemma GND
If you're using a NeoPixel strip that is greater than ~1m then an additional power source (5V >2A) may be required (see circuit diagram)
Step 2: Uploading Code
After connecting the circuit, plug your Gemma m0 into your computer via usb. Make sure your usb cable supports power and data otherwise you can not upload code.
If your Gemma m0 does not show up as a usb drive (CIRCUITPY) when plugged into your computer then please follow the instructions at: https://learn.adafruit.com/adafruit-gemma-m0/over... to set up drivers
The code for this project is publicly available here: https://github.com/pearsonkyle/Animated-LED-Strip
Download "main.py" and drop it into your gemma's file system.
Step 3: ???
does anyone ever know step 3?
Step 4: Profit
Attach the strip to anything!
This LED strip can be easily attached to a bike with some duct tape and zip ties. Perfect for Burning Man

Participated in the
Make it Move
3 Comments
3 years ago
Amazing!
Question 3 years ago
Beautiful project! I'm not sure if I'm missing something, what does the potentiometer do here? Does it control brightness?
Answer 3 years ago
It controls the LED animations. There's a more in depth description with gifs of each light mode here: https://github.com/pearsonkyle/Animated-LED-Strip