Skip to content

Add RGB LED matrix driver and EEPROM for Ducky One 2 SF#26112

Open
illixion wants to merge 2 commits intoqmk:developfrom
illixion:one2sf-add-rgb-and-eeprom
Open

Add RGB LED matrix driver and EEPROM for Ducky One 2 SF#26112
illixion wants to merge 2 commits intoqmk:developfrom
illixion:one2sf-add-rgb-and-eeprom

Conversation

@illixion
Copy link
Copy Markdown

Description

Add RGB LED support and EEPROM persistence for the Ducky One 2 SF (DKON1967ST).

This continues the work originally started by Hayley in PR #22707, modernized for current QMK and with prior PR review feedback addressed:

  • Custom MBIA045 driver moved to a separate rgb_matrix_custom.c file
  • PR targets develop branch

RGB Matrix driver (rgb_matrix_custom.c): Implements a custom 16-bit PWM driver for the MBIA045 LED controller, providing per-key RGB lighting for all 69 LEDs. The driver exports the standard rgb_matrix_driver_t interface (init, set_color, set_color_all, flush).

EEPROM persistence: The NUC123 MCU is not in QMK's vendor EEPROM auto-selection list, so it falls back to EEPROM_TRANSIENT and loses all settings on power-off. This PR enables wear-leveling EEPROM backed by the on-chip APROM flash (2 KB backing store → 1 KB logical EEPROM), so RGB mode/hue/saturation/brightness/speed persist across power cycles. Note: BACKING_STORE_WRITE_SIZE is defined explicitly because QMK's auto-detection checks QMK_MCU_FAMILY_NUC123 but the build system generates QMK_MCU_FAMILY_NUMICRO for this MCU family.

Types of Changes

  • Core
  • Bugfix
  • New feature
  • Enhancement/optimization
  • Keyboard (addition or update)
  • Keymap/layout (addition or update)
  • Documentation

Issues Fixed or Closed by This PR

Checklist

  • My code follows the code style of this project: C, Python
  • I have read the PR Checklist document and have made the appropriate changes.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • I have tested the changes and verified that they work and don't break anything (as well as I can manage).

hugglesfox and others added 2 commits March 28, 2026 14:30
Add custom MBIA045 16-bit PWM RGB LED driver for the Ducky One 2 SF,
enabling per-key RGB lighting with 69 LEDs. The driver lives in a
separate rgb_matrix_custom.c as requested in prior review.

- Add rgb_matrix_custom.c with MBIA045 LED matrix driver
- Add RGB matrix LED layout (69 LEDs) and feature flag to keyboard.json
- Enable breathing, cycle_left_right, and typing_heatmap by default
- Add SRC to rules.mk
- Update readme to reflect RGB support
Enable wear-leveling EEPROM backed by NUC123 on-chip APROM flash so
that RGB settings (mode, hue, saturation, brightness, speed) survive
power cycles. The NUC123 previously fell back to EEPROM_TRANSIENT
because it is not in QMK's vendor auto-selection list.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants