Sometime in 2018 i created an I/O module with 8 (optocoupler isolated) inputs and 8 (mosfet) outputs. The controller is an arduino pro mini clone with an attached MCP2515 CAN-Bus controller. For the overall 16 in- and outputs i used a MCP23017. Thereby i used the SPI bus for the CAN controller and the I2C bus for the I/O expander. The can bus can be used for communication with the outside world.
Unfortunately, I have not yet found a useful application for the module – that can still happen… but overall it was a nice experience to design a whole module on my own.
The circuit boards are made in china and assembled by myself. If i would redesign the module i would probably put an ESP32 controller instead of the arduino on the controller board – wifi, bluetooth and can bus integrated and a bit more power.