Hello Mortonkopf. I'm a bit confused. In statement #19, I showed my code. I will look over the GitHub repository. I did make a note of the IOCON:
// 0b bit7=BANK:1=separate,0=same
// bit6=MIRROR:1=INT pin connected,0=INTA-PORTA;INTB-PORTB
// bit5=SEQOP:1=SEQOP disable;no increment,0=SEQOP enabled;address pointer increments
// bit4=DISSLW:1=slew rate disabled, 0=slew rate enabled
// bit3=HAEN:1=enables address pins, 0=disables address pins
// bit2=ODR
verrides INTPOL if set. 1=open-drain output, 0=active driver output
// bit1=INTPOL:sets polarity of INT output pin. 1=active high, 0=active low
// bit0=N/A:0
Since pin 19 INTB, does not seem to have any connections, am I correct that bit 7 should be (0) and thus bit 6 should be (1)? I don't understand bit 5 or 4. Since the MCP23S17 has the "S," I assume bit 3 is (1) by default. And I don't understand bit 2 and 1. Also, shouldn't the IODIR show 16 bits instead of 8 if PORTA and PORTB are combined? Just for grins, I removed the 1st PCB that contains only the Teensy and the 8 MCP23S17's and grounded the I/O pins to see if I could see a difference but nothing happened. Again, I greatly appreciate your time and information.