Introduction: Fiberoptic New York Cityscape Using Neopixel LEDs

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)

  1. LEDs (2x White, 1 RGB)
  2. Proto-board
  3. Resisters
  4. Single headers & jumper wires
  5. Digispark Attiny85 controller
  6. Soldering equipment
  7. 3D Printer & PLA
  8. Sheet of 1/8" Acrylic
  9. Tape (Double-sided mounting tape & electrical tape)

Additional BOM (Ver. 2.0)

  1. Adafruit Jewel
  2. 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.

Make it Glow Contest 2016

Participated in the
Make it Glow Contest 2016

Trash to Treasure Contest 2017

Participated in the
Trash to Treasure Contest 2017