================= Pimoroni Tiny2040 ================= .. tags:: chip:rp2040 The Tiny2040 is a general purpose RP2040 board supplied by Pimoroni. .. figure:: Tiny2040.png :align: center The Pimoroni Tiny 2040 has two buttons (RESET and BOOT) allowing to boot from ROM without disconnecting the device. See the `Pimoroni website `_ for information about the Pimoroni Tiny 2040. Features ======== * RP2040 microcontroller chip * Dual-core ARM Cortex M0+ processor, flexible clock running up to 133 MHz * 264kB of SRAM, and 2MB or 8MB of on-board Flash memory * Castellated module allows soldering direct to carrier boards * USB Host and Device support via type C connector * Low-power sleep and dormant modes * Drag & drop programming using mass storage over USB * 12 multi-function GPIO pins * 2× SPI, 2× I2C, 2× UART, 3× 12-bit ADC, 16× controllable PWM channels * Accurate clock and timer on-chip * Temperature sensor * Accelerated floating point libraries on-chip * 8 × Programmable IO (PIO) state machines for custom peripheral support Buttons and LEDs ================ There is a single onboard RGB LED controlled by pins GPIO18 (red), GPIO19 (green), and GPIO20 (blue). The is a User/BOOT button readable as GPIO23. If held down when power is first applied the RP2040 will boot into program mode and appear to a computer connected via USB as a storage device. Saving a .UF2 file to this device will replace the Flash ROM contents on the RP2040. Pin Mapping =========== Pads numbered anticlockwise from USB connector. ===== ========== ========== Pad Signal Notes ===== ========== ========== 1 VBUS Connected to USB +5V 2 Ground 3 3V3 Out to peripherals 4 GPIO29 ADC3 5 GPIO28 ADC2 6 GPIO27 ADC1 7 GPIO26 ADC0 8 Ground 9 GPIO7 10 GPIO6 11 GPIO5 12 GPIO4 13 GPIO3 14 GPIO2 15 GPIO1 Default RX for UART0 serial console 16 GPIO0 Default TX for UART0 serial console ===== ========== ========== Power Supply ============ The Raspberry Pi Pico can be powered via the USB connector, or by supplying +5V to pin 1. The Raspberry Pi Pico chip run on 3.3 volts. This is supplied by an onboard voltage regulator. Installation & Build ==================== For instructions on how to to install the build dependencies and create a NuttX image for this board, consult the main :doc:`RP2040 documentation <../../index>`. Configurations ============== All configurations listed below can be configured using the following command in the ``nuttx`` directory (again, consult the main :doc:`RP2040 documentation <../../index>`): .. code:: console $ ./tools/configure.sh pimoroni-tiny2040: composite --------- NuttShell configuration (console enabled in UART0, at 115200 bps) with support for CDC/ACM with MSC USB composite driver. ``conn`` command enables the composite device. gpio -------- NuttShell configuration (console enabled in UART0, at 115200 bps) with GPIO examples. .. list-table:: GPIO pin options :widths: auto :header-rows: 1 * - GPIO - Function * - GPIO18 - Onboard RGB LED (red, out) * - GPIO19 - Onboard RGB LED (green, out) * - GPIO20 - Onboard RGB LED (blue, out) * - GPIO23 - Onboard BOOT button (user) No interrupt pin configured. nsh --- Basic NuttShell configuration (console enabled in UART0, at 115200 bps). nsh-flash --------- Basic NuttShell configuration (console enabled in UART0, at 115200 bps with SMART flash filesystem. nshsram ------- NuttShell configuration (console enabled in UART0, at 115200 bps) with interrupt vectors in RAM. smp --- Basic NuttShell configuration (console enabled in UART0, at 115200 bps) with both ARM cores enabled. spisd ----- NuttShell configuration (console enabled in UART0, at 115200 bps) with SPI SD card support enabled. .. list-table:: spisd connections :widths: auto :header-rows: 1 * - SD card slot - Pimoroni Tiny 2040 * - DAT2 - Not connected * - DAT3/CS - GP5 (SPI0 CSn) (Pin 11) * - CMD /DI - GP7 (SPI0 TX) (Pin 9) * - VDD - 3V3 OUT (Pin 3) * - CLK/SCK - GP6 (SPI0 SCK) (Pin 10) * - VSS - GND (Pin 2 or 8) * - DAT0/DO - GP4 (SPI0 RX) (Pin 12) * - DAT1 - Not connected Card hot swapping is not supported. usbmsc ------ NuttShell configuration (console enabled in UART0, at 115200 bps) with support for USB MSC and CDC/ACM. ``msconn`` and ``sercon`` commands enable the MSC and CDC/ACM devices. The MSC support provides the interface to the SD card with SPI, so the SD card slot connection like spisd configuration is required. usbnsh ------ Basic NuttShell configuration using CDC/ACM serial (console enabled in USB Port, at 115200 bps).