Home Arduino $20 Automated Staircase RGB LED Lighting: HARDWARE #part2

$20 Automated Staircase RGB LED Lighting: HARDWARE #part2

Running up and down the stairs is the new thing!

Where do I even start? I just finished the build and the head is still full of all the things I tried and it failed.¬† Now I need to write about what actually worked.¬†¬†Staircase RGB LED Lighting is working, and I’m so proud. Mostly cause it’s my first Arduino project. I keep running up and down the stairs like a madman! Let’s begin the hardware build. Be sure to check the previous part – design or video description to know what to buy.

Staircase RGB LED Lighting – HARDWARE

Apart from items listed before, I will need few screws (total of 14 – for plaster wall in my case, but your conditions may vary), few meters of cable (a telephone wire is great and it has 6 strands to save you money) and some tools:

  • soldering iron
  • hot glue gun
  • drill
  • hacksaw
  • 3d printer  – but you can make the enclosure for PIR yourself (wider trunking etc)
  • electrical tape or shrink tubing
  • tweezers
  • prototyping board, pins, jumper wires (all optional, but used in the build)


Let’s start with the trunking. I know, that steps are 30 cm apart so I need 2 holes for each step – 15 cm apart. Drill it in the shallow end otherwise (8-10mm drill), you will have a hard time getting the LEDs inside.

While you at it, you may as well drill the mounting holes (4mm). I found 5 per 2 m trunking to be sufficient.  Make sure you have a mounting hole next to each end. If you know the dimensions of the PIR sensor enclosure, you can cut the trunking to size. I didn’t and I ended up cutting it later. Doing this in advance will save you time. Taper the ends of the trunking so the top edge and bottom edge finished perpendicular to the floor.

To join the trunking with a minimal gap, I cut one part shorter, so the cover with LEDs would overlap the joint.


Test the LED strip first to make sure all works great, then cut the strip down to individual pieces (pay attention to markings, mind the orientation of the LEDs – it’s IMPORTANT).  Mark out the directions inside of the trunking before you proceed.


  • the direction of the input/output wire
  • ground side
  • positive side

Before you glue down the LEDs, use a soldering iron to prep the contact points. It’s quicker this way. Make sure each side has a small blob of solder on the contact. If your LEDs strips come with 3M adhesive, remove the adhesive first.

Glue down the LEDs, minding the orientation. Be sure to follow this orientation across each trunking. If you tapered the ends, you won’t be able to change the order of the trunking anymore.


This is the time-consuming part. Each LED needs 3 wires between each other. To make your job easier later, be consistent with a colour coding. Pre-cut the wire to even pieces and start connecting the LEDs. Leave a tiny slack, but don’t be excessive.  I would advise you to glue down the wires in between the LEDs otherwise you will end up snagging it when closing the trunking.

Extend the VCC and GND at each end, in addition to this, the joining parts will need the data wire.

PIR sensors

I found a nice enclosure on thingyverse.com which I have printed out and made a small incision to allow wires to go inside. I used jumper wires to connect the pins. I removed the plastic separators from the pins to bend the pins sidewise. This way the sensor is sitting flushed with the back plate.  You can power the sensor from the LED’s power rails.

I also made a custom “cat eye” to limit the vision of the PIR sensor so it would only trigger when someone is approaching the stairs.

The top sensor has to have a cable, that runs all the way (unless your Arduino is at the top, then flip the scenario) across the trunking. I split all my wires and used the jumper connections, so I could separate the trunking for transport. This way I can assemble the pieces at will, by connecting 4 cables (VCC, GND, DATA, PIR).

The bottom sensor is linked directly to the Arduino. I also ended up using the power rails of Arduino Nano to power it.


There are a few things to remember. First, you have to share the common ground with Arduino so the LED data signal was correct. There are many ways of achieving this setup. I used jumper wires at first for testing and then I made a small PCB which has an Arduino Fixed to it, and all the cables fixed to it.

Note: I’m powering the Arduino Nano from the same source (5V)

I have harvested a spare mini-USB cable and connected the RED and BLACK strains into the power. This way the voltage is regulated, it’s not advisable to power the Nano through the pins. The big advantage of keeping your cables neat is that you can fit the Nano inside the trunking.

To drive 26 LEDs I needed about 300mA at peak time, which means almost any USB charger will be strong enough to drive it. I used the other part (USB-A) of the cable to create an extension that will go from the mains to the Arduino and LEDs.

Mounting the Staircase RGB LED Lighting

Start from the top, this way the gravity won’t get in your way. Affix the wider trunking to the wall using screws. Pay attention to the ends, make sure that mounting screws are reasonably close to each end. Once happy with the result mount the PIR and drag the cables out through the holes.

Connect the cables for LEDs and work your way down to close the trunking, making sure that cables are not snagged inside. I used the leftover from the trunking to put the Arduino Nano inside. It’s longer than microcontroller itself, and it has an access hole at the bottom for the power lead.

You will see that I have a power connector. I connected it this way, as there is no easy way of reprogramming the board, if you want to get fancy, you can make a socket that would house the Arduino Nano, making it completely removable.

Lastly, I cleaned up the cables and clamped the power wire to the skirting board for nearly invisible effect. All it takes now is to tweak the software. But this is something I will cover in the last part.


The staircase RGB LED Lighting is a great little project. I spend a good few hours trying to figure out how to get everything working, keep the design footprint small and keep the cost to the minimum! In the last part I will cover the software needed to drive all these LEDs. Banggood.com has sponsored this project, so check them out – while sourcing the hardware!


Nothing says "Thank you" better than keeping my coffee jar topped up!


Support me on Patreon and get an early access to tutorial files and videos.


Bitcoin (BTC)

Use this QR to keep me caffeinated in style with crypto-currency

Smart Ideas with

Automate your space in with these ecosystems and integrate it with other automation services

Learn NodeRED

NodeRED for beginners: 1. Why do you need a NodeRED server?

To server or not to server? That's a very silly question!

Best Automation Projects

ESP8266 WIFI lights under $5

Your Sonoff device can't do this!

Free wireless doorbell (Amazon Dash button hack)

The most terrifying situation I can imagine* is missing a parcel

New Amazon Dash Buttons

You can teach new buttons old tricks!

ESP8266 ceiling light – demo

Testing the ESP8266 as a WIFI light controller

Try Tasker and Raspberry Pi for your home automation needs!

Raspberry Pi can help you with your Tasker profiles

Smart Home

Testing 9 external antennas with CC2531 ZigBee coordinator

I have tested the range and the link quality of 9 external antennas with CC2531!

I have infinite buttons thanks to Aqara Opple

Gaming on Switch meets IoT - can you play games on Aqara Opple? Apparently you can! This and more uses of the connected wall switch

Smart lights won’t save you money

It's pretty clear how much power a smart light draws when turned on, but have you ever wonder how much do you pay to have it connected 24/7?

Alexa Routines: Setting volume on all Echos at once

Setting volumes on all Amazon Echo devices at once doesn't have to be a chore!

If Edison made smart lights: OEEONE ZigBee lightbulb

OEEONE ZigBee lightbulb may look vintage, but packs the latest ZigBee protocol