# CUBE I have various small computers running services and workloads for me. I would like to keep the clutter to a minimum and make the hardware look organized. There are many mini-rack projects out there, this is mine. ## Requirements - 6U of rack-space - Looks great - I would like it to be a cube - single power cord to plug in (so it needs a PDU) - single network cable (so it needs a switch) - "low" noise ## Components - the rack itself - compute - network switch - power distribution - remote control - user interface - heat management One item that is explicitly _not_ a component of this setup is storage. I have a NAS device that will not fit into this build. As much as it would be fun buying all the parts to build a mini-NAS, I do not need to spend time or money on that right now. ### the rack itself #### corner joint Print iterations (top is most recent): ##### Settings CAD file "field-rail-joint", model "corner joint v3" Print settings: 0.10mm FAST DETAIL Filament setting: Prusament ASA Printer: [[prusa-mk39-8db42a]] Supports: None Infill: 15% Brim: yes, 5mm Other print settings: - brim size 5mm Filament used: [[filament-ASA-white-6c7e58]] ##### Iterations ###### 20251229 yx97wx Same as before only printed at 40% speed. One with vertex pointing up ('C') and one with it pointing down ('D'). Every one of these so far has wrinkles on two of the six faces that are vertical. - the models have 3 legs, and 3-fold symmetry - one leg is pointed either 0 (N) or 180 (S) - on this plate, the legs with wrinkly vertical faces are pointing to 60 (NE-ish) and 240 (SW-ish) The wrinkles are still present, but it's better than the last iteration. The too-acute corners is much less of a problem on this iteration. ###### 20251228 yx97wx Two instances of the model, one oriented with outside vertex facing up ('A'), one with it facing down ('B'). The plate had supports everywhere. Very wrinkly, on both orientations. Edges are still way too acute. ###### 20251224 b0670d Adopted "Settings", above. Plating: - 4 instances - clustered close together, tesselated - oriented with outside vertex pointed up Still have a problem with warped or wobbly faces. ###### v1 - print it upside down (like a pyramid instead of a caltrop) - cut off some of the base (to make a bigger footprint) - outer corner should be a hexagon instead of a triangle! Outer profile is an octagon: 19.9mm across major faces, 20.4mm across minor faces. 4 channels in the minor faces are each 2.4mm deep and 3mm across. Wall thickness is 1.8-2.1 mm #### rails I bought some R20 and R10 rail from Teenage Engineering. It's the same stuff that's in their [Field Desk](https://teenage.engineering/store/field-desk), though the R20 rail I have is not drilled. - [ ] #project #homelab #cube-lab cut 100mm from each rail, try drilling and tapping them (M6) 1. I have (4) 1 meter lengths of R20 rail, and (3) 1 meter lengths of R10 rail (drilled). 2. because of the shape of the corner joints, the rails touch at the inside corners. 3. The minimum interior width for a mini-rack (10" standard) is 222.25mm 1. this is too short, because I don't want to drill rack-mounting holes in the rail itself. I'd rather use printed flanges. 4. My recommended interior width is 254.00mm 1. This is also slightly too small, because the flanges need thickness around the rail 5. Each U is 44.45mm tall, so a 6U rack will either be taller than a cube or have dead space on the sides, and a 5U rack will either be shorter than a cube or have dead space at the top and bottom 6. I will need (12) edge pieces. If they are all equal in size they can be up to 333mm. If they are as small as possible they will be 258mm or so, which means each 1m length will have a maximum offcut of 226mm. 7. I've previously tasked myself with cutting off 100mm of one of the stock pieces, to test drilling U holes in it. This is probably a bad idea unless I can use CNC to drill the holes. I don't think I could get them looking good by hand. But maybe it's worth a test. 8. If I cut 100mm off, and then use the rest for a large-as-possible cube, it'll be 300mm inside clearance. This would give a whopping 23mm (0.9in) between the inside face of the rail and the outside of the rack-mount area. Too large by far. 9. I like the idea of 6U more than 5U. More room for toys. 6U needs a minimum of 266.7mm height. If the rails are exactly 266.7mm, the gap between the inside face of the rail and the outer edge of the rack-mount area is only 6.35mm. 10. Then again, if the rails are exactly 266.7mm, there is no gap vertically. If I want the vertical margin to be some proportion (say, 0.62) of the horizontal gap... `2h+266.7 = 2w+254.0` and `h=0.62w` so `2*0.62w+266.7=2w+254`. Reduce `12.7=0.76w` so `w=16.7mm`, and total rail length is 287mm. 16.7mm is two-thirds of an inch, which is quite a large space, but depending on the flanges may be necessary. - [ ] #project #cube-lab #3dp design a rail flange that would bolt on with the A10 clamps - [ ] #project #cube-lab could the flange fit cage-nuts? #### flanges I could buy rack flanges (in the form of a full cabinet) and mount them to the rail: https://deskpi.com/products/deskpi-rackmate-t2-rackmount-12u-server-cabinet-for-network-servers-audio-and-video-equipment (this one has threaded holes, it looks like) - [ ] buy the [Soundtown 2-post open frame](https://www.soundtown.com/products/2pf-6a) for parts ([cheaper when refurbished](https://www.soundtown.com/products/2pf-6a-r), also cheaper when [8U refurbished](https://www.soundtown.com/products/2pf-8a-r)) Or, I could 3d-print the flanges I need. Or I could pick up some aluminum angle, drill and possibly broach holes in it, and that way fabricate my own flanges. My first printed design could use revision. The main guiding assumption should be "the cube frame is already locked in place. Now put servers and things inside it.". This means any flanges must be bolt-on without sliding in from the end of the rail. I have a few A10 clamps I could use for this, but they're expensive so I probably shouldn't expect to buy more. Maybe I could print plastic flanges that snap onto the R20 rail? Could I get some 1/8" aluminum sheet and bend it into hooks that when paired together will "grab" the rail, and can be temporarily clamped together using a cage nut?? I've been looking for an excuse to acquire a shear/roll/brake... ### Compute - TuringPi cluster (in an ITX enclosure, probably 2U full depth) - The [Turing Mini ITX Case](https://turingpi.com/product/turing-mini-itx-case/) is 240mm wide. A 10" rack is 222.25mm inside clearance. It's also 100mm tall, so needs 3U (133.5mm), but I could install a 3U shelf and grind away some of the rails? Center-to-center on the outer two holes of a 3U shelf is 120.65mm, so I could have three screws per side even. Nah, 3U is too much to give up when the same board in a different chassis can be 2U instead. - https://www.myelectronics.nl/us/10-inch-2u-mini-itx-case.html - https://rawhardware.com/r-case-7-mitx-10 - CM5 might be drop-in replacement for CM4?? - RK1 is a beast and I should fill the TuringPi cluster with those - LattePanda - home assistant - https://hackergadgets.com/products/nvme-and-poe-hat-for-raspberry-pi-5 ### Network Switch A managed network switch, like the L009UiGS-RM ($120). One benefit of this is it's 0.5U. And there's a 0.5U patch panel available from DeskPi too! - [black](https://deskpi.com/products/deskpi-rackmate-accessories-10inch-12-port-blank-keystone-patch-panel-cable-management-rack-for-t0-t1-server-cabinets) - [black with Cat6 keystones](https://deskpi.com/products/deskpi-rackmate-accessory-10-inch-network-switch) - [white with Cat6 keystones](https://deskpi.com/products/deskpi-rackmate-12-port-cat6-network-patch-panel-white-10inch-0-5u-patch-panel-for-t0-t1-t2-server-cabinets) - [7U black with Cat6 keystones](https://deskpi.com/products/deskpi-rackmate-7-inch-0-5u-cat6-network-patch-panel-with-7-ports-for-tt-server-rack-network-cabinet) ### Power Distribution https://deskpi.com/products/deskpi-dc-pdu-lite-7-ch-0-5u-for-deskpi-rackmate-t1 ### Remote Control [One build](https://github.com/geerlingguy/mini-rack/issues/11) uses - PiKVM and an EZCOO switch for controlling all machines - Remote access via Tailscale installed on PiKVM A JetKVM ([website](https://jetkvm.com/), [kickstarter](https://www.kickstarter.com/projects/jetkvm/jetkvm?ref=5sxcqi)) for $69 does this "remotely" but I also wonder if... can each instance just allow some RDP on it? and then I need an RDP client locally. hmm (I backed the JetKVM on 2025-02-28) ### User Interface How much is this server going to be self-manageable? As in, with a full screen, keyboard and pointing device I can use to connect to any of its nodes? If I have a screen for management, and I want a screen for monitoring, do I use one screen or two? I like the idea of setting up lots of little dials, like by putting 7 little screens behind [this D-type patch panel](https://deskpi.com/products/deskpi-rackmate-accessories-10-inch-1u-d-type-patch-panel-rack-mount-7d-rackmate-xlr-hdmi-av-rj45). Each of those holes is about 1" diameter. There's even a [baby 7" wide version](https://deskpi.com/products/deskpi-rackmate-7-inch-d-type-patch-panel-rack-mount-with-4-ports-for-tt-server-rack-network-cabinet?pr_prod_strat=e5_desc&pr_rec_id=6050317da&pr_rec_pid=8428891701404&pr_ref_pid=8325144969372&pr_seq=uniform) with 4 holes. Or use a larger touchscreen display? - [1U 6.91"](https://deskpi.com/products/deskpi-6-91-inch-touch-screen-1424x280-tft-lcd-display-10-inch-1u-rackmount-monitor-for-deskpi-rackmate-t0-t1-t2-server-cabinets). Maybe even with the D-type as bezel on top? - [2U 7.84"](https://deskpi.com/products/deskpi-7-84-inch-touch-screen-1280x400-tft-lcd-display-for-10-inch-2u-rack-rackmate-supports-installation-of-t0-t1-t2?_pos=1&_psq=screen&_ss=e&_v=1.0) - [3U 9"](https://deskpi.com/products/deskpi-9-inch-1280x720-tft-lcd-touch-screen-10-inch-3u-rack-mount-display-for-deskpi-rackmate-t0-t1-t2-server-cabinets?_pos=2&_psq=screen&_ss=e&_v=1.0) - screen for local operations - it's not a o'scope cathode is it? https://scopeclock.com/products/scope-clock-in-clear-plastic-case?variant=41204675805379 - screen for monitoring node performance - or is it a button and a thermal printer? I don't need a screen to be on all the time, or taking up rack space all the time. - keyboard - daisy? atreus? - something with a builtin pointer? - pointing device - arc mouse is small, could slot in somewhere - ploopy nano, except it doesn't have buttons ### Heat Management - vent panels: https://www.reddit.com/r/minilab/comments/1j7e6as/10_inch_3d_printable_vents_and_40mm_fan_bays/ - could I put little fans in this? https://deskpi.com/products/deskpi-rackmate-accessories-10-inch-1u-d-type-patch-panel-rack-mount-7d-rackmate-xlr-hdmi-av-rj45 ## Appendix A: rail thoughts I would love to use R20 rail from teenage engineering. That has hole spacing at 25mm. The pieces that ship with the field desk come in 26-hole and 31-hole lengths. I'm assuming for this that I have to buy in these lengths only. Conclusion: I've saved a draft email to teenage engineering with a parts list. I expect it to cost maybe $1200. ### R20-A10/V The A10 clamp could be placed vertically to connect each rack vertical, and take up 1 "U" of space overall but allow for the outside rails to be right up against the server racks horizontally. This results in a cube of R20 with a side length of 254mm. Each of the 12 rail sides is 254mm, which would be cut from 11 holes-worth of R20. I can manage this using (6) lengths of 26-holes each. 0.92h + 10.16h + 0.84 + 10.16h + 0.92h = 23h I can fit (2) rails in each 26-hole length, so I need (6) 26-hole lengths for a total of (12) rails ### R20-A10/H If I need more room around the racks (for ventilation), I can bump the rails out by putting the A10 clamps horizontally. This will require that I either put gaps between my Us, or cause the racks to be wider than the standard (need to fit full 15.9mm ears on the racks). So say that I bump the clamps out, so the rail side length is now 308mm, or 12.32 holes. 0.84h + 12.32h + 0.68 + 12.32h + 0.84 = 27 holes d'oh! so I can get (2) rails in each 31-hole length, so I need (6) 31-hole lengths for a total of 12 rails. ### R20/A20? Maybe A10 clamps aren't sturdy enough, or look weird or something? If I use A20 clamps, I'd modify them by chopping off the outer hole in the flange, and use the inner hole on an existing server rack hole. This puts the distance from the outer edge of the server rack to the inner edge of the R20 at 31.5625mm. Cube side length is now 317.125mm or 12.685h. 0.6575h + 12.685h + 0.315h + 12.685h + 0.6575h = 27 holes ``` |6575- -3425|-12.-|3425- (.315h or 7.875mm) -3425|-12.-|3425- -6575| ``` so I can also do this plan with (6) 31-hole lengths ### R20 asym In the above designs, I've assumed that I'll need to have a part custom made (PCBWay CNC or metal-sintering?) that joins each corner together. But what if I want to use A20 clamps to join the rails together? I can probably use the same overall cut lists, but some rails will be reduced by 2h, and some increased by 2h (4 increases, 8 decreases). Then the only question is if 2 A20 clamps can co-habitate on a single rail end. I'm willing to take that chance ### just buy the field desk I could almost get by with an order of (1) standard field desk. A few issues: - I would need (8) more A20 clamps, or to design and fabricate my own replacement A20 clamp (3D-printing is probably strong enough for this) - I can find something to do with the birch ply with formica surface, but like...it's not something I need, so I'd rather not pay to have that shipped to me. - I'd end up with extra R10 rail (again, I can find a use for it, but it's a premium product so this seems wasteful) But otherwise, the R20 rail that ships with the desk is enough to build a cube up to 355mm on the inside (assuming something like the A20 clamp adds 50mm to some of the edges) ## Appendix B: tools - there's a cool [eMMC programming stick by Nebra](https://www.nebra.com/products/nebra-raspberry-pi-cm4-flash-stick) ## Appendix C: other nodes/clusterboards I don't know what other resources the lab needs, but I can't help myself thinking about these anyway. - framework 13 mainboard? (if I can get it repaired; see private doc [[20250310 rackmounted framework mainboard]]) - https://www.printables.com/model/1049890-framework-industrial-mainboard-case - I have two macbook air laptops I could repurpose to be headless servers. They're already so thin, and don't expect active cooling! - I also have [[Helm-v1]], whose main draw is its enclosure/heatsink anyway (not suitable for racking) - A ton of RPi 3A+ left over from [[LeucoSpex]], but clustering those without a ton of cables will be difficult? And I don't know if my limiting factor is CPU anyway. Let's put a pin in this. - computeblade.com looks awesome - https://www.willwhang.dev/Miniature-CM4-Cluster/ - https://clusterhat.com/ - https://pipci.jeffgeerling.com/ - $200 this [DeskPi Super6C](https://deskpi.com/products/deskpi-super6c-raspberry-pi-cm4-cluster-mini-itx-board-6-rpi-cm4-supported) holds 6 compute modules flat to the motherboard (with 6 M.2 2280 slots (PCIe Gen 2 x1)) - (100W power supply included!) - $39 it fits on a 1U shelf ([DeskPi has one of those](https://deskpi.com/products/deskpi-rackmate-accessory-mini-itx-shell?variant=44565523202204#3)) - $57 it fits in a case, which might also fit on the shelf ([DeskPi has that too](https://deskpi.com/collections/deskpi-super6c/products/deskpi-itx-case-kit-for-deskpi-super6c-raspberry-pi-cm4-cluster-mini-itx-board#2)) - (fans and CM heat sinks included!) - $510 (6) CM5 8GB RAM, 32GB eMMC ([pishop](https://www.pishop.us/product/raspberry-pi-compute-module-5-8gb-ram-32gb-emmc-cm5008032/)) - $1090 (6) 2TB PCIe Gen 3.0 x4 SSDs ([newegg](https://www.newegg.com/samsung-970-evo-plus-2tb/p/N82E16820147744)) - board + shelf + case + 6\*CM5 = $806 - https://github.com/JaredC01/LabStack