feat(k17_max): enable Keychron RGB and fix EEPROM persistence #20
Reference in New Issue
Block a user
Delete Branch "dev/k17"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Port the Keychron RGB EEPROM persistence work from the Q5 Max (PR #18) to the K17 Max ANSI Encoder RGB variant.
KEYCHRON_RGB_ENABLEfor the K17 Max, wiring upPER_KEY_RGBandMIXED_RGBeffects with board-specific defaultsVIA_EEPROM_MAGIC_ADDRto a fixed offset so Keychron EEPROM growth can't silently corrupt the stored keymapChanges by file
rules.mkKEYCHRON_RGB_ENABLE = yesansi_encoder/rgb/rgb.cdefault_per_key_led[]for 103 LEDs: red Esc and CapsLock, yellow modifiers/function row/numpad, blue alpha keys (Q–P, A–L, Z–M, Space)default_region[]with all 103 keys in region 0ansi_encoder/rgb/config.hVIA_EEPROM_MAGIC_ADDR 552— K17 Max Keychron EEPROM data ends at byte 540 (103 LEDs × layout); 552 gives 12 bytes of headroom matching the Q5 Max conventionk17_max.cwireless_enter_connected_kb()hook: reloads Keychron RGB state and re-applies the saved QMK RGB mode after BT/2.4G reconnect if it drifted during the transport change sequenceeeconfig_init_custom_rgb()call inkeyboard_post_init_kb()so Keychron RGB arrays are loaded from EEPROM on bootkeychron_wireless_common.handbattery.hincludes needed by the wireless hookNotes
RGB_MATRIX_DEFAULT_MODEis intentionally not set — the K17 Max uses QMK's stock default effect on a fresh flash rather than heatmapkeychron_rgb.c,mixed_rgb.c,rgb_matrix_kb.inc,eeconfig_kb.h) were already landed in PR #18 and are inherited by this branchTest plan