Smart Home control at your fingertips

KeyESP is a programmable control panel that fits perfectly on a desk. With 8 cherry MX switches, rotary encoder, and OLED display, KeyESP gives users control over their smart home.

What good are smart lights if you cannot easily control them? KeyESP makes interacting with a Smart Home seamless with tactile switches and knobs. Visual feedback from an OLED display shows light percentages, current time, and 3D printer print progress.

I have a lot of smart devices in my home, but noticed that I needed to open my Home Assistant browser to turn on fans, control lights, etc. I wanted a sleek, tactile, and informative control panel for my smart home so I built one. Inspired by custom keyboard builds, I decided to incorporate eight cherry mx switches for easily mappable control. For controlling light brightness, a rotary encoder popular for music equipment was chosen for its tactile detents and push button feature. The PCB is a simple two layer board design powered by a XIAO ESP32 C6 with a GPIO expansion chip. Switch entities are exposed to Home Assistant where they can be mapped in NodeRED on the home server. This solution allows for easier and faster button mapping compared to re-flashing new code onto the device. The rotary encoder changes the light percentage by -10/+10 percent when rotated counterclockwise and clockwise respectively, and when pressed, the lights turn on/off. The case is 3D printed and is angled for easy access to the top and bottom row of keys, as well as, good visibility for the OLED. Four holes at the bottom of the case allow for rubber feet to prevent sliding. There are three 3D printed components: the case, faceplate, and knob. The OLED display can be turned on/off automatically with the room lights via NodeRED. When the display is on, it defaults to a clock screen. When light percentage is changed via the rotary encoder, the current light percentage is shown on the display then disappears after three seconds. When a 3D print has started, the display changes to a print progress screen that shows a countdown until print completion, time when the print finishes, and a progress bar with percentage number. The switches can be mapped to control heaters, fans, filters, light scenes, do not disturb modes, intercoms, etc. Anything that can be triggered in Home Assistant can be mapped. For future iterations, KeyESP will take on a sleeker profile that minimizes bulk, have a hot swappable switch design, relocated microcontroller, haptic feedback, addressable RGB ring, under key RGBs, and a new display.