3D Printed Case for PyPortals

This project is like a mini desktop PC that you can have on your desk and display all sorts of data. The ports are accessible on the side and there’s even a spot to hold a speaker.

The 3D printed enclosure is designed to snap fit so it’s easy to assemble and take apart.

The Whole PyPortal Family

These cases are designed for the new line of PyPortals. The PyPortal original, PyPortal Titano and PyPortal Pynt.

Titano, Pynt and Original

Each PyPortal has it's own size so we designed a case for each one. The enclosures are very similar in design so they have the same assembly. This learn guide will walk through 3D printing and installing the PyPortal.

Open Case Design

The case features extra for more components. The front and back covers are designed to pop open so the PyPortal is accessible for connecting more sensors and components.


Front view of a Adafruit PyPortal - CircuitPython Powered Internet Display with a pyportal logo image on the display.
PyPortal, our easy-to-use IoT device that allows you to create all the things for the “Internet of Things” in minutes. Make custom touch screen interface...
In Stock
Hand holding PyPortal Titano development board with SAMD51, ESP32 Wifi, and 2.4" touchscreen TFT display.Adafruit PyPortal Pynt
The PyPortal Pynt is the little sister to our popular PyPortal - zapped with a shrink ray to take the design...
In Stock
Hand holding PyPortal Titano development board with SAMD51, ESP32 Wifi, and 3.5" touchscreen TFT display.
The PyPortal Titano is the big sister to our popular PyPortal now with twice as many pixels! The PyPortal...
In Stock
Fully Reversible Pink/Purple USB A to micro B Cable
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also fully reversible! That's right, you will save seconds a day by...
In Stock
Mini Oval Speaker with pico blade connector
Hear the good news! This wee speaker is a great addition to any audio project where you need 8 ohm impedance and 1W or less of power. We particularly like...
Out of Stock
Pack of 4 Little Rubber Bumper Feet
Keep your electronics from going barefoot, give them little rubber feet! These small sticky bumpers are our favorite accessory for any electronic kit or device. They are sticky, but...
Out of Stock
8 x M3 x 4mm Machine Screws
Phillips Pan Head

3D Printed Parts

STL files for 3D printing are oriented to print "as-is" on FDM style machines. Original design source may be downloaded using the links below. Reference the file name to see which device the case is intended for.

PyPortal Original

  • pyportal-shell.stl
  • pyportal-cover.stl
  • pyportal-screen.stl
  • pyportal-face.stl

Exploded View

The CAD animation shows how the parts fit together. The case is a parametric model so it's easy to adjust the tolerances. Parameters are set up so that the overall size of the case can be changed without breaking the assembly. The source files includes models of the electronics.

Slicing Parts

No supports are required. Slice with setting for PLA material. 

The parts were sliced using CURA using the slice settings below.

  • PLA filament 220c extruder
  • 0.2 layer height
  • 10% gyroid infill
  • 60mm/s print speed
  • 60c heated bed


The PyPortal PCB is secured to the screen mounting plate with four M3 x 4mm long machine screws. The screen mount is attached to the front facing cover with M3 x 4mm long machine screws. 

Face Plate Installation

The screen mount is secured to the face plate using machine screws. Use 4x M3 x 4mm machine screws to attach the screen mount to the face plate.

Secure PyPortal

Place the PyPortal over the built-in standoffs on the screen mount. The  standoffs with the half cut cylinders are designed to accommodate the display. Make sure the PyPortal is correctly placed on the screen mount.

Secured PyPortal

The PyPortal must be correctly placed in order to be properly secured to the screen mount. Double check to ensure the PCB is flush with the standoffs.

Install Screen Mount

Place the screen mount over the face plate and line up the mounting holes. Use 4x M3 x 4mm machine screws to secure the screen mount to the face plate.

Secured Face Plate

The screen mount must be placed correctly on the face plate. Use this photo to reference the correct placement. Note the mounting tabs are symmetrical.

Install Speaker

The speaker is press fitted into the holder on the side of the shell. The mini oval speaker has a sticky adhesive backing that can help keep it secured to the holder. The tolerances should be snug so the adhesive isn't necessary.

Connect Speaker

Plug in the molex pico connector from the speaker to the speaker port on the PyPortal. 

Snap Fit Face Plate

Orient the face plate with the shell so the USB and micro SD card slot are lined up with the ports openings. Insert the face plate at an angle so the snaps on the side grab onto the nubs on the edge of the shell. Press the two parts together so they snap fit shut.

Install Cover

The cover snap fits onto the back of the shell. The cover features snap fits on the side. Note the cover is symmetrical. Insert the cover at an angle so the snaps grab onto the nubs. Press the two parts together to snap fit them shut.

Installed Case

And that's it! The case can easily be taken apart and there's room for extra components.

USB Power 

The PyPortal can be powered from a computers USB port, USB hub or a 5V USB power adapter.

PyPortal Learn Guides

With CircuitPython, you can make Internet of Things (IoT) projects in just a few minutes. There’s lots of example code, so you can quickly get projects up and running. So if you like Python or just looking to get started, definitely check out Adafruit's PyPortal Learn Guides.

This guide was first published on Jan 08, 2020. It was last updated on Mar 08, 2024.