Max digital input speed of Arduino Uno?


I'm new to Arduino. My question is, what is the maximum speed at which the Arduino Uno can read digital inputs? According to this page on specs (, the clock speed is 16MHz. Is that also the max speed I could read digital inputs at? If not, could I read the inputs at 10 MHz?

Thanks for reading

I don't know exactly what you want, but it depends too in how you write the program, and what you need to do.

For example, could the Arduino Uno be used to read input data from a 7-pin ADC at 10Mbs? 16Mbs?

You could read 8 bit parallel data at around 8M, but it would be imposible to use it, as the CPU wouldnt have time to do anything else, and storage or only a few microseconds of data

Use a different microcontroller board e.g. BeagleBone Black

I agree with rogerClark. That is work for other microcontroller. Something, for example, with DMA to give you time to do the math (because I believe that you need to do some math with the values).

thanks guys, I see what you mean. I actually just ordered the Chipkit 32, an Arduino-compatible Pic32 MCU board. The clock speed is 80MHz and has an onboard 10-bit ADC capable of 1.1 MBps. I think I can work with that


Well, its worth a try, but I suspect that even an 80Mhz device is not going to be fast enough to do very much with the data.

What maths are you intending to do on the data e.g. FFT ? or just some basic average calculations

Storing data at that speed is not trivial and will fill the memory even in a Pic 32 very very quickly, and its probably too fast to store on SD either.

At those sorts of speeds you are getting into the realms of custom hardware designed for oscilloscopes

Really? The Pic32 wouldn't be able to do a 512-point FFT (written in C) while sampling at 1.1Mbps? What about with digital inputs at 1 MHz or 10 MHz? Sorry for the newb question!

I think this is really a question for another forum as although the board you have bought is pin compatible with the Arduino its quite a different device.