I replaced my g27 pedals with a custom setup, and I also use a custom sequential shifter and handbrake. I’m running a direct drive OpenSimWheel, which is brilliant, and the G27 shifter is currently connected to it for shifting/button purposes. I wanted to remove the G27 shifter, which contains a serial interface chip which converts approximately 16 buttons into just 5 wires connected to the Disco USB controller. On the OpenSimWheel with MMOS firmware, you can connect buttons directly to the STM32F4-Discovery controller board, but you would need one wire for each button which isn’t practical. A serial converter board connected to the Discovery controller would allow me to remove the G27 shifter, and still connect the sequential shifter and e-brake. Of course, you could have a separate USB controller, but I like having it all run through the Discovery in my OSW.
I decided to go with an MCP23S17, which is supported by the MMOS firmware. The chip itself was only $1.50, and I soldered it onto a piece of proto board according to the MCP23S17.pdf which is contained in Anschluss.zip found at the MMOS firmware page. I used standard dupont jumpers, so it’s easy to connect more buttons. The 6 pins on the lower left of the proto board connect to the Discovery USB controller as follows:
The capacitor is a ceramic 100nF. The outside rows of pins are connected to ground, and the inner pins of each double row is for each button. It’s cheap, and it works great. In the MMOS tool, you can select buttons 1-16 to be set to MCP23S17. I already have DB-9 connectors on the back of my OSW direct drive, and I reused the one I was using for my G27 shifter. I did have to add a connection for MOSI, which I connected from Disco PA7 to the unused Pin 5 of the shifter DB9 plug.