diff options
| author | Stefan Kerkmann <karlk90@pm.me> | 2022-06-30 13:19:27 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-30 13:19:27 +0200 |
| commit | d7173967087e022d20d1f9c812b1b668e9d3f71b (patch) | |
| tree | 68198271dd5125193795c399c6478ead0a71b09f /docs/flashing.md | |
| parent | d206c1791e5858323cff0664f39f95edc1381ac5 (diff) | |
[Core] Add Raspberry Pi RP2040 support (#14877)
* Disable RESET keycode because of naming conflicts
* Add Pico SDK as submodule
* Add RP2040 build support to QMK
* Adjust USB endpoint structs for RP2040
* Add RP2040 bootloader and double-tap reset routine
* Add generic and pro micro RP2040 boards
* Add RP2040 onekey keyboard
* Add WS2812 PIO DMA enabled driver and documentation
Supports regular and open-drain output configuration. RP2040 GPIOs are
sadly not 5V tolerant, so this is a bit use-less or needs extra hardware
or you take the risk to fry your hardware.
* Adjust SIO Driver for RP2040
* Adjust I2C Driver for RP2040
* Adjust SPI Driver for RP2040
* Add PIO serial driver and documentation
* Add general RP2040 documentation
* Apply suggestions from code review
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'docs/flashing.md')
| -rw-r--r-- | docs/flashing.md | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/docs/flashing.md b/docs/flashing.md index dfb255f2dc..5e5dcb34e4 100644 --- a/docs/flashing.md +++ b/docs/flashing.md | |||
| @@ -362,3 +362,42 @@ CLI Flashing sequence: | |||
| 362 | ### `make` Targets | 362 | ### `make` Targets |
| 363 | 363 | ||
| 364 | * `:uf2-split-left` and `:uf2-split-right`: Flashes the firmware but also sets the handedness setting in EEPROM by generating a side specific firmware. | 364 | * `:uf2-split-left` and `:uf2-split-right`: Flashes the firmware but also sets the handedness setting in EEPROM by generating a side specific firmware. |
| 365 | |||
| 366 | ## Raspberry Pi RP2040 UF2 | ||
| 367 | |||
| 368 | The `rules.mk` setting for this bootloader is `rp2040`, and can be specified at the keymap or user level. | ||
| 369 | |||
| 370 | To ensure compatibility with the rp2040 bootloader, make sure this block is present in your `rules.mk`: | ||
| 371 | |||
| 372 | ```make | ||
| 373 | # Bootloader selection | ||
| 374 | BOOTLOADER = rp2040 | ||
| 375 | ``` | ||
| 376 | |||
| 377 | Compatible flashers: | ||
| 378 | |||
| 379 | * Any application able to copy a file from one place to another, such as _macOS Finder_ or _Windows Explorer_. | ||
| 380 | |||
| 381 | Flashing sequence: | ||
| 382 | |||
| 383 | 1. Enter the bootloader using any of the following methods: | ||
| 384 | * Tap the `QK_BOOTLOADER` keycode | ||
| 385 | * Hold the `BOOTSEL` button on the PCB while plugin in the usb cable. | ||
| 386 | * Double-tap the `RESET` button on the PCB<sup>1</sup>. | ||
| 387 | 2. Wait for the OS to detect the device | ||
| 388 | 3. Copy the .uf2 file to the new USB disk | ||
| 389 | 4. Wait for the keyboard to become available | ||
| 390 | |||
| 391 | or | ||
| 392 | |||
| 393 | CLI Flashing sequence: | ||
| 394 | |||
| 395 | 1. Enter the bootloader using any of the following methods: | ||
| 396 | * Tap the `QK_BOOTLOADER` keycode | ||
| 397 | * Hold the `BOOTSEL` button on the PCB while plugin in the usb cable. | ||
| 398 | * Double-tap the `RESET` button on the PCB<sup>1</sup>. | ||
| 399 | 2. Wait for the OS to detect the device | ||
| 400 | 3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/rpi_pico --keymap default` | ||
| 401 | 4. Wait for the keyboard to become available | ||
| 402 | |||
| 403 | <sup>1</sup>: This works only if QMK was compiled with `RP2040_BOOTLOADER_DOUBLE_TAP_RESET` defined. | ||
