Peer-to-peer Arduboy Communication - Exploration of options, not just USB

Continuing the discussion from Multi-player linked Arduboys?:

The Arduboy looks to fill a very nice niche - gaming in your wallet. But when you run into another Arduboy player, you might want to play a game with them or against them, not just in the same room as them.

The current dev kits have only one external connection option - USB Client - and as a USB connection, it can only connect to a USB Host. That will not be another Arduboy; the ATmega32U4 will not operate as a USB Host. There is a separate topic for USB-mediated multi-player options. There should be no issues running a USB Client connection. Discussion there might be more along the lines of communication and software architectures. (Go there to find out for sure.)

Here is a place to discuss options for connectivity for Arduboys outside of a USB Client connection. That might mean non-standard re-purposing of the USB connection hardware, or using additional (but not yet available) connections from unused pins on the ATmega32U4. Some of these connections may be quite standard. There are unused Rx and Tx pins, and several other communication options are built-in to the processor. Use of additional hardware will be in some way necessary, but the closer to “just a cable” the option gets, the more accessible and lower the cost to Arduboy users.

First up (next post) will be an attempt to document the USB port’s basic design. The data sheet is not definitive about the internal functions, and some of the Arduboy details are not yet fully documented, or may vary between the dev kit and the production run.

USB Port - Chip Internals, Arduboy options

This is my rough layout of a single Arduboy’s USB port, covering the details available when the port is not engaged as a USB Client. Some is a good copy from the data sheet, while other sections had to be inferred from the data sheet. The Arduboy details are a combination of guesses based on given descriptions, and some careful noting of the layout of production board.

Everything in this is diagram to review and change. It’s hard to build up from lower levels if you don’t know exactly what’s in the lower levels!

This is one-half of a communication diagram, which would reverse and duplicate the details to help understand possible communication circuits.

I’ll just add that some discussion related to this topic was previously discussed in the tread that this one was linked from, which you may wish to review.

I initially titled that previous thread Multi-player linked Arduboys? but have now changed the title to Multi-player linked Arduboys via a USB host (PC).