Bluetooth Neopixels

December 09, 2017


Do you like bright shiny lights? Have you ever wished you could have bright shiny lights controlled by your smartphone? That is what this project was about. Clara wanted to add some mood lighting to decorate her bedroom and we figured it would be cool if she could change the lights to go with the desired mood.


We are using an Arduino compatible microcontroller with a bluetooth module. This allows us to drive LED-programmable lights (Neopixels) with a widely available library, and from the Arduino environment we have some experience in, while enjoying all the coolness of controlling from a smartphone app.

The folks at Adafruit made this project a lot easier and so we use their hardware primarily. It would probably be cheaper to use a Wemo-type device with Wifi. The ESP32 supports both Wifi and bluetooth and can be programmed in MicroPython instead of Arduino.

5v power comes into a barrel jack and is fed through a capacitor to smooth it out, to the Neopixel strip, to the Arduino, and to a logic level converter. Out of PIN 6 comes the signal that drives the Neopixels because this Arduino has 3.3v logic levels and Neopixels expect 5v logic levels.


Feather 32u4 Bluefruit LE

TXB108 Level shifter or similar

4700uF capacitor (a smaller one would also work)

2.1mm barrel jack

300 ohm resistor (or thereabouts)


Neopixel strip(s)

5v power supply (I use a 10A one)



Fritzing File

Physical buildout

front of the pcb

back of the pcb



Arduino Sketch


Open the Bluefruit LE app (Android or iOS), select your bluefruit and connect. Then go into Control.

You can then pick a color with the color picker or use the Control Pad to play the following effects.

how to control the lights

UP Arrow - All One Color , you can change the color with the ColorPicker

DOWN Arrow - Fire

LEFT Arrow - Color Wipe , you can change the color with the ColorPicker

RIGHT Arrow - Twinkle Random

1 TheatreChaseRainbow (takes long time to change back)

2 ChooChoo Train (Cylon eye - takes long time to change back)

3 RGB Loop (takes long time to change back)

4 RainbowCycle (takes long time to change back)

Lessons learned while building