About this Project


Ultimate Bedside Lamp prototype

The Problem

Most stair lighting systems (or general LED displays) require either a cloud connection/vendor account or require an independent 3rd part automation system (like Home Assistant) to automate the LEDs. Other firmware options, like WLED, do allow some basic operations such as toggling the LEDs on/off based on an external sensor, such as PIR. But WLED does not (yet) have a full automation engine. Therefore to do more advanced things like toggle the LEDs off if on or to show different effects/colors based on which sensor triggered, you need an intermediate automation system.

Most retail devices also suffered from at least one or more of the following issues:

  • Limited Hardware Choices: If you want to use a different LED strip type or different sensors, you are pretty much out of luck without substantial hardware modifications, such as substituting your own controller (at which point you might as sell save some money and just build your own system).

  • Required Account: Most commercial systems use a cloud-based system that requires you to create yet another online account, provide at least your email address and possibly other private information.
  • Loss of Control: If cloud-based, an Internet or remote server outage will break the system and it will no longer function as designed. A vendor could also start charging a subscription for a previously “free” system. This is happening more and more often and if you refuse to pay the new “ransom”, your device will become a big plastic brick.

My initial system, designed back in 2021, utilized Home Assistant as the automation engine and ESPHome as the sensor firmware. But this left non-Home Assistant users out in the cold. I followed up with the original standalone LED controller a few months later, but it was very limited in sensor selection and other features.

This project is a complete overhaul and update of that original system, and I am call it Standalone Stair LEDs 32 (the “32” represents an upgrade to the ESP32 for this version).

Key Features

This build was designed to address limitations in the original version while adding several modern features, including those requested by users of the original system:

  • Integrated Hardware: A single device providing automated LED control via one or two wired sensors.

  • Completely Local: Only your local WiFi is needed for full functionality.
  • Sensors: Flexibility in the type and number of sensors.
    • Use one or two sensors (even more sensors are possible).
    • Supports PIR and ToF Distance sensors. Other types possible when selecting wireless sensors.
    • Each sensor can be configured to only turn the LEDs on or to also toggle the LEDs off.
    • Configurable debounce settings, trigger distance and more.
  • LEDs: Supports WS2812b LEDs in any density, form factor or layout.
    • Various Colors and Effects:
      • Each sensor has its own color, effect and speed settings.
    • Can be built to control one LED strip or multiple strips that will remain in sync.
  • Flexible Control Options: Manage via integrated web app, or override the sensors and contol the LEDs manually.
  • Smart Integration: Multiple methods to optionally interface with external systems.
    • MQTT or HTTP API for exchanging data and controlling many features of the system
    • Home Assistant: One click integration with Home Assistant. No configuration or YAML needed!

Caveats and Hardware Support

This system was built to provide as much flexibility as possible, but replacing some hardware may require firmware modifications. For example, if you wish to use a different ESP32 model (e.g. S3, C2) or wish to use wired sensors other than the AM312 PIR or VL53L0X, you may need to slightly modify and compile your own version of the firmware.

The written guide includes a detailed parts list indicating which components are interchangeable and which might require code modifications. See the the Modifying the Firmware topic for more information on how to modify the firmware for your own hardware.

I do not have the bandwidth to maintain multiple versions of the firmware for different hardware combinations. Please do not submit issues requesting support for alternate hardware.

Questions?

If you can’t find an answer here or in the companion Build Guide, please post your question in the Discussion are of the repository. I will do my best to provide guidance as time allows.

<- Previous: Welcome Next: Concepts & Terminology->

Copyright © 2026 Resinchem Tech. Firmware documentation for personal use. Commercial use, republishing or embedding prohibited.

This site uses Just the Docs, a documentation theme for Jekyll.