1.. _sparkfun_pro_micro_rp2040: 2 3SparkFun Pro Micro RP2040 4######################### 5 6Overview 7******** 8 9The SparkFun Pro Micro RP2040 is a small, low-cost, versatile board from 10SparkFun. It is equipped with an RP2040 SoC, an on-board WS2812 addressable 11LED, a USB connector, and a Qwiic connector. The USB bootloader allows it 12to be flashed without any adapter, in a drag-and-drop manner. 13 14Hardware 15******** 16- Dual core Arm Cortex-M0+ processor running up to 133MHz 17- 264KB on-chip SRAM 18- 16MB on-board QSPI flash with XIP capabilities 19- 18 GPIO pins 20- 4 Analog inputs 21- 1 UART peripherals 22- 1 SPI controllers 23- 2 I2C controllers (one via Qwiic connector) 24- 16 PWM channels 25- USB 1.1 controller (host/device) 26- 8 Programmable I/O (PIO) for custom peripherals 27- On-board RGB LED 28- 1 Watchdog timer peripheral 29 30 31.. figure:: img/sparkfun_pro_micro_rp2040.jpg 32 :align: center 33 :alt: SparkFun Pro Micro RP2040 34 35 SparkFun Pro Micro RP2040 (Image courtesy of SparkFun) 36 37Supported Features 38================== 39 40The sparkfun_pro_micro_rp2040 board configuration supports the following 41hardware features: 42 43.. list-table:: 44 :header-rows: 1 45 46 * - Peripheral 47 - Kconfig option 48 - Devicetree compatible 49 * - NVIC 50 - N/A 51 - :dtcompatible:`arm,v6m-nvic` 52 * - UART 53 - :kconfig:option:`CONFIG_SERIAL` 54 - :dtcompatible:`raspberrypi,pico-uart` 55 * - GPIO 56 - :kconfig:option:`CONFIG_GPIO` 57 - :dtcompatible:`raspberrypi,pico-gpio` 58 * - ADC 59 - :kconfig:option:`CONFIG_ADC` 60 - :dtcompatible:`raspberrypi,pico-adc` 61 * - I2C 62 - :kconfig:option:`CONFIG_I2C` 63 - :dtcompatible:`snps,designware-i2c` 64 * - SPI 65 - :kconfig:option:`CONFIG_SPI` 66 - :dtcompatible:`raspberrypi,pico-spi` 67 * - USB Device 68 - :kconfig:option:`CONFIG_USB_DEVICE_STACK` 69 - :dtcompatible:`raspberrypi,pico-usbd` 70 * - HWINFO 71 - :kconfig:option:`CONFIG_HWINFO` 72 - N/A 73 * - Watchdog Timer (WDT) 74 - :kconfig:option:`CONFIG_WATCHDOG` 75 - :dtcompatible:`raspberrypi,pico-watchdog` 76 * - PWM 77 - :kconfig:option:`CONFIG_PWM` 78 - :dtcompatible:`raspberrypi,pico-pwm` 79 * - Flash 80 - :kconfig:option:`CONFIG_FLASH` 81 - :dtcompatible:`raspberrypi,pico-flash` 82 * - Clock controller 83 - :kconfig:option:`CONFIG_CLOCK_CONTROL` 84 - :dtcompatible:`raspberrypi,pico-clock-controller` 85 * - UART (PIO) 86 - :kconfig:option:`CONFIG_SERIAL` 87 - :dtcompatible:`raspberrypi,pico-uart-pio` 88 89Pin Mapping 90=========== 91 92The peripherals of the RP2040 SoC can be routed to various pins on the board. 93The configuration of these routes can be modified through DTS. Please refer to 94the datasheet to see the possible routings for each peripheral. 95 96Default Zephyr Peripheral Mapping: 97---------------------------------- 98 99.. rst-class:: rst-columns 100 101- UART0_TX : P0 102- UART0_RX : P1 103- I2C1_SDA : P2 104- I2C1_SCL : P3 105- SPI0_RX : P20 106- SPI0_SCK : P18 107- SPI0_TX : P19 108 109Programming and Debugging 110************************* 111 112Flashing 113======== 114 115Using UF2 116--------- 117 118The Pro Micro board does make the SWD pins available on pads on the 119underside of the board. You can solder to these pins, and use a JTag 120debugger. You can also flash the SparkFun ProMicro RP2040 with a UF2 file. 121By default, building an app for this board will generate a 122:file:`build/zephyr/zephyr.uf2` file. If the Pro Micro RP2040 is powered on with 123the ``BOOTSEL`` button pressed, it will appear on the host as a mass storage 124device. The UF2 file should be copied to the device, which will 125flash the Pro Micro RP2040. 126 127.. target-notes:: 128 129.. _Getting Started with Raspberry Pi Pico: 130 https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf 131 132.. _Graphical Datasheet: 133 https://cdn.sparkfun.com/assets/e/2/7/6/b/ProMicroRP2040_Graphical_Datasheet.pdf 134