Hex Infinity Mirror Pendant
This instructables show how to use an Hex NeoPixel board to build an Hex Infinity Mirror Pendant.
Supplies
- ATtiny45-20SU (and ISP programmer)
- HEX NeoPixel LED Board
- 10 mm LED Touch Switch
- Four 360819 Lipo Batteries
- 0.5 mm Two Way Mirror Acrylic Sheet
- Super Mini Lithium Battery Charging Board
- 28 mm Qi Standard Wireless Charging Receiver Module
- Some wires
- 1.27 mm Pitch General Purpose PCB Board (optional)
- Some pin headers (optional)
What Is Infinity Mirror
The infinity mirror (also sometimes called an infinite mirror) is a configuration of two or more parallel or nearly parallel mirrors, creating a series of smaller and smaller reflections that appear to recede to infinity.
I had seen a tweet from ItsMrJP, I know a infinity mirror can become an eye catching accessories if it shrank into a pendant size. I did not have FibNano and only have an Hex NeoPixel board in hand, so I try to use it to build a Hex infinity mirror pendant.
In this pendant, both back and front mirrors are Two Way Mirror. So the LED light can pass through and reflect.
Ref.:
https://en.wikipedia.org/wiki/Infinity_mirror
https://info.glass.com/glass-dictionary/two-way-mirror/
Compact Design
Since the infinity mirror requires hollow in the middle, I cannot put any components in there. All electronics components only can place at back and within the Hex pendant walls.
I want the pendant as thin as possible, so batteries cannot place at the back. It requires some small batteries that can fit in the pendant walls. I decide place four 360819 Lipo in 4 sides of Hex, the other 2 sides place Lipo Charge Board and MCU.
The pendant is more flawless if not expose a charging hole. So I need to place a wireless charging module at the back. Same reason, power switch is using capacity touch module and also placed at the back.
LED Mask Selection
Simply reflect the Hex NeoPixel light result is not as good as expected compare with ItsMrJP's FibNano Infinity. It is too much bright area and not enough place to see the reflection. So I need some light mask to reserve more area for infinity reflection.
Which mask is the best is very subjective and each 3D printer printed mask should have some minor differences, so I have make few mask versions for your selection. The above video is just for your reference, you should test with your own 3D printed pieces.
Notes:
- The photos taken in this instructables is using the mask with 0.6 mm 3 holes version.
- 0.6 mm is radius size, i.e. 1.2 mm diameter hole
3D Printed Case
Please download and 3D print the case at Thingiverse:
https://www.thingiverse.com/thing:5225803
HEX NeoPixel Patch
The Grove connectors on the back side of HEX NeoPixel LED Board is a little bit too bulky. So we need desoldering all 3 connectors first.
Ref.:
https://www.instructables.com/Soldering-and-Desoldering-Surface-Mount-Components/
PCB Cut (Optional)
It is an optional step for making the MCU Child Board.
The Hex NeoPixel color changing is controlled by a MCU. You may want to change the design from time to time, so it is better to make the MCU easy to take out for reprogram.
Firstly, cut the 1.27 pitch PCB to 6x7 holes size.
MCU Child Board (Optional)
Soldering the MCU to PCB and connect power pins and signal pin to pin header, this project using PB3 as signal pin.
If follow normal LED strip pin order it should be:
LED strip connector <-> ATtiny45
=================== ========
Pin 1 +ve <-> Pin 8 Vcc
Pin 2 signal <-> Pin 2 PB3
Pin 3 -ve <-> Pin 4 GND
Software Preparation
Arduino IDE
Download and install Arduino IDE latest 1.x version if not yet:
https://www.arduino.cc/en/software
ATTinyCore Support
Follow the instruction to install ATTinyCore support:
https://github.com/SpenceKonde/ATTinyCore/blob/master/Installation.md
Program
- Download the source from GitHub: https://github.com/moononournation/NeoPixelHexPendant.git
- Open NeoPixelHexPendantATtiny.ino in Arduino IDE
- Select Board: "ATtiny25/45/85 (No Bootloader)"
- Select Chip: "ATtiny45"
- Select Programmer: your ISP programmer
- Connect the ATtiny45 to ISP programmer
- Press "Upload"
Connect Batteries Together
Soldering all Lipo batteries together. -ve to -ve pins; +ve to +ve pins. Beware do not soldering protection board -ve and +ve pins together, or it will short circuit and hurt the batteries.
Soldering Work
Connect Lipo batteries to charge board and then connect the charge board power source pins to wireless charging module. You may test the wireless charing is working first. Then connect all other components together.
Here are the connection summary:
Charge Board input +ve -> Wireless Charging Module +ve
Charge Board input -ve -> Wireless Charging Module -ve
Charge Board output +ve -> Lipo +ve
Touch Switch +ve
MCU Vcc (pin 8)
Hex NeoPixel +ve
Charge Board output -ve -> Lipo -ve
Touch Switch input -ve
MCU Gnd (pin 4)
Hex NeoPixel -ve
MCU PB3 (pin 2) -> Hex NeoPixel Signal
Cut Acrylic Mirror to Hexagon
Follow cutting mold and LED mask to cut the acrylic mirror to 2 hexagon.
Assembly Part 1
Put all components inside the case.
Fix the Mirrors
Use some glue or double size adhesive tape stick larger mirror on the cover; place the LED mask and smaller mirror on the Hex NeoPixel module.
Extend the Boundary of Infinity
The infinity reflection stopped at the pendant wall, let's use more mirror to extend the boundary of infinity:
- Cut 6 pieces of 4 mm x 18 mm mirror
- Use some glue or double side adhesive fix inside the pendant wall
Assembly Part 2
Put on the cover start from the downside hook and then test the touch switch and the infinity reflection work well.
Tie the Necklace
Final assembly step is tie a leather necklace on the topside ring, it can help to fix the pendant cover.
Qi Charging
Place the Hex Pendant on the Qi charger for the first fully charged.
Rain Proof Concern
Since this Hex Pendant not expose any holes, it is potentially rain proof capable. If you already check all function works well. You may apply some glue on the gap of the cover.
Enjoy!
It's time to show off what you have done.
What's Next?
- If I can get a FibNano, I will try it.
- If the Hex shape slimmer in left and right side will be more like a crystal, so I will find a way reduce the electronics components.
- ATtiny series are actually can sense capacity touch, called QTouch, but not available in Arduino IDE. I will try to find is it a way to implement in Arduino IDE, then we can reduce a touch power switch.
- ATtiny45 chip should able direct soldering under the NeoPixel Board and then the charge board also move to back side then we can free up 2 wall sides
- Custom PCB?
- The LED mask and the first 2 way mirror can be replaced by a normal mirror with drilled holes, it should improve the infinity reflection effect.