You walk into a room and want to adjust some of your smart devices? Pull out you phone, turn on Wi-Fi, find the Home Assistant app and wait for it to load. Search for the right tab and finally adjust your devices.
Way too much work...
With Home Buttons, quickly activate one of your favourite presets with a touch of a button.
Home Buttons is designed to be as simple as possible for the user. No cables, no charging every couple of days, no absurdly difficult setup, no special gateways needed. How do you design a device like that? And make it feasible for low-quantity production?
Display and buttons
Displaying a short label for each of the buttons was the goal of Home Buttons. A 2.9" E-paper display was selected due to being a very nice and readable size, consuming zero power while displaying an image. It also looks amazing and unobtrusive, being lit by the environment, not emitting light itself.
Number of buttons was selected to be six, a compromise between providing enough shortcuts and device not being too crowded. ALPS SKRB pushbuttons were the perfect choice, providing satisfying feedback, but also being very low profile.
Each button has a white LED beside it. It illuminates when a the button is pressed. Reverse-mount LEDs are used, so they can be machine assembled on the side of the PCB where all of the electronics are.
Obviously, Home Buttons should be battery powered and connected to Wi-Fi. But Wi-Fi connectivity comes with relatively large power requirements, which was a major consideration during the design phase.
- A high-capacity battery is needed. 18650 size is an easy choice, providing lots of energy while being common.
- E-paper display draws basically no power when not updating.
- ESP32-S2 SoC is a good choice, being inexpensive and offering excellent sleep capabilities.
- A low power temperature and humidity sensor is used.
- Voltage regulation is carefully designed to maximize battery life, while reducing self-consumption as much as possible.
This way, Home Buttons last more than a year of frequent usage and temperature / humidity reporting on a single charge. Charging is of course done through a USB Type-C connector.
This is a complicated one. Battery voltage can be anywhere between 4.2 V when fully charged, down to around 2.8 V when fully discharged. But the ESP32-S2 needs a stable 3.3 V. It can also pull bursts of more than 300 mA. This is not trivial to put together, especially while having a very low quiescent current necessary for battery operation. And the chip shortage does not help!
After a few iterations, the final version uses a very good LDO regulator, set at 3.1 V, which is still in spec for the ESP32-S2 but enables a deeper discharge of the battery then setting it at 3.3 V. The battery discharging limit is still set at 3.3 V to account for the dropout voltage, which can get quite high when Wi-Fi communication is active. For most LDOs the drop could easily be more than half a volt, making them unusable. Discharging only to 3.3 V is a compromise which leaves some capacity in the battery. But it makes sense, considering the complexity, cost and quiescent current of other options. Texas Instruments makes some really nice buck-boost converters exactly for this, but of course at the time of development, they are not even close to being available.
It makes sense that a fancy smart and connected device has a good temperature / humidity sensor. Not only is it nice having a reliable temperature reading, it can also be used in climate control automations. Sensirion SHTC3 is a great choice, being accurate to +-0.2°C and also having a really good sleep mode.
Battery management and charging
For safety, lots of protection is needed. An integrated protection IC takes care of the general overcharge, overdischarge, overcurrent, etc....Read more »