[erlang-questions] Erlang on multi-CPU board using USB

Peer Stritzinger <>
Tue Apr 17 01:14:32 CEST 2012


On Mon, Apr 16, 2012 at 8:09 AM, Richard O'Keefe <> wrote:

> (only just) aware of ethernet-over-USB, but I've never set up an
> Erlang cluster by any means other than IP.

If you want to set up Ethernet-over-USB be aware that there are more
than one way to do this since there are multiple standards how this is
best being done.  For a short overview you can refer to
http://en.wikipedia.org/wiki/Ethernet_over_USB

Basically you'll have to choose one of the Ethernet over USB protocols
that your OS supports in device mode.  Then there only remains the
questions of topology and routing but this is standard once the
devices are set up.

> Where should I start
> looking in the Fine Manuals?

I've implemented talking from Erlang on a Unixoid OS (FreeBSD in my
case) to a embedded device not running Erlang as port.

For the host part I've used the libusb API:
http://libusb.sourceforge.net/api-1.0/

The device part was running on small real time OS so this was
implemented ad-hoc without any support from the OS.

If you want to implement a device on a Unixlike OS I'm not aware of a
portable solution for this.  You have to use whatever your OS offers.

To have a proprietary point to point stream over USB is rather simple
but its probably still easier to go with the Ethernet over USB variant
if your OS has non buggy drivers.  Much more communication overhead
but you get multiplexing and routing for free.

What I really recommend is getting a USB sniffing device for any USB
driver or complicated setup work.  USB is really weird and it helps a
lot understanding what's going on.

The one I'm using is http://www.totalphase.com/products/beagle_usb480/

I can only say positive things about it. Especially the software is
free (you only buy the hardware) and runs on Windows, Linux and Mac
OSX.  BTW I'm not affiliated with Totalphase, just a happy customer

Cheers,
-- Peer



More information about the erlang-questions mailing list