minik (tiny, in Turkish) is a very small microcontroller module based on the Raspberry Pi RP2040. It contains the minimum support circuitry for the RP2040 plus a smart WS2812 LED.
The module is a fun-sized (13.82 x 22.14mm) 4-layer PCB and it can be used with both 1.27mm pins, socketed on the parent board or manufactured with castellated pads, to be soldered down on the parent board.
Here it is next to its larger cousin, the Pico:
We've been using minik on internal projects for a while; here's the older revision module mounted on one of the test jigs for Electrolama products:
Almost all of the pins of the RP2040 are exposed and can be used, except:
- GP25 - not routed out, connected to the WS2812 LED (use Neopixel library for control)
- GP15 - not routed out, not connected to anything
Working with the tiny modules on their own is not easy so a breakout/dev board is also included in the repo that can be used both with pins and castellated boards:
The breakout has a 3.3V LDO, a power switch, headers for all the module pins and buttons for reset and "USB Boot". There are also (active high) LEDs on each GPIO to help with debugging - these become quite handy especially when there's a lot going on, like clj's prototype setup for clock-buddy:
These helper LEDs can be disabled by cutting a solder jumper at the back of the board.
Pogo pins are used to make contact with the castellated pads (aka half-holes):
To align the pogo pins and also to push down the module-under-test, additional spacer PCBs with some M3 threaded spacers and thumb screws are used:
Aside from looking pretty cool, this works great as a quick way to test boards with castellated edges.
CircuitPython builds for minik can be found here.
(Thanks Adafruit and CircuitPython developers!)
Build your own
Gerbers, BOMs and other manufacturing files are in the Github repository for the module and the breakout. You should be able to use the popular low-cost assembly services to get assembled and ready-to-use boards, although we're not recommending which service to use here.
If you're assembling modules by hand, working with a single module doesn't make sense given the setup time, paste used, etc. so gerbers for a 2x2 panel config (64 x 42 mm overall) are included in the repo. Here it is, in the signature Oshpark purple:
Off-topic: If you're thinking of designing similar board with castellated pads and use Oshpark: Ensure your castellated pads are round as otherwise they will just get ignored.
Why not smaller?
The current revision (A2) modules are 13.82 x 22.14mm, pretty small!
Could they be even smaller? Actually yes, the first revision (A1) modules were 11.43 x 17.78 mm. Here's what they look like compared to the current revision:
The smaller size would work in the "pin-less" scenario where there's just the castellated pads on the edges but when you try to use pin headers, the edges of the headers overlap as there's not enough space between the top/bottom and sides - you end up having to trim off the corners to make them fit. Not ideal.
Even smaller than that? Well, if we get rid of the pins and go for LGA-style pads on the bottom (à la Artemis) we can get down to 11.16 x 17.51 mm:
But at this point, we're just increasing complexity to the point that we might as well get rid of the module and lay down RP2040 plus support circuitry on the parent board.
To summarise: Yes - the modules could be smaller, but the current size is a) small enough and b) chosen to work well for both pins and castellated-pads mounting options.
Yet another RP2040 module?
Fun fact, working title for minik was actually yarp2040: yet another RP2040 module!
Why not use one of the many existing boards out there and design something from scratch?
Simply put: we needed a very small/lightweight and flexible enough board that could be manufactured easily to use on internal projects and at the time, no existing design worked for us.
The official dev board for RP2040, Pico, is too big for what we need. It also doesn't properly expose the USB pins for it to be mounted on to other designs - repurposing test pads as an afterthought is not a proper mounting option.
One of these boards above could work for your needs and you might not actually need minik. Go support other folks doing cool stuff by purchasing their products if that is the case :-)