Backlit Smart House Numbers




Introduction: Backlit Smart House Numbers

About: I got into wood working a few years back and have also been dabbling with electronics since about forever. The combination of both I find very fascinating and so I am always trying to come up with projects tha…

House numbers are usually conservative and quite boring devices. We lacked even a boring house number and some action was needed to change that. Now we recently installed a Giraffe mailbox which should help any visitor to identify our house with ease during the day time. But what about night time?

Obviously we needed an eccentric backlit smart house number that was colorful and fun.

  • Backlit so it can be seen in the dark
  • Smart because it can detect when to switch itself on and off
  • House number since we had none
  • Fun because it changes colors every night and has a party mode where it switches colors every 3 seconds for get togethers

Surely nobody will miss our house ever again. Not even when the dark ages start again.

Here is how we did it.


Step 1: Tools

The following tools were used to complete this build:

  • Carpenters square
  • Pencils
  • Folding carpenter's ruler
  • Table saw
  • Computer
  • Projector
  • Scroll saw
  • Drill press
  • Drill bit set for brad pit drills and all purpose drills
  • Sandpaper 220 grid
  • Paint Brush
  • Solder Iron
  • Power Supply 9V
  • Power Supply 12V
  • Arduino Uno Development Board
  • Combination square
  • Thumbtacks
  • Clothespins
  • Hammer
  • Center Punch
  • Small Paint Brush
  • Screw Drivers

Step 2: Materials

For the house numbers, any links are just examples

  • Light paint for backside
  • House paint for frontside
  • Any color paint for marking
  • Waterproof Red/Green/Blue LED strip, only ~3-4 sections needed per Number, total of 15 used
  • Wax paper
  • Solder
  • Electronics components (see details in Step 10)
  • Clear Caulk
  • Old telephone cable
  • Two wire cable
  • 1/4" ply wood
  • Piece of wall siding
  • Scrap wood for standoffs
  • Old chocolate box
  • Epoxy glue

Step 3: The Numbers

