A highly programmable, multi-layered custom hardware macro pad and controller built around the ESP32 architecture. This device features a full 3x3 key matrix, a mouse-emulating analog joystick, an absolute analog potentiometer dial, and dedicated mode-switching indicators.
-
🎛️ Absolute Knob Control: Integrated
$10\text{k}\Omega$ potentiometer for fluid scrolling, volume adjustment, or continuous parameter trimming. - 🕹️ Joystick Mouse Emulation: Dual-axis analog stick for smooth cursor tracking with an integrated Select (SEL) click action.
- 🧱 3x3 Tactile Key Matrix: 9 fully programmable mechanical macro keys mapped for high-speed shortcuts or custom key injection profiles.
- 🔴 Dedicated Left & Right Click Action: Specialized physical buttons separated for quick peripheral interaction.
- 🔄 Advanced Mode Switching: On-the-fly profiling via active hardware toggles to switch macro layers instantly.
- 💡 Mode Bulbs: 3 hardware status LEDs to provide immediate visual feedback on the currently active macro profile layer.
| Qty | Component Description | Purpose |
|---|---|---|
| 1 | ESP32 Development Board (30-Pin / 38-Pin Module footprint) | Core Processing Engine |
| 11 | 6mm Tactile Pushbuttons | Key Matrix & Macro Switches |
| 1 | Continuous Analog Value Adjustment | |
| 1 | Dual-Axis Analog Joystick Module | Mouse/Cursor Control Emulation |
| 3 | Standard 5mm LEDs (Red) | Profile Layer Indicators |
| 1 | Half-Size Breadboard (or Custom Prototyping PCB) | Circuit Infrastructure Base |
This hardware definition layout maps your physical workspace directly to the core silicon registers, keeping all assignments clear of the internal flash memory and strapping zones.
- Potentiometer Signal (
pot1:SIG):GPIO 35 - Joystick Vertical Axis (
VERT):GPIO 36(VP) - Joystick Horizontal Axis (
HORZ):GPIO 39(VN)
- LED 4 Anode:
GPIO 25 - LED 5 Anode:
GPIO 33 - LED 6 Anode:
GPIO 32
- Yellow Mode Selector (
btn11):GPIO 26 - Red Function Switch (
btn12):GPIO 14 - Joystick Center Click (
joystick1:SEL):GPIO 27
// --- Row 1 (TOP Layer) ---
- KEY_TOP_LEFT
GPIO 21 - KEY_TOP_MID
GPIO 22 - KEY_TOP_RIGHT
GPIO 23
// --- Row 2 (Middle Layer) ---
- KEY_MID_LEFT
GPIO 5 - KEY_MID_MID
GPIO 18 - KEY_MID_RIGHT
GPIO 19
// --- Row 3 (Bottom Layer) ---
- KEY_BOT_LEFT
GPIO 4 - KEY_BOT_MID
GPIO 16 - KEY_BOT_RIGHT
GPIO 17
- more stable
- implement 74HC595 shift register to control the LEDs
- add two more buttons


