[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>
This commit is contained in:
		
							parent
							
								
									d206c1791e
								
							
						
					
					
						commit
						d717396708
					
				
					 43 changed files with 2026 additions and 96 deletions
				
			
		| 
						 | 
				
			
			@ -362,3 +362,42 @@ CLI Flashing sequence:
 | 
			
		|||
### `make` Targets
 | 
			
		||||
 | 
			
		||||
* `:uf2-split-left` and `:uf2-split-right`: Flashes the firmware but also sets the handedness setting in EEPROM by generating a side specific firmware.
 | 
			
		||||
 | 
			
		||||
## Raspberry Pi RP2040 UF2
 | 
			
		||||
 | 
			
		||||
The `rules.mk` setting for this bootloader is `rp2040`, and can be specified at the keymap or user level.
 | 
			
		||||
 | 
			
		||||
To ensure compatibility with the rp2040 bootloader, make sure this block is present in your `rules.mk`:
 | 
			
		||||
 | 
			
		||||
```make
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = rp2040
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Compatible flashers:
 | 
			
		||||
 | 
			
		||||
* Any application able to copy a file from one place to another, such as _macOS Finder_ or _Windows Explorer_.
 | 
			
		||||
 | 
			
		||||
Flashing sequence:
 | 
			
		||||
 | 
			
		||||
1. Enter the bootloader using any of the following methods:
 | 
			
		||||
    * Tap the `QK_BOOTLOADER` keycode
 | 
			
		||||
    * Hold the `BOOTSEL` button on the PCB while plugin in the usb cable.
 | 
			
		||||
    * Double-tap the `RESET` button on the PCB<sup>1</sup>.
 | 
			
		||||
2. Wait for the OS to detect the device
 | 
			
		||||
3. Copy the .uf2 file to the new USB disk
 | 
			
		||||
4. Wait for the keyboard to become available
 | 
			
		||||
 | 
			
		||||
or
 | 
			
		||||
 | 
			
		||||
CLI Flashing sequence:
 | 
			
		||||
 | 
			
		||||
1. Enter the bootloader using any of the following methods:
 | 
			
		||||
    * Tap the `QK_BOOTLOADER` keycode
 | 
			
		||||
    * Hold the `BOOTSEL` button on the PCB while plugin in the usb cable.
 | 
			
		||||
    * Double-tap the `RESET` button on the PCB<sup>1</sup>.
 | 
			
		||||
2. Wait for the OS to detect the device
 | 
			
		||||
3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/rpi_pico --keymap default`
 | 
			
		||||
4. Wait for the keyboard to become available
 | 
			
		||||
 | 
			
		||||
<sup>1</sup>: This works only if QMK was compiled with `RP2040_BOOTLOADER_DOUBLE_TAP_RESET` defined.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue