How Fast is an Arduino: Guide to Arduino Speeds


When choosing an Arduino board, I’ve often found people are concerned about the speed of the processor. In my experience I’ve found that faster boards aren’t always better, particularly when cost is involved. To highlight this for Arduino, I’ve put together this guide on how fast the various Arduino boards typically operate at, and compared some of the trade-offs for that speed (cost and power consumption).

An Arduino typically runs at 16 Mhz or 48 Mhz, depending on the processor used by that particular Arduino board. The slower Arduino boardss include the Micro, UNO, and Mega which all run at 16 Mhz, while the fastest Arduino is the Portenta H7 which can run up to 480 Mhz. Most Arduino projects do not require a speed this fast, and some projects may even benefit from a slower speed.

This means an Arduino is capable of executing roughly 4 million to 16 million instructions every second (some instructions take more than one clock cycle to execute). From my understanding of where this makes a difference, the speed with which instructions can be executed can be important when converting analogue signals to digital or vice versa, such as in audio or video processing applications.

Code is compiled to instructions, an Arduino can typically execute 4 million instructions per second

Many electronics projects I’ve worked with have a trade-off in the cost of the processor, the speed of the processor, and the amount of power it consumes.

In this guide I’ve looked at:

  • What the fastest Arduino is, and why it can be better to use a slower Arduino in many projects
  • A full comparison of Arduino speeds and their costs
  • How to make an Arduino run faster!

What is the Fastest Arduino

The fastest Arduino suitable for most applications is the Arduino Due, with a clock speed of 84 Mhz and a typical cost of $40. A faster processor can be found on the Portenta H7, which can run up to 480 Mhz. The Portenta however is targeted at real-time image processing and AI applications and is not as suitable as the Due for most projects.

I’ve never really found processing power to be a serious limitation for most Arduino projects (usually mine are about sensors, peripherals, or measuring simple signals). There can be some situations where a faster processor is necessary, though even in these cases there can be features on a board (or shield) that allow you to overcome it, such as ‘input capture’.

A faster Arduino can be useful for:

  • Sound processing, particularly where it’s important to sample an input in high quality
  • Video processing, either detecting and processing an input, or creating an output, a faster processor can be required for video
  • Time-critical applications, if your processor needs to perform tasks at a certain time (such as a detailed control system), then it can be important to use a faster one – there are other techniques however to deal with a slow processor, multitasking, and real-time applications.

A slower Arduino can be useful for:

  • Saving power, particularly when battery powered – the processor will use less power if it’s slower
  • Saving money, typically slower processors are cheaper (see the comparison table below for example)
  • Circuit simplicity, while not often a problem with Arduino circuits, a slower operating speed can mean less constraints on your supporting circuit design

There is also this “input capture” mode available that can capture inputs at greater accuracy than the clock speed would allow. Check this out if you feel limited by the Arduino’s clock speed for capturing analogue signals.

I read some interesting research on the relationship between clock speed and signal sampling (for sound/video) that I left a link to in the References section at the end of this guide if you’re interested in reading too. It’s quite in-depth, so not as useful for the typical Arduino project.

Comparison of Arduino Speed and Costs (full table)

The table below is a comparison of Arduino speed and typical costs for each of the popular current Arduino boards:

BoardClock SpeedTypical Price
Nano16 Mhz$20.70
Nano 3364 Mhz$20.20
Micro16 Mhz$20.70
Leonardo16 Mhz$20.70
UNO Rev 316 Mhz$23.00
Mega 2560 Rev 316 Mhz$40.30
UNO WiFi Rev 216 Mhz$44.80
Yun16 Mhz$56.40
Due84 Mhz$40.30
MKR WiFi 101048 Mhz$32.10
MKR WAN 131048 Mhz$40.30
MKR Vidor 400048 Mhz$72.40
Portenta H7480 Mhz$103.40
Arduino board comparison by clock speed and typical price (USD)

The Due and the Nano 33 are the best boards in terms of clock speed per dollar with the greatest suitability for a wide variety of projects (even though the Portenta H7 is technically faster, it serves a niche set of predominantly image processing uses). Care needs to be taken when using these boards as they operate at 3.3V; there are ways to configure them for compatibility with 5V shields however.

I feel it’s a bit unfair to include the Portenta and Vidor on this list as they are really targeted at niche uses where their clock speed isn’t comparable to the other boards. If the project you have in mind requires a Portenta (good for image processing) or a Vidor (for its FPGA), then hopefully clock speed isn’t high on your list of requirements.

How to make an Arduino run faster

It is possible to increase the clock speed on many Arduino boards as the ATmega processors at the heart of the boards are capable of being operated at a faster speed. From what I’ve read, it seems this may lead to some libraries related to timing no longer functioning correctly.

Rather than change the clock speed on an existing Arduino board, it seems to end up easier to build your own “Arduino compatible” board from the respective ATmega processor and then run it at the faster clock speed you want. An example of this is here.

The basic steps to make a faster “Arduino” are:

  1. Wire up an ATmega processor in an Arduino compatible circuit
  2. Compile a bootloader to support the increased clock speed
  3. Write code considerate of the increased clock speed (i.e. watch out for timing)
Crystal oscillator, the starting point for the processor’s clock

I’ve often found it’s *not* necessary to increase the speed on an Arduino; there aren’t many situations where the few extra Mhz will add value to a project, particularly compared to the effort involved in doing so. Either investigate ‘input capture’ or another way of converting to/from the analogue signal, or use a faster microprocessor (e.g. the Due).

Bottom Line

In summary:

  • Arduinos can typically run 4 million to 16 million (and more) instructions per second
  • The fastest Arduino is the Portenta H7, though most projects requiring speed would be satisfied by the Due
  • The Due is likely also the best value for money when looking only at processing speed (84 Mhz for $40)
  • It is possible to make an Arduino run faster, though the easiest way is to build your own Arduino instead

References

Some of references I used in this guide include:

  • This article about the relationship between clock frequency and sampling
  • The full data sheet of the ATmega processor (commonly found in Arduino boards)
  • The instruction set for those ATmega processors

Chris

Engineer and electronics enthusiast. Enjoys solving problems with electronics and programming.

Recent Posts