Start with drilling holes for all the connectors. I prefer to mount connectors at the bottom of the panel. Note the barrel jack connector holes (the first two on the left) are little bit bigger than the holes for 3.5mm audio jacks (right three holes).
Drill a hole for the SPDT switch that will be mounted on the side panel and proceed to mount the electronics. I start with the PCA9685 breakout board. All the breakout boards, Pi and Perma Proto boards are mounted using nylon standoffs. I tend to place them inside the enclosure first, then mark down their PCB holes and then drill the enclosure on those spots to screw fit the standoffs.
The LM2596, Pi and the Perma Proto boards are mounted. SPDT switch, power source and LM2596 input power pins are all connected.
The rest of the pins are then connected with female-female jumper wires. I sometimes resize them by manually stripping them off and connecting dupont female connectors of the appropriate length. I also use color-coded heat-shrink tubes just to group similar connections. In this build, the PCA9685 PWM outputs are connected with jumper wires in the yellow heat-shrink tube and the 10V PWM outputs are grouped in the green heat-shrink tube. The blue heat shrink tube groups the i2c jumper wires (SDA, SCL) that connects Raspberry Pi with the PCA9685 breakout board. Use the adafruit guide on PCA9685 to get started with this versatile chip if you are not familiar with it.
That's it, our reef-pi light controller is built. Here is a side view of the controller from showing the SPDT switch
And this is the bottom side view, showing all the connectors. Left most is 12V 2A power input, then 12V PWM power output for actinic LED strip and then three 3.5mm audio jack connectors for Kessil lights, each having two 10V PWM control signals.
Next, we'll power up this build and learn how to use reef-pi software features to automate the lights