Personal Illumination Device

Bluetooth controlled NEO-Pixel box with multiple illumination modes

Similar projects worth following
With the help of a tiny computer, the PID has multiple modes to make use of its bright RGB LED's:

Basic flashlight (full brightness)
Reading mode (a warmer light color)
Sensor mode (turn on when there's low light, off in bright light, and off when totally dark)
Sound visualizer
Candles (flickering)
Wake up / go to sleep color mode

With a connection via bluetooth to your phone and using the Personal Illumination Manager app you can change modes, set brightness, etc. The app also includes voice control!


I 'upcycled' a portable battery bank that you can buy almost anywhere for just a few dollars. These little banks almost always have the same kind of standard Li-Ion 3.7 volt batteries inside. They are reliable and easy to work with (Li-Poly battery packs can be easily damaged). We really need a minimum of about 5v to power the Arduino and the LED's for decent brightness, so these little battery backs contain DC-DC converters to make that 3.7v into 5v, in addition to the charging circuit.

Because I didn't want to try and pack in full USB cable and connector, I simply soldered two wires onto the back of the USB port. There are four wires and you want to connect to the outermost two wires. If you are looking into the end of the USB connector, the right side is the ground and left side is the positive.

Alternatively, you can just buy the battery and a charger as listed in the parts list, which is functionally the same and easier to hook up.


Originally I planned on using 2 NeoPixel sticks with 8 LED's each, however my local store didn't have any in stock. Because of this I had to find a backup solution, which resulted in changing everything...

Adafruit Circuit Playground

I stumbled across this really cool little board that has almost everything needed to implement the PID built in. Its an Arduino board with the same type of processor as most Arduinos but packs in sound, light, and temperature sensors, as well as a motion sensor; but most importantly, it has 10 NeoPixels on it. Now, these are mini pixels so they are not as bright, and they are arranged in a circle; but they are still plenty bright enough! And you can get one of these for just $20. Paired with the bluetooth board and its almost too easy.

A Box

You can use any clear box you can find, but I used an Amac box with the dimensions 2 5/16" x 3 1/16" which was just the right size for the height of the battery and the diameter of the Circuit Playground.

Complete parts list

I've included links to where you can get these parts, even though some of the parts I used were from my own supply, and I repurposed a USB battery pack.

You will also need a soldering iron for the headers on the UART board, some drill bits and an X-Acto for cutting into the box.

x-fritzing-fzz - 193.75 kB - 09/27/2017 at 22:26


  • Epilogue

    Aric Caley09/27/2017 at 22:46 0 comments

    On completion of the device, after my older son and daughter had at it for a bit, I showed it to my wife and baby. Shortly after demoing it, she said, "you know, you're not getting this back, right?" and I said "by who?" knowing that my son already wanted it. So she liked it. And the baby pretty much snatched it right out of her hands and starting talking into it, and tapping it, to make the lights (it was in color organ mode). Here's a cute video of her playing with it. I may have to make a few more...

    Need I say more?

View project log

  • 1
    Wiring it up

    The Fritzing image (original Fritzing file also attached) shows the wiring. With the Circuit Playground, the wiring is pretty simple. All the sensors and LEDs are already connected.

    The battery charger is not the same as what I used, which was an inexpensive USB battery bank using a Li-Ion battery and connecting through the USB instead of the battery connector. If you buy a charger board the wiring should be pretty clear. The battery bank I used required me to solder a couple wires to the back of the USB port (actually using a USB cable was too bulky).

    The hookup is pretty straightforward:

    • Bluefruit TX connects to Arduino RX
    • Bluefruit RX connects to Arduino TX
    • Bluefruit CTS connects to ground
    • Charger board + connects to Bluefruit VIN and to VBAT on Arduino
    • Charger board - connects to the middle of the switch
    • Bluefruit ground (gnd) and Arduino ground connect to the side of the switch
    • Finally, the battery + and - connect appropriately to the charger board
  • 2

    I used a tiny breadboard for the Bluefruit module, and the switch. The Circuit Playground is attached on the end with a little double sided tape. The breadboard also comes with double sided foam tape, which we will use to attach it to the inside of the box. This provides support for the Circuit Playground (the battery will support the other side as its just the right height).

    The bread board has enough room on it to support a couple sensors for future enhancements, or any other changes we might want to make.

    The switch is a breadboard friendly switch with a 3 pin right angle header soldered to it, so it can mount sideways on the breadboard. This allows it to extend through a hole on the side.

  • 3
    Box it up

    Amac Box

    Who doesn't love Amac boxes? You know the ones. They come in lots of sizes and colors and they have flush lids and they're completely 'square' (no slopes or ridges or anything) and they can stack nicely. I love them. My grandmother always had these in her home full of interesting things and I would explore them for materials I could use. My kids spotted this cool box I made and their curiosity exploded. What is that? Its glowing! And the cycle repeats...

    So it was a natural thing to put this project into an Amac box. Since we are generating light in any color, I had to go with a clear box, even though the colored ones are just so.. beautiful! In retrospect, I could have gotten one clear box and one colored box and used the clear lid with the colored bottom.

    The 2 5/16" x 3 1/16" size "flush lid" box was the perfect size. The height allowed for the battery to stand up and double as support for the Circuit Playground, and the width x depth of the box was just comfortably big enough for the diameter of the Playground board. The lid also is short, about a quarter inch, so the board can be right up on top.

    Make some holes

    I drilled two small holes with a 5/8" drill to create a slot for the charger USB to go through, then used an x-acto knife to cut the bridge between them out and to smooth the holes. I did the same thing for the power switch and again for the USB on the Circuit Playground at the top so I could be reprogrammed without removing it. I did NOT cut a hole in the lid though, so the lid covers this hole when in operation.

View all 6 instructions

Enjoy this project?



Aric Caley wrote 09/27/2017 at 22:49 point

14 year old me's head in the 80's would have fairly exploded upon discovering NeoPixels.  Adult me can't help feel like a kid again, fiddling with these and Arduinos etc..

  Are you sure? yes | no

Kirschner Christoph wrote 09/24/2017 at 14:58 point

neo-pixels are the best !!!:D

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates