We have designed a proprietary PC board to plug into the 40-pin connector.
The board contains the following subsystems:
1) An I2C bus where we have connected the following devices
- An EEPROM for storage of config data
- An AWS encryption chip
- An RTC circuit with battery to keep accurate time in the absence of Internet connection
2) The second I2C bus for the HAT EEPROM where we have connected an EEPROM (same type as above)
3) An RS232 level shifter that connects the RPi serial port at 3V level to a board connector with RS232 levels
4) Two relays connected to the GPIO output port
5) A couple of opto-isolated outputs connected to GPIO output pins
6) A few optocouplers hooked to the GPIO input port and driven from an external connector
Ideally I would like to set up the HAT functionality so that on startup the system will detect what is available and use it, but it seems like a really uphill battle trying to figure out how that would be done...
So my question is:
How can I best detect that our board is available so it can be used from Linux?