If you want to take advantage of the great I/O power on the Adafruit Grand Central M4 Express or any other Arduino Mega-compatible board, this should be a great help.

This shield features:

  • Two Qwiic connectors from the main I2C bus
  • One additional Qwiic connector from the secondary I2C bus (though see below if you have a Grand Central)
  • A shrouded connector for I2S
  • A throughway for the main board's SPI connector
  • A Picoblade connector ("BobWire"; see below) and a 4-pin connector for each of the RX/TX pin pairs
  • An entirely new I2C bus, with a Qwiic connector of its own

*Assuming this is a regular Mega, Duo, or similar board. The Grand Central ties both I2C buses on the shield together into one, so this extra Qwiic connector is just a third I/O for that.


The two Qwiic connectors at the west end of the board are connected directly to the main I2C bus.

The third Qwiic connector, hear the northeast corner, connects to the secondary I2C bus on the Mega. Since the Grand Central puts these two pins to the main bus, for that board this connector just serves as a third Qwiic.

There is also a fourth Qwiic connector connected to an NXP Semiconductors PCA9665, which gives the board an additional I2C port. The 8-bit parallel data for the port is tied to pins 42-49, while the control pins are tied to pins 37-41. This will require some coding to make it work -- quite a bit more than the two lines needed for a software hack. I have yet to see how much benefit it will actually have, though I suspect that speed will be a factor. A connected solder jumper is on the Power pin for the chip; if you're not going to use this additional bus, I recommend that you cut this jumper, saving power and freeing up those 13 pins.


There doesn't really seem to be a standard connector for I2S, but a simple 6-pin shrouded male header just seemed like the best choice.


This is something I cooked up myself, since UART isn't always a practical solution. RX/TX is a great way for boards to communicate with each other on an as-needed basis; however, the usual 4-wire UART connections (currently represented here by a 4-pin header) also carry power, which can put a burden on the host system or create conflicts if multiple boards have their own power, while single-wire male-header cables can be clumsy and insecure. The innovation I've created here is what I call "BobWire." This puts the Ground wire between the RX and TX wires; a cable would make the connections straight-through, so that the RX at one end connects to the TX at the other and vice versa. Since the Ground is in the middle, that becomes common, but the unit at each end is presumed to have its own power (or a separate connection to the same power source).

Also, remember that any RX/TX connection is a direct two-way connection, not a bus. Don't connect the UART and BobWire from the same port. This may seem obvious to some, but even the brightest and most experienced among us can make silly mistakes.

At present, this "BobWire" system (using 3-port Picoblade connectors) will only work with a Feather with a GateWing (qv); or another Duo, Mega, Grand Central, or similar board with a Grand Central Connector Union Station Shield. I'm declaring this a completely "open-source" idea, though, with a Creative Commons Attribution license: anyone may use it without having to worry about compensating me. The only restriction is that you must credit me; if you use it without modification, though, you really should include the "BobWire" name so people know what they're getting (i.e., two boards with BobWire connections should, with the right cable, get along just fine).

(And yes, I know that the name is pretty unimaginative. I did come up with a few other names, but -- believe it or not -- they were all even stupider.)


Putting more than one of these boards into the same system is not recommended. The RX/TX connectors don't duplicate, any PCA9665 beyond the first...

Read more »