I designed this to provide additional switch controls for my Loxone home automation system.
I needed additional switch controls at various places around my home (desk, kitchen island, etc), so I designed this switch case to house an ESP8266 microcontroller connected to a capacitive touch switch plate.
I designed and built this to be used specifically with a NodeMCU Amica V2 board running the Tasmota firmware connected to a Faradite TAP-5 capacitive touch switch plate, powered from a universal DC adapter.
I designed this model with:
I assembled a header board from stripboard/veroboard to which I soldered the fly lead connector for the TAP-5, the power connector and the 4.7K Ohm pull down resistors.
The TAP-5 allegedly works as low as 5V, but I found it wasn't enough in practice, but 6V is fine.
The NodeMCU is powered by the same 6V supply via the "Vin" pin.
The TAP-5 dry contacts work at 3.3V, which is convenient because the ESP8266 GPIO are only 3.3V tolerant.
I used one of the 3.3V pins on the NodeMCU to supply the dry contact input and connected each of the 5 outputs to a separate GPIO pin on the NodeMCU.
I selected the GPIO input pins based on the recommendation here: https://tasmota.github.io/docs/Peripherals/#usable-pins
I use M3.5 x 10mm pozi countersunk machine screws to screw the face plate into the 3D printed case.
In the Tasmota firmware, I configure the buttons as "button_in" (inverted, external pull down).
See here: https://tasmota.github.io/docs/Buttons-schematics/
I.e., the TAP-5 is push to make, normally low, high when pressed.
I used the "SetOption1 1" command to disable inadvertent resets. See https://tasmota.github.io/docs/Commands/#setoption1
I disabled the relay control, because I only want MQTT events. See https://tasmota.github.io/docs/Commands/#setoption73
I reduced the long-press time from 4 seconds to 2 seconds (personal preference). See https://tasmota.github.io/docs/Commands/#setoption32
I pointed the MQTT output to my MQTT gateway. I use the MQTT Gateway plugin running on LoxBerry.
I disabled the cache for the specific virtual inputs to ensure every button press is sent to the Loxone miniserver.
This model must be printed face down due to the screw holes. When driving a screw into the hole, we want the thread to cut along the same plane as the printed layers; otherwise, the screw tab will split.
Because of the requirement to print face down, the print therefore requires supports for the internal pegs and back face.
I would recommend trying to hide the Z seam on the base of the switch stand where it won't be visible in use.
This model was designed in OpenSCAD. I've included the source file.
The author marked this model as their own original creation.