Fast analog read and stream over ethernet?

Hey there,
I'm looking for a way to do an analog read of a 5 volt signal and stream it over ethernet. The other end would then convert that signal back to an analog output.
I need to sample at a minimum 30,000 samples/second... Looking at and The Arduino DAQ Chronicles - Measuring Stuff, it seems to be possible with the Arduino, but if I need to switch chips, so be it.

I'm thinking an ADC with SPI may work. The MCP3002 for example can handle 75K samples/second. The only thing I am trying to figure out is how to stream that data over ethernet... I had thought about converting the SPI data to serial and using a serial-ethernet gateway (like the wiznet), but I'm not sure if that would be fast enough.

Any thoughts on the best way of doing this?


There are two parts to your problem. First is sampling often enough. You seem to have a handle on that. The second is actually getting the data from the Arduino to the internet, via the Ethernet shield.

The W5100 chip on the standard ethernet shield claims to support 25M bits per second, but I don't think the shield actually achieves anything near that rate.

What are you sampling? Audio?

I've been looking at other alternatives for ethernet (aside from the ethernet shield), but can't seem to find any good options.
What bit rate would I need to send that much data (30K samples/sec)? Would converting to serial and and using a serial => ethernet gateway not be fast enough?

I'm sampling a form of analog data that is proprietary to the company I work for (sorry) but no, not audio.
Trying to make our system use ethernet is a hobby of mine as the current analog method sucks.

You haven't said what size the samples are, this has a bearing on how fast you can send them.
If they are 10 bit ones are you going to pack them 4 samples to 5 bytes are are you just going to send two bytes per sample?
Then you will know how fast any serial connection as to be.

@ Grumpy_Mike No idea honestly....
Essentially the data is constantly fluctuating between 5 volts (in this case, 30,000 updates/sec). What would be the best option if I want to stream it realtime (or as close to realtime as possible). A 10 bit sample is fine for what I am doing.
As you can tell, I've never done something like this before and am trying to learn as I go.


Anyone have any ideas?

The problem is that you don't know what problem you are trying to solve so how can you expect anyone else to know. You seem to have little in the way of requirements and we have no context to try and work out what these are.