growbox / PCB-rpi5-compute · rev A · routed

Growbox CM5 Board

The I/O board with the computer on it: a Raspberry Pi Compute Module 5 replaces the ribbon cable to a Pi 5, and one 12 V supply runs everything. Same sensors, strips, actuators, heaters and GPIOs as the I/O board, so the growbox software doesn't change and the chamber sensor boards plug in as they are.

On the drawer tray

The board sits on the drawer tray in the plywood base, in place of the Pi 5 and breadboard. The tray is 196 mm wide between the foam legs and 311 mm deep, with 56 mm of headroom, so nothing can plug in from the sides. Every socket opens to the back (towards the back wall's cable gaps and fan), to the front, or straight up for the cables that drop in from the chambers.

Top view of the CM5 board, back edge at the top: Ethernet, USB-C, buttons, fan header, box fan socket and 12 V jack along the back; CM5 and two converters behind them; camera sockets and hubs, LED strip headers and chamber headers in the middle; actuator and heater terminals along the front.
Top view, back edge at the top. 190 × 210 mm, leaving 3 mm each side on the tray and about 100 mm free behind it. Fully routed, with Raspberry Pi's own model of the Compute Module 5, the Ethernet jack and the four camera sockets.
EdgeLeft to right
BACKEthernet (left cable gap) · USB-C flash · BOOT / PWR buttons and LEDs · CM5 fan · box fan (under the wall fan) · 12 V jack (right cable gap)
UP4 camera sockets · 4 LED strip headers (+ SIG −) · 4 chamber ribbons
FRONT4 actuator and 4 heater screw terminals, screws reached from above with the drawer out
Drag to spin it. The routed board from KiCad: four layers, with solid ground planes on the two inside layers.

3D-printed case

A lid and a base plate that close the board in on the drawer tray and leave everything you touch open. Every opening has its name debossed beside it, every LED has a light hole, the Compute Module 5 is open for its cooler, and the converters sit under vent grilles. It's generated from the board's real part positions, so it moves with the board.

The case with the real board inside: the lid lifts off the KiCad model of the board, with the CM5 under its cooler, then the camera comes round to the branding on the right-hand wall.
Top view of the case lid: CM5 opening, camera, RGB strip and sensor openings with debossed labels, vent grilles, LED light holes for actuators and heaters, BOOT and POWER buttons, screw-terminal openings along the front, GROWBOX and farlabs.made-this.
Top, back edge at the top. 194.4 × 214.4 mm (fits the 196 mm tray), 28 mm tall (56 mm headroom).
WhereWhat's open
TOPCM5 and its cooler · CAM A–D · RGB A–D (+ S −) · SENSORS A–D · CM5 fan · fuse · BOOT / POWER buttons · light holes for the actuator, heater and base-fan LEDs · screwdriver openings over the terminals · vent grilles
BACKEthernet · PROG (USB-C) · BASE FAN · 12V IN, labelled on the wall · exhaust slots behind the CM5
FRONTwire slots for the actuator and heater terminals
RIGHTP4S, FarLabs and made-this, debossed

Built for strength

  • 3 mm top with 4 mm ribs underneath on a 30 mm grid.
  • 12 pillars under the lid, each landing on bare board with a support directly below it, so a press goes lid → board → base → tray and never bends the board.
  • 33 supports on the 3 mm base plate under everything people push on: the CM5, the buttons, every socket and header, every screw terminal.
  • BOOT and POWER are captive printed plungers in guide tubes, so they can't fall out or be pushed through.

Printing

  • Lid top-down (the labels face the bed); base plate flat; the two buttons upright.
  • PETG, 0.2 mm layers, 4 walls, about 30% infill.
  • Pillars and supports stop 0.1–0.2 mm short of the board, so check the fit on the first print.
  • Files in the repo's case/ folder: growcube-cm5-case.stl, growcube-cm5-base.stl, growcube-cm5-buttons.stl.

Power

12 V inbarrel jack, 8 A max Fuse + TVS10 A blade · SMBJ13A 5V_SYS · TPS5682308 A, 800 kHz 5V loads · TPS5682308 A, 800 kHz CM5 · USB hubs · 4 cameras · CM5 fan cameras via a switched USB power chip (VBUS_EN) LED strips · actuators · heaters · box fan the same 8 A budget as the ribbon board CM5 3.3 V out → mux, sensors, hubs

What connects to the CM5

Compute Module 5 eMMC · RP1 I/O · Gigabit PHY 2 × 100-pin connectors GPIO bank at 3.3 V USB-Cflash the eMMC (rpiboot) Buttons + LEDsRPIBOOT · POWER · PWR · ACT Gigabit EthernetMagJack + ESD protection CM5 cooling fanJST-SH 4-pin, PWM USB port 0 USB port 1 Hub 1USB2514B Hub 2USB2514B Camera A Camera B Camera C Camera D USB 2.0 sockets, two per hub, like the Pi 5's two USB controllers CM5 GPIO, same pins as the Pi 5 I2C muxTCA9548A → 4 chamber headers LED strips74AHCT125 → 4 × + SIG − 8 MOSFET outputs4 actuators · 4 heaters Box fanUSB-A, power only · GPIO 12
power USB Ethernet GPIO / I/O control

Connectors

On the boardWhat plugs in
12 V INbarrel plug 5.5 × 2.1 mm, centre positive; 12 V 6 A (72 W) supply
CAMERA A–D4 × USB-A, the existing USB cameras
ETHERNETRJ45, Gigabit
USB-Ca laptop, only for flashing the CM5's eMMC
CHAMBER A–D10-way ribbons to the chamber sensor boards (unchanged)
STRIP A–D3-way Dupont plugs: + SIG −
ACT / HEATscrew terminals: +5V and LOAD−
BOX FANUSB-A, the 60 mm box fan
CM5 FANJST-SH 4-pin, the CM5 heatsink fan

Power budget at 12 V

RailTypicalPeak
CM51.5–2.5 A5 A
Hubs + 4 cameras~1 A2 A
Strips, actuators, heaters, box fan3–5 A8 A
12 V input (90% efficient)2.5–4 A~7 A

A 12 V 6 A supply covers normal running with the heaters pulsed one at a time. The jack is rated 8 A and the fuse 10 A, so a 12 V 8 A supply gives full headroom.

Decided

  • One 12 V input with two on-board 5 V converters (TI TPS568230, values from TI's datasheet).
  • Four USB-A camera sockets through two USB2514B hubs.
  • Gigabit Ethernet, wired as on Raspberry Pi's own CM5 IO board.
  • CM5 with eMMC; flashed over USB-C with the RPIBOOT button.
  • Box fan socket on GPIO 12, also added to the ribbon I/O board.
  • The CM5's 5 V pins sit in a solid copper patch with 18 vias to the 5 V plane below, sized for the up to 5 A the module can draw.

Still open

  • A microSD slot, so the cheaper CM5 Lite would also work.
  • Converter and hub values reviewed against the datasheets' layout examples before ordering.

Cost, assembled by JLCPCB (AUD)

Option C on the cost page: the Compute Module 5 plugs onto this board, which does everything.

Item1 growboxeach, of 6Notes
Board printed and assembledA$389A$1314 layers, impedance-controlled, 0.3 mm vias. 5 printed, 2 assembled (one spare); the Ethernet jack is bought and soldered by hand
Chamber sensor boards ×4A$52A$13same boards as option B
Compute Module 5 (4 GB, 32 GB eMMC)A$144A$1442 GB / 16 GB saves about A$38
CM5 heatsink and fanA$15A$15
Power supply, 12 V 8 AA$33A$33runs everything
Electronics totalA$633A$336per growbox; shipping is on the cost page

The two board lines are real costs for these exact designs: JLCPCB's quote for the bare boards, live part prices and its published assembly fees, on 3 October 2026. The rest are typical online prices. All in Australian dollars, US prices at about A$1.52 per US$1. The whole growbox, with the box, base, cameras, lights and heaters, is on growcube.p4s.space/cost.

Where this is

Done

Schematic

Generated from circuit.py, electrical rule check 0 errors.

Done

Placement

Sized and laid out for the drawer tray; no overlaps or shorts in the design rule check.

Done

Case

Lid, base plate and captive buttons, generated from the board.

Done

Routing

Four layers, USB and Ethernet at controlled impedance, every connection made: no open connections or electrical errors in the design rule check.

Done

Order files

Gerbers, bill of materials and placement file for JLCPCB, every part matched to a stocked LCSC number. The Ethernet jack is hand-soldered.

made-this home