Two Button Version

Four Button Version


The parts are optimized to print as is, oriented centered on your printers build plate. The parts will fit on any printer with a minimum bed size of 120mm x 70mm.

File Name


Time to Print


2 shells
10% infill
50/60 speeds




1hr 10mins


ninjaflex @230
2 shells
20% infill
30/40 speeds

about 15 minutes


made for two Ninjaflex buttons

about 15 minutes


Makes the DPAD (Up, Down, Left and Right) can also be printed in PLA or Ninajflex

about 10 minutes


used to make four-button version top case

about 1 hour


used to make four-button version bottom case

about 1hr 15min


used to make four ninjaflex button version

about 6 minutes


used to make four hard PLA buttons

about 3 minutes each

The settings adove are for reference. You're encouraged to slice these files for your printer using your preferred slicing software.

Support material

No raft or support material necessary here. The overhands are small enough that it doesn't present any problems with most FDM 3D printers.


3D printers tend to vary from one another, so it's no surpise that one printer makes parts tighter than the other. That slight 0.1mm difference is enough to make things not fit exactly. Maybe the mounting holes are too tight, or the speaker doesn't fit. If that's the case, you can loosen them up with a filing tool or adjusting the faces in the CAD model. 


We tested the parts in PLA, ABS, BambooFill and CopperFill. You can use whatever material and color you want to use in this project. 


Minimize warping by using blue painters tape. Apply gluestick or aqua net hair spray on a glass plate if applicable. If you're using a heated bed, be sure to enclose the printer to avoid air drafts.

First layer + Bed Leveling

The first layer should be as thin as a sheet of paper. Kinda of hard to see but here's some stuff to look out for. If you see the layers are not fully bonding together, the nozzle is too far from the bed. If the layers are overlapping, the nozzle is too close to the bed.

Ideally, you want to baby sit the first layer to ensure your bed is leveled. If your printers bed can be adjusted with thumb screws, you'll want to perform leveling "live", while the print is taking place. If you're using a z-probe with auto-leveling, you'll have to manually offset your z-height in gcode.

Ninjaflex buttons

You can use TPE flexible filament for the buttons. The flexible filament works really well here because it gives you a bit of flex and grip when you press the buttons. PLA, ABS and other hard plastics will work just fine for the D-PAD but it might not work so well with the A+B and PiTFT buttons.

Quality Prints

If your new to 3D printing and wondering: how did you get such a nice print? It's mainly because the bed was leveled really good and the slice tool path is clean.

When you're slicing  parts, it's a good idea to check the toolpath and see how the nozzle is generating the walls in the part. Ideally you want to adjust your settings so that the walls are being printed with no infill and just the shells. This makes the wall appear really clean.

Don't be fool by the photos though, if you look carefully you can see we have imperfections and minor warped corners. We printed the blue one in ABS and the purple in PLA - The PLA parts even had a small amount of warping. The ABS part was printed on a makerbot replicator 1. Purple parts were printed on a Replicator 2. Both using makerware.


In order to keep these parts closed, we used two neodymium magents to keep them shut. I recommend gluing these to the two enclosure part before starting wiring. These magnets fit inside the corner standoff located near the bottom roudned corner - you can't miss it! You can use super glue to keep them in place. Be sure to double check the polarity before gluing them!

This guide was first published on May 14, 2015. It was last updated on Mar 08, 2024.

This page (3D Printing) was last updated on Mar 08, 2024.

Text editor powered by tinymce.