What is the fastest refresh rate of an Arduino?

Hi there,

Does anyone know what the fastest refresh rate possible is with an Arduino? I really need real time OSC information for a real world musical application.

Thanks Guys

izzi

"Refresh" in what sense?

I think I'm looking for the fastest sample rate when using just one pin of the analogue in pins? :~
Basically I need the quickest possible way to receive real world analogue information process it and then send it digitally onto another application within my computer?
I'm wondering if this is indeed possible with the Arduino without any noticeable latency what so ever?
Hope this is possible?

Thanks for the quick reply

izzi

Basically I need the quickest possible way to receive real world analogue information process it and then send it digitally onto another application within my computer?

You can get about 10,000 samples a second from the A/D, but you have not said how you are transferring it to the computer, that will take the most time.

process it

Also what is the "process", full-on FFT or just sending it to a port?


Rob

The process so far is taking analogue information from maybe an IR distance sensor or similar sensor into the Arduino and using this information as a source for other software plugins.
The pitch of a software synth for example?
It is also possible that I might just need to trigger on/off at a certain threshold of the analogue value but it is critical that this is done as fast as possible.

Thanks

izzi

It's also a question of how much resolution is needed. Higher ADC sampling speeds are possible, though at a loss to resolution. Post-sampling data work may also slow the sampling rate down.

Then there is the transfer to your CPU... there may not be enough bandwidth if you have to send a lot of data. The Arduino IDE is limited in terms of its serial bus speeds (no more than 115kbit/s) even though a 16/20MHz Arduino can handle 1Mbit/s transfers w/o errors. If my math is right, at 10,000 samples/s you'd be looking at 160,000 bits/s at a minimum (assuming you don't compress the data) as every sample consists of two bytes of information... then there is overhead, etc. So a 500k or 1Mbit/s connection should be able to do it.

SDFatlib has managed to sample at very high speeds and then make large writes to a SD drive. That's another option.

but it is critical that this is done as fast as possible.

Often beginners say this but do not understand the implications. I don't know your status here.

Is the only thing that is driving this criteria a human? If so you can't perceive anything shorter than about 10mS so there is little point in trying to get things faster.