Short Stack

A small cubiform stackable development platform.

Similar projects worth following
A stackable development platform that is reasonably small and low(ish)-power but still has some horsepower. I wanted enough features on the main board that I could use it as a sensor data logger as well as perhaps the basis for other projects and prototypes.

(On the initial prototype, I figured what better way to show that POST was successful than with a flux capacitor...fluxing)

The basic premise is that multiple boards can be stacked together depending on the project need. This isn't unique, but I wanted something a bit smaller than the usual 100-mil header variety.

Existing boards:

  • A primary controller board
  • A programming jig / breakout board
  • A Sharp LCD board (a low-power high-contrast LS013B7DH03) which may be placed on the top or bottom of the stack
  • A Bluetooth BLE (Smart) NRF8001 board
  • A PWM / LED driver / servo controller board


  • An environmental sensor board
  • An IMU board

The primary controller board consists of:

  • Atmel SAMD MCU
  • Micro-USB receptacle
  • LiPoly charger (via USB power)
  • Buck/boost converter, 3v3 primary rail
  • JST-PH connector to LiPoly battery (e.g. LiPoly batteries from Adafruit)
  • External RTC (w/ 32.767khz crystal) for keeping accurate time between MCU resets (or when in deep sleep)
  • microSD card connector (hinged, mounted on "bottom" side)
  • FET to isolate power to microSD (some cards don't have the best standby power)
  • FET for I2C pullups (allowing power-down of other layers that use the I2C bus as well as saving some energy when not using the strong pullups for faster speeds)
  • USB VBUS / LiPoly ("ideal diode switch") uninterrupted power rail available (hot plugging USB takes rail from LiPoly to USB voltage). Under FET control.
  • Two right-angle momentary switches
  • An RGB indicator LED (user)
  • An SD activity LED
  • A LiPoly charging indicator LED
  • Compact rigidly stackable form factor (1.5 inches square w/ m2.5x6 standoffs)

  • New revision designed w/ KiCad

    Charles Aylward09/29/2016 at 00:22 0 comments

    New version designed with KiCad. Yet one more connector orientation. I might have been distracted and I left a hazard for SAM D21 compatibility. So I will respin this.

    This revision has a more suitable RTC w/ a 6.8mm backup battery retainer on the bottom. I swapped out the hinged SD socket for a side-entry push-pull.

    I'll release the schematic, layout, BOM, etc. after I've verified everything.

  • Going to revise board...

    Charles Aylward07/28/2016 at 07:19 0 comments

    Short Stack is suiting my purposes well, but I've decided to rev the board to bring the cost down a bit (the lipoly charger and power path have much more configurability and control than needed). I'm also looking at using the SAM L21 which would cut runtime current in nearly half (theoretically). The L21 also adds a few interesting features (op amps). I'll also max out the flash as things get really tight if you want to, say, use both FAT on the microSD and another heavy stack like BLE (There's plenty of room if you use the SD raw without a file system). Additionally, I want to source different FETs (decrease footprint, lower on resistance, lower leakage) and inductors (better availability).

    After I verify the next revision, I could release all of the design files and libraries if folks are interested. I'm also open to making boards to order.

  • Office Flooded...

    Charles Aylward07/19/2016 at 22:00 2 comments

    No updates on this project. Office flooded in April. Luckily my gear was spared, but I temporarily lost my work space.

  • LCD terminal driver & font...

    Charles Aylward02/09/2016 at 01:23 0 comments

    I finally got around to writing a driver for the LS013 LCD screen. I made an ASCII font table and rudimentary "terminal" API. I wanted something really small, so the font only has numerics, punctuation, and capital letters. Lower-case letters would nearly all look the same. ;) I have the draw code sideways with respect to its mounting position, but it was the quickest way to get something on the screen. The terminal draw code requires zero pixel memory on the MCU. Easy enough to modify which direction it "scans" from.

    Sorry, a bit of a boring log in this picture:

    Side view showing the side spacers (there's a bit of slack in the M2.5 holes in the acrylic, I should have aligned the pieces a bit better before snapping a pic)

    ...also, I forgot to make a plain acrylic pane with no "branding" on it, oops.

  • Laser-cut acrylic guards...

    Charles Aylward02/08/2016 at 08:14 4 comments

    A bit of a diversion, but I wanted to see what some laser-cut acrylic shields would look like (first time I've ever made anything with acrylic).

    Small top and bottom guards on the main board + 16-chan servo controller configuration (there is enough space between the bottom acrylic and the main board to host a LiPoly):

    Also, outer rings that can be stacked to make a solid case:

    Here I have the small board-sized top and the rings together (they mount into a full pane on the bottom with appropriately spaced holes). Alternatively, one could just mount the boards on the standoffs without the board-sized top and use a full-sized pane on top (made with this batch, includes the engraving as well, but not shown)

    You cannot see it well in this photo but there are also outer rings with cuts for a USB plug to fit in. They can also be oriented to provide access to the two user buttons, but was not done for this picture.

  • PWM board reflowed.

    Charles Aylward01/21/2016 at 18:23 0 comments

    After a bit of a break with the holidays, got back to putting some of the various boards together. Reflowed the simple PWM board and hand-soldered some right angle headers to it. Wrote up a quick servo demo (activated when pressing switch 2), seen below.

    I admit to debugging this for _several_ hours (it's always the simplest of boards!). It would work fine and then stop ACK'ing it's I2C address. Eventually I found that I had a dry joint on one of the I2C address-select pulldown resistors that seemed fine under test because the pressure of the continuity probe closed the circuit. I have a big fat note about avoiding this issue from another project and yet I managed to fall victim to it again. Anyhow, servos! LEDs! Backlights! Gate drives!

  • Changed battery connector to a JST-PH

    Charles Aylward12/12/2015 at 08:19 0 comments

    Real small update. While everything is functional with the current board, I still need to rev the board due to the poor land pattern I had for the JEDEC MO-203 (aka SOT-353-5 aka SC-88A aka SC-70-5), so I decided to do a little component placement clean up. While I was moving things about, I decided to change the battery connector from a PicoLock to a JST-PH. The PicoLock is nice as it keeps the overall profile very thin, but the availability of LiPoly batteries prefitted with JST-PH connectors (Adafruit!) makes having a JST much more convenient. With its relatively large lands it was rather hard to find a place for it, but after moving some things around, I managed to squeeze it in.

    (bottom side shown (from top))

  • Quick peep at latest main board...

    Charles Aylward12/03/2015 at 18:23 2 comments

    Assembled the first of the QFN version w/ 0402. Did a visual inspection...all joints look good however one of the footprints for a JEDEC MO-203 part looks functional but a little suspect, so I'll be double checking that footprint. Will do a continuity check and power it up soon.

    Reflow looks good. So far, been very pleased with OSHStencils...

    The land pattern for the IC marked VJ is rather questionable... :/

  • LCD Fit Test

    Charles Aylward11/30/2015 at 23:49 2 comments

    Quick fit test. Soldered up the LCD board and mounted the screen. Perfect fit on the flex to molex ZIF on the backside. Huzzah trigonometry!

  • A better connector/standoff combination...

    Charles Aylward11/22/2015 at 08:51 1 comment

    FCI makes a rectangular connector with dimensions that, when fitted male to female, fit the 6mm between boards perfectly. The Harwins were 1/2 a millimeter off which works but a gap is visible.

    FCI on first (top) layer, Harwin on second...

    Will be looking at the LC situation of lines running through the connectors soon. 100khz I2C was functional with 8.2k pullups (the top board has a bunch of environmental sensors), but I haven't hooked anything up to the scope yet.

View all 12 project logs

Enjoy this project?



Machinehum (Ryan Walker) wrote 07/06/2017 at 03:43 point

Really cool project, where is your repo hosted? I kinda wanna build some

  Are you sure? yes | no

Craig Hissett wrote 03/09/2017 at 18:21 point

Hey buddy - are you still working on this project?

  Are you sure? yes | no

Charles Aylward wrote 03/20/2017 at 05:13 point

I just sent out a version to Oshpark today that has the small fixups it needed for SAMD compatibility. I'm going send off the prototyping boards and a sensor board this week as well. As soon as I verify the layout I'll post schematics etc. Maybe make a small batch.

  Are you sure? yes | no

Joao Ribeiro wrote 07/19/2016 at 22:20 point

why not add another stacking axis/side?

  Are you sure? yes | no

Charles Aylward wrote 07/22/2016 at 06:32 point

Do you mean, for example, being able to stack off of the "sides"? I suppose it would be possible if someone made a separate board that did just that. The space is very limited on the current design. It also depends a little on what you want on your add-ons. A stack of three boards using pin headers, even 1.27 pitch, already starts to severely limit the of serial busses (e.g. SPI) due to the added capacitance and inductance on the lines. If you are stacking off another axis, you'd have to find another mechanism to make it rigid. The M2.5 stand-offs make it quite rigid and robust.

  Are you sure? yes | no

Joao Ribeiro wrote 07/19/2016 at 22:20 point

why not add another stacking axis/side?

  Are you sure? yes | no

Stephen K wrote 12/10/2015 at 18:15 point

I really love this, especially along the lines of Mini-cubesat systems and autonomous robots.

  Are you sure? yes | no

zakqwy wrote 11/17/2015 at 18:16 point

Great meeting you this weekend. Awesome to see the Short Stack in person!

  Are you sure? yes | no

hyperzap wrote 11/06/2015 at 11:30 point

How do all the boards in the stack mate? whats the part number?

  Are you sure? yes | no

Charles Aylward wrote 11/06/2015 at 23:43 point

The connectors are 2x6 pin 1.27mm pitch (made by Harwin). The latest revision (still in the mail) has these in a better orientation.

Male side:

Female side:

I'm also looking at these ones by FCI and

  Are you sure? yes | no

hyperzap wrote 11/07/2015 at 04:52 point

Digikey kills Aussies :( Im trying to find something identical on Aliexpress / fleabay for a few cents. So far all I have found are 2.54mm stackable headers, or SMT 2.54mm ones with undesirable numbers of rows. Havent found any 1.27 ones cheap, but thats probably for the best as my soldering skills are not quite turnt.

  Are you sure? yes | no

Charles Aylward wrote 11/07/2015 at 07:27 point

@hyperzap I'm of no help in what would be cheapest in AU. The connectors are a bit pricey (connectors always are SFAICT). Buying the bulk two-row male 1.27mm pins and trimming them to size works, but that won't work for the female receptacles. You'd have to hunt down the correct size. For soldering the smaller pitch stuff, it's easy if you use solder paste. Run a bead of paste across all of the pads, place the connector down, and run a flat-tipped iron across the pins/paste.

  Are you sure? yes | no

Joseph Pruitt wrote 11/04/2015 at 19:32 point

Will you be my new dad 😂

  Are you sure? yes | no

Craig Hissett wrote 11/04/2015 at 10:46 point

This project would be simply BRILLIANT for robotics. I, for one, would love to be able to put together a controller and add the extra layers to provide the functions I need. This stack would be far smaller and far more useful than any Arduino + shield combinations.

In fact I have a few toy Wall-e robots; I have hacked two using Arduino-based solutions, and it was a tight squeeze. When I ever get around to hacking my third and final one I'd love to use something like this. Control board > Motor driver(to drive two motors) > Servo board (for 3 servos) and it would be alive!

You could even look to adding an ESP8266-based board to add easy wifi to projects :)

  Are you sure? yes | no

Charles Aylward wrote 11/05/2015 at 05:35 point

Thanks! I intend on using it for a few small robotics projects myself (I might do a PCA9685 / motor driver combination board). Aye, Arduino boards are pretty big and get _real_ big fast with one or more shields. The Bluetooth Smart (BLE) board worked ok for what I wanted from it, but the first version has somewhat limited range. I will probably look into a wifi board as well. 

  Are you sure? yes | no

Craig Hissett wrote 11/05/2015 at 07:04 point

Well it is safe to say that I am lokking forward to seeing how this motherlover develops.

Awesome wokrk mate :)

  Are you sure? yes | no

racethesunlive wrote 11/03/2015 at 22:24 point

If you made these 36x36mm and 30.5mm spacing between holes they would stack perfectly for drone/quadcopter use. All current stacking boards for drones use that size/dimension.

  Are you sure? yes | no

Charles Aylward wrote 11/04/2015 at 07:15 point

Oh, interesting! Thanks for the tip! I've been sort of ignoring rotorcraft projects because I know it's something I could easily get obsessed with. :) A few quick searches turned up lots of cool stacks in that form factor. The M3 standoff size seems a little unfortunate.

  Are you sure? yes | no

Machinehum (Ryan Walker) wrote 11/03/2015 at 05:35 point

Awesome :)

  Are you sure? yes | no

Charles Aylward wrote 11/04/2015 at 07:09 point


  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates