This device utilizes a smart home protocol and 3D printed components to create a retro-fitted solution for remotely controlling steam radiator valves. I worked on a variety of physical and digital challenges, including Embedded Systems, IoT development, and Product Design. The codebase is primarily written in C++, leveraging C APIs provided by the ESP32 platform.
Combining hardware and software for the first time, I found it exciting to develop multifaceted solutions. I discovered that thoughtfully integrating both elements led to effective solutions.
Why This Project?
My apartment has a steam radiator with a manual valve requiring me to constantly turn it on and off to maintain an comfortable indoor temperature. After exploring available solutions, I found that most options required significant modifications to the existing heating system that were hard to install. To address this, I developed a solution that regulates heating in real-time, has a modular attachment to accommodate difference sized valves, and works with all smart home platforms.
Features
- Matter Protocol Integration: The controller is compatible with any Matter supported device.
- Servo Motor Control: The servo is halted with feedback from a current sensor when hitting physical resistance.
- Power Optimization: The code implements low power optimization for the ESP board and disconnects the motor's power source when not in use.
- 3D Prining: The design has an modular mounting bracket and features a motor shaft with an internal sliding rail to accommodate the vertical movement of rotating the handle.
Design and Hardware Selection
The first choice I made was the ESP32-C6 development board, as it supports an accesible smart home protocol, Matter, and has a small form factor. Additionally, I chose this microcontroller as the associated framework has strong tooling for C/C++ development.
While studying the radiator valve, I realized that I needed a motor capable of rotating in both directions along its axis. I also observed a resistance or "sticky point" during the opening and closing process, which would require the motor to provide higher torque to overcome the initial movement. I then reseached estimates for the amount of torque needed to turn the radiator valve and chose a HiTEC HSR-2648CR Continuous Servo. The servo is rated with a stall torque of 12 kg.cm with 7.4 volts.
When the motor reaches the fully closed or opened position, it meets resistance, resulting in a current spike. Using a INA219 High Side DC Current Sensor Breakout, when a spike is detected the motor is halted.
For my final prototype, I used two AA battery packs—one dedicated to the motor and the other to the microcontroller. To provide a stable 5V supply for the microcontroller, I stepped down the 6V input using an Adjustable Buck Converter Breakout.

For the device body, I designed modular components to minimize printing time and accelerate iteration. This swappable design also helps to reduce manufacturing complexity. To develop these designs, I learned how to use Fusion 360. For a professional-grade build, the device will need to be made from ABS plastic to withstand the temperatures at the radiator valve base.
The final design includes a spline coupling attached to the radiator valve, which is rotated by a stem connected to a motor that is mounted on the body of the radiator valve. The top houses all the electrical components.

Software Implementation
This project is based on the light example in the esp-matter documentation. The example provided a strong starting point with prebuilt Matter connection functionality. I spent my most of my time understanding the codebase and ESP-SDK, building on the example to develop current detection and servo control.
Working Prototype Video
The following video presents the final prototype opening the radiator valve:
Final Prototype opening the radiator valve.
Conclusion
As I previously shared, the creative integration of hardware and software made the engineering work feel dynamic. Through referencing examples and documentation, I was able to create an innovative solution that addressed problem. To enhance the solution further, automations can be added in a smart home platform to initiate the radiator controller based on temperature thresholds from an eternal smart theromstat.