This project has been a bit of an on/off (no pun intended) mission of mine for several years. I decided a while back to install WiFi switches for a large number of devices in my house and, upon installation, was fed up with having to pull my phone out to turn them on and off.

This switch uses an MCP23017 to drive the LEDs and a Sparkfun MPR121 breakout for the touch switches – both of these devices communicate on the I2C bus. The switch physically actuates itself, so you get the satisfying tactile feedback of a real switch without any of the wiring.


The switch is fully programmable, so each button can be mapped to different devices or scenes, and the LED indicators show the current state of each connected device.