keyboard stuff
1# Proton C
2
3The Proton C is an Arm STM32F303xC based drop-in replacement for the Pro Micro.
4
5<img src="https://qmk.fm/proton-c.jpg" alt="Proton C" width="800"/>
6
7#### Features
8
9* Through-hole mounted USB-C Port
10* 32-bit 72MHz Cortex-M4 processor (STM32F303CCT6)
11* I2C, SPI, PWM, DMA, DAC, USART, I2S
12* 23x 3.3V I/O Ports
13* 1x 5V output for WS2812 LED chains
14* 256kB flash
15* 40kB RAM
16* AST1109MLTRQ speaker footprint
17* Reset button
18
19## Warnings
20
21Some of the PCBs compatible with Pro Micro have VCC (3.3V) and RAW (5V) pins connected (shorted) on the pcb. Using the Proton C will short 5V power from USB and regulated 3.3V which is connected directly to the MCU. Shorting those pins may damage the MCU on the Proton C.
22
23So far, it appears that this is only an issue on the Gherkin PCBs, but other PCBs may be affected in this way.
24
25In this case, you may want to not hook up the RAW pin at all.
26
27## Manual Conversion
28
29To use the Proton C natively, without having to specify `CONVERT_TO=proton_c`, you need to change the `MCU` line in `rules.mk`:
30
31```
32MCU = STM32F303
33BOARD = QMK_PROTON_C
34```
35
36Remove these variables if they exist:
37
38* `BOOTLOADER`
39* `EXTRA_FLAGS`
40
41Finally convert all pin assignments in `config.h` to the stm32 equivalents.
42
43| Pro Micro Left | Proton C Left | | Proton C Right | Pro Micro Right |
44|-----------|----------|-|----------|-----------|
45| `D3` | `A9` | | 5v | RAW (5v) |
46| `D2` | `A10` | | GND | GND |
47| GND | GND | | FLASH | RESET |
48| GND | GND | | 3.3v | VCC <sup>1</sup> |
49| `D1` | `B7` | | `A2` | `F4` |
50| `D0` | `B6` | | `A1` | `F5` |
51| `D4` | `B5` | | `A0` | `F6` |
52| `C6` | `B4` | | `B8` | `F7` |
53| `D7` | `B3` | | `B13` | `B1` |
54| `E6` | `B2` | | `B14` | `B3` |
55| `B4` | `B1` | | `B15` | `B2` |
56| `B5` | `B0` | | `B9` | `B6` |
57| `B0` (RX LED) | `C13` <sup>2</sup> | | `C13` <sup>2</sup> | `D5` (TX LED) |
58
59You can also make use of several new pins on the extended portion of the Proton C:
60
61| Left | | Right |
62|------|-|-------|
63| `A4`<sup>3</sup> | | `B10` |
64| `A5`<sup>4</sup> | | `B11` |
65| `A6` | | `B12` |
66| `A7` | | `A14`<sup>5</sup> (SWCLK) |
67| `A8` | | `A13`<sup>5</sup> (SWDIO) |
68| `A15` | | RESET<sup>6</sup> |
69
70Notes:
71
721. On a Pro Micro VCC can be 3.3v or 5v.
732. 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 `B0`.
743. `A4` is shared with the speaker.
754. `A5` is shared with the speaker.
765. `A13` and `A14` are used for hardware debugging (SWD). You can also use them for GPIO, but should use them last.
776. 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.