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*
  • A shrouded connector for I2S
  • A Picoblade connector for each of the RX/TX pin pairs
  • As a bonus, a four-way I2C multiplexer!

*Assuming this is a regular Mega. 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 multiplex chip is a Texas Instruments TCA9544A. The default address is set to the highest selection (1110111), but solder headers are available on the board's underside to change that to any of the other 7 possibilities if need be.

Since the Mega design has extremely limited edge-of-board space, the Qwiic connectors for the I2C expansions are on the board's interior. Ports 0, 1, and 2 are set up so that, in the event of another board on top of this one, the cords can run between the headers (if they're thin enough). Qwiic 3 will require a little more creativity, and probably a little more slack.

While a 4-wire UART connector may be better for connecting to unpowered devices, the 3-wire Picoblade connectors are meant for communicating with other Megas with this board, or with Feathers with the GateWing (qv).


In assembly, the two jumper wires must be placed so as to not interfere with the headers. If the board is to be the topmost Mega board, they should run on top; if the bottom-most, they should run on bottom. If this Shield is to be in the middle, either omit the wires and don't use the I2S port, or use longer jumpers to go around the headers. (However, see below for a note on those jumpers.)

Since the Qwiic connectors for the extra I2C ports are all on the board's interior, they may be a little challenging to use, especially if this Shield is not on top of the stack (or at least the topmost Mega-sized board). You might be able to connect them up and run the wires between headers, especially at the corners. Similarly, the I2S connector may not be usable at all with anything on top of this -- just as the main board's SPI connector and Debug interface are somewhat blocked with a Shield on top (though see below regarding the SPI).

Part of the reason for being able to change the mux' I2C address is so more than one of these boards may be used at the same together -- up to 8 total, if there are no other address conflicts. However, remember that the RX/TX ports are not buses, but direct serial ports, so only connect one of each type in the whole group.

The Picoblade connectors are arranged so that, looking at the end, the TX is on the left and the RX is on the right, with Ground in the middle. The ideal way to connect these to other units would be to put an identical connector on them (possibly using a proto board), and then use a cable that gives a straight-through connection so that the TX on the remote device is connected to the Union Station's RX and vice versa.


Here are some potential future edits (which may be heavily influenced by others' feedback, if I get any):

  • I'm uncertain about the pull-up resistor values for the TCA9544A. For now, they're all 10K.
  • I wanted to also include a Parallel Capture connector (pins 26-43) but I couldn't figure out how (in Fritzing) to run wires from the second row of headers to the board's interior. (This is also the reason those two jumper wires are on the board, and I don't want them!) Any advice on this front would be greatly appreciated.