Skip to content

Latest commit

 

History

95 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🎛️ HackPad — Open‑Source MIDI Controller

A fully customizable, Arduino‑powered performance controller

Schermata 2024-07-28 alle 16 30 40

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.

📦 Technical Specifications

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

🖼️ Hardware Overview

Front Panel

image

• 4×4 RGB pressure‑sensitive pad grid

• Rotary encoder with push button

• 10k potentiometer

• 0.96” OLED display

Rear / side

Schermata 2024-07-28 alle 16 05 57

• USB Micro‑B port (MIDI IN/OUT + power)

• TRS MIDI IN

• TRS MIDI OUT

• Magnetic connectors for chaining

• External EEPROM

Schermata 2024-07-28 alle 16 07 17

🧠 Hardware Architecture

HackPad is built from multiple stacked PCBs:

  1. Pad Layer

• Houses the SparkFun silicone pad

• Contains the RGB LEDs

• Pressure sensing is handled via analog multiplexing

  1. Logic Layer

• Arduino Pro Micro

• CD74HC4067 multiplexers

• EEPROM

• Optocoupler for MIDI IN

• TRS MIDI circuitry

  1. Display & Controls Layer

• OLED display

• Rotary encoder

• Potentiometer

  1. Base Layer

• Structural PCB

• Magnetic connectors

• Power routing

This architecture makes HackPad extremely robust while keeping the design compact and modular.

🎹 Operating Modes

Keyboard Mode

Schermata 2024-07-28 alle 16 10 23 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.

Schermata 2024-07-28 alle 16 09 10

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”.

Chord finder

Schermata 2024-07-28 alle 15 47 28

A built‑in visual scale tutor with 50 musical scales.

Two visualization modes:

Type A - Chromatic View

• Pads show all notes

• Green = root, blue = scale notes

Schermata 2024-07-28 alle 16 04 26

Type B — In‑Key View

• Only scale notes are shown

• Pads span multiple octaves

You can keep the visualization active while returning to Keyboard Mode.

Schermata 2024-07-28 alle 15 57 23

Custom Mode

Schermata 2024-07-28 alle 15 58 25

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.

🔧 Configuration Menu

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.

🎛️ MIDI Implementation

USB MIDI

• Class‑compliant

• Works with any DAW or hardware supporting USB MIDI

TRS MIDI

• TRS Type A

• MIDI IN

• MIDI OUT

• Optional MIDI THRU

LED Feedback

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

Chaining Multiple HackPads

Magnetic connectors allow:

• Shared power

• MIDI communication

• Modular multi‑controller setups

🛠️ Build Your HackPad

PCBs

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

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)

💻 Software Setup

Prerequisites
Upload Process
  1. Use an Arduino UNO to burn the custom bootloader
  2. Upload the two firmware files
  3. Reassemble and enjoy

🗺️ Roadmap

• 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

🙌 Credits

Project Lead & Creator • Jacques Fargion (Ja‑Q) — Hardware, firmware, design Special Thanks • SparkFun (silicone pad inspiration) • Arduino community • Open‑source contributors

📄 License

HackPad is released under the GNU GPL v3. You are free to use, modify and redistribute the project under the terms of this license.

🎉 HackPad is yours — build it, customize it, hack it

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.

About

Fully customizable Midi Controller

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages