Almost a year ago I posted a thread about using force sensors to detect when stairs are stepped on so I can animate the LED strip in each of 16 stairs. I got it working, soldered up in a protoboard, but it wasn't pretty. Since then I've improved it a lot, so I wanted to show off the new solution and also give special thanks to @DaveEvans for sticking with me so long as I struggled through learning and getting things working.
First, I can make a proper schematic now!
I improved the design slightly since the protoboard by replacing a 100K resistor with a 200K trimmer. This resistance controls the sensitivity of the sensors, ie how quickly they reach the max range of the ADC. The trimmer gives fixed resistance that's the same for all 16 stairs. I also have 200K from a digital potentiometer, so that can differ per stair, if needed. My total range is ~1K to ~400K. Testing shows ~200K works well to detect a person stepping on a stair, but we'll see in the actual installation.
Onward to building my new, fancy solution:
And the back:
I tried to learn KiCAD, but I just don't like it. Eventually I found DipTrace. While it has its quirks, I'm much more productive with that. I came back later and tried KiCAD again, but I find there are many minor UI annoyances and I didn't find it easy to create my own footprints, so I'll stick with DipTrace.
Next I needed a box for my wESP32 and PCB, so I designed one in SketchUp and got it printed by JLCPCB (who also made the PCB):
The 3D print is MJF with PA12-HP nylon. The cost was ~$35 for the box, plus shipping. Not cheap, but it is really nice, with a light texture. It's difficult to even tell it's 3D printed. One downside is MJF sometimes has light streaks on large flat surfaces. Thankfully this was never a problem for my prints. It was very helpful for designing my enclosure to use DipTrace to export a 3D model of the PCB. It's great to be able to just snap the wESP32 into the box, plug in the PCB, snap on the lid, and it's done! No wires, no screws. Maybe the best part is if I need to redesign or otherwise replace the PCB or wESP32, I just order a new one and swap it out. This pic shows the wESP32 clips:
The top clips are fixed, the bottom ones are flexible. The lid also snaps on/off, that worked out great, with no play.
The house is still being built, so sadly I can't yet show the LED strips in action yet, I can only show the brains, above. I'll come back and show it when it's finished! The software is ready though and the initial animation will work like this:

The stair LED strips are controlled by DMX, so I don't need to deal with that directly. My little box uses a wESP32 to communicate events over the LAN to a computer that does the rest.
I've also made a number of other boxes for various home automation tasks:
Those control:
- 10 motorized sliding doors (open/close/stop/lock via 40 optocouplers)
 - 6 HVAC air handlers (via Swicago with optocouplers for UART isolation)
 - 21 reed door switches (to know when doors are open)
 - Garage door (open/close via SSR)
 - 2 exterior PIN pads (for keyless entry when Unifi Access Hub closes contacts)
 - 2 door motorized door locks (via SSRs)
 - 4 more Tekscan pressure sensors to detect when the master bed is occupied
 
Using SMD is SO much easier than through hole! I wish I had made the switch sooner. If you are stuck doing through stuff, you're doing yourself a serious disservice. Also designing PCBs that don't need any wires is great, specifically the one with 10 ethernet ports. My prototype for that had 70+ wires, it was a nightmare and extremely time consuming to build. Using SMD there's no wires, it's super tidy, and much easier to build.
All this has been a lot of work, but it's quite fun! I'm a bit sad now that I've finished everything, especially since I don't get to play with it yet. I need to come up with new ideas for electronics projects to stay busy until then!



