This step describes the fabrication of the custom sized numbers.

  • Decide on the mounting location. We decided that the house numbers will be mounted above the garage door and determined the size for them to be 30 cm (that is about 12").
  • Pick a font. The"Century Schoolbook L" was our choice because we liked its soft but clear look.
  • Cut a section of plywood that is large enough to accommodate your house numbers. Our plywood thickness was 1/4".
  • Place your plywood at a wall and project your house number on it in the desired size.
  • Trace the numbers carefully with a pencil or pen.
  • Cut out the outside of the numbers. We used a scroll saw. but other saws that allow to cut tight turns will work as well.
  • Some numbers require inside cutouts. Drill at least one hole into the inside section. I drilled several holes close to, but inside the lines.
  • Feed the saw blade into the hole. I needed to remove the top fastener of the scroll saw blade and bent it sidewards a little to feed the blade into the hole without breaking it.
  • Cut out the inside and remove the blade again.
  • Sand all the edges. I used 220 grit sand paper.
  • Paint the numbers with exterior paint. I recommend white paint for the back side to achieve the best reflection of the light. For the front I used the white color as a base and then the accent color of our house which is a reddish brown as the finish.

Step 4: Light Tests

This step describes the testing of the LED lights and the determination of the standoff length.

  • Cut the LED strip in short sections at the intended cutting locations. For the strip that I had each section had three LEDs.
  • The LED strip was silicon sealed and thus weather resistant. This is obviously useful for prolonged outside use. I used a carpet knife blade to cut into the silicone above the contacts and then pried away the silicone protection.
  • Select locations for the standoffs and the short LED strips on the backside of the number. Consider that the standoffs create shadows. The LEDs need to be placed on several sides of the standoffs such that minimum shadows are created. Mark the location.
  • Connect the LED strips in series with each other. Don't worry about the cable routing. This is a test for placing the LEDs and standoffs only.
  • Fasten the LED strips with tape on the number.
  • Cut 8-10 small blocks of scrap wood. I used about 1x2 sizes for my standoffs.
  • Flip the number around and place it on the wood blocks. Light it up with a 12V power source. Vary the height of the adjustable standoffs until you get a continuous light distribution. Move the LEDs if needed. Try again until you have a solutions that works.
  • I needed four blocks. Total standoff height was 8.5 cm.
  • Once you know the length of the standoffs, repeat testing the standoff and LED locations with every number so that you can detect and eliminate any unintentional shading from the standoffs.

Step 5: Standoffs

This step describes the fabrication of the standoffs.

  • Cut all the standoffs you need to the length determined in the previous step.
  • On half of the standoffs mark the location for the cable hole in a corner of the standoff.
  • In these standoff use a drill press and drill a hole that is wide enough to accommodate the cable coming from the LEDs.
  • Turn those standoff over to the side and drill into the side to give the cable a side exit to the back of the house number.
  • Paint all standoffs in the main color of your house. I used pushpins to be able to paint all sides at the same time.

Step 6: Drill Template

This steps describes how to make a drill template that helps drilling the holes in your house wall or your cover sheet exactly where you need them.

  • On a scrap sheet of laminate/wood material carefully determine the spacing of the house numbers.
  • Lay the first number down.
  • Trace it with a pencil.
  • Create the proper spacing ( I used 5 cm between numbers) and mark it with a pencil.
  • Repeat with next number until you have all numbers.
  • Take a piece of wax paper (usually used for baking) and trace the numbers onto the wax paper.
  • Transfer the location of the standoff to the wax paper as well.
  • Mark the center of the standoff on the wax paper.
  • Remove the number.
  • Align the traced number on the wax paper with the traced number on the drill template.
  • With a center punch and a hammer, punch the marked drill location through the wax paper into the drilling template.
  • Mark an X on the drilling template for easier visibility of the marked spots.
  • Align the drill template number and the wax paper.
  • Align the standoffs that will carry the cable to the number such that the hole for the cable exit points downward when the number is installed.
  • Mark the location on the wax paper. I found that a brush and some paint worked best.
  • With a center punch and a hammer, punch the marked drill location through the wax paper into the drilling template.
  • Repeat for each number.
  • With a drill or drill press drill out the marked holes. The cable holes should have the same diameter than the hole in the standoff. The fastening holes should be clearance holes for the screws you want to use for fastening the numbers.

Step 7: Completing the Numbers

In this step we are completing the electronic assembly and testing of the numbers.

  • With reliable glue that will be able to withstand the environments glue the LED strips to the predetermined locations. I used two component epoxy glue from Loctite.
  • Identify the wires/cable you like to use. I used leftovers from telephone cables that we pulled off the house when we painted it. Single strand, probably been up for 30 years or so.
  • Carefully route cable pieces from LED strip to LED strip and connect them in series with each other. Consider out of which standoff the cable comes and how you can route it most efficiently.
  • Secure the cable and protect the solder joints with epoxy glue or silicone.
  • Test each color using some test leads and a 12V power source.
  • Run the appropriate cable length through the standoff and glue both standoffs onto the number. I still used the epoxy glue for this step.
  • Attach the cable to the appropriate LED strip.
  • Test it again.
  • Fasten it with epoxy and close the hole where it comes out of the standoff with epoxy glue as well.
  • Note that one number is special. It has to hold a photocell, or light dependent resistor (LDR).
  • Measure the diameter of the LDR.
  • Drill a hole in the number that you like to hold it, but make sure that this number is not subject to the light of a street lantern.
  • Insulate the legs of the LDR with shrink tubing.
  • Glue the LDR into the hole. I covered mine with a light layer of epoxy to make it more water proof, hoping (not knowing) that it won't get fogged up by extended exposure to sun light.
  • Solder the connections of the LDR to two additional wires that are fed through the standoff.
  • Seal and glue everything in place.

Step 8: The Brains I (Software)

In this step I'll elaborate on the software that I developed for this build. I used the arduino editor and tested using an arduino uno R3, a breadboard and the required parts. Once the hardware and software was successfully tested a strip board was created that used an atmega 328P as the brain. You could call that a DIYduino. The .ino file is available for download in this step as well. The .ino file is now an updated improved version. In the new version the party button can be pressed during the day as well as during the night.

The software is essentially a state machine that consists of 5 states. The flow chart will give you the best overview of how the software works.

State0 = it is daylight:

When the state0 exists it is daylight. The state0 checks permanently if it is dark yet. Once it realizes that it is dark it will change the state from state0 to state1, which means it is dark now.

State1 = select a color:

When state1 is reached, the software picks randomly a color, sets the color, switches the light on and changes the state1 to state2 or state4 depending on if the party button is pressed. The random color is actually three randomly chosen intensity levels, one for each red, green, or blue color in the RGB LED strip. To create each random intensity state the analog input pin0 is read. This pin is connected to a piece of wire. The wire acts as an antenna and is supposed to maximize noise and thus randomness. The value from pin0 is fed into a random seed function and a random value between 0 and 255 is created. This process is repeated for each color and the results are used for the pulse width modulation (PWM) value of each color. The three PWM signals are fed to the LEDs and together give the random color.

State2 = it is dark, no party button pressed:

This is the standard case when its dark. We essentially check if it is light yet. If the answer is yes, we go back to state0. If the answer is no, we go to state3.

State3 = it is dark, no party button pressed:

State3 and state2 build a loop. As long as it remains dark and the party button is not pressed we remain in that loop. This is essentially our standard regular night. If the party button is pressed the state is changed to state4. If daylight comes the state is changed to state0.

State4 = it is dark, the party button was pressed:

In the party mode we pick a new color every three seconds using the same method used in state2. We also check if the daylight has come back. In case of daylight we change the state to state0, in case of darkness we repeat state4 and pick the next color (or three color intensities).

Step 9: The Brains II (Hardware)

In this step the electronic realization of the build and the components list is discussed.

There is a lot of thinking, attention to detail and satisfaction that comes with each project, so it's much nicer to be able to keep each finished build and not have to tear it apart for the next one. Using an arduino for each buiId quickly becomes expensive and it is definitely cheaper to build your own DIY arduino boards once you figured out the software and hardware in the development process. In a nutshell, I use a commercially available arduino Uno R3 board as a development board and then realize the build with a DIY version. You can find plenty of info about those builds on instructables and elsewhere on the net. See here, here, here, or here, to name just a few. The final version of this build uses such a DIYduino. It further uses optocouplers to uncouple the control signal from the higher power output side, and TIP147 transistors for switching the LEDs on and off. These you could argue are overkill for the task, but I had them lying around for a while, forgotten why I bought them and it was time to use them for something else.

I prefer building up one-of-a-kind circuits on strip board. It is easy to use, can be neatly organized and allows trouble shooting. Typically the footprint is a little larger, but in most of my builds that doesn't matter, so this is another of my strip board builds. You can review my method in my other builds here and here. My layout is given in the pictures. Red crosses are interruptions of the copper strips, blue color represents connections made on the copper side of the board.

Parts List:

4x C1 - 0.1 uF, 50V, Capacitor Ceramic, $0.12

2x C2 - 22 pF, 50V, Capacitor Ceramic, $0.04

1x IC1 - Atmega 328P, Microprocessor, 28pin, same than in Arduino Uno

1x IC2 - LM7805, Voltage Regulator, 5V, $0.42

1x LDR, Light dependent resistor, Mouser Part #:485-161, ~1$

3x IC3 - SFH600-2, Optocoupler, control and charge circuit separator, Vishay SFH 600-2, $0.222

3x IC4 - TIP147, Darlington Transistor, switching LEDs on/off, one per color, TIP 147, $2.03

1x Q - 16 MHz Quartz, 18 pF, $0.36

5x R1 - 10 kOhm, Pull up or down resistor

3x R2 - 560 Ohm, optocoupler input current limiting resistor

1x R3 - 39 kOhm, voltage divider resistor

3x R4 - 470 Ohm, base current limiting resistor

1x S1 - Push button switch, reset of atmega 328P

1x S2 - Push button switch, party button

1x Power jack for 12V supply connection

1x, T1, Terminal Block, PCB mount, 2 Positions, $0.36

1x Strip Board, 2.54mm hole pattern, $8.14

4x Spacer, Nylon, M3 x 10mm x 6mm, $0.23

8x M3 screws, Nylon

Thermal paste

some sheet metal for heat sink

12V power supply, I used an old monitor supply

Step 10: The Brains III (Hardware Assembly)

This step shows in a step-by-step fashion the realization of the electrical schematic onto the strip board. I am strictly following the layout presented in the previous step.

  • Mark locations for strip interruptions with red.
  • Mark locations for any pin penetrating the board in black.
  • Use a piece of wire to track locations of strip interruptions to the copper side and make interruptions with 4mm track cutter.
  • Drill 3mm clearance holes for standoffs.
  • Cut strip board to size with scroll saw and finish edges via sanding.
  • Add and solder in this order: stand offs, jumper wires, resistors, capacitors and quartz.
  • Cut IC sockets if you don't have 6pin sockets by removing 2x middle pins of 14 pin socket and cutting them with pliers.
  • Add and solder IC sockets, ICs, transistors, and power connectors.
  • Add under board solder connections.
  • I further added connection wires for the switch, the LDR and the LEDs to make connecting to the board easier when it is installed in place.
  • Cut and flatten some sheet metal to be used as additional heat sinks. Mark and drill hole locations and assemble with thermal paste.
  • Test the board and confirm functionality. If necessary trouble shoot and fix the board.

Step 11: Enclosure

In this step the strip board is installed in a metal enclosure. The box I used was an old chocolate box that I had lying around.

  • Pick a box that is at least twice the size of the strip board. You'll need extra space for cable entry, cable connections and heat dissipation.
  • Mark the locations of the stand off and the 12V power entry. Drill them into the box with appropriately sized drills.
  • Fasten the strip board stand offs to the bottom of the enclosure.
  • Drill a hole for the cable entry of the LED and party button cables. I used a stepped drill and a deburring tool. I further protected the edge of the hole with a rubber ring/strain relief thingamajig.
  • Drill 2 (or more) holes to fasten the box on the wall during the final install.
  • The 12V transformer didn't fit in the box. I fastened it on the outside using velcro strips made for organizing cables. I cut four slits in the top of the box and fed the velcro through. I further shortened the 12V feed line (and reversed it's polarity due to a mistake I made on the power entry) to avoid having a ton of extra cable hanging around.

