Close
0%
0%

8‑Key Macro pad with 3.5 inch LCD

The 8-key macro pad with screen isn’t just another macro pad — it's a visual, scriptable, dynamic control deck you build and own.

Similar projects worth following
The Idea: Make It Tactile Again!

What if a macro pad had real, mechanical keys — the kind your fingers can trust — but still showed icons and dynamic feedback like a Stream Deck?

That became my goal: the perfect fusion of display and feel.

Each key would be visually clear, physically satisfying, infinitely customizable.

⚙️ The Build

The 8-Key MacroPad is powered by an ESP32-S2 and features:

  • 🖥️ 3.5″ 480×320 LCD Display — draws real icons and text for each key

  • ⌨️ 8 Hot-Swappable Mechanical Keys — customizable switches for your preferred feel

  • 🔄 5 Profile Slots — instantly switch between layouts

  • 🧩 Script & Macro Engine — automate your daily routine

  • 🌈 RGB Backlighting — functional and beautiful

  • 🪟 Config App — what you see on screen is what you get on the pad

It connects as a standard HID device, so no special drivers are needed. Just plug and start creating

💡 What You Can Do With It

  • 🚀 Launch apps, build scripts, or developer tools

  • 🎮 Control OBS, audio mixers, or lighting rigs

  • 🧠 Run local logic or show real-time stats (CPU, time, network)

  • 🎨 Switch creative tools or brush presets in Photoshop, Blender, etc.

Each key is both a button and a display — your workflow, visualized and personalized.

🚀 DIY Macro pad vs. Stream Deck: Why It Wins

  • 🛰️ Wireless & Plug-and-Play – No drivers, no software  (when key configured work in HID mode)

  • 💻 HID Mode – Works even at boot.

  • Ultra-Fast ESP-NOW – Low-latency, reliable.

  • 🖥️ 3.5" Full Display – Bigger, vibrant screen.

  • ⌨️ Mechanical Keys – Satisfying tactile feedback.

  • 🛠️ Open Script Support – Automate anything.

  • 🏗️ 3D Printable Cases – Customize colors & style.

  • 🌐 Key Presets Community – Share and download key presets.

  • 💰 Affordable – High-end features, lower price.

Follow this project to get updates on firmware and new features. 

Comment with your use case or suggestions!  

Firmware will be updated regularly based on feedback.

housing-bottom.STL

Standard Tesselated Geometry - 120.98 kB - 10/16/2025 at 14:23

Download

housing-top.STL

Standard Tesselated Geometry - 106.23 kB - 10/16/2025 at 14:23

Download

key-holder-for-3d-print.STL

Standard Tesselated Geometry - 44.81 kB - 10/16/2025 at 14:23

Download

screen-cover-for-3d-print.STL

Standard Tesselated Geometry - 45.20 kB - 10/16/2025 at 14:23

Download

tilt-stand.STL

Standard Tesselated Geometry - 40.32 kB - 10/16/2025 at 14:23

Download

  • 1 × 3.5 inch TFT 480x320 resolution and 8 bit parallel interface - much faster than SPI interface
  • 1 × ESP32S2 MCU - where the firmware runs
  • 1 × 3-dir-tact Used to change profile (layout of the key)
  • 1 × Crystal 40M 3225
  • 1 × AMS1117-3.3

