Small Clean Raspberry Pi 4B NAS Box with 2TB HDD and 350GB SSD

May 16, 2020

alt text

A few weeks ago, I decided to build myself a small NAS box after totally busting my old Western Digital MyCloud whilst trying to recover some files. After a few hours of research, I concluded the best approach would be to use a Raspberry Pi 4B as the logic board alongside a super-fast SSD and an old 3.5” HDD that I managed to hack out my former NAS. Doing so would allow me to use whatever software I wanted on the unit (rather than locked firmware), replace parts easily and also to use the box for more than simply file hosting. The only other goal I had with the creation of this project was to have all the wires totally hidden from view in the same way that the old box did. Unfortunately for me, the Raspberry Pi is designed in such a way that the power connector and Ethernet/USB ports (used for connecting the HDD and SSD) are on different sides of the board meaning that all the official cases for the Pi have cables popping out the sides of them. Another problem I had when looking for a case was that almost none of them were designed to fit an 2.5” SSD let alone a 3.5” HDD inside the enclosure. Thus, I decided to find a box that would fit an 3.5” HDD and then ensure that I had enough depth to stick the Pi and other bits and bobs inside with all the cables routed out the back through a hole. The box I decided to use was found on Amazon.co.uk. It is a water-proof junction box used for electrical work and cost about £14.

Amazon parts list:

Total cost: ~ £97

alt text alt text alt text

Below are the steps I ended up following after a lot of trial and error trying out multiple different layouts of hardware, not having an HDD etc. You can see the battle scars from all the mistakes in the photos. For version two, I will be more careful.

  • Drill two large holes in the rear of the enclosures. One of the cables to be routed out of and the other for a fan to draw in air.
  • Drill a series of smaller holes on the lid of the enclosure to allow hot air to vent from the hardware.
  • Attach a Pi fan to the rear, ensuring the direction of airflow is in, towards the inside of the box.
  • Attach another Pi fan to the lid ensuring the fan is blowing air OUT of the enclosure.
  • Lengthen the rear intake fan cables by splicing some spare wires.
  • Connect two large motherboard raisers together and then connect them to two of the holes of the Raspberry Pi. Apply some hot glue to both ends and quickly stick them to the bottom of the box in a corner (USB-C connector facing INTO the box).
  • After holding the Pi in place for sufficient time to ensure the glue is dry, unscrew the Pi from the now glued on connectors.
  • Install the 3.5” HDD into the bottom of the case by carefully placing if aside of the glued down Pi connectors. I made sure to have some clearance form the bottom of the enclosure to allow air to circulate. In this case, there were already pre-drilled holes.
  • Connect the female-to-female angled SATA connector to the drive. I used this as the SATA-to-USB connector was large and there wasn’t enough horizontal space in the enclosure to fit both.
  • Connect the female-to-female angled SATA connector to the drive. I used this as the SATA-to-USB connector was large and there wasn’t enough horizontal space in the enclosure to fit both.
  • In order to ensure the Pi is more stable and to also hold the HDD/SSD in place, I then used an 4cm angle bracket. I first used another, smaller, motherboard spacer to screw in another hole of the PI on the bracket. I then applied some hot glue to another end and stuck it in place the side of the enclosure. This now meant that 3 of the Pi mounting holes were supported and both the HDD and SSD were gently held down.
  • Connect the SSD using a simple SATA-to-USB connector (non-powered).
  • Connect everything up and route all Pi and HDD power cables out the cable hole at the rear.
  • I attached the fans to the Pi, I used the 3v GPIO pins to keep the box quite as it is sitting under my living room TV. If I was placing the server somewhere more discreet, I would have connected them to the 5V pins for extra cooling power.
  • I followed this excellent guide (https://www.youtube.com/watch?v=bpvlEbdA6qI) by Christopher Barnatt (explainingcomputers.com) and installed OpenMediaVault. Please note that some of the steps in the video are now outdated and are available at https://github.com/OpenMediaVault-Plugin-Developers/docs/blob/master/Adden-B-Installing_OMV5_on_an%20R-PI.pdf.
  • Done! Enjoy a super sleek, tidy and almost silent file server.

For anyone interested, the temps at idle are around:

  • PI: 46°C
  • HDD: 28°C
  • SSD: 39°C