[This project first appeared in NODE Vol 01, our independent zine. Check it out at by clicking the zine link at the top of the page.]
Hey everyone, hope you're all doing well. Today I have the long awaited update to the NODE Mini Server, with version number 2.
In case you've never seen it before, the aim of the NODE Mini Server project is to create a cheap, easy to make hardware node which allows us to start building out the physical infrastructure for the decentralized web. Here, we begin to replace remote servers with nodes that the users themselves own and operate.
- Youtube Mirror
- Source Files
The design consists of two PCBs sandwiched between a 3D-printed frame. This makes for a surprisingly sturdy and easy to assemble device.
Inside is a Raspberry Pi 3B+, with future options of upgrading to the more powerful Asus Tinker Board and other SBCs. This choice allows you to run various node applications at the same time, depending on your needs. Bitcoin, Lightning and Ethereum nodes, payment servers, IPFS and dat servers, VPNs, VPS', and other self hosting servers are all ideal for this platform.
The internal 2.5-inch harddrive or SSD that's attached to the device should provide more than enough storage space.
It's pretty minimalist, with just the screws and air holes drilled into the top case PCB.
The underside reveals the bottom of the adapter PCB, and besides looking cool, this was done to further reduce the size of the device.
There are no other defining features, other than the rear, which has some more air vents as well as the ethernet, USB, power, and micro SD card ports.
You could easily put something similar together without modifying an SBC, but it would be a maze of wires, and much bigger. This device measures in at 152x88x25mm, and can basically be plug and play.
Doing it this way allows us to make a device that uses cheap, readily available parts, and has many software options. The hope is that other people begin to iterate and sell these so it becomes a standard and we can get them out to as many users as possible.
Another cool thing about the open design is that you could use custom colours for both the PCBs and 3D printed frame, to customize the design to your tastes.
Since this server is most likely going to be running often, if not 24/7, I wanted to do a few things to keep the temperature down.
Firstly, the top PCB used on the case is aluminium-based, meaning under normal loads it stays fairly cool, and acts as a heatsink.
The micro SD card on the Pi has also been moved off the board itself and away from the heat, hopefully mitigating any of the temperature-related problems they can sometimes suffer from.
There's also a temperature-controlled blower fan you can set up in Raspbian, which automatically turns on when the Pi's CPU temp reaches a certain level, turning off again when it's cooled down.
The circuit design is the same used in a guide from HackerNoon , so follow that to set it up. Also, I found a better script than the one they used , so check that out as well. Links to these are on the NODE site.
If you're going to be hammering the server 24/7 with heavy loads, you could optionally wire the fan directly to the 5V and Ground GPIO pins so it runs continuously. Again, there's lots of flexability here, so you can set it up how you like.
- 3D Printed Case (inc. struts)
- 3D Printed HDD/SSD frame
- Bottom PCB (1.6mm thick)
- Top PCB (1.6mm thick, optionally Aluminium-based)
- Micro SD Card PCB (0.8mm thick)
- SATA Adapter PCB (1.6mm thick)
- 8x M2.5 x 10mm Screws
- 6x M2.5 x 8mm Screws
- 6x M2.5 Hex Nuts
- 4x M3 x 6mm Screws
- Rasbperry Pi 3B+
- 100mm 4pin 1mm Pitch FPC Cable (Contacts on same side)
- 2x 4pin 1mm Pitch FPC Connector (84981-4)
- 2.5-inch HDD or SSD (7mm form factor)
- USB-A 2.0 Female Port
- Standard Micro SD Slot (Push/Push)
- 5.5 x 2.1mm Right Angle DC Jack (694106301002)
- SMD RJ45 Jack (43743-8101)
- S8050 Transistor
- 30x10x10mm 5v Blower Fan (3010B)
- USB SATA Adapter (W25P1)
- Self-adhesive Rubber Feet
The internals comprise of two adapter boards, which connect the Pi to the 2.5-inch Hard Disk (or SSD).
Basically all of the modifications require something to desolder components. I used an electric vacuum pump, which makes life extremely easy, but if you only have a spring-loaded desolder pump, desolder wick, and some patience, that will work too.
Step 1. The first thing we need to do is desolder the front 3 ports (i.e. the ethernet, and 2x USB), along with all the GPIO pins.
Step 2. Plug in the micro SD adapter, then screw the Pi into the adapter board, making sure the holes on the Pi and adapter line up.
Then solder the micro SD pcb, as well as the rest of the GPIO, USB and Ethernet holes to the PCB below. The easiest, and nicest looking method I found that works involved using the legs of resistors or thin solid single core wire to bridge the gap.
You push the leg through the hole, and bend it so it doesn't move. You then flip the board over, snip the excess off with flush cutters, then solder it in place. Now flip back over to the other side, snip that side, and solder that in place.
Step 3. You then need to remove the USB port from the SATA adapter, and do the same procedure, replacing it with the small PCB. Then solder the flex connector to the SATA adapter. This lets us connect the two halves together with the little flex cable.
Step 4. Now solder the remaining ports, the transistor, the FPC connector, and the fan to the board. I added a little symbol to show which way around to place the transistor, and it's worth mentioning, this is when you'd solder the fan directly to the 5V and Ground GPIO pins if you want it to run constantly.
Step 5. Screw the 3D printed brackets onto the hard drive or SSD you're using, with the M3 screws, insert the modified SATA adapter, then connect the flex cable.
Step 6. Screw the case halves to the bottom PCB, then push in the 3D printed struts, which stop the case moving about. If you have a M2.5 thread tap, that'll make screwing everything together way easier, but you can do it with a bit of elbow grease.
Step 7. Connect the other side of the flex cable to the board, place the hard drive into the case, and screw the top PCB on, securing everything in place.
Step 8. Finally, flip the device over, and add the self adhesive rubber feet. I found some cool square ones that I cut diagonally, but you can use any type you want.
Now all you need to do is set up your operating system, and power everything on. You'll need a barrel jack 5V power supply, with at least 2.5Amp output.
When I tried on the previous model with regular micro USB power supplies, sometimes it didn't have enough juice to keep it running consistently.
That being said, you could still use an inexpensive USB to 5.5 x 2.1mm barrell jack cable if you had a powerful-enough USB power supply.
So that is the new NODE Mini Server. Hope it was worth the wait. Like I said earlier, I think this design or something like it could become a standard for DIY mini home servers in the future, and perhaps some of you start building or selling these so we can get them out there, and start testing, developing, and improving the features.
I was thinking of opening a limited preorder on this, depending on what the response was like, then I could get a load of these made, for testing and experimenting. If you do start making them yourself, be sure to let me know. Alright, thanks for watching.
Music: Xtract - Audiotool Day 2016 (CC License)