Skip to content

Roadmap โ€” options we haven't built

TL;DR

  • Two whole feature classes cost the firmware zero flash: host-side app work, and 1-byte PK_* status packets over the USART3 link that's already wired.
  • The b75Pro enum has display opcodes we've never sent โ€” PK_LIGHT_MODE (0x08), a native 12/24-hour toggle, and a big-typed-letter mode drawn by the module.
  • Flash is the wall: 56 KB app, and after the v20 reactive build there's ~2.9 KB left. Cheap wins rank first.

Mined 2026-07-06 from the b75Pro sibling source, RIPPLE.bin, and this KB. Every item cites where it came from, so it's checkable, not invented.

Shipped since this survey

  • Per-layer encoder โ€” done and confirmed on-device (v1.3.0). L0 volume, L1 RGB brightness, L2 RGB hue, L3 media. Built as a hardcoded encoder_update_user, not ENCODER_MAP โ€” the encoder isn't in this board's Vial/VIA layout, so ENCODER_MAP was invisible.
  • Independent side LED bar โ€” shipped in v1.2.0 (opcodes 0x46/47/48). The status-meter idea below is the next step on top of it.
  • Instant caps/num-lock LCD icons โ€” shipped in v1.3.0. Pushed on state change via a gated led_update_kb hook, no more 30s lag. Eager debounce (sym_eager_pk) in the same release killed the knob-press mute lag too.

๐ŸŽ›๏ธ Cheap firmware wins

Option Flash Value Where
Screen power-off key โ€” toggle the C9 enable pin to blank the LCD. This is the "sleep" the KB said didn't exist (it's a GPIO, not an opcode). ~100 B high al80.c:347
RGB layer indicator โ€” tint a row per active layer via rgb_matrix_indicators_advanced_kb(). ~300 B high KB ยงD6
RGB off on host sleep โ€” RGB_MATRIX_SLEEP isn't set. ~50 B med config.h
Host-free view-switch keys โ€” keycodes that emit PK_GO_HOME / PK_TOGGLE_PIC / PK_GO_GIF. ~200 B med mk25047.c:1412
Caps Word โ€” standard QMK, not enabled. ~400 B med โ€”

๐Ÿ“Ÿ Native module features to probe first

Send-and-watch on-device before spending flash โ€” the display module may already draw these (unconfirmed on the AL80). Source: b75Pro mk25047/uart_mod.h:26-59, keyboard_screen.c:217-390.

  • PK_LIGHT_MODE (0x08) โ€” a lighting icon/name on the homepage.
  • PK_SWITCH_TIME โ€” a real 12/24-hour toggle. Would retire the whole host-side "12-hour hack."
  • PK_LETTER_SHOW / PK_LETTER_OFF โ€” the letter you just typed, drawn large by the module. No pixel/framebuffer cost.

๐Ÿ–ผ๏ธ Zero-firmware-flash (host-side app)

  • Startup boot animation (mode-0 GIF) โ€” a vendor button we never exposed.
  • Live status cards on the LCD โ€” weather, next calendar event, the wedding countdown (bot already exists), a Pomodoro ring. All ride the solved picture pipeline. Real dependency: the always-on host, so it survives a closed browser tab (research/al80-always-on-host-SPARC.md).

The bar is 3 LEDs already in the matrix at indices 76โ€“78 (driver 1 / CS pin C8), flagged keylight โ€” which is why they match the keys today. Override those three in rgb_matrix_indicators_advanced_kb() (~150 B, RAM ~3 B) to drive a battery / caps / layer / notification meter, with a bar-color command mirroring the existing palette protocol (0x43-0x45).

๐Ÿšซ Not worth it (given the 56 KB ceiling)

  • Bluetooth / 2.4G on custom โ€” expensive, and going wireless is less control per our own RE (ยงD5). The radio is a separate coprocessor taking only 3 inbound commands.
  • Autocorrect โ€” the dictionary blob is too big when you're cutting features to fit.
  • Hardware RTC port โ€” medium flash and needs the LSE/backup domain; the 60s host re-sync already makes drift moot.
  • More framebuffer RGB effects โ€” each one is exactly the flash you're reclaiming.

โญ Top 3

Per-layer encoder shipped (v1.3.0), so the next-best value-per-byte:

  1. Screen power-off key โ€” ~100 B, reuses the C9 enable already in al80.c, and closes something the KB wrongly concluded was impossible (it's a GPIO, not an opcode).
  2. Side bar as a status meter โ€” the independent bar colour is already shipped (v1.2.0); the remaining step is driving those three LEDs off battery / caps / layer state (~150 B).
  3. Probe the undocumented PK opcodes โ€” a 30-minute send-and-watch, not a build. Highest upside in the survey at near-zero cost; tells you which native features are real before you spend flash.