View all 10 components

  • Full LCD & RGB Control

    SHU YANGan hour ago 0 comments

    Full LCD & RGB Control Is Now Open to Third-Party Applications

    One of the goals of this project has always been to make the macropad more than just a programmable keyboard. The display and RGB lighting should be part of your application, not just something configured once and forgotten.

    With our latest firmware and communication protocol, third-party applications can now fully control both the 3.5" LCD and the RGB backlight in real time.

    What Can You Control?

    Applications can now:

    • Draw completely custom content on the LCD
    • Display text, icons, images, or status information
    • Update the screen dynamically while your application is running
    • Change RGB colors at any time
    • Synchronize lighting effects with application events
    • Combine display updates and RGB effects for richer user feedback

    Instead of being limited to predefined layouts, your software can decide exactly what appears on the macropad.

    A Few Ideas

    This opens the door to many interesting integrations:

    • AI assistants displaying responses or progress
    • Build systems showing compilation status
    • Music players with album art and playback controls
    • OBS or streaming status indicators
    • Home automation dashboards
    • PC monitoring with warning colors
    • Stock or cryptocurrency tickers
    • Game telemetry and health indicators

    Imagine your application turning the backlight red when something fails, green when a task completes, while simultaneously updating the LCD with detailed information.

    Designed for Developers

    The protocol is intentionally simple.

    Your application communicates with the Configurator through our IPC interface, making it easy to integrate from virtually any programming language.

    Whether you're writing in Python, C#, C++, JavaScript, Go, or Rust, you can send commands to update the display and control the RGB lighting without modifying the firmware.

    E

    xample Project

    We've published a complete example demonstrating how to:

    • Send custom images to the LCD
    • Display dynamic text
    • Control RGB lighting
    • Build your own desktop integration

    The source code and protocol documentation are available here:

    https://github.com/eezbotfun/8-key-macropad/tree/main/3rd-party%20-integrations/customised-display-on-lcd

    We're excited to see what the community builds with this. If you create something interesting, let us know—we'd love to feature community integrations in future project logs.

  • AI tool feedback display

    SHU YANG05/10/2026 at 09:28 0 comments

    To allow the Macropad’s LCD to display customized content such as dynamic feedback from AI tools, we designed a communication protocol for interacting with the Macropad. This protocol enables any third-party application to easily send messages to the Macropad for display.

    This is an application example for interacting with AI tools.

    Protocol and tester application source code are available at : https://github.com/eezbotfun/8-key-macropad/tree/main/3rd-party%20-integrations/customised-display-on-lcd

  • New Stand Design!

    SHU YANG03/04/2026 at 06:22 0 comments

    We tweaked the stand design and bumped the tilt angle up to 40°. The screen is now much easier to read, and the keys feel more natural to use when the macropad sits on the desk.

    40 degree stand

    STL file available at :

    https://github.com/eezbotfun/8-key-macropad/blob/188403f95ffd002ce24275d31f4331ec399717c5/3d-printed-case/tilt-stand-v2-40-degree.STL

  • Hack Your Macro Pad: Open-Source Hardware Monitor Plugin

    SHU YANG01/29/2026 at 14:40 0 comments

    We’ve just open-sourced a demo third-party plugin for the EezBotFun Configurator 🎉

    Instead of using in-process plugins, our system exposes a Named Pipe–based IPC interface, allowing integrations to run as separate applications, written in any programming language.

    As a reference implementation, we’re releasing a hardware monitoring plugin:

    • Written in Python
    • Packaged as a single standalone .exe using PyInstaller
    • Runs as an independent process
    • Periodically sends system hardware stats (CPU, memory, memory usage, etc.) to the macro pad for real-time display

    No Python environment is required — just download and run the executable.

    Why We’re Sharing This

    We want to make it easier for others to:

    • Build their own plugins in any language
    • Understand our Named Pipe protocol
    • Hack, extend, and experiment without touching the main application

    This demo plugin is intentionally simple, but it demonstrates the complete integration flow.

    Source Code

    The full source code is available on GitHub:
    👉 https://github.com/eezbotfun/8-key-macropad/tree/main/3rd-party%20-integrations

    We’d love to see what the community builds — custom dashboards, automation tools, or entirely new workflows.


  • Expanding script commands

    SHU YANG12/02/2025 at 02:45 0 comments

    Three new script commands have been added, used respectively for:

    • Controlling the delay between the execution of each script line

    • Setting the delay between characters when sending a string

    • Specifying the delay between a single key press and release

     This enables us to adjust the keycode output speed, effectively simulating human typing behavior.

    See [Script Usage Guide](https://www.eezbotfun.com/en/wiki/script-usage-guide)

  • 2.4G Wireless Supported

    SHU YANG11/21/2025 at 11:27 0 comments

    To keep my desk cleaner, I added wireless functionality to my Macro Pad. My design goal was to make it truly plug-and-play without relying on any background software, so we went with a 2.4 GHz receiver solution. 

    The receiver presents itself as a USB HID device to the computer, while communicating with the keyboard over Wi-Fi, enabling a clean, cable-free, and seamless user experience.

    It works right out of the box — no drivers and no tedious Bluetooth pairing needed.

    The macropad communicates with the receiver over ESP-NOW, delivering impressively fast and responsive performance. I’m really happy with how well it works.

    Since it doesn’t rely on any background software, I can use it to enter my password wirelessly and log in as soon as my computer starts.

    Cool, right?

  • Config App Updated

    SHU YANG11/09/2025 at 09:01 0 comments

    1. Add RGB backlight settings, support 5 mode: always on / when pressing / breath / flowing / always off

    2. Support Japanese language

    Japanese language support

  • Switched to Transparent PETG for a Vintage Look

    SHU YANG11/07/2025 at 15:06 0 comments

    Just made a small but impactful change — I reprinted the case using transparent PETG, and it completely transformed the vibe.

    The slight gloss and depth from the material give it a retro, vintage instrument feel — kind of like old game boy gear with tinted plastic covers. The internal glow from the RGB backlight also looks way cooler now.

    No redesigns this time, just a material swap, but it really brings the build to life.
    Sometimes a filament change is all it takes. 😄

    front view 1
    front view 2
    back side

  • 3D printing case

    SHU YANG10/16/2025 at 14:30 0 comments

    I designed a 3D printing case for the macro pad and I am quite happy with the look.

    I used PLA MATTE and printed by a Bambu Lab A1 using 0.16 layer height which improve the quality and just increased a little bit print time, so I think it's a good trade off. 

View all 9 project logs

  • 1
    How to assemble 8 key macro pad with the 3D printed case

View all instructions

Enjoy this project?

Share

Discussions

Torsten C. wrote 10/23/2025 at 22:53 point

Thanks for sharing this project — also the configuration tool looks great!
I noticed the app is currently available only for Windows.
Would you consider open-sourcing the configuration software so the community could help make it cross-platform — for example, as a Linux or Electron-based version?

  Are you sure? yes | no

SHU YANG wrote 10/25/2025 at 05:04 point

Thank you for you interest. For cross platform configuration, I have implemented a web version based on JavaScript and Web Serial API. It is fully open source and I will upload it to the github repo this week. 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates