Is it possible for Arduino boards to accurately process analog inputs that vary at MHz frequencies?

If possible, which Arduino board would be most appropriate for such application?

What adjustments would be required for it to handle such rapid analog input variations?

  • What frequencies?
    – Nick Gammon
    Jul 29, 2016 at 8:47
  • Depends on what the signal actually is and what you want to measure. The Arduino isn't fast, but you could, for example, build a board that gives you a measure of what the frequency is, if it changes slowly enough. Or if it's a relatively constant frequency and you care only about the amplitude, you could use a variant of the standard super heterodyne circuit.
    – MAP
    Jul 30, 2016 at 16:55

1 Answer 1


Your typical ATMega-base Arduino cannot sample anywhere near that kind of speed.

It takes 13 clock cycles to sample an analog value on an ATMega chip, and the maximum clock frequency for the ADC is 1MHz. That gives you an absolute maximum sampling speed of 76923 samples per second. That means the highest frequency you can sample is 38461Hz.

There are better chips on the market with higher sampling speeds, but they aren't Arduino. Some can sample at the tens of millions of samples per second allowing you to sample frequencies in the low MHz. Other specialised ADC chips are available that can sample in the Gsps range which are what are used in oscilloscopes and high speed communication (fibre optic) systems etc. Working with these kind of chips needs quite a lot of skill though as the analog signal paths requires special design and consideration.

Also when sampling at those kind of frequencies you need a lot of high-speed memory, which no Arduino can ever even consider the possibility of having.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.