Skip to content

Repository files navigation

veryTinyPi - an RP2354 Devboard on the Tip of your Finger

It's a very average sized board. Too big, even.

Photo of the veryTinyPi v1.1 3D model


veryTinyPi is a Raspberry Pi RP2354A devboard that measures only 14.2mm x 14.4mm x 6.3mm. It is a stripped-down implementation of the official RP2350 reference hardware design, featuring:

  • An 8-pin header with six GPIO pins, featuring two I2C channels, one full UART channel, or one full SPI channel
  • A BOOTSEL button
  • 2MB flash
  • Dual Arm Cortex-M33 or dual Hazard3 RISC-V processors @ 150MHz
  • C/C++ SDK, MicroPython support
  • A full USB-C port for programming
  • Power ON LED (white)

However, for the sake of being small, it does not include:

  • A RESET button (a pull-up resistor is still included, so RESET functionality is still possible by manually shorting one end of the resistor to GND)
  • The other 24 GPIO pins available on the RP2354A
  • SWDIO pins
  • Other external I/O, such as a MicroSD card slot
  • Mounting holes, or frankly any quality-of-life features that would take up significant space

This board has the same MCU as the official Raspberry Pi Pico 2 while being less than 20% the size.

It's small. Really small.

veryTinyPi is 14.2mm x 14.4mm. That's around the same width and length as two to three grains! It's so small that the USB-C port takes up almost half of the PCB's bottom surface. Here's a size comparison between other tech you might recognize.

Size comparison between veryTinyPi v1.1 and the Raspberry Pi Pico 2W. The Apple iPhone 17 is also in there for fun

If you're wondering why the iPhone 17 in that comparison doesn't look how it should, that's because I cut it off, so that you could actually see the veryTinyPi. You unfortunately only get to see the bottom of the phone.

But... why?

That's a very good question. There are main reasons:

  1. JLCPCB has a $2 promotion on 6 or 8 layer PCBs that are 50mm x 50mm or smaller, and I wanted to try 6 layer PCB design.
  2. There's a lot of single sensor or simple I/O use cases for a microcontroller, for which a full size ESP32 or RP2350 devboard (for example) would be overkill. Particularly relevant are use cases where size matters a lot, like a handheld Digicam, for instance. Almost every other "small" MCU devboard I've seen online feature more GPIO pins and I/O, at the cost of size, which is not needed for many of these applications.
  3. It's fun!
  4. Good things come in small packages.

GPIO Pin Header

The veryTinyPi v1.1 includes an 8-pin GPIO pin header. However, it is worth noting that to achieve the design's small size, a 1.5mm pitch header is used, instead of the standard 2.54mm pitch header. This let's the design cram in more GPIO pins than the footprint would otherwise allow, but does make it more annoying to deal with.

Below is a table of the pin assignments.

Pin # Pin name Description
1 GND System Ground
2 GPIO0 GPIO, can also be used as: SPI0 RX; UART0 TX; I2C0 SDA; PWM0A
3 GPIO2 GPIO, can also be used as: SPI0 SCK; UART0 CTS; I2C1 SDA; PWM1A
4 GPIO19 GPIO, can also be used as: SPI0 TX; UART0 RTS; I2C1 SCL; PWM1B
5 GPIO16 GPIO, can also be used as: SPI0 RX; UART0 TX; I2C0 SDA; PWM0A
6 GPIO17 GPIO, can also be used as: SPI0 CSn; UART0 RX; I2C0 SCL; PWM0B
7 GPIO18 GPIO, can also be used as: SPI0 SCK; UART0 CTS; I2C1 SDA; PWM1A
8 +3V3 +3V3 output; connected to system LDO, so does not support high current.

This selection of GPIO pins allows for two full I2C channels to be used (I2C0 and I2C1), an entire SPI channel, or an entire UART channel. Note that there aren't internal pull up resistors, and so external pull up resistors to +3V3; pin 8 of the GPIO header is sufficient for this purpose. For more information on the functions of each GPIO pin, read the RP2350 datasheet.

Manufacturing

If you, for some reason, want to manufacture this beautiful abomination, here are the files you will need:

The design uses a 6 layer stackup and through hole vias (note: v1.0 and earlier use blind vias, which cannot be manufactured by JLCPCB). However, you won't have to configure this manually if you directly import the latest Gerber zip file. There is also a panelized version of this design, which puts nine copies of the same veryTinyPi PCB in a single board, which allows substantially more PCBs to be manufactured in a single order. This actually decreases the cost slightly compared to the non-panelized version, with the caveat that you will have to manually break off the PCBs once you receive them.

Note that the BOM includes many passive components that may be way overpriced, depending on when you purchase them from LCSC. I recommend shopping around for equivalent 0402-sized passives if possible. The components that you probably shouldn't change are:

  • RP2354A
  • 3.3uH inductor
  • USB-C connector
  • Crystal Oscillator
  • BOOT button

You can change the LDO if you so desire, just make sure that the package is still SOT-23-3L (or modify the PCB layout to accomodate the new footprint). Everything else is fair game.

When you order from JLCPCB, make sure to specify the JLC06161H-3313 stackup, though this shouldn't matter too much since the USB speeds supported by the RP2354 are only 12Mbps.

About

A Raspberry Pi RP2354A devboard that can fit on the tip of your finger!

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors