High Speed, High Throughput

Hi I am a newbie to Arduino and I am looking to build a system which interfaces via Ethernet (to circumvent USB HID communication speed/bandwidth limitations).

I have a data acquisition system which communicates, via PIC 18F over USB, to my Delphi code. I have recently increased the sample frequency and want to add more functionality, but the system bottleneck is now presenting the HID restraints themselves.

I have seen some systems for motion capture, for example, which communicate vast amounts of data quickly through Ethernet comms - can Arduino be used to effect this?

Thank you in advance for any advice,


The problem here is that the arduino is, by modern standards, a slow processor. So you are not going to get very fast data throughput if you push the data through a complex software stack like the TCP/IP stack. In fact is is going to be much slower than you can achieve by direct methods. But you need to put numbers on your project, things like slow and bandwidth aren't enough you have to say what speed you want to shovel data at.

Hi Grumpy_Mike, thanks for the rapid reply! In terms of processor capability, I was afraid of that (there are still tons of projects I have in mind for Arduino though). With regards to required throughput numbers, I am really just wondering how far I can push things past USB and towards gigabit Ethernet upper limits; that will be the parameter to which I can upgrade my current system.

Can you suggest a controller which can handle this?


towards gigabit Ethernet

The clock on an arduino works at 16MHz so you are not going to approach this. There are many processors with lots of power, look for ARM7 or ARM9 processors but these are grown up devices and you don't get the step by step beginners approach you do with the arduino. You are also talking about a significant step up in price for both the boards and the software tool set. Have a look at the various processors supported here:- http://www.embeddedrelated.com/groups/lpc2000/1.php

past USB and towards gigabit Ethernet upper limits

That's a lot of data. A couple of orders of magnitude more than you can squeeze through an 8-bit CPU like an Arduino.

A step up that's still modestly priced is the Netburner: it's got a Motorola Coldfire CPU, with more compute power, more memory, and a DMA controller that means the software doesn't have to fondle every byte that goes out the Ethernet port.

I've used these on a couple of projects. They're not as I/O-rich as an Arduino, but Netburner offers a couple of other models with more digital I/O and/or a proper bus for adding peripherals. They won't get you up to gigabit speed, but are a good step up. They're not quite as newbie-friendly as Arduinos, but they're a high-quality product, with professional support, at a decent price.

I've also heard some favorable comments about the BeagleBoard, but don't have any experience with it.

Thanks for the replies guys - I have a Motorola Coldfire I was given to play with, but hadn't gotten round to it yet. I will look into it.


On a good day, with a following wind you can get maybe 5kb/sec in and out of an Arduino ethernet shield (but not at the same time). Its appropriate for getting a few readings out of a remote Arduino, but not much else