Since the Proton C is a drop-in replacement for a Pro Micro we've made it easy to use. This page documents a handy automated process for converting keyboards, as well as documenting the manual process if you'd like to make use of Proton C features that aren't available on Pro Micros.
If a board currently supported in QMK uses a Pro Micro (or compatible board) and you want to use the Proton C, you can generate the firmware by appending
CTPC=yes) to your make argument, like this:
make 40percentclub/mf68:default CTPC=yes
You can add the same argument to your keymap's
rules.mk, which will accomplish the same thing.
This exposes the
CONVERT_TO_PROTON_C flag that you can use in your code with
#ifdefs, like this:
#ifdef CONVERT_TO_PROTON_C// Proton C code#else// Pro Micro code#endif
If you get errors about
PORTB/DDRB, etc not being defined, so you'll need to convert the keyboard's code to use the GPIO Controls that will work for both ARM and AVR. This shouldn't affect the AVR builds at all.
The Proton C only has one on-board LED (C13), and by default, the TXLED (D5) is mapped to it. If you want the RXLED (B0) mapped to it instead, add this like to your
These are defaults based on what has been implemented for ARM boards.
Forces task driven PWM until ARM can provide automatic configuration
USB Host (e.g. USB-USB converter)
Not supported (USB host code is AVR specific and is not currently supported on ARM)
Partial - heavily dependent on enabled features
To use the Proton C natively, without having to specify
CTPC=yes, you need to change the
MCU line in
MCU = STM32F303BOARD = QMK_PROTON_C
Remove these variables if they exist:
Finally convert all pin assignments in
config.h to the stm32 equivalents.
Pro Micro Left
Proton C Left
Proton C Right
Pro Micro Right
You can also make use of several new pins on the extended portion of the Proton C:
On a Pro Micro VCC can be 3.3v or 5v.
A Proton C only has one onboard LED, not two like a Pro Micro. The Pro Micro has an RX LED on
D5 and a TX LED on
A4 is shared with the speaker.
A5 is shared with the speaker.
A14 are used for hardware debugging (SWD). You can also use them for GPIO, but should use them last.
Short RESET to 3.3v (pull high) to reboot the MCU. This does not enter bootloader mode like a Pro Micro, it only resets the MCU.