Can the Raspberry Pi Pico get any smaller? Pimoroni’s Tiny 2040 is a mere third of the size of a Raspberry Pi Pico, yet it packs the full power of the Pico’s RP2040 SoC and a curated selection of GPIO pins. The reduction in size has seen an increase in price, around three times the price of a stock Pico ($12 vs $4) but there is always a premium for compact design.
The first third-party RP2040 board we’ve tested, the Pimoroni Tiny 2040 not only saves space, but adds features such as a dedicated reset button, a fourth ADC pin and an RGB LED. The board provides an excellent experience overall, though it has trade-offs when it comes to surface mounting and connecting to add-on boards.
Tiny 2040 Hardware Specifications
|RP2040 SoC||ARM Cortex M0+ running at up to 133Mhz|
|Flash Storage||8MB of QSPI|
|GPIO||16 GPIO pins. 7 x Digital I/O, 4 x Analog 12-bit ADC, 2 x I2C, SPI, UART, Debug|
|USB Port||USB C|
|Dimensions||0.74 x 0.7 inches (19 x 18mm)|
Measuring roughly a third of the size of the Raspberry Pi Pico, the Pimoroni Tiny 2040 does live up to its name. As Tiny 2040 is smaller it has only 16 of the Pico’s 40 GPIO pins. The pins that are left are carefully curated to ensure that we have no loss of functionality.
However, the different number and layout of pins ensures that you can’t use the Pimoroni Tiny 2040 with add-on boards / packs that are designed to plug in to the 40 pins on the Pico. So forget about using this with Pimoroni’s own RGB keypad or Explorer Board.
Rather than talk about our losses, let’s think about what we gain with the Pimoroni Tiny 2040. The most prominent addition is a reset button, which may not sound like much but there are times when we need to reset our Pico. Without a reset button we have to unplug the Pico and then plug back in, adding wear and tear to its micro USB port. The reset button connects the RUN pin of the RP2040 to GND, causing the SoC to reboot.
In a huge improvement for anyone that wants to build a controller or something with dials, there are 4 ADC pins instead of the three you get on the Pico. The additional ADC is gained by sacrificing an analog pin used to detect the voltage of the VSYS pin. An extra ADC matters, because you can attach two analog joysticks instead of one as joysticks each require two ADC ports.
Another addition is an RGB status LED, that is programmable via MicroPython and C/C++.With 8MB of flash storage, we have four times the storage capacity of a typical Raspberry Pi Pico, plenty of room for projects and libraries.
Design of the Pimoroni Tiny 2040
The Pimoroni Tiny 2040 fits on top of your fingernail; let that sink in for a moment. The tiny board has everything that we need to start hacking Pico projects, and the USB C port is a more expensive but foolproof connector than the Pico’s microUSB connector . A pleasant addition are pin numbers printed on top of the board; these are logically numbered and their number relates to the GPIO pin number as per the Pico pinout reference.
Tiny 2040 shares the same castellated edges as the Raspberry Pi Pico, enabling it to be embedded into a surface mount project but there is something to consider before doing this. The RP2040 SoC is located on the underside of the board, and it adds around 1mm to the height of the board. This will make surface mount projects a little tricky, requiring either a cut out for the chip, or slightly raised headers that meet the castellations.
Overall, the Pimoroni Tiny 2040 is a lovely little board that crams all that we need into something that can be easily misplaced on your desk.
Using the Pimoroni Tiny 2040
Essentially the Pimoroni Tiny 2040 is a reduced Raspberry Pi Pico and as such all of the tutorials and guides for writing code for the Pico will work with Tiny 2040. There are a couple of slight changes. The BOOT button is typically used to set the RP2040 into a mode ready to accept a new UF2 image. However, on the Pimoroni Tiny 2040, it has a double function and can also be safely used in code as an input, with the button mapping to GPIO 23. The RGB LED is mapped to three GPIO pins, red to 18, green to 19 and blue to 20. We can control these pins using standard on / off toggling, or we can use PWM to create a color mix.
We took our tests a little further and flashed the latest version of CircuitPython, a version of MicroPython from Adafruit which has been used on countless microcontrollers. Everything just worked and, within a few moments, we had a Python shell open and were able to control the PimoroniTiny 2040.
We made a quick demo that turned the Pimoroni Tiny 2040 into a virtual USB keyboard (a USB HID device) which mapped a line of text to the BOOT button. Pressing the button caused the text to be typed into a document. This feature is missing in standard MicroPython, but support is expected to arrive soon.
Uses Cases for the Pimoroni Tiny 2040
So where can we expect to use the Pimoroni Tiny 2040? Given the size we would see the Tiny 2040 being used in embedded applications where space is at a premium. It is easily used with even the smallest breadboard, and we have all the GPIO pins that we would need for most projects.
The Pimoroni Tiny 2040 is ideal for small scale robots, USB keyboards and citizen science projects. Its fourth ADC pin also makes it ideal for any type of controller or control box where you can need four potentiometers or two analog joysticks.
The Raspberry Pi Pico is an already small, yet mighty piece of kit. The Tiny 2040 reduces the size, and yes there is a price increase over a stock Pico, but we are paying a premium for a much more compact unit that has some very-welcome added features.
The Pimoroni Tiny 2040 is not for all projects. Its bottom-facing SoC poses a challenge for mounting it in projects and its unique pin layout means that it won’t work with the ecosystem of packs, aka add-on boards, that are designed to plug into the original Pico. However, if you are building your own project that doesn’t require these add-ons and need a more compact board that packs on extra features, the Tiny 2040 is a fantastic choice.