Frank Bernhardt's 3D-Printable Housing Turns a Raspberry Pi 4 or 5 Into a Slick Passively-Cooled NAS

Hosting up to two 2.5" drives and with an OLED panel at the front for status reports, this four-part case is a clever design.

Maker Frank Bernhardt has designed a 3D-printable chassis that turns a full-size Raspberry Pi into a capable network-attached storage (NAS) appliance — without taking up too much room on your desk or shelf, and incorporating a front-facing OLED panel for status reports.

"When I decided to replace my old NAS with a new one, I didn't want to spend too much money on this," Bernhardt explains. "So I looked around and found that there are many NAS kits based on a Raspberry Pi. Now you may ask what was my motivation to create another one instead of choosing one of the existing NAS models? This is quite easy to answer. None of these available models matched my requirements for 100 per cent. And I also enjoy developing new things."

This compact 3D-printable chassis adapts a full-size Raspberry Pi into a two-bay NAS with front-facing status screen. (📷: Frank Bernhardt)

With nothing off-the-shelf tickling his fancy, Bernhardt set about building something 3D printable on a 200×200mm print bed and compatible with both the Raspberry Pi 4 Model B and the new and more performant Raspberry Pi 5. It had to offer rear-facing power and network ports, internal USB connectivity, and be entirely passively cooled.

The resulting design uses a four-part enclosure, comprising of the main trail, a device rack, and a side lid, plus an optional stand for vertical mounting to minimize footprint. M4 threaded inserts are used for assembly, inserted into the framework by simply melting the plastic with a soldering iron before pushing them home, with room for up to two 2.5" hard drives or SSDs at the top of the case.

The case houses up to two 2.5" hard drives or SSDs, connected over USB to SATA adapters. (📷: Frank Bernhardt)

The device's stand-out feature is a multi-line status screen located to the front, which can flip between acting as a clock, reading out the hostname and IP address with CPU temperature and uptime, displaying CPU usage, memory usage, and disk usage, all read from the host operating system using a simple Python script.

Bernhardt's full guide is available on Instructables, including the STL files and the source code for the Python display script.

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles