MDF Laser‑Cut Stream Deck (ESP32 Shortcut Keyboard)
A customizable shortcut keyboard you can build with simple materials This project is a fully DIY Stream Deck–style shortcut keyboard, made using a 5mm laser-cut MDF enclosure, 12 4-pin 12mm Square Push-Button Tact Switches, and an ESP32 microcontroller. The device connects to your computer using Bluetooth, Wi-Fi, or a wired USB Serial Connection, allowing you to trigger shortcuts, open apps, run macros, control games, launch websites, and much more — all at the tap of a button. Instead of buying an expensive Stream Deck, this project teaches you how to build your own from scratch using easy-to-find parts and a laser cutter or 3d printer.
Created by
Ahmed Ameur Kh
Tier 3
4 views
1 follower
Oussama NAOUAR
gave kudos to MDF Laser‑Cut Stream Deck (ESP32 Shortcut Keyboard) ago
Gooo, finish this project ?
Ahmed Ameur Kh
added to the journal ago
Routing, Glueing and Soldering
Nov 15:
I got the parts today, but I noticed I made a big mistake while modeling. I didn't make enough room for the button pins to fit completely, so I had to glue them backward to the top part instead of soldering them on a perforated plate.



I assembled the Stream Deck without glueing first to see how it looked and if it fit nicely together,
I only regret making it too long, so the buttons appear really small; otherwise, I'm really satisfied, as this is my first design.




Nov 16:
I tested first using only two buttons on a breadboard, but no matter what I did, I had problems either with the code or with connecting to Bluetooth, and the board would randomly disconnect
I thought about making it work with wifi, but it's too troublesome and I don't know how to do it
So after all that struggle (about 3 hours trying to make it work), I decided to just go wired, because I didn't think in my design about how to change the batteries or recharge them, so I was gonna leave the back side open or something, which isn't that good.
I did the wiring using Fritzing, though it isn't complete but just to get an idea of how to do the other buttons.

StreamDeck Wiring
Nov 18:
After gluing all the parts other than the bottom and top, I started soldering, and it was a real struggle
Soldering the buttons to the ground was the easy part, but soldering the ESP32 and the pins was really hard, and I burned myself many times.
I'm done for today with soldering, so I'm finishing the rest another time.







Ahmed Ameur Kh
added to the journal ago
Made the 3d model and laser cut it
I started this project in hopes of learning more about CAD, soldering, and ESP32 programming.
I started with a rough sketch drawn by hand to get the main idea out, and talked about my project to some friends to get a clear idea of what I can do.
8 Nov: I bought some parts I needed, such as switches, batteries, and an ESP32-Wroom.
#This is Nov 18, I should have bought an Arduino PRO MICRO ATmega 32U4, but I was thinking of making it wireless. I had lots of problems using the Bluetooth, so I scrapped the idea.

So I wanted my Stream Deck to have 12 buttons, which I can configure to open apps, use shortcuts and do many other things. Basically, it's a fancy Macropad with Bluetooth or wifi.
11 Nov:
I started working on SolidWorks, but I didn't manage to get the results I wanted because of my lack of experience using it. So I decided to switch to Fusion 360.
My main concerns while doing the 3d model were learning a new software and planning something practical while also being appealing to the eye.
I didn't find keyboard keycaps or something similar, so I decided to just use normal switches and I would paint the caps later on.
After finishing the 3d model, I exported it as a STEP file from Fusion and brought it to Onshape to export it as DXF (file format needed to laser cut it)
I chose 5mm MDF wood as my base, so all the models have a thickness of about 5mm.
It took me about 7 hours to make the finished 3d model
About 15-20 minutes to cut the parts and 20 minutes to buy other parts I didn't have.







Stream Deck V1
Stream Deck V1 parts - Side 2
Stream Deck V1 parts - frontsideStream Deck V1 parts - Component10(1)
Stream Deck V1 parts - Component11Stream Deck V1 parts - Component10
Stream Deck V1 parts - Sides (1)
Stream Deck V1 parts - Upperisde
Stream Deck V1 parts - Component9
Ahmed Ameur Kh
started MDF Laser‑Cut Stream Deck (ESP32 Shortcut Keyboard) ago
11/18/2025 9 PM - Made the 3d model and laser cut it
I started this project in hopes of learning more about CAD, soldering, and ESP32 programming.
I started with a rough sketch drawn by hand to get the main idea out, and talked about my project to some friends to get a clear idea of what I can do.
8 Nov: I bought some parts I needed, such as switches, batteries, and an ESP32-Wroom.
#This is Nov 18, I should have bought an Arduino PRO MICRO ATmega 32U4, but I was thinking of making it wireless. I had lots of problems using the Bluetooth, so I scrapped the idea.

So I wanted my Stream Deck to have 12 buttons, which I can configure to open apps, use shortcuts and do many other things. Basically, it's a fancy Macropad with Bluetooth or wifi.
11 Nov:
I started working on SolidWorks, but I didn't manage to get the results I wanted because of my lack of experience using it. So I decided to switch to Fusion 360.
My main concerns while doing the 3d model were learning a new software and planning something practical while also being appealing to the eye.
I didn't find keyboard keycaps or something similar, so I decided to just use normal switches and I would paint the caps later on.
After finishing the 3d model, I exported it as a STEP file from Fusion and brought it to Onshape to export it as DXF (file format needed to laser cut it)
I chose 5mm MDF wood as my base, so all the models have a thickness of about 5mm.
It took me about 7 hours to make the finished 3d model
About 15-20 minutes to cut the parts and 20 minutes to buy other parts I didn't have.







Stream Deck V1
Stream Deck V1 parts - Side 2
Stream Deck V1 parts - frontsideStream Deck V1 parts - Component10(1)
Stream Deck V1 parts - Component11Stream Deck V1 parts - Component10
Stream Deck V1 parts - Sides (1)
Stream Deck V1 parts - Upperisde
Stream Deck V1 parts - Component9
11/18/2025 10 PM - Routing, Glueing and Soldering
Nov 15:
I got the parts today, but I noticed I made a big mistake while modeling. I didn't make enough room for the button pins to fit completely, so I had to glue them backward to the top part instead of soldering them on a perforated plate.



I assembled the Stream Deck without glueing first to see how it looked and if it fit nicely together,
I only regret making it too long, so the buttons appear really small; otherwise, I'm really satisfied, as this is my first design.




Nov 16:
I tested first using only two buttons on a breadboard, but no matter what I did, I had problems either with the code or with connecting to Bluetooth, and the board would randomly disconnect
I thought about making it work with wifi, but it's too troublesome and I don't know how to do it
So after all that struggle (about 3 hours trying to make it work), I decided to just go wired, because I didn't think in my design about how to change the batteries or recharge them, so I was gonna leave the back side open or something, which isn't that good.
I did the wiring using Fritzing, though it isn't complete but just to get an idea of how to do the other buttons.

StreamDeck Wiring
Nov 18:
After gluing all the parts other than the bottom and top, I started soldering, and it was a real struggle
Soldering the buttons to the ground was the easy part, but soldering the ESP32 and the pins was really hard, and I burned myself many times.
I'm done for today with soldering, so I'm finishing the rest another time.






