Blueprint

SMACK!

SMACK! is a one-button automation activator, that triggers digital and physical actions. It can send USB shortcuts, call webhooks, and trigger smart home automations. Simply SMACK to activate chaos (or productivity)!

Created by David David 🚀

Tier 3

1 view

0 followers

David David 🚀 added to the journal ago

Designed Mechanism

With the schematic mostly done, I then looked at designing a mechanism for the button. I could have used a big prebuilt arcade button, but I was interested in how the mechanisms inside worked, and decided i could design, using just 3d prints, a compression spring, and a small microswitch.

So here's a rough sketch of what I came up with! Red is the 3d printed stuff, black is the button mechanism, and the grey thing is a spring. It should balance both stability and tactility, thanks to the guide shaft and inner spring shaft.
image

Here's the type of switch I'll use:
image

David David 🚀 added to the journal ago

Added Envelope

(I accidentally left the last devlog as a draft, and just posted it, which is why this one is very close to the last one)

So I did some more research, and found that adding an envelope detection circuit would help improve the accuracy of being able to detect overall volume. I did a bit of physical testing and research, cause I don't fully understand analog signals.

But I think I've gotten smth that should smooth it out well enough!

image

David David 🚀 added to the journal ago

Added Inputs

Been a little while, but I'm back working on it now! So I added some inputs, like light sensors, temperature sensor, and a microphone. The idea is that these will be able to help trigger different pathways or actions, when you enter the scene.

image

For the microphone I spent a while trying to design a good circuit to let the ESP easily detect rough volume.

David David 🚀 added to the journal ago

Added Outputs

image

image

image

So, I have now added some outputs! I did a bit of research, and ideation, and decided that to make this more chaotic, I'd add both a vibration motor and buzzer, allowing for it to make some noise and rumble when you hit it. I also added some LEDs.

David David 🚀 added to the journal ago

Swapped LDO

Quick update, but basically I just found out the LDO I was using could only output ~150mA, so I swapped it out for the more powerful AP2112K, which can output ~600-800mA.

image

David David 🚀 added to the journal ago

Added the ESP32

image

So after finishing all my research, I started off by adding the main MCU circuitry. This includes an ESP32-S3-WROOM-1 (i'm using a WROOM to make soldering it easier), the USB-C port, and an LDO to provide a stable 3.3v line.

David David 🚀 added to the journal ago

Planning

So for now I just started with a bunch of planning. I've decided on the core features, and the overall hardware/microcontrollers.

Basically, SMACK! is going to be a button that activates a 'scene' when you hit it, via calling webhooks, USB commands, etc. So when you sit down to work, you can 'smack' the button, and it will set everything up, open apps, call smart home commands, etc.

(I don't really have a great image, so here's an image of a button that gave me inspiration to make an extra large button that does something)
qugtjtnklav31

David David 🚀 started SMACK! ago

1/26/2026 9 PM - Planning

So for now I just started with a bunch of planning. I've decided on the core features, and the overall hardware/microcontrollers.

Basically, SMACK! is going to be a button that activates a 'scene' when you hit it, via calling webhooks, USB commands, etc. So when you sit down to work, you can 'smack' the button, and it will set everything up, open apps, call smart home commands, etc.

(I don't really have a great image, so here's an image of a button that gave me inspiration to make an extra large button that does something)
qugtjtnklav31

1/26/2026 11:31 PM - Added the ESP32

image

So after finishing all my research, I started off by adding the main MCU circuitry. This includes an ESP32-S3-WROOM-1 (i'm using a WROOM to make soldering it easier), the USB-C port, and an LDO to provide a stable 3.3v line.

1/26/2026 11:41 PM - Swapped LDO

Quick update, but basically I just found out the LDO I was using could only output ~150mA, so I swapped it out for the more powerful AP2112K, which can output ~600-800mA.

image

1/27/2026 - Added Outputs

image

image

image

So, I have now added some outputs! I did a bit of research, and ideation, and decided that to make this more chaotic, I'd add both a vibration motor and buzzer, allowing for it to make some noise and rumble when you hit it. I also added some LEDs.

2/21/2026 7:10 PM - Added Inputs

Been a little while, but I'm back working on it now! So I added some inputs, like light sensors, temperature sensor, and a microphone. The idea is that these will be able to help trigger different pathways or actions, when you enter the scene.

image

For the microphone I spent a while trying to design a good circuit to let the ESP easily detect rough volume.

2/21/2026 7:20 PM - Added Envelope

(I accidentally left the last devlog as a draft, and just posted it, which is why this one is very close to the last one)

So I did some more research, and found that adding an envelope detection circuit would help improve the accuracy of being able to detect overall volume. I did a bit of physical testing and research, cause I don't fully understand analog signals.

But I think I've gotten smth that should smooth it out well enough!

image

2/22/2026 - Designed Mechanism

With the schematic mostly done, I then looked at designing a mechanism for the button. I could have used a big prebuilt arcade button, but I was interested in how the mechanisms inside worked, and decided i could design, using just 3d prints, a compression spring, and a small microswitch.

So here's a rough sketch of what I came up with! Red is the 3d printed stuff, black is the button mechanism, and the grey thing is a spring. It should balance both stability and tactility, thanks to the guide shaft and inner spring shaft.
image

Here's the type of switch I'll use:
image