Multi-player linked Arduboys via a USB host (PC)

Reassure me that you are not thinking of this for the first Arduboy, are you?

First, please, please, reassure me that you are not thinking of this for the first Arduboy. Sound output on a connector has never been part of the promised capability, and this is definitely not the time in the cycle to consider new functionality.

If you want to output sound, I think whatever solution you propose should output the sound that people are already generating. I think you would be far better off routing the existing audio connections to a new connector.

A: surface mount 3.5mm closed circuit stereo -
B: surface mount 2.5mm closed circuit stereo -

Although the 3.5 mm jack would be compatible with regular headphones, the 2.5 mm one is only 4mm high. From the reference drawing, it appears to have only plastic and ground exposed on the top, so the 4mm height could be placed inside an “edge cutout” in the top cover, rather than completely covered in clear plastic.

My reading of USB specs in general says “do not do this at all”. USB lines are tightly controlled in terms of resistance and capacitance, and adding anything to them that can’t be unplugged is likely to cause problems for actual USB connections. You can also never really test this - it may be that this would interfere with an existing USB host that would normally function just fine, but since there are likely thousands of distinct USB solutions out there already that you can never test, this is one of those cases where it really is necessary to design as conservatively as possible.

Secondly, USB lines have voltage protections distinct from regular chip lines. It might very well be the case that even some normal voltages on a USB port could cause problems for pins on the Atmel chip.

Just thinking out loud general, we are having the first 20 units built by the factory right now so there is still a little bit of time to make a small update before we go full scale.

But as you suggested I think its dangerous to mess with the USB port.

Really things are pretty locked down but I don’t want to push the go button and be like “oops why didn’t I think about that!”.


“Act in haste, repent at leisure”.

1 Like

So, any chance to find a solution ? Some unused pad for solder any cable ?
Hope to play pong with my girlfriend :smile:

The latest board layout that @bateske showed us brings all unused I/O signals to pads close the the edge of the board. If you want to connect two Arduboys over a fairly long distance, I’d suggest connecting RS232 signal converters to the unused TX and RX signals, as I described earlier in this thread.

1 Like

Sounds good !! Cross cable should do the job!
If any TX/rx/vcc/gnd are available so we can easily use Bluetooth module too, nice !

Once my bunch of the production run arrives, I will be experimenting with plain USB cable cross-connects (use an OTG cable).

But it’s way out of the box stuff for USB, so it can’t really be simulated or tested without live devices. And - there’s a really good chance that what I try just won’t work, so - zero promises. Call me a month after live Arduboys arrive.

If you want to write some experimental code in advance, I can test it on my home made Dev Kit equivalent. I could also use a Pro Micro as a second device.

I have an oscilloscope, multimeters and other test gear that I could use to look at the signals and help debug.

My career is in embedded microprocessor systems sofware and hardware, specialising in communications protocols, so I expect I would be able to understand any code you come up with.

My guess the best bet is to write a program on PC to act as a server for several serial ports. I would really love to do a game similar to smash brothers that can be multiplayer. It would be awesome to have at events like maker faire. It would even be possible to have the host PC to output a “master view” on the display or even a giant LED matrix!


I did have some “communication” working between 2 devices using a simple python server on a PC. However I didn’t develop it any further than displaying a random pixel on the other device as a quick prototype. It’s super simple to set something up in Python.

1 Like

Hey @Wozza any chance you’ve got that code laying around I might try to do something with it? I imagine it was super simple, I was looking at doing it in processing but wanted to see how you got it done in python since I’m still learning it and wanted to try it out on a raspi.


I’ll take a look this evening. I recently lost a hard drive that wasn’t backed up and it may have been on there. It was relatively simple. It followed a lot of the principles of sockets which is used for regular networking but used serial connections instead of socket connections. The biggest issue for anything larger is making sure Python keeps the correct data types as Python doesn’t allow data type to be declared.

In the future it could be possible to leverage a relatively infinite source of processing power in the server to do all calculations for more complex games with the Arduboy being just a video output and button input.

@bateske A bit overkill, but you should also be able use my multi-player Chrome app on a Raspberry Pi.

That’s awesome, had no idea Chrome was capable of serial communication. Guess what they say is right. It’s practically an operating system by itself these days. Would you be willing to offer the source?

@Wozza a bit scrolling didn’t hurt anybody yet :wink:

1 Like

I made below. Is it ok?:

Multi-Player linked Arduboys via a Raspberry pi USB host

Here is a code:


In addition, I tried this Chrome App from @davidperrenoud with my clients.
It also went well :slight_smile:


I think another simple device which has enough USB ports and can send the messages from 1 to all would be OK. That can be done with another Arduino and maybe on a future model developers can use the I2C port.

were you able to actually test it? I scrolled down but couldn’t find a report.

1 Like