[personal profile] chebe
I had recently setup a Plex server on a Raspberry Pi 4 (Model B - 4GB RAM). It was working well, but the disparity in the weight of the small Pi, and that of the SSD drive, not to mention the surprisingly stiff cables, meant it would go flying all over the place. So when I saw the cool case in the Pi SSD Media Server tutorial I knew I was going to give it a go.

Well reader, this is a great project, I love the results, but straight up, I haven't encountered this many 'mistakes'/omissions in an Adafruit tutorial before. Never fear, for here is my 'study' guide, born of my suffering, so you don't have to.


First point I'd like to highlight has to do with the Adafruit 1.9" 320x170 Color IPS TFT Display - ST7789.

The circuit diagram shows pin 2 (3V) on the display wired to ground on the Pi. Pin 2 should be left empty, pin3 is ground.

I attempted an extra-credit assignment. Pin 11 is marked Lite, and is supposed to control the display backlight. I wired it to GPIO 18 on the Pi, but I can't get the code to make it work at all. If anyone finds a snippet anywhere that explains how, please do share!


The ST7789 display, 1.9 inch size, with all 11 pins, except Pin 10, soldered to black silicone coated wires. The wire out of Pin 2 (3V, not ground) is cut off and sticking up

ST7789 display soldered up
Photo by [personal profile] chebe



The Rugged Metal Pushbutton with LED Ring - 16mm Momentary is really cool. It has a wonderful weight and texture, and the action on the button is very satisfying. I got one with a green LED. You need to visit the product page for the diagram of which pins are which, the tutorial doesn't make it clear.

Also, the Quick-Connect Wire Pairs they recommend on the Overview page for use with the LED pushbutton actually states that the product 'doesn't work as well on the square or round "illuminated" buttons.' I got them, and can attest to the fact that they just fall off. Don't order them (unless you want them for something else).

I wired the LED + to GPIO 23 on the Pi, so I could use GPIO 14 for the fan signal line.


Messy image of the Raspberry Pi nestled in the main part of the case body, with the nano hat board seated over the Raspberry Pi pins, with most of the electronic components (display, buttons) in place, and an excess of too-long wires loose in the centre of the case

Pi case mid-build, with all the electronics wired up
Photo by [personal profile] chebe



The 3D printed model files are pretty solid. I printed them here in the same filament (ROSA3D PETG Standard Light Green and ROSA3D PETG Standard Black) as the turntable. (Are you noticing a pattern yet? Just like with fabric, I try to use up what I've already started into.) The print-in-place handle is especially nifty.

There are two side panel models included for two different size fans. But the fan they link from the Overview page doesn't fit either of the 3D print model files. It also doesn't have a signal wire (unlike the one in their photos), so I bought one with a signal wire, the Raspberry Pi 4 Case Fan. Which, it turns out, is quite tiny! I was able to attach it (at three corners at least) to the gaps in the 30mm version panel. Good enough, moving on!

(I wired the fan signal wire to GPIO 14, so it's just beside the fans power and ground wires. I also used jumper cables for all three so I could easily disconnect them when taking the side panel off.)


Similar picture to above, showing the messy internals with all the wires. But now the side panel with the fan attached has also been attached. A red and a black jumper cable is left dangling, from when I disconnected the fan (see far below)

Pi case mid-build, with fan panel attached
Photo by [personal profile] chebe



The assembly page is fairly solid, even if the cool stand-off feet they use aren't available anywhere. (And that the fan doesn't fit.) I accidentally attached the grill panel backwards, and then snipped some of the case off trying to make it work. I eventually figured it out. Pro-tip, the circle hole is for the headphones jack on the Pi. I love adding heat-set insets, it's just fun. I've added the mount for the SSD they recommend, but I haven't been able to find it yet. So I'm still using my existing external drive (not pictured). This then is when the fun really begins; the coding!


Similar picture to above, but both side panels are on now, power is connected, and the metal LED button is glowing green

Pi case, build complete, metal LED button lit up
Photo by [personal profile] chebe



The software setup process is my biggest peeve. (And remember, I already had my Pi set up and running Plex.)

The tutorial goes directly from installing the OS, to running the code sample. Which will not work. After installing the OS, you have to go back to the prerequisite guides on the Overview page and run through the middle three tutorials to get the Pi running Circuit Python, and the libraries you need.

Then, and only then can the usual software tweaking fun begin. Short story short, copy display-info.py to ~, and get editing.

First I changed the purpose of the two buttons on the top of the case. The yellow button (closer to the display) toggles on and off the display and the LED on the power button. For less disruption when watching things. The blue button (further from the display) toggles on and off the fan. But the fan annoyed me. Because it is perfectly controllable when the Pi is on. But when the Pi powers off the fan turns on. I could not find any way to tame it, so to be free of its loud tyranny, I disconnected the fan completely. (It doesn't seem to have made a difference to the Pi temperature either way.)

I also tweaked the info display to include the name of the device. You know, just to be nice. The rest was just moving the code around to suit my use-case, and adding some error handling.

When you're happy with the functionality, set-up the script to be called at start-up as a service, and enable the power-button to do the safe shutdown (and power on) thing, as per the tutorial. I skipped the kiosk mode because I will be using Pi remotely.

After all of this, I do love it! It's definitely more stable, and easier to handle without causing damage to precious electronics. It also looks much better.



Fully assembled case, mainly black with green side panels and handle, showing the display, displaying the following details of the Raspberry Pi inside; plexpi. IP: 192.168.0.158. CPU: 35.0'C. Mem: 113/3787 MB 2.98%.

Pi case, build complete, powered up and display displaying info
Photo by [personal profile] chebe

Date: 2022-11-13 12:07 pm (UTC)
From: (Anonymous)
Very cute case
Anonymous but likes cats