Skip to the content
PCBKitNew board
2 layers100 × 100 mmHackpad, the printed circuit board in 3D

Mediapad is a HackPad project made by Hack Club. Mediapad was created because of the Stardance project as a HackPad mission.

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
42
Nets
43
Pads
165
Tracks, vias
392, 42
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
23 Jul 2026
Updated
2 Sep 2026

Overview

Hackpad is an open-source printed circuit board by lixtheyt, from the lixtheyt/mediapad repository on GitHub, published under the MIT licence. It is a 2-layer board of 100 × 100 mm with 42 parts on 43 nets, routed with 392 tracks and 42 vias.

It is built around the SK6812MINI-E. Its parts include 29 diodes, 9 switches, 1 IC and 1 connector.

Main components

1

README

README.md

Status

Mediapad

Mediapad is an 9 key hackpad with a rotary encoder, an OLED Display. It also has 20/16 SK6812 MINI-E LEDs, and uses QMK firmware.

Features:

  • 128x32 OLED Display
  • EC11 Rotary encode
  • 20 SK6812 MINI-E LEDs. We gotta make somethin' for party nah??
  • cool designed case

Video

Watch it here if the player above does not load.

CAD Model:

Everything fits together using 6 M3 Bolts and heatset inserts. 4 for the case and 2 for the PCB.

It has 8 separate printed pieces. 3 are parts of the case, 1 is a spacer for the glow and 1 is for the OLED display as a support.

<img src=CAD/assets/image.png alt="Schematic" width="500"/>

PCB

I made my PCB inside KiCad. Libraries I used were originally from the Hackpad website but I also used some that I had found on grabcad

Schematic

<img src=PCB/assets/schematic.png alt="Schematic" width="600"/>

PCB

<img src=PCB/assets/pcb.png alt="PCB" width="500"/>

IRL Results

IRL1 IRL2 IRL3

Firmware Overview

This hackpad uses QMK firmware for everything.

Two builds

The board exists in two LED populations, so the firmware ships as two revisions. They differ only in the LED map keys, encoder and OLED are shared.

RevisionLEDsBoard
rev20D1-D20fully populated
rev16D1-D16built without the four LEDs ringing the encoder

The four LEDs rev16 leaves out are last in the WS2812 chain, so the remaining sixteen still light normally. The idle screen prints the count (mediapad 16 LED) so you can tell which build is on the board.

bash
make mediapad/rev20:lixtheyt

The keys

All eight switches are media keys, on every mode except RGB. Only what the encoder does changes from mode to mode.

text
SW1 play/pause   SW2 rewind       SW3 fast forward   SW6 mute
SW4 prev track   SW5 next track
SW7 repeat       SW8 shuffle      SW9 = the encoder

Rotary encoder

Clicking the encoder opens a mode picker that previews rather than switches:

  • Click - opens it, showing the mode you are already in
  • Turn - walks the list, nothing has changed yet
  • Click again - confirms, and only now does the mode change
  • Wait - it lapses and you stay exactly where you were
  1. Volume - volume up / down
  2. Track skip - next / previous track
  3. Arrows - arrow up / down
  4. Scroll - mouse wheel up / down
  5. Zoom - zoom in / out, sent as Ctrl + wheel so it does not depend on your keyboard layout
  6. RGB - the lighting, below

RGB

RGB contains 16 effects. The first six run their own colours (Pinwheel, Vortex, Rainbow wave, Chevron, Splash, Raindrops), the other ten come out in whatever you mix, and several of those react to keypresses and spread outward from the key you hit.

The keys aim the dial, and the dial does the changing:

text
SW1 red   SW2 green   SW3 blue   SW6 brightness   SW4 effect list

Help browser

Press play/pause + rewind together if you forget what a key does. Turn the encoder to walk the list, click it for the answer, press anything to back out. The list follows whichever mode you opened it from.

The LEDs either side of that key light up with the key itself as the dark gap between them, and the display spells the position out in words. The words are the part that always works the LED grid sits about half a key pitch off the switch grid, so no single LED can point at a key without also looking like it points at its neighbour.

OLED

While something is playing, a scrolling title and artist, a progress bar, and a bottom row carrying play/pause on the left, the clock, and shuffle / repeat symbols on the right. The clock runs locally rather than echoing the host, because Windows only refreshes its playback position every few seconds.

Otherwise: the board name and LED count, the current mode, and either waiting for app (nothing arriving) or nothing playing (the app is connected, but Windows has no media session).

Hidden key combos

