HackPad is an open‑source, fully programmable MIDI controller designed for musicians, producers and performers who want a compact, expressive and deeply customizable instrument. Built around an Arduino Pro Micro, HackPad combines a 4×4 grid of pressure‑sensitive RGB pads, a rotary encoder, a potentiometer, an OLED display, and dual USB/TRS MIDI connectivity — all inside a robust, multi‑layer PCB chassis. Whether you use a DAW, a hardware synth, a drum machine or a groovebox, HackPad gives you a fast, tactile and portable way to control your setup.
| Component | Description |
|---|---|
| MCU | Arduino Pro Micro 5V / 16 MHz |
| Pads | 16 pressure‑sensitive RGB pads (SparkFun silicone pad) |
| LEDs | 16× RGB LEDs (common cathode) |
| Multiplexers | 2× CD74HC4067 (16‑channel analog mux) |
| Display | 0.96” OLED (SSD1306 or SH1106) |
| Controls | EC11 rotary encoder + 10k linear potentiometer |
| Memory | AT24C256 external EEPROM (201 banks) |
| MIDI | USB MIDI + TRS MIDI IN/OUT (Type A) |
| Chaining | Magnetic side connectors for power + MIDI |
| Power | USB 5V (1–3A recommended for TRS‑only use) |
| Case | Multi‑layer PCB body |
• 4×4 RGB pressure‑sensitive pad grid
• Rotary encoder with push button
• 10k potentiometer
• 0.96” OLED display
• USB Micro‑B port (MIDI IN/OUT + power)
• TRS MIDI IN
• TRS MIDI OUT
• Magnetic connectors for chaining
• External EEPROM
HackPad is built from multiple stacked PCBs:
- Pad Layer
• Houses the SparkFun silicone pad
• Contains the RGB LEDs
• Pressure sensing is handled via analog multiplexing
- Logic Layer
• Arduino Pro Micro
• CD74HC4067 multiplexers
• EEPROM
• Optocoupler for MIDI IN
• TRS MIDI circuitry
- Display & Controls Layer
• OLED display
• Rotary encoder
• Potentiometer
- Base Layer
• Structural PCB
• Magnetic connectors
• Power routing
This architecture makes HackPad extremely robust while keeping the design compact and modular.
Play the 4×4 grid as a chromatic keyboard.
The layout spans one full octave + four notes, with adjustable:
• MIDI Channel
• Octave
• Velocity Min/Max
• Dual‑channel Link Mode
• Linked octave offset
• Chord Finder
The OLED screen always shows the active root note and octave.
Through the OLED screen and the rotary encoder, it is possible:
- Midi CH: to set Midi Channel.
- Octave: to choose reference octave.
- Min: to set the min velocity settings for the 4x4 grid sensitive pad.
- Max: to set the max velocity settings for the 4x4 grid sensitive pad.
- Link: to play simultaneously with 2 different midi channel.
- Oct: to choose the reference octave for the Link Midi Channel (this menu appears only if the Link is active and if the selected midi channel is different from that of the link item).
- Chord finder: to enable a scale tutorial.
- Back: to go on the “Custom Mode”.
A built‑in visual scale tutor with 50 musical scales.
Two visualization modes:
• Pads show all notes
• Green = root, blue = scale notes
• Only scale notes are shown
• Pads span multiple octaves
You can keep the visualization active while returning to Keyboard Mode.
Design your own MIDI controller layout. Every pad and the potentiometer can be configured individually. Editable parameters:
• Bank (201 available)
• Pad / Pot selection
• MIDI Channel
• Note / CC number
• Velocity Min/Max
• Pad behavior: Momentary / Toggle / CC
• Copy
• Swap
• Link
• Save
Selecting a pad highlights it with LEDs for clear visual feedback.
Hold the encoder during power‑up to access: • Default startup mode (Keyboard or Custom) • Pad pressure calibration (per‑pad sensitivity) • TRS MIDI behavior (THRU or standard OUT) All settings are stored in EEPROM.
• Class‑compliant
• Works with any DAW or hardware supporting USB MIDI
• TRS Type A
• MIDI IN
• MIDI OUT
• Optional MIDI THRU
HackPad listens to incoming MIDI messages. If it receives a note matching one of its pads:
• The pad lights up while the note is active
• LED turns off when the note ends
Magnetic connectors allow:
• Shared power
• MIDI communication
• Modular multi‑controller setups
Here you can find the GERBER files of all the pcb boards used for this project All GERBER files are available in the /PCB directory. Required Components
- N°1 Arduino Pro micro 5v 16MHz link
- N°2 CD74HC4067 (16 Channel Analog Multiplexer) link
- N°1 0,96 inch OLED display SSD1306 or SH1106 White link
- N°1 rotary encoder with push button EC11
- N°1 linear rotary potentiometer 10k link
- N°2 rotary knob link
- N°2 TRS 3.5 jack female for pcb
- some resitor ...
- some diode 1N4148 link
- N°1 external EEPROM AT24C256 link
- N°1 optocoupler 6N138 link
- N°16 rgb led common cathode link
- N°1 Sparkfun silicone button pad link
- N°1 push button for PCB
- N°12 M3 philips flat head screw Black link
- N°8 M3 PCB Nylon black plastic Phillips screw bolt
- N°4 PCB Nylon black plastic Phillips screw Female-Female pillar spacer ... link
- N°4 silicone feet
- N°1 Arduino UNO (needed to upload the HackPad Arduino code to the Arduino Pro Micro board)
- Arduino IDE 1.8.12 (for Mac for Win )
- Custom bootloader HackMidiMask_HackPad
- Required libraries library
- Use an Arduino UNO to burn the custom bootloader
- Upload the two firmware files
- Reassemble and enjoy
• Add aftertouch emulation • Add per‑pad color customization • Add CC mode for the pad grid • Add step‑sequencer mode • Add SysEx configuration tool • Add web‑based editor (via WebMIDI) • Add multi‑HackPad synchronization features
Project Lead & Creator • Jacques Fargion (Ja‑Q) — Hardware, firmware, design Special Thanks • SparkFun (silicone pad inspiration) • Arduino community • Open‑source contributors
HackPad is released under the GNU GPL v3. You are free to use, modify and redistribute the project under the terms of this license.
This project exists to give musicians and makers a powerful, open and fully customizable MIDI controller. Whether you want a compact performance tool, a programmable controller for your DAW, or a platform to experiment with new ideas, HackPad is designed to grow with you.
