I recently published the little project Nano Pin Protector which provides a shell for the widely used Arduino Nano and its many compatibles.
Now, did you know that instead of using a Nano (which has an 16MHz 8-bit micro-controller with 32KB of flash memory and only 2KB RAM) you could just as well use a Maple Mini module based on an Arm Cortex-M3 STM32 32-bit micro-controller that runs at 72MHz and provides 128KB flash and 20KB RAM memory?
LeafLabs has developed the open source Maple Mini module, which is about the same size as the Arduino Nano and available for about the same price as the Nano. In addition to the original LeafLabs version, there are also several compatible (and cheaper) versions on the market.
Recently, and thanks to Roger Clark, the Maple Mini (and other STM32 controllers) are now supported directly in the Arduino framework. This makes developing for the Maple Mini just as easy (well, almost...) as working with the regular Arduinos.
So, this project generates a similar shell for LeafLabs Maple Mini (or compatible) module which protects all pins from being exposed to accidental shorting with tools or other metallic objects on the work bench.
As a special addition, I found it very useful to have more than just one Gnd and Vcc (3.3V) pin on each side. This facilitates adding several peripherals which need their own ground and maybe 3.3V connection. Thus, in addition to the standard shell that just houses the bare 2x20 pin Maple Mini module, the project also includes versions with 4 or 6 additional pins at the top end. These can be used for adding a tiny 7x2 or 7x3 hole piece of prototype PCB in order to add additional ground and 3.3V pins at the top end of the module, and optionally even two additional LEDs that can be externally connected to any desired output pin.
Right angle pin headers mounted on the upper side of the Maple Mini PCB are used instead of the straight headers normally soldered on the lower side. Two 20-, 22-, or 23-pin single row pin header arrays are needed. This way, all connections to the Maple Mini are horizontal and are safely "hidden" between the upper and lower part of the shell.
The top of the shell has cutout(s) for the LED(s) and integrated RESET and BUT buttons which are printed in-situ and held in position by its waisted shape.
The so covered horizontal pin connector increase the surface of the Maple Mini shell, so that there is enough space on the top shell for a sticker which identifies each pin in a nicely readable size. The stickers contain the basic pin numbers, as well as the additional special uses of the pins. Also, pin capable of pulse width modulation (pw), analog input (ain) and tolerating 5V input (5vt) are indicated on the sticker.
Given that there are several variants of the Maple Mini design which differ just slightly in the placement of the LED and the buttons, their longitudinal position (measured in mm from the USB end of the PCB) is parametrized and can easily adapted as needed.
In addition to the fully parametrized SCAD file, there is also a corresponding PostScript file which generates the labels to stick on the top part of the shell.
The project also includes "read-to-print" STL (3D-objects) and PDF (sticker labels) files for two variants of the Maple Mini:
- MapleMiniB41B48L26: This version has the buttons at 41/48mm and the LED ad 26.5mm from the USB end. I have tested these with the "Baite" version of the Maple Mini, but it should hopefully also work for the original LeafLabs version (if not, please let me know).
- MapleMiniB39B46L25: This version has the buttons placed at 39/46mm and the LED at 25mm. It is meant to work with the "other" (non-Baite) compatible version, but it is not (yet) tested. I just guessed the distances from the provided photos, so maybe some finetuning is still needed...
Update 2015-09-07: I have now uploaded new versions of the PDF pin label stickers which also contain the generic GPIO port/bit names in small letters at the very edge of the label. These files have "pb" appended to the file name.
The Maple Mini protector shells were printed from 3mm ABS filament on my DIY Prusa i3 using a 0.4mm nozzle with 0.56mm extrusion width and 0.252 layer height. I print on a clear mirror without Kapton tape but thoroughly cleaned with acetone and double concentrated lemon juice.
Since the two parts of the protective shell hold to each other by a "click"-type mechanism, ABS seems to be the material of choice for this project.
The "E2" versions requires a little 7x2 hole piece of prototype PCB, the "E3" versions a 7x3 hole piece, as shown on the photos. The first row pins are connected to one of the 3.3V pins, the second row pins are connected to one of the GND pins. The LedA/LedB pins of the "E3" version on the third row are connected to small LEDs (check for correct polarity!) and via a current limiting resistor to the GND signal. I use 470R for the red LED and 560R for the green one.