Thanks for that description. It makes total sense now. I was confusing the driver board with expander boards. I was able to get it all working using 2 PCF8574 boards, but today my PCA9555 chips showed up! So I soldered a new board and have it all working as 0x21 and it triggers my relays. the issue is that all the PINs are low and my relays are active LOW. is there somewhere in the FW to modify to keep all the outputs HIGH? Looking through the PCA9555 datasheet it looks like it is default HIGH INPUT on boot. so I am assuming that the FW pulls them all LOW and OUTPUT, but I cannot find where that is. From looking I would assume its within the apply_all_station_bits() but I am not sure of that.
Thanks again for all you help with this! I am learning a lot!