Ethernet Shield transfer rate is really slow

Is it just me or is the Ethernet Shield really slow? I expected to be able to transfer data over the ethernet at half a megabit or so, but the best Ive been able to get is around 4k bytes/sec Perhaps Im missing something?

Look on the bright side, you can transfer the entire contents of ram in half a second....

Is this the official one or the cheap ENC28J60 one ?

It is the official one. 4kB is the expected transfer rate? Seems that USB would even be several times faster than that!

Bearing in mind its an 8 bit micro with 2K of ram and 16 K of storage, I would consider it 'appropriate'. How much data would you want to transfer ?

Bought it with the intention of pulling 60kB/sec from my webserver and spitting corresponding data as digital outputs.

Wrote a simple app that runs on PC to tell arduino board which file to grab from webserver, and it works fine, just way too slow.

Thought network would be awesome to allow any puter in the house to control which file is streamed.

Are you expecting the Arduino to [u]do[/u] the streaming?

Idea was for the arduino to request a file from the webserver and toggle digital outputs corresponding to file contents read from the server

Problem is that doing nothing else, it can only read about 4kB per second from webserver.

Test file is approx 350kB. PC browser loads in less than a second, Arduino takes over a minute.

What kind of digital outputs?

Is the same ~350KB file on all the computers in the house?

There may be other ways to accomplish what you are trying to do. Knowing what you are trying to do would make it easier to offer suggestions.

Digital outputs would control 2 16bit DAC boards that connect to servo drivers to draw things on the wall with lasers.

The DACs need at least 10k points per second. Each point is represented by 6 bytes in file. Hence the 60kB / second requirement

All the computers on the house are networked, so file can potentially be on every puter.

The current setup has a 600MHz PC which loads the whole file from the network, then spews the data out of a USB port to a specialized board that has 2 8bit DACs to feed the servo drivers, and it works ok, but is only 8 bits.

I wonder if SD card would be fast enough. Dont know much about them, except FAT16 takes too much program space. Could populate SD card with several files from network, then read individual file from SD card to DACs. As long as it is fast enough Anybody have any experience with SD card in raw mode? Read speed, Number of file it can store, etc.


Im making comunication between arduino and processing via ethernet

arduino as server: arduino sends a string to all the connected clients, and processing is client, and only displays the thing that receives, the transfer rate is more than 100 kb/s!!!!!

arduino as client: processing is the server and sends a string to all connected clients, and arduino is client, the transfer rate is less or more than a 1kb/s.

has anyone try this before??

i want to make processing server, and arduino client, but with high transfer rates, i dont know how to do it....

any help will be excellent!!


I would suggest pulling out WireShark and seeing what is happening on the line. I don't think much work has been put into optimising things. The bare chip itself should be able to handle more than this AFAIK.