Skip to content

RP2040 controllers

Charly Delay edited this page Dec 29, 2022 · 8 revisions

BKB standard

The "BKB standard" is a standard pinout that was defined by a committee of designers on the BastardKB Discord server when the first RP2040 were created in 2022.

BKB standard pinout, on the Sea-picro

These boards are designed to be a drop-in replacement for keyboards wanting an upgrade from ATmega32u4 based pro micros (eg. Elite-C).

They are using the RP2040 microcontroller chip designed by Raspberry Pi, which features dual M0+ processors at up to 133MHz

Pinout compatibility

Controller Pin-compatible Flash size Vbus detection Notes
0xB2 Splinky Yes varies (up to 16MB) Yes Included in Bastard Keyboards kits
Elite-Pi Yes 2MB Yes
Sea-picro Yes 16MB Yes One-button Reset / Bootloader circuit
Frood Unconfirmed (not tested yet) 2MB Yes
0xCB Helios Unconfirmed (not tested yet) 16MB Yes Also with a One-button Reset / Bootloader circuit. Available at Keeb Supply
Liatris Unconfirmed (not tested yet) 16MB Yes Also with a One-button Reset / Bootloader circuit. Not available yet.
SparkFun Pro Micro - RP2040 No* (correct pinout, but no bottom row) 16MB No The QWIIC connector causes tolerance issues with the BKB adapter, and the reset buttons collide with the pin headers
Adafruit KB2040 - RP2040 Kee Boar Driver No (different pinout) 8MB No
Blok No (different pinout, namely i2c pins) 16MB Unspecified

Firmware compatibility

All controllers above marked as pin-compatible, and using the same second-stage bootloader as the Splinky) should be compatible out-of-the-box with the Bastard Keyboard firmwares targeting the Splinky v3, ie. splinky_3 firmwares.

Bootloader

See QMK's RP2040 second stage bootloader selection documentation.

USB-C port compatibility

For the USB-C port to align perfectly in the Bastard Keyboard cases, the controller needs to use a USB-C connector of specific dimensions, otherwise it might be slightly offset on the Z axis.

The Splinky controller sold as part of the Bastard Keyboard kits are using a compatible port. If you are sourcing your own controller, make sure that the USB-C port dimensions are correct.

Clone this wiki locally