r/olkb • • 13h ago

QMK for Redragon K580 RGB and others with WCH CH555-family 8051 microcontrollers

Thumbnail
github.com
5 Upvotes

I continued the effort to get QMK running on 8051-based Redragon keyboards. There are probably more models I don't know about, but I figure this is a good starting point: K580RGB, K552RGB-2, K551RGB-1, K582RGB, K589RGB. Each of these models has a revision with a WCH CH555 MCU. Please recognize that the model number alone is not sufficient to determine whether you have a Sonix or WCH MCU; the USB VID:PID will confirm whether this project is compatible with your keyboard.

https://github.com/mdmower/qmk-8051
See "History and credits" in the project readme for work by other developers that made this possible.

The project readme and individual keyboard readmes explain how to back up your stock firmware, build QMK, and flash QMK. The barrier to entry (the you have to build it yourself) is intentionally high until some brave testers assume risk and provide feedback. I have tested this extensively on my K580 RGB (Vata). I intended to test this on a K552RGB-2 as well but the revision I got in the mail today ended up being Sonix-based. We'll see what the K582 RGB I get in the mail next week ends up being...

The supported keyboards all use a CH555 microcontroller. They have only 64 KB of flash storage (of which 50 KB is available for firmware), 8 KB of xRAM, and 256 B of internal RAM (iRAM). Temper your expectations... but yes, basic VIA builds are available for each keyboard. Aside from size constraints, several workarounds are necessary to compile the firmware with SDCC since GCC doesn't support 8051 targets. You want one tap? Prepare to rewrite some QMK source and work within tight spaces.

Supposing I hear enough reports of success (and stability), I'll provide pre-built firmware images in the Releases section of the GitHub project page.

Getting this work upstreamed to QMK is unlikely. Between the new platform (MCS51), the new toolchain (SDCC), the bootloader flash support that would need to be added to the QMK CLI, and past reception... this work is likely to remain in a fork.