Introduction: Resplendr Pendant
This project was inspired by Becky Stern and Lady Ada's Adafruit Gemma Hoop Earrings and the wonderful folks with the FastLED library.
This instructable will show you how to create a beautiful LED Pendant with one or more LED rings. I like different modes on my wearables so this project incorporates a button as a mode selector.
I'm not going to go over how to add multiple rings to your project, but some pictures will give you a few ideas of the possibilities.
The video covers how to put it all together. Thanks for following!
Step 1: Gather Materials
Here's everything you'll need:
- Adafruit GEMMA v2 - Miniature wearable electronic platform - This little wearable microcontroller will be the brains of your project. This will connect the battery to the lights and tell the lights what to do. Here's a breakdown of the parts of the board.
- USB - This is used to upload new modes to your board
- JST socket - This is used to connect the battery to the board to power it and the LEDs
- Input/Output Pads
- GND - This will supply ground (G, -) to the lights and the button
- D1 - This is a "digital" pin that we're going to use for the button
- Vout - This will supply power (V, +) to the lights from the battery
- 3Vo - This will supply 3 volts; we won't be using this
- D0 - This is a "digital" pin that we're going to use to tell the lights what to do
- D2 - This is another "digital" pin; we won't be using this
- NeoPixel Ring - 16 x 5050 RGB LED with Integrated Drivers - This is your ring of lights. Each LED has a red, a green, and a blue light in it. They combine in different amounts to make all of the colors in the rainbow. Since we'll be keeping the lights on the dim side, you'll really be able to see how red, green, and blue lights combine to make all the colors.
- Lithium Ion Polymer Battery - 3.7v 150mAh - The battery plugs into your Gemma to power your lights and recharges using the USB charger, not the Gemma. To charge this battery, you will need to unplug it from the Gemma
- Adafruit Micro Lipo - USB LiIon/LiPoly charger - v1 - As noted above, plug your battery into this charger and connect the flat side into a USB socket. A little green light will indicate that your battery is "done" being charged.
- Tactile Switch Button (6mm slim) - This little white clickey button will navigate between modes
- Silicone Cover Stranded-Core Wire - 26AWG - 3 pieces of wire, each about 4" long will be used. You won't need the full lengths of the wire so you'll have extra if you make a mistake.
- Jewelry Accessories - Jump Rings, Earrings, Nylon Cord, Cable Necklace, Magnetic Pin
- e6000
This is what I have at my workstation: helping hands,soldering iron, Hakko Brass Sponge Solder Tip Cleaner, solder, an old wood cutting board, and a nearby fan.
Step 2: Attach the Button
Attach the little white button to the Gemma by sliding the legs through the holes marked "GND" and "D1".
Secure the button by folding the legs over on the backside of the Gemma. We will be soldering the button onto the board but it should sit comfortably here in this position.
Don't solder it just yet, otherwise you may close up the GND hole we will need in the next step!
Step 3: Attach Wires to Gemma
- Cut 3 wires to about 4" each. Traditionally red is used for power (+, V+, V), black or white is used for ground (G, GND), and another color is used for data (D). Since we are just using 3 wires for this project, any colors will do.
- Strip about 1/2" - 3/4" off one end of each wire.
- Twist the stripped end of the first wire.
- Feed it through the hole marked GND. You'll want the wire to run from the front of the Gemma (with the buttons) to the back. Try to get the wire insulation as close to the hole as possible. I find that folding the wire over in the back holds it down.
- Turn the Gemma over and solder the wire and button leg to the GND pin on the Gemma
- Twist the stripped end of a second wire.
- Feed it through the hole marked Vout. You'll want the wire to run from the front of the Gemma (with the buttons) to the back. Try to get the wire insulation as close to the hole as possible. I find that folding the wire over in the back holds it down.
- Turn the Gemma over and solder the wire and button leg to the Vout pin on the Gemma
- Twist the stripped end of a third wire.
- Feed it through the hole marked D0. You'll want the wire to run from the front of the Gemma (with the buttons) to the back. Try to get the wire insulation as close to the hole as possible. I find that folding the wire over in the back holds it down.
- Turn the Gemma over and solder the wire and button leg to the D0 pin on the Gemma.
- Solder the second button leg to the back of the D1 pin on the Gemma.
- Trim the excess wires.
Note: If you're comfortable soldering, you may be able to place all the wires and complete your soldering all at once. I recommend beginners place and solder one wire at a time.
Step 4: Attach Wires to Ring
- Lay out the Gemma and the Neopixel Ring with both the LEDs and the components of the Gemma facing up. Position the D1 pin on the Gemma closest to the hole on the Neopixel ring that says "Data In"
- Determine where to cut and strip the wire to connect these two. You will probably want 1-1.5" of wire between the Gemma and Neopixel Ring to provide enough slack.
- Using your fingernails or a sharpie, mark two spots on the wire - where you will trim the wire to and where you will strip the wire to. Give yourself 1/2" - 3/4" of stripped wire to work with.
- Cut and strip the remaining two wires at the same approximate lengths.
- Twist the stripped end of the "D0" wire and feed it through the hole marked "D In" on the Neopixel Ring. You may feed the wire through the front or back of the Neopixel Ring.
- Solder the D0 wire to the Neopixel Ring.
- Twist the stripped end of the "GND" wire and feed it through the hole marked "G" on the Neopixel Ring. You may feed the wire through the front or back of the Neopixel Ring.
- Solder the "GND" wire to the Neopixel Ring.
- Twist the stripped end of the "Vout" wire and feed it through the hole marked "V+" on the Neopixel Ring. You may feed the wire through the front or back of the Neopixel Ring.
- Solder the "Vout" wire to the Neopixel Ring.
- Trim the excess wires.
Note: If you're comfortable soldering, you may be able to place all the wires and complete your soldering all at once. I recommend beginners place and solder one wire at a time.
Step 5: Program Your Gemma
First you need a way to program your board. Download the Arduino IDE or use a Web-based IDE if one is available.
If you are new to Arduino and looking to start a new project, you have some options.
I typically use the Arduino IDE, downloaded from their site. You will need to install the libraries and support for the board you're using. Since this is a more in-depth process, I recommend reviewing the Adafruit Introduction to Gemma page and then checking out resources for installing the FastLED library in the Arduino IDE.
Another option is to use a browser-based program like codebender.cc. Unfortunately, codebender is not currently accepting new registrations, but I've included this information just in case they open things back up. Please support them if you can because they are awesome! Codebender is a great way to introduce someone to code since you just need to download a plug-in to get it going. If you've already got the Arduino IDE, jump below to my sketch example and paste it into a new sketch. There's a great Getting Started with Arduino and Codebender Instructable by Ardumotive_com. The folks from Codebender have put together quite a few instructables, too.
Review the Sketch
Here's my sketch: FastLED Palette Button by amelia.tetterton
"Clone and edit" my sketch and "save" it to your codebender account or copy and paste it to a new sketch in your Arduino IDE.
Update the necessary areas if are interested in making any changes.
- Line 23: The brightness is set at 1/8 of full brightness.
- Lines 30: if you change the number of modes, you must update the number "8"
- Line 45-66: This is a custom palette I've called MyColors. Check out an RGB Color Picker and find some colors you like. You can put in any 16 colors you like here. There are a couple rules: instead of writing "golden rod" you will need to write "GoldenRod". So, capitalize the first letter of each word and remove any spaces. Don't loose the comma at the end of each line, either.
- Lines 98-148: FastLED has a bunch of built-in "palettes" to choose from. The group of colors in a palette are sent through a strip of LEDs in speed and step increments you've chosen. You can change the SPEED and STEPS to make things look exactly how you want. SPEED refers to how fast the colors move. Higher numbers = faster motion. STEPS refers to how wide the bands of color are. 1 = more like a gradient, 10 = more like stripes.
- Lines 170-185: This is another way of setting up a new palette. This mode is similar to the mode shown on the Adafruit Gemma Hoop Earrings. Play with the colors here and then the speed, and blending on lines 145-188 and see what happens.
- Lines 188-199: This is another way of setting up a new palette. This mode will show half of the LEDs green and the other half pink. Play with the colors here and then the speed, and blending on lines 133-135 and see what happens.
Verify the Sketch. Remember to hit "Save" if it works out for you.
The Gemma is a low cost microcontroller. When you plug it in and turn it on, it will flash a red light off and on for about 10 seconds. This means that it's ready to "accept" code. Otherwise, you need to press the reset button to enter what's called the "bootloader mode". Other microcontrollers will just go into this mode automatically, but since the Gemma is so simple, it needs someone to give it a heads up first. If you get an error, try to unplug and plug your board back in or press the small black "reset" button on the board. On a Mac, I have to connect my Gemma to my computer through a USB hub (so...Gemma to microusb to USB hub to miniusb to Mac) just to get it to work. Patience!
Upload the Sketch. Press the reset button on the Gemma and "Upload" the code to your Gemma.
Make sure you get an "Uploaded Successfully" or some other positive message confirming the code was uploaded.
Notes
- If you run into issues where the board isn't entering the bootloader mode when you press the reset button, try unplugging your Gemma and then plug it back in.
- Anything written on a line after two slashes, like this: //, is a comment. You could write "//blah, blah, blah" and it would be fine. Multi-line comments fall between "/*" and "*/". Codebender makes all the comments look green. Spaces and blank lines are fine so feel free to separate things out to work for you.
- Make sure you've selected the correct board (Gemma) and port.
- Always "verify" before you "upload". Codebender or the IDE will let you know if your sketch is too large. If it is, you will need to modify it by removing one of your "modes".
Step 6: Test
- Make sure that your wires are connected properly.
- Trace the wire from the GND hole on your Gemma to one of the GND holes on the NeoPixel Ring.
- Trace the wire from the Vout hole on your Gemma to one of the VCC/V+ holes on the NeoPixel Ring.
- Trace the wire from the D0 hole on your Gemma to the Data In hole on the NeoPixel Ring
- Ensure that both legs of the white button are soldered to the board.
- Plug the jst connector from the battery into the board and switch the board to the on position if it isn't already.
- Press the white button to scroll through the different modes.
- Pat yourself on the back.
Step 7: Complete & Accessorize!
- Attach the battery to the back of the Gemma using foam tape or glue*
- Attach any accessories you like to make earrings, a necklace, a pin, or something else. The tiny jump rings for jewelry making fit perfectly inside any open holes on the Neopixel ring. Include any new ideas in the comments!
- Use thread to reinforce the position of the Gemma inside the Neopixel ring, especially if you're using wire thinner than 26g.
- Place some glue* on the Gemma where the wires meet the board.
- Unplug the battery from the board and place some glue* where the battery wires meet the battery and the connector.
*If you are using e6000, do this last since it takes a good 24 hours to fully set. You can also use hot glue, but be careful with using it on or near the battery. I prefer to be cautious!