I modelled the frame on @greengenes' design that uses aluminium profiles. The cost was higher than for aluminium angle, but the 30x30 3N profiles make great heatsinks and are rock solid. Using profiles instead of just angle meant I didn't need to do any drilling or cutting for which I've got limited tools. The "spine" design also allowed me to reduce the width by 60mm compared to a regular "square frame" design. The spine is regular 30x30 profile.
I had a little scare with the right angle brackets I'd ordered as they had nubbins on both faces which didn't align with spine profiles. Fortunately the brackets themselves were aluminium so I just filed them off.
I think the final product looks pretty great: I ordered 2 spare 1ft strips and a spare profile just in case any parts were faulty. Fortunately nothing was so I was able to have 7 cross bars instead of 6. For my desired PPF I had an at-the-wall wattage of ~60.5 watts. I checked this with a Benetech GM1010 lux meter and the previously stated conversion factors.
For control I added:
- A Salus SP600 Zigbee controlled smart plug (I already had a Zigbee network integrated with Home Assistant using Zigbee2MQTT). This allows at-the-wall wattage monitoring and power control (dimming on the driver is only down to 10%).
- Both a pot for dimming and also Home Assistant controlled dimming using an ESP32, an optocoupler and a mosfet. I initially tried to use just the optocoupler but had trouble getting it working. I took a PC817 breakout board from ebay and connected the control side to the 3.3V PWM from the ESP32 but this didn't result in enough current flowing on the collector-emitter side to actually dim the lights. To work around this I used a mosfet breakout I already had to take the 5V ESP32 supply, control that with the 3.3V PWM from the ESP32, and then feed that into the control for the optocoupler. This then dimmed correctly.