Salvaged Street Light Conversion

by MarkMakies in Workshop > Lighting

18 Views, 0 Favorites, 0 Comments

Salvaged Street Light Conversion

image2a.jpg
image8a.jpg

I salvaged a few decommissioned street lights from our local tip — battered but mostly intact. I suspect they once lit the main street of our town, and now they’ve found a second life as garden features. A bit of restoration, some creativity, and they’re back in action.

Supplies

Old banged up street light/s

A 3D printed bracket

Gal water piping and elbows

Paint, sealer, glue, sandpaper, cleaning products

8x8 LED matrix module - mine came from here

MCU dev module - I used an RP2040 from here

DC convertor from your AC/DC voltage to 5V or 3.3V

Clean Up

image2.jpg

The first step is to clean the street lights up.

Using a small hammer with a rounded end, I gently tapped them back into shape. Since they're made of aluminium, it wasn’t too difficult to get them reasonably straight. For the edges, a small spanner worked well to press and bend things back into line.

Once reshaped, I sanded the entire surface with 240-grit sandpaper to give the paint a good surface to adhere to.

  1. Exterior: spray-painted in matte black
  2. Interior: finished with a matte burnished copper spray for contrast and warmth

Strip Out Innards

image3.jpg
image9.jpg

Inside the housing, I removed the ballast and all the original electrical components used to power the high- or low-pressure sodium lamp.

I’m not sure if this is standard, but in my case the globe holder was mounted on an aluminium bayonet. I kept this in place and later repurposed it to mount the new light source.

Electronics

IMG_1643.JPEG
cf9e9fb07096666c053808784bc56db38605c5f4_2_375x500.jpeg

The electronics setup is fairly simple. I used an 8×8 LED matrix so I can fully control the colour temperature and create custom lighting effects.

You'll need a DC-to-DC converter that matches your input voltage and is rated for the power required at full brightness. In my case, the module is quite small since I never run all the LEDs at full power.

Important: Don’t rely on the onboard voltage regulator of your dev board to power the LEDs — you may end up like the second picture...

Before wiring everything in, make sure to complete the next step.

Print Holder

Screenshot_2025-06-07_16-20-54.jpg

I designed a two-piece plastic holder to adapt the housing to fit a Glowbit 8×8 LED matrix. The holder sandwiches the LED module carrier and insulates it from any surrounding metal parts.

The 3D print files are available on my GitHub, along with the FreeCAD source file in case you want to tweak the design for your own setup.

The matrix clips neatly into the square cutouts and sits flush with the top surface. Once in position, I glued a printed ring over the matrix to keep it secured.

And finally, I covered the back of the module with electrical tape to protect the contacts.

Assemble

image1.jpg

Mount the LED matrix into the printed holder so it sits flush with the surface.

Glue the ring over the front to keep the matrix securely in place.

Use hot glue to fix the DC-DC converter and microcontroller to the back plate.

Make sure all wiring is secure and insulated (I used electrical tape on the back of the board).

In the image above, the right-hand unit shows the matrix clipped in, before the retaining ring was glued.

Fit

image4.jpg
image5.jpg
image7.jpg

Glue the matrix and holder assembly to the aluminium bayonet from earlier. Since this section is sealed, I used silicone to seal where the wires pass through to maintain weather resistance.

Code

You could swap in a Wi-Fi enabled microcontroller and go wild, but for this garden application I’ve kept it simple. The Python code just sets all LEDs to a single RGB value, allowing for basic control over colour temperature and brightness - or even effects, if needed.


from machine import Pin
import neopixel

numPixels = 64
NeoPin = Pin(14,Pin.OUT)
Neo = neopixel.NeoPixel(NeoPin,numPixels)

def Flood(r,g,b):
for k in range(numPixels):
Neo[k] = ((r, g, b))
neopixel.NeoPixel.write(Neo)

Flood(255,139,21) # iPhone measure 3250 K on grey card reflection


In our case, we (meaning my partner) wanted an exact match to our existing garden lights — about 3250 K. The RGB setting of (255,139,21) does the trick, drawing around 250 mA from the DC regulator.

Mounting

image8.jpg

I used gal water piping and elbows to get the bracket look and function I wanted. Standard plumbing bits were used to attach to the light to the gal.

Finished Pics

IMG_2454.JPEG
D75_4624.JPG
D75_4618.JPG
IMG_2194.JPEG
IMG_6407.JPEG