This week, I finished up assembling and soldering the second controller and middleman. I chose to solder the pulldown resistors directly to the button terminal this time, and just run three wires per button, rather than trying to save space by cramming in a bunch of resistors right next to the edge of the board.
Now we have two of everything and the hardware is ready to go for the demo video. I’m going to be spending tomorrow filming the demo video – currently we’re trying to iron out some inconsistencies with the network. The main problem we’re running into right now is crosstalk from the network pins all being next to each other. Unfortunately it’s too late to redo the PCB design to give us a more forgiving pinout, so we’re looking at alternative solutions such as soldering in wires to circumvent the PCB and lowering the network clock rate. Progress is a bit slow since the compile times for the project are so long, but I think we’ll figure something out.
When designing the PCB, I did connect all the unused pins, just in case we added more buttons to the controller or more pins to the network protocol. This is certainly coming in handy, as we’re already using the 4 extra network pins to try to mitigate crosstalk. If I were to design the PCB again, though, and still had leftover pins, I would also route each of them to an extra header, through-hole, or pad, just to add another way to access them.