All in all the packaging looked very clean, was dust protected and perfect for my garage environment.

Step 12: House Number Module

The last steps turned out to be more specific to my house and my chosen install location. I am switching from a general perspective and describe what I had to do to make this work. In this step I explain the implications of overseeing that the garage door is held up by a big I-beam. Luckily I saw it just in time. It changed my whole mounting strategy.

  • I took my drilling template, fed the finished house number with cable into it, aligned it well and marked the drilling locations in the standoffs of each number.
  • I then drilled holes into the standoffs. The hole diameter was equal to the core diameter of the screws I was going to use. So far so good.
  • Then I realized that there is an big old metal I-bar above the door of my garage. Of course something has to be able to keep the garage up and standing despite that huge door. Unfortunately the I-bar was where I thought I could drill holes into wood. I did not have access to the I-bar from the inside. I didn't want to drill into the I-bar anyway. This meant I couldn't mount the number directly to the outside wall. The lowest hole location was too high for the number to work. I had to find a different solution.
  • I found standard wall siding at my local hardware store. Actually to 50% reduced and a little beat up, but good enough for a section of the size I needed.
  • I bought that section and cut it to size.
  • Then I tested out the exact height my numbers needed to hang and fixed the height of my cutting template.
  • I clamped the two on top of each other and drilled the holes for cable feed through and mounting with the appropriate drill sizes.
  • I painted the piece of wall siding and mounted the numbers on them using some almost flat headed screws I had lying around.
  • I caulked the standoffs to wall siding seams using clear caulk (or better caulk that turned clear during drying).
  • Last but not least I drilled fastening holes into the wall siding at 6 locations that made sense and that I could access with the drill.

Step 13: Mounting

This step describes the actual install of the numbers on the outside of the house above the garage door.

  • Using a piece of scrap wood I determined the minimum hole size needed to feed all the cables from the house numbers through one hole. Again that wasn't planned, I had anticipated four holes before.
  • Then I drilled a pilot hole through a wall section that was accessible from the inside and about in the midsection where the house number would be outside.
  • From the outside I opened up the hole to the size determined earlier.
  • I took the house number module up on a ladder and fed the four cables through the holes.
  • Where possible I drilled pilot holes through the fastener holes of the module and manually fastened the module with the screws I had.
  • I touched up the screw heads with paint and caulked all the cracks with the magic clear drying caulk.
  • You couldn't see a difference between the module and the standard wall.
  • Inside I put the insulation back in place and closed the drywall with pieces that I had prepared during my garage insulation project.
  • I marked and drilled the location the cable was fed through and insulated and closed that wall section as well.
  • Then I fed five cable into the box. One cable coming from each number and one cable for the party button.
  • I screwed the box onto the wall and connected the cable inside the box. Since I had single strand copper wires I simply twisted the cable together and insulated them with shrink tubing. I soldered the multistrand wires I used for the party button to assure good contact.
  • I further drilled a hole to allow the "noise antenna" to be outside of the Faraday cage I may have built.
  • Lastly I organized the power cables, connected everything and hooked it up.

