Back when I designed the current version of my window blinds system, I drew up a single PCB that could act as master controller or single-actuator controller. It was primarily designed around the needs of the actuator, and for a master board I could simply leave off the motor driver. But this created several problems, the biggest of which was that the heavy ground plane that I needed to carry motor current interfered with the very weak PCB wifi antennas on the ESP32-C3. I tried adding on a small antenna extension, but that wasn't enough. So for the master controllers I had to use special ESP32-C3's with external antenna connections. This looked clunky and very "2000s". So I drew up a smaller, dedicated master board that gave the PCB antenna a full centimeter of clearance and also was a lot smaller. It also put the cable connectors on the ends instead of along one side, so cables are routed directly up and down instead of having to bend 90ยบ. I ordered these PCBs and forgot about them for a while, but I recently dug them out and assembled them.
Additionally, the blinds work very well but every once in a while they become unresponsive. Like, maybe once a month. I don't know why. Usually I just unplug them and plug them back in and they start working again, but I wanted to figure out why this was happening. So I added a bit more introspection and also an as-needed web server that can print all of the terminal output to a website. One major limitation of debugging through UART is that USB UART only initializes properly if I connect USB first, and then motor power second. I haven't investigated why. That means I can only debug over UART if I started up the system planning to debug it. But this web interface means I can connect to my board from anywhere, if it's still running at all. Very convenient.
