You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
2.2 KiB

  1. # Converting a board to use the Proton C
  2. 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:
  3. make 40percentclub/mf68:default CTPC=yes
  4. You can add the same argument to your keymap's `rules.mk`, which will accomplish the same thing.
  5. This exposes the `CONVERT_TO_PROTON_C` flag that you can use in your code with `#ifdef`s, like this:
  6. #ifdef CONVERT_TO_PROTON_C
  7. // Proton C code
  8. #else
  9. // Pro Micro code
  10. #endif
  11. 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.
  12. 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`:
  13. #define CONVERT_TO_PROTON_C_RXLED
  14. ## Feature Conversion
  15. These are defaults based on what has been implemented for ARM boards.
  16. | Feature | Notes |
  17. |-------------------------------------|------------------------------------------------------------------------------------------------------------------|
  18. | [Audio](feature_audio.md) | Enabled |
  19. | [RGB Lighting](feature_rgblight.md) | Disabled |
  20. | [Backlight](feature_backlight.md) | Forces [task driven PWM](feature_backlight.md#software-pwm-driver) until ARM can provide automatic configuration |
  21. | USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) |
  22. | [Split keyboards](feature_split_keyboard.md) | Not supported yet |