While driving around on trash-day, I found someone chucking a Fiberoptic Cityscape of the Brooklyn Bridge & New York City's skyline. The only thing wrong with it was the 3/8" glass cover was cracked & the sucker weighed about 50 lbs (due to the glass cover). While removing the cover, I figured I'd take a look at what's inside.
These fiberoptic 'scapes are traditionally powered 120V which runs a small incandescent lamp (through a converter) & a motorized color wheel. This design is inherently noisy & inefficient, so I decided to replace it with a quieter 5V microcontroller with an array of individually controlled RGB LEDs, which after completing my Flower project, I upgraded to the more friendly 5050 WS2812B RGB LEDs.
The whole upgrade cost less than $15 for the LEDs, controller, & electrical connectors, $15 for the sheet of Acrylic, and another $6 for the Jewel upgrade:
BOM (Ver 1.0)
- LEDs (2x White, 1 RGB)
- Single headers & jumper wires
- Digispark Attiny85 controller
- Soldering equipment
- 3D Printer & PLA
- Sheet of 1/8" Acrylic
- Tape (Double-sided mounting tape & electrical tape)
Additional BOM (Ver. 2.0)
- Adafruit Jewel
- Single Headers & jumper wires
Step 1: Disassembly
I removed the broken glass cover & backplate, then removed the lamp, transformer, & motorized color-wheel. I then cut a new acrylic cover for the front & used double-sided tape to adhere it to the frame.
Step 2: LED Assembly
To replicate the color wheel, I wanted primarily a white shimmering light with a tinge of cycling color. I used two White LEDs & a frosted RGB led, & soldered them to the proto-board, using a pair of current-limiting resisters. I soldered a bundle of jumpers directly to the proto-board for the 5 outputs, ground (Ws) , & +5V (RGB).
I created a light tube from translucent PLC to focus the light towards the fiber bundle, then wrapped the whole thing in electrical tape.
Step 3: Mounting the LEDs & Hooking Up the Controller
I taped the LED assembly to the fiberoptic cluster, leaving about 3/16" (4.8mm) between the LEDs & the fibers.
I then attached the jumper leads to the Digispark controller:
- Red: RGB Input - +5V
- Black: White Ground - GND
- White: White Output - P1
- Grey: White Output - P2
- Brown: RGB Output (Red) - P3
- Blue: RGB Output (Blue) - P4
- Green: RGB Output (Green) - P5
Step 4: Programming
I modified the program code from this twinkling instructable
I played around with random intervals, but it never looked very natural and there was quite a bit of light loss. I gave up on tweaking it. Seemed like a bummer of a project until...
Step 5: BONUS ROUND: Upgrading to NeoPixel Jewel
My Flower project influenced me to also upgrade the cityscape project as well.
I carefully soldered header pins to IN, PWR, & GND on the back of the Jewel. The LEDs are clustered very close together, so I had to be careful to make sure not to singe the 5050 pixels soldering from the front.
On the controller, I used a combination of straight pin & 90° headers.
I taped the jewel directly to the fiber bundle, but it wasn't very even, so I reused the light tube from before to offset the LEDs 5mm as before. Now the light is tremendously more even & natural in cycling.