The reliable Original Prusa MK4S is now available in discounted bundles with the MMU3 and Enclosure. Grab yours today!

Malolo's screw-less / snap fit Raspberry Pi 4 Model B Case & Stands

Please note: This is an adapted version of my Raspberry Pi 3 case (https://www.prusaprinters.org/prints/4038-malolos-…
1,597
7419
219
31 k
updated December 28, 2022

Description

PDF

Please note: This is an adapted version of my Raspberry Pi 3 case (https://www.prusaprinters.org/prints/4038-malolos-screw-less-snap-fit-raspberry-pi-3-model-b) that I modified to fit the Raspberry Pi 4. I do not yet own the Raspberry Pi 4 myself. However Thingiverse user Haz1 (https://www.thingiverse.com/Haz1/about) was kind enough to patiently print several iterations of the case and send me pictures to check the fit. Thank you Sebastian :-).

Since I did not yet print this thing the pictures only consist of a few renders. If you want to see how it will look printed please have a look at the Raspberry Pi 3 version (https://www.prusaprinters.org/prints/4038-malolos-screw-less-snap-fit-raspberry-pi-3-model-b). It's the identical case but with a few differences due to the different board layout of the Raspberry Pi 3 .

There already is a plethora of raspberry pi cases on the internet and the last thing we need is yet another one ... well - I created one anyway ... because I wanted to and I had a lot of fun doing it :-).

I tried to achieve the following key features:

  • Easy to print without support (no steep overhangs or long bridges and stuff).
  • Top and bottom layer printable on print surface (so I could make good use of my recently acquired awesome powder-coated/textured print sheet).
  • No screws or glue needed (snap fit).
  • Slim/compact outline.
  • Acceptable ventilation without fan.
  • Good looking (very subjective - I know).
  • I also wanted a stand to put it on.

I tested the Raspberry Pi 3 version with 0.2mm and 0.1mm layer height. Both worked well so this settings will also work for the Pi 4 version. I would recommend to use PETG for better heat resistance.

If you have any questions, suggestions or requests don't hesitate to let me know.

Designs

There are several different designs for top and bottom

Bottom

  • Base design without ventilation holes
  • Hexagonally shaped ventilation holes
  • Simple slot shaped ventilation slots
  • Hexagonal mesh covering the whole bottom

Top

  • Base design without ventilation holes
  • Hexagonally shaped ventilation holes
  • Raspberry logo as ventilation holes
  • Simple slot shaped ventilation slots
  • Hexagonal mesh covering the whole bottom

Stands

There are three different stands

  • Vertical stand
  • Horizontal stand
  • Flat stand

The vertical one also has a version that routs the Rasberry Pi status leds to the front. To achieve this you have to print the file "Stand_Vertical_LED_Guide.stl" twice using a transparent filament and slide it into the according holes of file "Stand_Vertical_LED.stl". It's difficult to explain - just have a look at the pictures.

OpenSCAD Customzier scripts

Since I wanted to add more variants and features but still give people the choice which features they want, I came up with a solution in form of OpenSCAD Customzier scripts. The model itself isn't designed in OpenSCAD. The scripts just cut/combine different imported stl meshes to generate the desired result.

I still added some ready-to-use stl mesh files but none of those contain accessory slots (for camera and display cables or to have access to the pins). If you need those you can generate a custom stl file via the customizer scripts.

Please note: OpenSCAD really does an excellent job at combining mesh files (unlike Meshmixer which is a bit of an irony). The rendering process may take a few minutes though.

Important: For the customizerscripts to work properly you will need all of the stl mesh files that start with "z".

Using the customizer:

  • Download and run OpenSCAD. I highly recommend to get the latest 2019.05 version since that one has a built in cutomizer gui.
  • Open one of the scripts in OpenSCAD (the files named "...Color1..." are used for single material prints as well).
  • Press "F5" on the keyboard to show a preview.
  • Unfortunately the regular preview has some glitches. To get a less accurate but better looking preview of the end result press "F12" to switch to the "throw togehter" view.
  • You can rotate the preview by pressing and holding the left mouse button and moving your mouse
  • On the right side of the window you will see the customizer.
  • There are several categories that you can expand to reveal the setings they contain.
  • Choose the settings you like. Changes should be displayed almost instantly.
  • To render the final result press "F6".
  • To save the result as stl file press "F7".

Cooling fans

There are two options to mount a 30mm or 40mm cooling fan:

  • Screwless version with rails/sled (see image)
    • This is designed to fit a 30mm PI-FAN or a 40mm Noctua NF-A4x10. Others may fit as well but I only tested those two.
    • The orientation of the sled matters. Make sure you slide it in the correct way.
  • Scew holes
    • This should work for all fans - just use screws to attache the fan as you normally would.

Hint: You do not have to use a dedicated fan hole. You could for instance just use the mesh version and only add screw holes. The Hex or Logo versions might also work very well without a dedicated fan hole.

Multi-Color printing

I don't have a multi material printer but learned that you can create a multi material print pretty easily without special hardware (as long as the multi material part does not span over to may layers - otherwise it gets a pita). By multi material I don't mean switching filament at certain layers (which would not have worked in my case because I wanted the top and bottom layers to be on the print surface) but a true multi color print (as seen in the pictures). Here is a short instruction of how it works:

I used Prusa Slicer for this but I guess it would work with the original Slic3r in a similar way

Setting up Prusa Slicer

  • In Prusa Slicer go to the "Printer Settings" tab.
  • In the "Printer Settings" tab go to "General" settings.
  • Under "Capabilities" increase the number of extruders to the number of colors you want to print.
  • For each extruder you will get an entry on the settings list on the left ("Extruder1", "Extruder2", "Extruder3", ...).
  • I would recommend to change the "Extruder Color" under "Preview" in the extruder settings for each extruder. This is not important but it will give you a better preview of the result making life a bit easier.
  • In the "Custom G-code" settings add "M600" to the "Tool change G-code" (M600 is the G-code command for a manual filament change).

Setting up you print

  • The versions of the case that are intended for multi color printing have each color in a separate STL file.
  • On the "Plater" tab click the "Add" button and select the STL files for all colors at once ("at once" is important here).
  • When more than one extruder is configured and you add more than one file at once Prusa Slicer will ask you "Multiple objects were loaded for a multi-material printer. Instead of considering them as multiple objects, should I consider these files to represent a single object having multiple parts?". Answer "yes" to this.
  • Check the preview to make sure the colors are what you want. If the colors are not correct you can change them by assigning another extruder in the STL file list on the right (second column).
  • Hit "Slice now" an transfer the G-code to your printer.

Printing

Whenever your printer reaches the M600 command it will pause outside the print area and prompt you to switch filament (supposedly your printer supports the M600 G-code command).

Some Tips

  • The order in which filaments are changed is not consistent. I got around this problem by adding the M600 command to the custom Tool change G-code setting as follows "M600 ; Switch to Extruder [next_extruder]". "[next_extruder]" is a placeholder that will be replaced during slicing. I then exported and opened the G-code file in a text editor and searched for the M600 command. I then created a checklist for each filament change to keep track of which filament has to be inserted next. Please keep in mind that extruder numbers in the G-code file are zero based. This means that extruder 0 in the G-code file is actually "Extruder1" in the Prusa Slicer UI.
  • When using the Original Prusa i3 MK3 the printer will extrude quite a bit of filament right after you confirm completion of the filament change to build up nozzle pressure. To avoid this extruded filament to be be dragged over to your print and make a mess don't remove the filament that is extruded during the filament change, so it will be easier to grab the whole thing. Before confirming completion of the filament change get ready to pull the filament waste away when the print head starts moving.

This all probably sounds more complicated then it is. Once you understood how it works it's actually pretty straight forward.

Naming scheme for STL files

There are quite a few different versions of STL files. There are different designs and for each design there are different options with regards to slots for camera and display cables and an access slot to the pins. To help you pick the right files I used the following naming scheme:

Function

  • Bottom = bottom part
  • Top = top part

Designs

  • Base = base design without ventilation holes
  • Hex = hexagonally shaped ventilation holes
  • Logo = raspberry logo as ventilation holes
  • Slots = simple slot shaped ventilation slots

Multi Material

  • SM = single material
  • MM = multi material (X = number of different colors)

Accessories

  • Cam = contains a slot for camera cable
  • Disp = contains a slot for display cable
  • Pins = contains a slot for access to the pins

If you are unsure which file to pick just open it in your slicer and see what it looks like.

Updates

2019-09-28

  • OpenSCAD Customzier scripts have been added
  • Several versions with cooling fan support have been added
  • New case style "Mesh" for top and bottom has been added

Tags



Model origin

The author marked this model as their own original creation.

License