Overview

Smart LED HeadPhones

Headphones are incredibly ubiquitous. They can range from different sizes to styles, comfort to noise cancelling and now even wireless bluetooth. Here's an upgrade you won't find on even the biggest brands. RGB LEDs.

This DIY upgrade uses NeoPixel LED rings and an Adafruit Feather Bluefruit LE module to make slick lighting effects.

With The Adafruit Bluefruit LE connect app for iOS or Android, you can change the colors of the LEDs using a color picker and even trigger dope animations with the tap of a button.

The 3D printed enclosures keep everything together and doesn't add too much weight or bulk to your pair of headphones.

Prerequisite Guides

We recommend reading through the following guides to get familiar with the components used in this project.

Tools and Supplies

You'll need the following tools to complete this project. If you don't have access to a 3D print, you can use a service like 3DHubs.com to print and ship the parts to you.

Headphone Design Matters

This project will not fit every style of headphones. In this project, we're using a pair of Coloud Boom headphones by Nokia. They’re about $25 bucks on amazon. The enclosure is ideally for headphones with flat ear cups that are not covered by the headband. If you're looking to upgrade your favorite pair of headphones, be sure to carefully inspect the design and take measurements to see if the 3D printed case will fit. The case has a diameter of 58mm (2.28 inches).

Project Expectations

If you haven't done any 3D Printing + Electronics projects before, this is an intermediate project and slightly ambitious for a first time DIY project. It requires beginner level soldering skills. The 3D printed parts are relatively easy to print and will fit most build volumes. The most time consuming / challenging part of the project might be splicing some wires.

Software

Arduino Libraries

To use the Adafruit Feather 32u4 BLE sketch you'll want to make sure you're using the latest version of the Arduino IDE (1.6.5 at the time of this writing).

If you're totally new to Arduino take a little time to go through some introductory tutorials like how to make a LED blink.  This will help you understand how to use the IDE, load a sketch, and upload code.

Next you'll need to make sure the libraries used by the sketch are installed.  With the latest Arduino IDE you can use its library manager to easily install libraries, or check out this guide on how to manually install a library.  You'll want to install the following libraries:

  • Adafruit BluefruitLE nRF51
  • Adafruit NeoPixel

Search for the libraries in the library manager and they should be easy to find and install.

Adafruit AVR Boards

Next, you'll need to install the Adafruit AVR boards package from the Boards Manager. Open the Boards Manager and search for Adafruit AVR. This includes all of the boards from Adafruit and will make Arduino compatabile with them. The Daftpunk BLE sketch was tested with version 1.4.0.

Uploading Sketch to Adafruit Feather BLE

This sketch will run the Bluetooth controlled LED program to the NeoPixel strips that are mounted to the front of the visor.

To load the sketch make sure the libraries above are installed, and the Arduino is connected to the computer through a USB cable.  Under the Tools -> Board menu make sure the Adafruit Feather 32u4 is selected, and under the Tools -> Port menu the serial port for the Adafruit Feather is selected.  

Then press the upload button or click the Sketch -> Upload item to send the code to the Arduino.  Woo-hoo the sketch should be running.

Connect Adafruit BLE Mobile App to Adafruit Feather BLE

Download the Adafruit BLE Connect app for iOS or Android. Under the peripherals list, tap the connect button on the Adafruit Bluefruit LE item. Make sure the Feather board is powered on. Select "Controller" and choose either Control Pad or the Color Picker.

Control Pad

Buttons 1-4 will trigger an animation.

  1. larsonScanner
  2. color wipe
  3. rainbow gradient
  4. rainbow cycle

Color Picker

Here you can change the brightness or RGB value of the leds. 

Uploaded Code

With the Arduino sketch uploaded to the Adafruit Feather 32u4 Bluefruit LE, proceede to the circuit digram page for prototyping the circuit.

Circuit Diagram

Reference Connections

Use the circuit diagram to reference for connecting the components together. The diagram does not depict exact wire lengths or size of components.

Adafruit Feather 32u4

NeoPixel Ring (Left)

NeoPixel Ring (Right)

PIN 6

Data In

Data In

Ground

Ground

Ground

BAT

PWR

PWR

Build a Prototype

If this is your first electronics project, it's a good idea make a prototype before mounting the components to the enclosure. You can use alligator clips to make quick connections without having to solder any wires. The idea here is to test the code and components to see if everything works as expected. You can ommit wiring the slide switch to the 500mAh battery in the prototype - Plugging the male JST connector from the battery to the Adafruit Feather board will prompty power the micro-controller on, unplug to power it off.

Alternatively, a breadboard is meant for prototyping, but soldering headers and desoldering headers can be a bit of a challenge. 

Once you have uploaded the Arduino sketch to the Adafruit Feather 32u4 Bluefruit LE and test connected the NeoPixel Rings and 500mAh battery, verify everything works. With that, you can proceede to the 3D printing and assembly.

3D Printing

Filament Options

We recommend using PLA material for this project. You can use ABS or other type of filaments but may require a heated bed. PLA prints with minimal warping and doesn't necessary require a heated bed.

Slice Settings

The table below is a general reference for slice settings. Every 3D printer is slightly different, so you might want to use settings you're familiar with. 

File Name

Settings

Details

neohp-fcase.stl

190-210c PLA
90/150 mm/s
.15 layer height
No raft/support

Case for the Adafruit Feather 32u4 Bluefruit LE and 16x NeoPixel ring

neohp-bcase.stl

190-210c PLA
90/150 mm/s
.15 layer height
No raft/support

Case for the battery, 16x NeoPixel ring and slide switch

neohp-cover.stl

190c PLA
60/80 mms

Cover for the battery and Adafruit Feather 32u4 Bluefruit LE

neohp-cover-diffuser.stl

190c PLA
60/80 mms

The diffuser piece for the cover. Should be printed in white, transparent or glow-in-the-dark colored filament.

Download, Modify, Remix Design

The parts were modeled in Autodesk Fusion 360 and available to download, modify and remix. The parts can be exported in several file formats - great if you're using a different CAD package.

Dual Extrusion

We used a 3D printer (Flashforge Creator Pro) and Simplify3D (slicing software) to achieve a dual extruded printed cover. This allows two colored filaments to be printed in the same job. It's ideal for joining the cover with the diffuser. We used black filament for the outter part of the cover and glow-in-the-dark  for the diffuser. 

If the 3D printer you have access to doesn't have a dual extruder, you an alternative glue the pieces together. The tolerances might be too tight, so a filing tool or sandpaper can help. 

Setting Up Parts in Simplify3D for Dual Extrusion

Since this requires a handfull of steps, we put together a "Layer by Layer" tutorial video on how to setup the parts in Simplify3D.

Assembly

Measure Headband

First up, we need to take some measurements of the length of our headphone band using a tape measurer. This will vary depending on your head size. Mine needs to be 44cm. Our jumper cables are only 30cm long so we need to extend them. We can do that by splicing new wires to the existing ones.

Prep Jumper Cables

We'll need to tare off five wires from the bundle of jumper wires. Remove these as a grouped cable and try to pick a variant of colors that matches the photos.

Remove Connectors from Cable

Next, we need to remove the plastic connector parts from the jumper cable using a hobby knife. Remove the plastic protector by inserting the tip of the blade into the flap, pull it out and slide it off. Then chop the metal connector pieces off. Repeat this process for the other end.

Prep Extension Wires

We’ll need to measure and cut 10 new pieces of 30AWG silicone coated stranded wires to about 7cm in length. Try using colored wires that match the jumper cable. Using wire strippers, remove about 5mm of insulation and apply a bit of solder to tin them. Do this to both ends of each wire.

Strip & Tin Jumper Cable

Using wire strippers, remove about 5mm of insulation for each wire from both ends of the jumper cable. Use a helping third hand to hold wires in place while soldering. Apply solder to each wire to tin them. Cut two pieces of heat shrink tubbing to about 3cm in length. These should match the length of the jumper cable wires that are separated like in the photo.

Connect Extension Wires to Jumper Cable

Solder the extension wires to the jumper cable by heating up the tinned wires together. Try to match up the colors. Use a helping third hand to hold wires in place while you solder. Cut pieces of heat shrink tubing to insulate the exposed wires. Use tip of soldering iron to shrink tubing. Add a larger second piece of heat shrink tubing to group the bundle of extension wires. Repeat for the other side of cable.

Extended Jumper Cable

You now have a jumper cable thats long enough to wrap around the entire headphone band. Measure the length and place it over your pair of headphones to see if it’s long enough. It should go a bit past the headphone ear cups. Mine measures out to be 44cm in length.

Thread Extension Wires

Next up, grab the case for the Adafruit Feather 32u4 Bluefruit LE. Insert and thread one side of the extension wires from the jumper cable through the little opening on the side of the case. Make sure to pull the wires through until you reach the heat shrink tubbing.

Create Extra Wires for NeoPixel Ring

Now we need to make three new pieces of 30 AWG silicone coated stranded wires - These will be connected to first NeoPixel ring to the Adafruit Feather 32u4 Bluefrit LE. They need to measure about 7cm in length. Use wire stripper to remove 5mm of insulation and apply solder to the tips to tin both sides for each wire.

Connect Extra wires to Adafruit Feature 32u4 Bluefruit LE

Next we need connect these extra wires to the Adafruit Feather board. Secure the Adafruit Feather board to a pair of helping third hands and position the case with wires in close proximity. Apply solder to the following pins on the Adafruit Feather - Pin #6, BAT and GND. Now solder the extra wires into these tinned pins. Also, solder the green wire from the jumper cable to pin #6 on the Adafruit Feather.

Prep 500mAh Lipo Battery

Now we need to prep the 500mAh lipo battery. Start by cutting the wire from battery. Be sure to cut one wire at a time! DO NOT cut both positive and negative wires at same time - Doing that could short the battery out, which is very dangerous. Add a piece of electrical/gaffer tape to one of the wires as a safety precaution.

Prep JST Connector From Lipo Battery

Next up, we need to remove 5mm of insulation of the positive and negative wires from the wires of JST connector we cut away from the lipo battery. Apply solder to tin each wire. Use a pair of helping third hands to assist you while soldering.

Connect Jumpers to JST Connector from Battery

Now we can wire up the jumper cable to the wires of the JST connector. Add some pieces of heat shrink to insulate exposed connections before soldering. Secure to pair of helping third hands to make soldering easier. Then, solder the red and blue extension wires from the jumper cable that’s threaded through the case of the Adafruit Feather case. Lastly, slide heat shrink over exposed connetions and apply heat to insulate them.

Plug JST connector to Adafruit Feather 32u4 Bluefruit LE

Go ahead and plug in the male JST connector into the female JST connector on the Adafruit Feather 32u4 Bluefruit LE.

Mount Adafruit Feather 32u4 Bluefruit LE to case.

Position the Adafruit Feather 32u4 Bluefruit LE board into the case with the USB port facing the port opening (inserting at an angle may help). Carefully push the board all the way into the case, making sure not to kink any wires. Position the wires from the JST connector so that they're nestled into the channel.

Connect Wires to First NeoPixel Ring

Next up, let’s secure our first 16x NeoPixel ring to a pair of helping third hands. Apply solder to all of the pins (except the data out). Now we can solder in extra wires from the Adafruit Feather Bluefruit LE to the pins on the NeoPixel Ring. Yellow to PWR, green to DATA IN and white to GND. Also, connect the yellow and white wires from the jumper cable to the secondary PWR and GND pins.

Install First NeoPixel Ring into Case

Now we can mount the NeoPixel ring to the Adafruit Feather case. Carefully position the wires so they’re not being kinked. Lay the NeoPixel ring over the circular riser and route the wires so they’re in a position where they’re not being kinked. The PCB of the NeoPixel ring should nestle nicely into the circular riser. It’ll have slightly loose tolerance. Then, position the cover over the case and twist it until it’s tightly secured to the case. If the cover doesn't fully close all the way, the wires are probably in the way - try to route them into the available channels.

Prep Slide Switch

Secure the slide switch to the helping third hands. Remove one of the leads thats on the far side, like shown in the photo. Apply solder to the two remaining leads to tin them.

Test Fit Slide Switch

Next up we need to see if the slide switch can fit into the opening of the battery case. You need to use a hobby knife or filing tool to remove material from the overhang - this will loosen up the opening so the slide switch can freely fit through. Insert the Slide Switch through the opening, pushing it all the way through the other side. It should be a slightly loose fit. Remove slide switch from opening when test fit is achieved.

Thread Wires from Jumper to Battery Case

Insert the extension wires from the other end of the jumper cable through the hole in the side of the battery case. Be sure to pull them all the way through, until you reach the heat shrink tubbing.

Connect Slide Switch to Battery

Grab the 500mAh lipo battery and remove 5mm of insulation from the positive wire. Apply solder to tin the wire, using third helping hands for assistance. Add a piece of heat shrink tubbing to the positive wire. Solder this wire to one of the leads on the slide switch. Slide the heat shrink over the exposed connection and apply heat for insulation.

Connect Jumper Cable to Slide Switch

Solder the red extension wire from the jumper cable to the remaining lead of the slide switch. Add a piece of heat shrink tubbing before soldering wire to slide switch. Apply heat to heat shrink to insulate the exposed connection.

Connect Ground from Jumper Cable to Battery

Strip the end of the negative wire from the 500mAh lipo battery and apply solder to tin the wire. Solder the negative wire from the battery to the blue extension wire from the jumper cable. Add heat shrink tubbing and apply heat to insulate the exposed connection.

Connect Second NeoPixel Ring

Now we can wire up the second NeoPixel Ring. Secure the PCB to the third helping hands and apply solder to all of the pins (except for the DATA OUT pin). Solder in the extension wires from the jumper cable to the NeoPixel ring - green to DATA IN, yellow to PWR, and white to Ground.

Install Slide Switch to Battery Case

Carefully insert the slide switch into the battery case from the inside - Use a hobby knife or filing tool to help you guide the switch through the opening - It should go through the other side with enough room to access the switch.

Mount Battery to Case

Carefully place the 500mAh battery into the cavity of the battery case, follow the photo for best position and orientation. Position the positive wire so that it’s nestled in the channel.

Install Second NeoPixel Ring into Battery Case

Just like the first NeoPixel Ring, carefully position the PCB into the case making sure not to kink any wires. Position and route the wires so they’re nicely nestled into the channels.

Mount Cover to Battery Case

Now we can screw on the second twisty top cover to the battery case. Secure it tightly. If it doesn’t close all the way, you’ll need to remove the cover and ensure the wires are nicely tucked into the channels and out of the way.

Completed Circuit Assembly

Congratulations! You have completed the circuit and mounted it to the enclosures. It’s pretty much stand alone ready to test at this point - Flip the slide switch and watch for the NeoPixel rings to flash the starting initiation. If they don’t, you’ll need to double check your wiring.

Next up, we need to mount the cases to the ear cups of the headphones!

Test Fit Assembly onto Headphones

Position the two cases onto the ear cups of the headphones - Does the length of wire fit? If it does, it’s safe to mount the cases to the side of the ear cups.

Mount Cases to Headphones

The most non-destructive way to mount the cases to the side of the headphone is to use mounting tack. This will give a pretty decent hold to the cases. If you’d like a more permanent hold, you can alternatively use adhesives such as hot glue or E6000.

Mount Cases to Headphones

The most non-destructive way to mount the cases to the side of the headphone is to use mounting tack. This will give a pretty decent hold to the cases. If you’d like a more permanent hold, you can alternatively use adhesives such as hot glue or E6000.

Mounted Cases on Headphones

I recommend positioning the headphones so the slide switch from the battery case is easily accessible. The opening for the USB port of the Adafruit Feather 32u4 Bluefruit LE should be pointing down so it matches the orientation of the headphone cable.

Finished NeoPixel Ring Headphones

Now you’re ready to rock the spectrum with your NeoPixel LED Headphones Upgrade! When the battery runs low, you can plug in a microUSB cable to the USB port on the Adafruit Feather Bluefruit LE. Use a 5V power source such as your computer’s USB ports or wall adapter.

Enjoy your upgrade and post a MAKE on the project Thingiverse page to let us know you've made one - We LOVE to see what you've made!!