Skip to content

Add XL Keyboards XL 87 RGB - #26332

Open
Hiiwwy wants to merge 4 commits into
qmk:masterfrom
Hiiwwy:keyboards/xl-keyboards
Open

Add XL Keyboards XL 87 RGB#26332
Hiiwwy wants to merge 4 commits into
qmk:masterfrom
Hiiwwy:keyboards/xl-keyboards

Conversation

@Hiiwwy

@Hiiwwy Hiiwwy commented Jul 15, 2026

Copy link
Copy Markdown

Description

Adds support for the XL Keyboards XL 87 RGB, a wired 87-key ANSI TKL keyboard.

Hardware and firmware details:

  • APM32F103CBT6 MCU using the STM32F103-compatible QMK platform
  • 16 MHz external crystal with a 72 MHz system clock
  • uf2boot bootloader with the application starting at 0x08004000
  • 6 x 17 switch matrix
  • 91 top-side WS2812 LEDs and 32 underglow LEDs
  • tkl_ansi community layout
  • Embedded-flash wear-leveling EEPROM with the final 2 KB of Flash reserved by a keyboard-specific linker script
  • Caps Lock and Scroll Lock indicators using their corresponding key LEDs

The VIA keymap and VIA keyboard definition will be submitted separately to the-via/qmk_userspace_via and the-via/keyboards.

Tested on the production APM32F103CBT6 hardware:

  • Keyboard input and NKRO
  • RGB Matrix keylight and underglow
  • Caps Lock and Scroll Lock indicators
  • uf2boot entry and repeated UF2 firmware updates
  • EEPROM persistence across power cycles
  • qmk lint -kb xl_keyboards/xl_87_rgb --strict
  • Default keymap compilation
  • VIA keymap compilation in external userspace
  • git diff --check

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

None.

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).

Comment thread keyboards/xl_keyboards/xl_87_rgb/xl_87_rgb.c
Comment thread keyboards/xl_keyboards/xl_87_rgb/rules.mk Outdated
Comment thread keyboards/xl_keyboards/xl_87_rgb/mcuconf.h
Comment thread keyboards/xl_keyboards/xl_87_rgb/board.h
Comment thread keyboards/xl_keyboards/xl_87_rgb/keymaps/default/keymap.c
Comment thread keyboards/xl_keyboards/xl_87_rgb/keymaps/default/keymap.c Outdated
Comment thread keyboards/xl_keyboards/xl_87_rgb/readme.md Outdated
@Hiiwwy

Hiiwwy commented Jul 15, 2026

Copy link
Copy Markdown
Author

Thanks for the review. I have addressed the requested changes:

  • Removed VIA-specific customization from the QMK keyboard code
  • Removed the redundant EEPROM driver settings
  • Added copyright headers
  • Added QK_BOOT to the Fn layer
  • Updated the README to use the standard bootloader section

The default keymap builds successfully, qmk lint --strict passes, and git diff --check is clean.

@Hiiwwy
Hiiwwy requested a review from zvecr July 15, 2026 13:30
Comment thread keyboards/xl_keyboards/xl_87_rgb/keyboard.json Outdated
@Hiiwwy

Hiiwwy commented Jul 26, 2026

Copy link
Copy Markdown
Author

Hi @zvecr, all requested changes have now been addressed, including the USB VID update and moving QK_BOOT to Fn + Escape.

All CI checks are passing, and I have resolved the completed review conversations. When you have time, could you please take another look? Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants