platformdev_proton_c.md (2645B)
1 # Proton C 2 3 The 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 21 Some 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 23 So far, it appears that this is only an issue on the Gherkin PCBs, but other PCBs may be affected in this way. 24 25 In this case, you may want to not hook up the RAW pin at all. 26 27 ## Manual Conversion 28 29 To 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 ``` 32 MCU = STM32F303 33 BOARD = QMK_PROTON_C 34 ``` 35 36 Remove these variables if they exist: 37 38 * `BOOTLOADER` 39 * `EXTRA_FLAGS` 40 41 Finally 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 59 You 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 70 Notes: 71 72 1. On a Pro Micro VCC can be 3.3v or 5v. 73 2. 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`. 74 3. `A4` is shared with the speaker. 75 4. `A5` is shared with the speaker. 76 5. `A13` and `A14` are used for hardware debugging (SWD). You can also use them for GPIO, but should use them last. 77 6. 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.