Armed on the media modes only on the RGB mode those same switches are colour controls.

HoldForDoes
rewind + fast forward + mute5 sbootloader
repeat + shuffle + mute5 sclear EEPROM
rewind + fast forward2 sreboot
repeat + shuffle2 stoggle debug

You can also reach the bootloader by holding the top left key while plugging in, or by double-tapping the reset button on the XIAO.

Firmware:

I want to note out that the firmware was mostly done by AI due to my limited C knowledge and the difficulty to create a firmware that does such advanced things.

BOM:

  • 8x Cherry MX Switches
  • 8x Keycaps
  • 6x M3x5x4 Heatset inserts
  • 6x M3x16mm Screws
  • 8x 1N4148 DO-35 Diodes
  • 16x/20x SK6812 MINI-E LEDs (16x = encoder has no LEDs)
  • 1x 0.91" 128x32 OLED Display
  • 1x EC11 Rotary Encoder
  • 1x XIAO RP2040
  • 1x Case (1x bottom case, 1x middle case, 1x top case)
  • 6x Spacers (printed part)
  • 1x Display Support (printed part, use a double-sided tape so it will hold)

Companion app (now playing on the OLED)

Companion/mediapad_tray.exe is a portable application made in Python that feeds Mediapad with the latest information about current played media on your computer. Without it the OLED shows the board name and waiting for app, everything except the now-playing screen still works.

As I have mentioned... it is a portable application. That means you don't have to install anything. Just open, mess with it in the tray (where background applications are located) and make sure to enable the setting that allows it to open on start up of your computer, so you don't have to turn it on manually every time you turn on your computer. If you've got no idea where the tray with the background applications is located then please, google it.

Parts

42
QtyValueFootprintReferences
20SK6812MINI-Efootprints:SK6812MINI-E_fixedD1, D2, D3, D4, D5, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20 +4
91N4148Diode_THT:D_DO-35_SOD27_P7.62mm_HorizontalD21, D22, D23, D24, D25, D26, D27, D28, D29
8SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8
2MountingHole_3.2mm_M3MountingHole:MountingHole_3.2mm_M3REF98, REF99
1Conn_01x04oled:SSD1306-0.91-OLED-4pin-128x32J1
1MOUDLE-SEEEDUINO-XIAOfootprints:XIAO-Generic-Hybrid-14P-2.54-21X17.8MMU1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW9

Questions

How big is the Hackpad PCB?

It measures 100 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Hackpad use?

42 parts, built around the SK6812MINI-E. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Hackpad KiCad files?

From the lixtheyt/mediapad repository on GitHub, at the commit this page was made from: the board is PCB/Hackpad.kicad_pcb and its schematic PCB/Hackpad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Hackpad design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers234 × 84 mmMain panel, the printed circuit board in 3D

    Main panel

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    234 parts3kApache-2.0
  • 4 layers180.8 × 300.3 mmDilemma, the printed circuit board in 3D

    Dilemma

    Bastardkb/Dilemma

    The Dilemma is a vertical stagger low-profile keyboard with mods.

    383 parts590
  • 4 layers48 × 32 mmFlatSat, the printed circuit board in 3D

    FlatSat

    Pwnsat/FlatSat

    Flatsat v1.0 is a hardware based platform for aerospace cybersecurity research

    106 parts575GPL-2.0
  • 2 layersDemo, the printed circuit board in 3D

    Demo

    adamws/kicad-kbplacer

    KiCad plugin for automatic keyboard's key placement and routing

    48 parts547GPL-3.0
  • 2 layers97 × 78.5 mmDumbpad, the printed circuit board in 3D

    Dumbpad

    imchipwood/dumbpad

    Simple 4x4 numpad with rotary encoder. Powered by QMK via ATmega32u4 Pro Micro

    62 parts517GPL-2.0
  • 4 layers82.5 × 39.4 mmV4head, the printed circuit board in 3D

    V4head

    makerforgetech/modular-biped

    An open source framework for creating a bipedal modular companion robot.

    26 parts493GPL-3.0
  • 2 layers115.7 × 95.7 mmFifi split keeb, the printed circuit board in 3D

    Fifi split keeb

    raychengy/fifi_split_keeb

    Fifi Keyboard 🐶 ⌨️

    66 parts334
  • 4 layers70 × 54 mmPicoLab, the printed circuit board in 3D

    PicoLab

    CoretechR/PicoLab

    Web-GUI Embedded Multitool

    285 parts327GPL-3.0