Step 14: Party Button

This step describes the creation of the party button and its install at the inside side of the garage door.

  • Find a piece of wood that can hold the button you like to use and cut it to size. Mine was about 3 cm x 4 cm x 7 cm.
  • Measure the diameter of your button. I had used a leftover button that I still had around from another project. This button could be pressed into a 15 mm diameter hole. I drilled the hole into the center of the wood piece almost to the bottom with a Forstner drill bit.
  • Then I took a smaller drill, sized to be a clearance hole for a wood screw and drilled through the middle of the larger hole.
  • Last, I drilled a hole into the side to be able to feed the cable to the button.
  • To mount the button I ran a cable with two wires from the box above the garage door to the side of the garage door.
  • I cut the cable at about stomach height and removed its insulation.
  • I then fed it into the wooden block and soldered on the button I had.
  • Placing a wooden screw in the hole I screwed the button housing next to the garage door on a beam.
  • I tested the button, pushed it into the block and tested it again.
  • Everything was working and I was done.

Step 15: May the Dark Nights Be With You

Thanks a lot for hanging on to the very end. May your nights be full of color as ours will be. No friends will go missing in the dark anymore. The dark nights will be with us.

We surely look forward to the next party and hope those dark winters are not going to end too fast.



Make it Glow Contest 2016

Runner Up in the
Make it Glow Contest 2016

Sensors Contest 2017

Runner Up in the
Sensors Contest 2017

Microcontroller Contest 2017

Runner Up in the
Microcontroller Contest 2017

Be the First to Share


    • Home and Garden Contest

      Home and Garden Contest
    • Digital Fabrication Student Design Challenge

      Digital Fabrication Student Design Challenge
    • Stone Concrete Cement Contest

      Stone Concrete Cement Contest



    5 years ago

    Great project. I am surprised that just a few Ledstrips on the back would give so much reflected light.
    I have built a lot of atmega328/FIYduino circuits, just to beat costs, but the price of arduino clones has dropped so much it is hardly justifiable anymore and after a while soldering up yet again a basic circuit gets a bit tedious. Consider a pro mini clone for about 1.50 USD at aliexpress (or banggood or DX) for your next project. True, you have to wait a while, but take a batch of 10 for a good deal and you are set for many projects to come


    5 years ago

    I like this idea - I saw a similar one a while ago. I have made up my house number from CNC cut 10mm acrylic but have not installed it just yet - Mine is using an ESP8266 direct driving FETS via PWM. The LED driving circuit you have there is very complicated. A simpler way would have been to use the controller box that comes with the LED strip to retain control and just use the arduino to inject PWM into the FETs or for that matter, just have an IR transmitter on the arduino to control the control box - Then you can use all the built in effects too.


    Reply 5 years ago

    Thanks andrew_h,

    There are usually many ways to accomplish something and it looks like you are working on a nice version of house numbers as well. Looking forward to see an instructable on it :)

    With respect to my driving circuit: The majority of the LEDs including remote and power supply stayed with my tinker buddy from the infamous "Faraday Cage Fighters". I essentially got the very last bit of the end of the roll and thus had to come up with my own solutions. Luckily I am "hording" certain electronic things like power adapters that might prove useful one day and thus successfully saved some things from the landfill. Sure beats buying a whole roll of LEDs for the use of 15 segments.


    Reply 5 years ago

    Yeah, I guess we all make use of what we have. I just happen to have purchased around 30 rolls of the 12v RGB leds and they all came with remotes and controllers that went unused :) I think for someone producing this from scratch and having to purchase the strip, it would be easier to spend an extra $2 to get the controller and interface with that rather than building a whole new driver circuit though. Perhaps this can be an alternate method in your instructable?


    Reply 5 years ago

    would have gone a different way to both of you.
    Using an Arduino and WS2812B LEDs ,which are individually addressable, I would have run a single signal wire to the LEDs and powered the LEDs from the same 12v power source as the Arduino UNO.
    This way you could also light up each number with different colours and remove the need for any circuitry except the Arduino.


    Reply 5 years ago

    I considered the capability to light up every number in different colors. I found that particularly interesting for the party mode. Got a veto from the boss, though. She's an artist and I trust her instincts. Made for an easier build so I didn't had my heart in it too much.

    I was also wondering how many pwm pins I would have to use for running 12 colors (4 numbers x 3 LED colors) instead of the 3 colors (3 LED colors) I use now. I am pretty sure an Atmega328P would have come out short.


    Reply 5 years ago

    You don't use PWM pins, They are serial controlled so you send each device a colour number code along a single channel and the first code is caught by the first led then the second is passed on to the second, the third one is passed by the first and second then caught by the third and so on.


    Reply 5 years ago

    The WS 2812 or ws2811 leds literally only need a single control line to a chain of LEDs which is why they have a signal in and signal out which connects to the next LED.


    Reply 5 years ago

    Hi Gavin,

    Thanks for the info. I obviously didn't know that. It definitely opens new pathways into controlling things. I will keep those in mind for future projects. Do you happen to have a link / reference or instructable where those are used? (I always prefer understanding and altering something rather than dreaming everything up from scratch.)

    Happy tinkering.


    Reply 5 years ago

    This instructable is a good start and if you search in the library manager for 2812 it will show some libraries which have example code with it and often links to the web pages which have the projects the code is for.

    I have also found a page in the past where they have been using these pixels as basic low quality video displays but that is a little way off being truly useful.


    Reply 5 years ago

    Fantastic. Thanks. I'll check those out in the near future.


    Reply 5 years ago

    Adafruit call them Neopixels and this is a great source for learning about them

    They are 'smart' leds that just have power and 'data', not individual RGB pins. You can then have a string of them and tell each one to be which ever colour you want. An arduino can drive just under about 500 before it will run out of SRAM.


    Reply 5 years ago

    Yeah, I have done a lot with Pixels too, just for this it seemed overkill. WS2812B are 5V, are generally not as waterproof and suffer greatly from voltage drop. A better alternative (for this project) if you want programmable LEDs are the 12v WS2811 12mm 'bullet' style ones. They are waterproof and are much more tolerant to voltage drop, they use the same protocol as WS2812b (Use FastLed Arduino Library)

    I use a WS2182b in my doorbell that is automated to come on random colours for set periods each day but that's another instructable :)


    Reply 5 years ago

    After looking over the info I see you are right, the power voltage is 5v-7v for the WS2812 series, I haven't used them for quite a while.


    Reply 5 years ago

    Agreed. If you buy the roll you might as well use the controller for a couple bucks more. I'd look into the integration of one, when I find some spare time. Good idea.


    5 years ago

    beautiful, but way to complicated for me. great job


    Reply 5 years ago

    Thank you. Much appreciated.


    5 years ago

    One of the better instructables I've encountered.

    Complete and well explained.

    What is that anti-kickback attachment on your table saw?


    Reply 5 years ago

    Hi MarekWolf,

    Thanks for the compliments. Much appreciated.

    The attachment actually came with the saw. It lifts when a piece of wood gets run through and holds it back in case of kickback just as you say.

    As you may have noticed from the pics I should use it more often than I actually do...


    5 years ago

    ...what is the random number wire to avoid Faraday cage effect all about?

    As an EE I'm not quite sure what exactly this is supposed to do for your design?