← Back to Ships
demo · completed · 2025-03 → 2026-04

Lily58 RGB MX

Hand-soldered 58-key split keyboard — RP2040, QMK/Vial, SK6812MINI-E RGB, hotswap sockets

QMKVialRP2040TypeScriptGSAPVite

A complete from-scratch build of the Lily58 RGB MX by PandaKB. Every component soldered by hand: 58 Gateron switches in hotswap sockets, SK6812MINI-E per-key RGB LEDs, two rotary encoders, and an RP2040 controller on each half running QMK + Vial firmware.

The build

The PCB kit from PandaKB ships with the board, case, and TRRS hardware — everything else is sourced separately. The RGB chain is the most technically demanding part: SK6812MINI-E LEDs are smaller than a grain of rice and the notch orientation is easy to miss. One wrong LED and the entire downstream chain goes dark with no immediate indication of which joint failed.

The full assembly took around 2 hours, captured in the build video embedded in the article.

Keymap

Four layers, all visible and interactive on the article page:

  • Default — QWERTY base with home-row modifiers, adapted from a ZSA Moonlander layout
  • Symbols — programming symbols on home row, F-keys, numpad cluster
  • Mouse + Media — cursor movement, scroll wheel, volume, and media transport
  • Gaming — flat WASD layout with the right half inactive for mouse use

Firmware

Runs Vial on top of QMK targeting pandakb/lily58_rgb_mx. The RP2040 means storage is not a constraint — full RGB lighting, OLED support, and the full Vial feature set all fit comfortably.

Learnings

  • SK6812MINI-E LEDs have a notch for orientation — one reversed LED kills the entire RGB chain silently
  • Hotswap socket alignment must be perfect before soldering; they're nearly impossible to remove cleanly once set
  • RP2040 UF2 flashing is drag-and-drop — no QMK Toolbox or special hardware needed compared to Pro Micro
  • Vial's real-time keymap editing over USB makes iterating layouts dramatically faster than recompiling QMK each time
  • Split keyboards communicate through a TRRS cable — a half-second of plugging order on boot determines which half is master