You are browsing as a guest. Sign up (or log in) to start making projects!

LG Hackpad

Hardware
  • 2 Devlogs
  • 8 Total hours

A custom 9-key mechanical macropad with a rotary encoder and OLED display, built around the Seeed XIAO RP2040. Every key is freely configurable through a desktop app, and the encoder browses through profiles shown on the OLED. PCB and case designed from scratch in KiCad and Tinkercad.

Ship #1 Pending review

I made the LG Hackpad — a 9-key mechanical macropad with a rotary encoder and an OLED display, built around the Seeed XIAO RP2040.

I designed the schematic and the 2-layer PCB completely from scratch in KiCad (my first PCB ever) and the case in Tinkercad — an open tray design with the XIAO exposed and an anti-flex support grid under the board, printable without supports. On the software side I built CircuitPython firmware where the encoder browses through profiles on the OLED, and a desktop configurator app (Python + CustomTkinter) that lets you assign a key combo or a custom script to every one of the 9 keys.

Most challenging: hand-routing a 2-layer board without crossing nets while keeping a clean GND pour, and fitting everything under 100x100mm. I'm proud that I designed the whole hardware myself as a first-timer.

To check it out: the repo has the full README, BOM, KiCad files, gerbers, the case as STL + STEP, the firmware and the configurator app. The demo link shows the 3D case model in Tinkercad.

Video of Project → See source code →
Open comments for this post

7h 4m 7s logged

Finished my LG Hackpad! 🎉

This is a 9-key mechanical macropad with a rotary encoder and an OLED display, built around the Seeed XIAO RP2040.

What I did:

  • Designed the schematic and the 2-layer PCB completely from scratch in KiCad (my first PCB ever!). Hand-routed the switch matrix with per-key 1N4148 diodes, added a GND pour and fitted everything under 100x100mm (final: 68x99.68mm).

  • Designed the case in Tinkercad: an open tray design with the XIAO RP2040 exposed, an anti-flex support grid under the PCB, USB cutout and 4x M2 standoffs - printable without supports.

  • Built the firmware (CircuitPython): the encoder browses through profiles on the OLED, and each of the 9 keys is freely configurable via a JSON config.

  • Made a desktop configurator app (Python + CustomTkinter) to assign key combos or custom scripts to every key.

Biggest challenge as a first-timer: hand-routing a 2-layer board without crossing nets while keeping a clean GND pour. Super happy
with how it turned out!

0
0
8

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…