Wdeck - ESP32 MacroPAD
This project started because I wanted a better way to control my PC. Wdeck is a bridge between physical hardware and digital actions.
It’s built on the ESP32 and replaces software shortcuts with tactile and touch controls. Since it's open-source, you can see how it works, build it yourself, or tweak it to your needs.
More you can find here: Official website
Supplies
- ESP32 Development Board (e.g., standard ESP32-WROOM or custom PCB)
- 3.5" TFT Touchscreen Display (Resolution: 480x320, SPI interface, Controller: ILI9488)
⚠️ IMPORTANT: You must ensure the display includes either a Capacitive or Resistive touch layer! If you purchase a standard display without a touch panel, Wdeck's interactive features will not work.
- M3 Screws (for assembling the 3D-printed case)
- USB-C Cable (for power and data connection)
Wiring the Electronics (ESP32 & Display)
Before we start 3D printing, it is highly recommended to connect the display to the ESP32 on a breadboard to ensure everything is working correctly.
Because we are using a 3.5" ILI9488 TFT display with a touch layer, we will be using the ESP32's SPI bus. It might look like a lot of wires, but if you follow the pinout below, it’s quite simple!
1. Main Display Connections (SPI): Connect the pins from your TFT display to the corresponding GPIO pins on your ESP32. (Note: The GPIO pins below are the standard VSPI pins for an ESP32-WROOM, but you can change them in the firmware if needed).
- VCC ➔ 3.3V (or 5V, check your specific display module's voltage regulator!)
- GND ➔ GND
- CS (Chip Select) ➔ GPIO 15
- RESET ➔ GPIO 4
- DC / RS (Data/Command) ➔ GPIO 2
- SDI / MOSI ➔ GPIO 23
- SCK (Clock) ➔ GPIO 18
- LED (Backlight) ➔ 3.3V (or connect to a PWM-capable GPIO if you want brightness control)
- SDO / MISO ➔ GPIO 19
2. Touch Screen Connections: Since Wdeck relies heavily on touch, don't forget to wire the touch controller (usually an XPT2046 chip on the back of the display). Some of these pins share the same SPI bus as the display.
- T_CLK ➔ GPIO 18 (Shared with SCK)
- T_DIN ➔ GPIO 23 (Shared with MOSI)
- T_DO ➔ GPIO 19 (Shared with MISO)
- T_CS (Touch Chip Select) ➔ GPIO 21 (Must be a unique pin!)
- T_IRQ ➔ Not connected (Wdeck usually handles touch via software polling, so the interrupt pin is often not needed).
3D Printing & Assembling the Enclosure
Before assembling, make sure you have downloaded and printed the custom enclosure files available here: Wdeck 3D Models on Printables.
Once the parts are printed and cooled, we can put everything together:
- Mount the Screen: Carefully place the 3.5" TFT display into the front bezel of the Top Shell. It is designed to be a snug fit, but be gentle so you don't crack the glass or damage the fragile ribbon cables.
- Route the Wires: If you soldered your connections directly, make sure the wires are neatly tucked inside the case behind the screen. Avoid pinching any cables.
- Place the ESP32 & Close It Up: Position the ESP32 board inside the case. When attaching the Bottom Cover, pay close attention to its orientation—make sure the ESP32's USB port aligns perfectly with the upper hole in the cover. Once everything is aligned, secure the back cover using M3 screws.
Flashing Firmware and Installing the PC Server
With the hardware fully assembled, it’s time to bring your Wdeck to life! We made the software installation as simple as possible—everything you need is built directly into our Wdeck PC application.
1. Download the Wdeck App:
- Go to our official website at Official Website
- Download the Wdeck PC application and launch it on your computer.
2. Flashing the ESP32: You don't need any complicated coding software to upload the firmware; our app handles it for you!
- Open the Wdeck application and navigate to the "Flash" section.
- Connect your fully assembled Wdeck to your PC using a data-capable USB cable.
- Click the "Flash" button in the application. Wait a moment for the progress bar to finish.
Configuring Your Wdeck
Now for the best part—making the Wdeck truly yours! With your device plugged in and the PC app running, you can start customizing your layout.
The user interface is designed to be intuitive. Here is how you can set up your macros:
1. Adding Actions:
- Click on any empty slot on the virtual grid within the PC application.
- Choose what you want that button to do. You can assign complex Keyboard Shortcuts (like Ctrl+Shift+S), set up Media Controls (Play/Pause, Mute, Volume), or configure it to Launch Specific Applications.
2. Customizing Icons:
- A macro pad needs to look good! For every button you create, you can upload a custom image or icon.
- This makes it incredibly easy to navigate your shortcuts at a glance without having to read text labels.
3. Creating Folders:
- You are not limited to just one screen. The Wdeck supports folders!
- You can create dedicated folders for different workflows—for example, one layout for Video Editing (Premiere Pro/DaVinci), one for Streaming (OBS controls), and one for general PC usage.
4. Real-time Sync:
- Any changes you make in the PC application will instantly sync over the USB connection and appear on your Wdeck's physical touch screen.