Making a case - what needs to be inside?

A project log for Automatic Speech Recognition AI Assistant

Turning a Raspberry Pi 4B into a satellite for self-hosted language model, all with a sprinkle of ASR and NordVPN Meshnet

adam-meshnetAdam - Meshnet 11/23/2023 at 15:340 Comments

With the proof of concept ready, I could finally think about the hardware. The shopping list is as follows: 

  1. Single Board Computer
  2. Microphone
  3. Display

While the first point is a no-brainer, with Raspberry Pi stock no longer being a problem, you can easily get your hands on a reasonably priced RPI 4B. I won't need that much RAM, so I opted for the 4GB model. 

The tricky part is the microphone, and as it later turned out, the display. There is plenty of offerings on the market when it comes to microphone arrays. However, they're pretty pricey, and I'd rather stay on the budget-friendly side of things for hobby projects. Shields are absolutely out of the question, as I can't pack them reasonably well with a GPIO display. 

Looking around the web, I came across Playstation Eye, which has a 4x microphone array built-in. It also has a USB connector, works on Raspbian pretty much out-of-the-box, and comes with the bonus of a low-resolution optical sensor. All for around 4 dollars (shipping not included!). Sold!

With the help of the internet, I found some pictures of the PCB inside, laid out on a size reference mat. Perfect!

With a certain degree of confidence, I could start blocking out the case for my device.

I ordered a run-of-the-mill 3.5" 320x480 TFT GPIO Display shield, and while it does the job, I really think I should have opted for something else. The refresh rate is quite low due to the SPI interface being the limiting factor.

The first version of the case was well... Let's say it was the reason I made another version. 

Here is a couple of pictures.

But this idea turned out way too bulky, so I gave it another shoot. This time, I packed everything tightly, reducing the footprint considerably. By that time, all of the other parts had been delivered, allowing me to supplement the pictures I found on the internet with some good'ol caliper measurements.

Once printed, it required some heated inserts, as I had a lot of DIN912 bolts lying around.

I even went as far as printing two batches with differently colored filament to add some flair and ultimately settling down on a red front with a black base.