]> git.donarmstrong.com Git - qmk_firmware.git/blob - docs/proton_c_conversion.md
[Keyboard] leds in default keymap (#6357)
[qmk_firmware.git] / docs / proton_c_conversion.md
1 # Converting a board to use the Proton C
2
3 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 `CONVERT_TO_PROTON_C=yes` (or `CTPC=yes`) to your make argument, like this:
4
5     make 40percentclub/mf68:default CTPC=yes
6
7 You can add the same argument to your keymap's `rules.mk`, which will accomplish the same thing.
8
9 This exposes the `CONVERT_TO_PROTON_C` flag that you can use in your code with `#ifdef`s, like this:
10
11     #ifdef CONVERT_TO_PROTON_C
12         // Proton C code
13     #else
14         // Pro Micro code
15     #endif
16
17 Before being able to compile, you may get some errors about `PORTB/DDRB`, etc not being defined, so you'll need to convert the keyboard's code to use the [GPIO Controls](internals_gpio_control.md) that will work for both ARM and AVR. This shouldn't affect the AVR builds at all.
18
19 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 `config.h`:
20
21     #define CONVERT_TO_PROTON_C_RXLED