Adam K Dean

Notes on software, systems, engineering, and things

2.1 Modelling what I have

The reference models: a Pi 4, the RS-50-5, a blower, the IEC inlet and the power hub

All four concepts are built on one set of reference models: the parts I own, modelled from their makers' drawings. One library, lib/pistack.py, holds them along with the checks and the render code, so a fix to a part shows up in every concept at once.

The parts

Part Size (mm) Source
Raspberry Pi 4 Model B 85 × 56 PCB, 1.4 thick; holes 2.7 on 58 × 49, 3.5 in from the edges; USB stacks 16.0 tall, Ethernet 13.5, GPIO header 8.5 Raspberry Pi mechanical drawing; PCB thickness a common value
Mean Well RS-50-5 99 × 97 × 36; five terminals along one 97 mm end; two M3 in the base, 55 apart Mean Well datasheet, case 905B
GDSTIME blower 50 × 51 × 15 with the outlet; outlet on one side, round inlet on top assumed 5015, to measure
IEC inlet flange 50 × 31; body 47.5 × 27.5, 32 deep assumed, to check against the one I buy
Power hub 70 × 45 × 25 space reserved

The Pi model isn't just a slab. It has the header, both USB stacks, Ethernet, USB-C, both micro HDMI, the audio jack, the SoC with a small stick-on heatsink, and the microSD socket and card underneath. Each sits where the drawing puts it, at the height the drawing gives. That matters, because the boards are packed close in some concepts and the tallest parts set the spacing.

One surprise: plenty of listings give the RS-50-5 as 99 × 82 × 30 mm. Mean Well's own drawing says 99 × 97 × 36. Claude used the drawing, and I'll measure mine to settle it. Every value is marked as drawing, listing or measured, so I know which ones to check with the callipers.

Keep-outs

A component isn't only its body. It needs room around it, so each part has a keep-out solid alongside its body:

The checks

Every concept runs the same checks, through one script that rebuilds it in FreeCAD, checks it, writes checks.json and saves the renders.

The fourth check wasn't there at first. While laying out B, Claude found that nothing would have caught the inlet's body sitting in the power supply's lead space, because components were only tested against printed parts. It added the check before going on, and reran A to be sure A still passed. It did.

Balance

The tilt test is the self-restoring rule. A stand tilted by an angle stays up while its centre of gravity is still inside its footprint, so for every edge:

d>htan⁡10°d > h \tan 10°

where dd is the distance from the centre of gravity to the edge in plan, and hh is the centre of gravity's height. A push FF at height zz tips it over that edge when:

F=MgdzF = \frac{M g d}{z}

The masses are guesses until I can slice and weigh things: 46 g per Pi, 330 g for the power supply, 25 g per blower, 30 g for the inlet, 180 g for the hub and the wiring, 1.19 g/cm³ for perspex, and PETG at 1.27 g/cm³ times 0.55, because thin enclosure walls print mostly solid.

Airflow

The two blowers are about 1.8 L/s each in free air (typical for the size, not measured). Pushing through ducts and slots, I've assumed they deliver 2 L/s between them. The temperature rise of the boards' air is then:

ΔT=PρcpQ=331.2×1005×0.002=13.7 K\Delta T = \frac{P}{\rho c_p Q} = \frac{33}{1.2 \times 1005 \times 0.002} = 13.7 \text{ K}

with PP the boards' 33 W at full load, ρ\rho and cpc_p for air, and QQ the flow in m³/s. So at a 22 °C room the air leaves at about 36 °C. The SoC runs well above its air, and a Pi 4 starts to throttle at 80 °C, so that's workable, but it's not a lot of margin for five boards flat out for hours. The same 13.7 K applies to every concept, because it's the same heat and the same fans. What differs is how each design shares the air out, and whether the power supply's 7 W joins it.

The check also reports each board's air channel (the cross-section the air passes through beside the board) and the mean speed through it. Faster air takes heat off a board better, so a smaller channel isn't a bad thing as long as the fans can still push through it.