Home‎ > ‎Projects‎ > ‎

Harbor Lites Wall Clock

New life for an old backglass

I acquired this Harbor Lites backglass from a close relative who moved out of state and pruned his collection of spare pinball parts.
This 1956 vintage backglass shows its age with a few paint flakes and some red fade, but I figured it would look nice on my wall. However, rather than a static display I prefer something a little more useful, such as a clock. Harbor Lites uses 43 lights, which is more than enough to display 12 hours, 10’s of minutes, minutes, and a few more lights for seconds.

Harbor Lites Wall Clock

1956 Harbor Lites Pinball

[The real Harbor Lites Pinball game]

To keep costs down (the backglass was free after all!) I limited my selection of electronics to parts I already have, excepting buying a reel of Neopixels from Adafruit.
I also need to buy a few pine boards for constructing the frame.

A plain pine box frame:

A visit to Homey-D procured a decently straight 8’x 2.5”x0.75” pine board and 1.5” trim.

Cut the sides, glue and screw together to form a frame 1/8” larger than the 20”x22” backglass. The trim is cut and glued to provide a lip around the front of the frame to retain the glass. Lower corner reinforcements also help locate the light mask and LED board.

[Bocce balls make great weights!]
A light stain and satin finish gives it the look I want.


To cut the light mask and locate LEDs I made a stencil from a picture of the back of the backglass. I don’t need to be super accurate so a picture will do.

After removing lens distortion, reversing, and edge enhancement I printed a tiled layout on standard paper. Holding the paper up to the backglass while shining a light through the backglass helps register the paper tiles when taping them together. Two pieces of cardboard at the lower corners registers to the backglass.

nice 'n' flakey

A razor knife cuts the mask. Afterwards I compared to the backglass and lightly penciled adjustments. After a few passes I was satisfied.

taped, ready to cut
need to trim some more
looking better

Light Mask:

To keep the weight down I use a sheet of ½” Styrofoam, commonly used as wall insulation. The mylar and other backing are pulled off. Whereas the mylar pulled cleanly the other side did not.

peeling mylar

After cutting to size I transferred the mask pattern to the foam. Instead of using a razor knife and getting Styrofoam fuzz everywhere I used my trusty hot knife to melt holes. Controlling the heat is tricky but I managed not to over-melt too much. I used a knife to trim any strings. Thin felt pads on the edges help keep the mask off of the glass – no need to rub off more paint flakes!
ready to melt!
mmmm, melty

LED board:

I recycled a 1/8” plywood board I believe was once a backing from an old piece of furniture. I need something lightweight and fairly rigid that won’t flex much.

After trimming the board the mask pattern is transferred with arrows indicating the LED path. The string of Neopixels are wired in a long daisychain and direction is important – if you solder them backwards they don’t work.

mask pattern transferred

Thin double-sided tape is cut and located. Then cut apart the Neopixels and locate on the tape. Then the tedious task of soldering 3-wire interconnects. This takes several evenings!

250+ soldered joints...

Testing is easy, just apply power, clip the control wire to the cpu, lay the light mask over it, then the backglass.
getting there

Service Buttons:

3 service buttons located at the base of the frame provide for setting time and a few other features. 3 plungers protrude through the frame and actuate small switches. A small scrap of masonite slips over the plunger and is used to adjust play.


switches, plungers, hanging brackets
rounding plungers

Light Sensor:

A small hole at the base of the frame holds a light sensor. The CPU reads the sensor and adjusts LED brightness according to the ambient light.
Le Dominoux leftovers


An AT-Tiny85 (8k ROM, ½ k RAM) is used, with a realtime clock chip, both run at 5V. The RTC is soldered on a PCB that was leftover from an old project, along with a battery backup. The CPU is mounted on a small proto board and stuck to the PCB. A ribbon connector hooks up the light sensor, switches, and LED control.
small but mighty Tiny
looks like crap!

Programming, operation:

I use Arduino development, FASTLed lib for controlling Neopixels, and an I2C lib for RTC control.  With some code the AT-Tiny supports temperature controlled clock trimming so that the RTC doesn’t drift much. The service menu supports a clock trim setting to fine adjust as well.

The automatic dimming service menu feature is adjusted in bright and low ambient light. This keeps the clock from lighting up the room at night, as well as reduces power consumption (typically less than 1 Watt.)

After including these libraries and service menu code there’s not too much ROM left over for fancy lightshows.

Cheap paint flake fix:

The backglass was retouched at least once in its long history but still had flakes and gaps in the usual areas where the light bulbs are lit the most. The bare glass is most noticeable with the white Styrofoam showing through. Rather than try to color match and retouch I snagged a few paint sample cards from a Homey-D visit, cut to shape, and taped to the light mask.
50 shades of blue & green
close enough
tape it down
covers it up!


Since the backglass plus frame weigh over 12lbs a pair of aluminum brackets and 30-lb picture hanging wire is used to hang the frame on a large screw in the wall. Speaker wire supplies power from and old 5V cell phone wall wart.


While I appreciate Monoprice’s affordable cables I’m not a fan of printed cables dangling on my walls, so it gets a matching coat of paint.

ugly cable
50 shades of beige