Raspberry Pi Cluster @ Home
I recently decided to move most of my meager server workloads from the cloud back to my own home.
If you're asking "why???" Then I would have to ask you to settle down and inform you that it's much more a "why not???" situation.
I wanted to try and learn nixos and k8s (through k3s) and I like the idea of owning and having control over my hardware, that's pretty much the whole reason.
I'm not the first to do something like this and there are plenty of resources from people like Jeff Geerling that are doing the same with similar setups.
Hardware§
I wanted to have a nice clean rack-mountable enclosure for this cluster, but that took me on a path to design and produce several accessories to get more utility out of it, like keystone-oled and qwiic-hat. Here are a few images of the project in it's current state.
Enclosure | Front | Qwiic Hat | Mounted |
---|---|---|---|
BOM§
- 1x racknex UM-SBC-209
- 4x Raspberry Pi 4B
- 4x POE+ hat
- 16x M2.5 15mm standoffs
- 8x M2.5 5mm standoffs
- 16x M2.5 flathead philips screws
- 4x 2x2 2.54mm socket - for RPi POE pins
- 4x 2x20 2.54mm socket with long pins - for RPi GPIO pins
- 4x keystone-oled
- 4x 0.49 inch OLED SSD1306 32x64
- 4x qwiic-hat
Software§
The software driving the OLED screens is a small custom rust app using the userspace i2cdev interface. It shows node IPs, CPU temps and supports animated transitions, but it's not really finished and I haven't released it, yet...
I have tried using the ssd1307fb driver to expose it as a linux framebuffer device, but I couldn't get it working perfectly and decided to drop it all together. I am looking it forward to trying the drm rewrite of the driver though.
Future Improvements & Notes§
LEDs: In the future I would also like to mount RGB LEDs in those currently vacant holes. I have yet to design a board for them, but that's why I have a second unused qwiic/I2C port.
fans: There are mounting holes on the UM-SBC-209 case for 40mm fans, but I don't yet have a way of powering them. I am considering expanding the qwiic-hat to include a 4-pin PWM fan connector to power and control the fan.
Next?§
In future posts I'll write about my setup with nixos, nixops and k3s. Stay tuned!