"Fastest" Arduino compatible board

Hi, I know that this question has been asked many time before, but the threads I've come across are too vague. I am looking for an upgrade to the Arduino nano, and I am curious which board(s) best meet the following criteria:

-Compatibility with Arduino IDE and libraries
-Fast loop time (even for big projects with displays and such)
-Price, nano clones can be bought for less than 2 pounds.
-I/O max output current (25mA preferred to drive leds and mosfets)
-Size, Arduino nano, maple mini, and the pill boards have a compact form factor
-All of the fancy stuff(ADC, PWM, SPI, I2C, Serial, etc.)
-Power consumption(not important, just for completeness sake)

I guess in a way I'm just looking for an arduino nano on steroids if that makes sense. 3.3v or 5v isn't an issue since logic level converters can be used. After searching around for some time the best options I found so far use the STM32 chip, the Maple Mini and the black/blue pill. The Teensy seems to be much better but are expensive since there are no clones. Right now I'm about to order some black pill boards, the specs look great, especially for the price(1.63 pounds).

In case anyone is wondering this issue came to mind as the standard atmega328 runs out of pins quickly when you start adding things like displays and SPI communications to your projects. PWM is a big one, for exampling using the servo library robs you of 2 pins. This becomes annoying as many projects become impractical due to these constraints. The code also starts to run much slower. I know there are solutions to some of the problems such as port extensions and such but using a single board makes things much easier.

Thanks.

Look into an Atmega1284

.

Teensy3.x is probably your best bet. There are a bunch of ARM boards that are in a similar performance range, but Paul probably has better support (and more contributions to the community) than the maple/st boards (including the TI launchpads (good support via Energia) and Freescale/NXP "freedom" boards (Uno-like formfactor, but not much SW support.)

-Price, nano clones can be bought for less than 2 pounds.

That's not going to happen unless someone is making cheap clones in China, but the Teensy 3.2 is <$20 (less than an "genuine Nano"!)

-I/O max output current (25mA preferred to drive leds and mosfets)

That's not going to happen either. All the fast boards are 32bit microcontrollers with significantly lower output current (and only 3.3V)

-All of the fancy stuff(ADC, PWM, SPI, I2C, Serial, etc.)

"Fancy stuff" shows up in spades (add USB Host, I2S, DMA, and more), but using them, or using them in "fancy mode" may not be supported by the Arduino environment. One of the reasons that chip vendors aren't widely enthusiastic about Arduino is that it does such a simplistic abstraction of the peripherals that they don't get to show off their fancy features...

Look into an Atmega1284

Alas, while the 1284 has more pins and more memory, it runs at the same SPEED as the other AVR Arduinos.

AFAIY Teensy 3.x (ARM Cortex M4) have an overkill audiolibrary and are very compact boards, plus a very good support.

I would mention the DUE (ARM Cortex M3) clocked at 84 MHz (Fast loop), DUE clones prices are around 25 $, has 13 12-bit resolution analog pins, 2 built in 12-bit resolution DACs, SPI, 2 I2C (SDA/SCL, SDA1/SCL1), a very powerful PWM controller and TC controller, 5 Serial plus an SerialUSB (USB 2.0 OTG) , a PDC DMA and an AHB DMA, etc…

If you are looking for a multicore compatible Arduino, there is the Tricore Shieldbuddy from Infineon Hitex.

1 Like

I recommend the ESP-32 module. It can go up to 240MHz (15x as fast as an Uno).
It also has 2 SPI ports, I2C ports, UART, Serial, and even 2 DACs.
Not to mention the fact that it has Wifi and Bluetooth...

Yeah I've ordered a esp32 board, but the vendor doesn't state whether it's the 160Mhz or 240Mhz version. I hope it works similar to how a nano works.

ningaman151:
I am curious which board(s) best meet the following criteria:

-Compatibility with Arduino IDE and libraries
-Fast loop time (even for big projects with displays and such)
-Price, nano clones can be bought for less than 2 pounds.
-I/O max output current (25mA preferred to drive leds and mosfets)
-Size, Arduino nano, maple mini, and the pill boards have a compact form factor
-All of the fancy stuff(ADC, PWM, SPI, I2C, Serial, etc.)
-Power consumption(not important, just for completeness sake)

You wont find a 'faster' board that meets all the criteria.

Whilst there are 'faster' boards, ESP32 based for instance, the Arduino libraries will not all be compatible. With the 'faster' boards using different architectures this should not really be a surprise.

So whether a 'faster' board is acceptable to you rather depends on how much effort you are prepared to spend making changes or which libraries you can do without.

I have recently been converting a LoRa tracker receiver program from Atmel based original, which runs fine on Atmega328, 1284P and 2560, across to the more powerfull ESP32.

I have needed to make changes to;

SPI setup
I2C setup
Serial setup
Change LCD library, original did not work on ESP32
Cant use EEPROM for storage, used a FRAM alternative.
Could not use original SSD1306 library, Adafruit one OK.
Modification to radio library, no tone() support.
Change variable declarations from 'int' and 'unsigned int' to int16_t, uint16_t etc.

I am still having issues with the GPS Library, TinyGPSPlus, although the ESP32 is in theory running at 30 times faster than the 8Mhz Pro Mini I used originally, the library appears to be too slow to keep up with a constant feed of characters from the GPS, other GPS libraries dont appear to work on the ESP32.

the vendor doesn't state whether it's the 160Mhz or 240Mhz version

You choose the speed when you upload the sketch. Same for esp8266 (80MHz or 160MHz).

I would choose Maple Mini over black/blue pill boards. They come with bootloader installed and you don't have to worry about getting one with an incorrectly manufactured usb circuit that needs tiny resistors replacing.

Also consider AdaFruit ItsyBitsy M0 and M4.

Here's another vote for the ESP32, but it might be tough keeping them under 2 pounds.

I also found problems when using the Bluetooth serial with ESP32.

My program (for Arduino Pro Mini @ 8Mhz) sent out the location of the remote transmitter received via LoRa as a formatted NMEA string via Bluetooth so an Android mapping app could display the location of the remote transmitter. This has worked reliably for a couple of years.

This does not work on the 240Mhz ESP32, the Bluetooth serial just drops whole bunches of characters. This appears to be 'bug' and there is something of a workaround that has been found only in the last two weeks.

I suspect a similar issue may be affecting the reading of characters from the GPS, it appears that at times the program (on the ESP32 @ 240Mhz) just ignores characters coming in from the hardware serial port the GPS is connected to, which gives the symptom that the GPS library never gets a fix, not good.

PaulRB:
You choose the speed when you upload the sketch. Same for esp8266 (80MHz or 160MHz).

I would choose Maple Mini over black/blue pill boards. They come with bootloader installed and you don't have to worry about getting one with an incorrectly manufactured usb circuit that needs tiny resistors replacing.

Also consider AdaFruit ItsyBitsy M0 and M4.

I've seen some other posts comparing boards, SAMD21, STM32, M4, etc and I'm still unsure. On Out of the three mentioned, or better, out of the ones out there, which is the most arduino compatible. On another thread you mention is may be best to use the M0 boards as there are official Arduino boards using the same chips. Here is the thread I'm referring to: Arduino nano, but faster - Microcontrollers - Arduino Forum

Emphasis on arduino compatibility and ease of use (want using it to be as close as possible to using an official arduino board, such as uno, nano, or mega). That's the criterion with the highest priority.

Don't get too caught up on "fastest", without having an exact spec for what you'll be doing with it.
The M3/M4 boards are definitely more powerful than M0 boards, and for maximum compatibility I'd go with one of the Teensy 3.x boards. They've been out the longest, and PJRC goes to a lot of effort to ensure Arduino compatibility (as well as contributing to the Arduino code base.) 2nd choice would probably be the Adafruit "M4" boards - they are also well invested in the Arduino code and compatibility, but the boards are a bit "young" and still working out some bugs. (on the plus side - several different form factors!)

Neither of these is likely to show up as a cheap clone, though. Expect to pay the full $20-$40 price...

westfw:
Don't get too caught up on "fastest", without having an exact spec for what you'll be doing with it.
The M3/M4 boards are definitely more powerful than M0 boards, and for maximum compatibility I'd go with one of the Teensy 3.x boards. They've been out the longest, and PJRC goes to a lot of effort to ensure Arduino compatibility (as well as contributing to the Arduino code base.) 2nd choice would probably be the Adafruit "M4" boards - they are also well invested in the Arduino code and compatibility, but the boards are a bit "young" and still working out some bugs. (on the plus side - several different form factors!)

Neither of these is likely to show up as a cheap clone, though. Expect to pay the full $20-$40 price...

I've been recommended teensy often. My problem with it is price, not really short on money or anything, I'd like to use something disposable or at least be able to order in bulk without breaking the bank. I'm not sure what the difference between the teensy 3.2 and other stm32 boards is. I've found some M0 boards on aliexpress for 8 pounds a pop, still on the pricier side, but half the price of a teensy. I'll attach the url at the end. Would interfacing with it be identical/close to using an arduino zero? Similar to how using an uno and nano is almost identical? Otherwise I'll try out the teensy 3.x boards (3.2 most probably, as I need to check library support for the others).

Here is the link for the M0 board I mentioned:
http://ali.onl/1bnn

The advantage of the samd21 boards, whoever they are made by, is their Zero/M0 compatibility, which means that support, libraries etc will be created & maintained by, or with the blessing of, Arduino Corp. None of them are as cheap as you would like, I suspect, because the Chinese board manufacturers have to pay ATMEL for the samd21 chips and, as yet, cannot make copies of them.

The Teensy boards also benefit from high Arduino compatibility and support because of one man, a man with a high level of expertese and involement with the Arduino movement for a very long time. (But of course that could also be seen as their weakness: its a one-man band, I suspect. What if he got hit by a buss tomorrow?) Have you checked out the Teensy LC? Only slightly more expensive than the cheap Chinese samd21 boards.

Also check out the Tau. This does use a slightly different chip to the Zero and compatible: the slightly smaller and cheaper samd21e. Is not quite 100% compatible I believe, so that's a small risk.

The best "bang-for-buck" in terms of processing power is probably the esp chips/boards.

PaulRB:
The advantage of the samd21 boards, whoever they are made by, is their Zero/M0 compatibility, which means that support, libraries etc will be created & maintained by, or with the blessing of, Arduino Corp. None of them are as cheap as you would like, I suspect, because the Chinese board manufacturers have to pay ATMEL for the samd21 chips and, as yet, cannot make copies of them.

The Teensy boards also benefit from high Arduino compatibility and support because of one man, a man with a high level of expertese and involement with the Arduino movement for a very long time. (But of course that could also be seen as their weakness: its a one-man band, I suspect. What if he got hit by a buss tomorrow?) Have you checked out the Teensy LC? Only slightly more expensive than the cheap Chinese samd21 boards.

Also check out the Tau. This does use a slightly different chip to the Zero and compatible: the slightly smaller and cheaper samd21e. Is not quite 100% compatible I believe, so that's a small risk.

The best "bang-for-buck" in terms of processing power is probably the esp chips/boards.

The M0 board I found has less RAM and flash memory than the Zero. Is this an issue regarding compatibility? Esp is attractive but by what is said it offers inferior compatibility to alternatives. I live outside the US, so the Teensy is more expensive. A few extra pounds isn't an issue if it provides better compatibility. True, a one-man operation is risky. Not so much in the bus department, but yeah I could imagine him abandoning the operation etc. So its down between the M0 and Teensy? Out of these two, which one provides more compatibility with Arduino?

Make yourself a favor, buy an arduino DUE (~ $12).

I have been using esp8266 boards for some time and have found very few compatibility issues with libraries and sketches. The libraries and sketches that don't work usually rely on CPU registers and instructions that are unique to the ATmega series of chips. Often, they are not even compatible with the entire ATmega range, just the atmega328 and atmega1280. These libraries and sketches won't be compatible with samd21/Zero either. Over time, they will either be updated, if they are valuable, or abandoned. But sketches and libraries that don't rely on features unique to ATmega chips generally run absolutely fine on esp, samd21, stm32 etc.

I live outside the US ... A few extra pounds...

There are lots of us Brits on the forum. Yes, some US items can seem less good value for the money, especially with the value of Sterling at the moment. Have you tried Pimoroni, Pi Hut, HobbyTronics?

ard_newbie:
Make yourself a favor, buy an arduino DUE (~ $12).

I did. It's been out for a while though, feels outdated.

PaulRB:
I have been using esp8266 boards for some time and have found very few compatibility issues with libraries and sketches. The libraries and sketches that don't work usually rely on CPU registers and instructions that are unique to the ATmega series of chips. Often, they are not even compatible with the entire ATmega range, just the atmega328 and atmega1280. These libraries and sketches won't be compatible with samd21/Zero either. Over time, they will either be updated, if they are valuable, or abandoned. But sketches and libraries that don't rely on features unique to ATmega chips generally run absolutely fine on esp, samd21, stm32 etc.
There are lots of us Brits on the forum. Yes, some US items can seem less good value for the money, especially with the value of Sterling at the moment. Have you tried Pimoroni, Pi Hut, HobbyTronics?

I ordered a bunch of different boards a few months ago; black/blue pills, nanos, due, megas in compact form factor and in standard, esp32, esp8266. The megas, nanos and dues are all clones from aliexpress. Trouble is that they're in Germany while I'm in the UK. I could get them here somehow, or order some Zeros or even a Teensy. As you said, the esp boards look like the best bang for buck, what do you think of the esp32 since I have one of those too? Also makes it easier to add wifi later on if needed, and I definitely require bluetooth often. Do the much higher clock speeds on the esp boards compared to the teensy, stm32, and M0 translate to better performance? Between the 32 bit boards, is there enough difference to make it matter?

I checked out the Teensy LC and Tau. They look good, but I would prefer if the boards were open source so they would be available from different vendors, and in the case of the Tau, a bigger userbase. Also, with the M0 boards each one has a different amount of RAM and flash, is this is an issue when uploading sketches?

I mentioned the price because as you know the price in dollars will be the same amount but in pounds in the UK, I've looked at different vendors and the prices are pretty much identical. For example on HobbyTronics a Teensy 3.2 is 19.80 pounds while it's 19.80 US dollars on pjrc.

I've never used an esp32 yet. I can see they have some advantages I'm sure I would find useful on some potential projects. But at the moment my focus is more towards re-designing the sensors and weather station I built previously, to make them much lower power and last ideally a year+ on modest size batteries. So I'm moving away from WiFi (never been a big fan of Bluetooth anyway) towards LoRa.

As for performance of the various 32-bit Arduinos, it all depends on what you are doing with them. For some purposes, like monitoring and controlling digital inputs and outputs, they are often no faster than the 8-bit AVRs. The AVRs are very efficient at many types of tasks. But where WiFi/Bluetooth/LoRaWAN is needed, more ram memory, flash memory and clock speed are a big plus. There are modern, resource-heavy protocols to be dealt with like network stacks and encryption. My LoRaWAN nodes based on ATMega328 are close to the limits, for example.

Of course, you can get modules which relieve a slower 8-bit MCU of these tasks, such as the commonly used Bluetooth modules or the ESP-01 WiFi adaptor. But I don't really like the idea of using a more powerful MCU as an add-on module to make up for the limitations of a less powerful MCU. To me, that feels like pulling a sports car along with a horse. Why not just use a single, more powerful MCU by itself? But that's just how I feel.