This is a test fixture for Orbit Irrigation designed to monitor irrigation timer/controllers and log their behavior, in order to test their programming/timing logic.
This takes input from ~24vac irrigation controllers with up to 16 channels and outputs the state (on/off) over i2c via the port expander. Up to 8 unique addresses can be used, and the boards are designed to be daisy chained to each other for a total of 128 channels.
In addition, each board has an 5 optocoupler outputs that can be read directly from the board. The AC voltage input will result in a 120hz output on the optocoupler's output side, so some software averaging/cleverness should be used to determine on/off.
This is to be used in conjunction with a Raspberry Pi to log and host the data on a webserver. The webserver serves as both a UI, monitoring status indicator, and data log host.
**Python code and HTML/PHP code to be uploaded
PCB Schematic and PCB layout in KiCad. BOM is attached.