Go Down

Topic: "Fastest" Arduino compatible board (Read 24128 times) previous topic - next topic

ningaman151

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.

larryd

No technical PMs.
If you are asked a question, please respond with an answer.
If you are asked for more information, please supply it.
If you need clarification, ask for help.

westfw

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.)

Quote
-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"!)

Quote
-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)

Quote
-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...


Quote
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.

ard_newbie

#3
Apr 08, 2017, 08:10 am Last Edit: Apr 08, 2017, 08:24 am by ard_newbie

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.

Fuzzyzilla

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...

ningaman151

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.

srnet

#6
Jul 29, 2018, 08:30 am Last Edit: Jul 29, 2018, 08:30 am by srnet
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.  

http://www.50dollarsat.info/
http://www.loratracker.uk/

PaulRB

Quote
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.

davepl

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

srnet

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. 

http://www.50dollarsat.info/
http://www.loratracker.uk/

ningaman151

#10
Jan 04, 2019, 09:24 pm Last Edit: Jan 04, 2019, 11:18 pm by ningaman151
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: https://forum.arduino.cc/index.php?topic=544443.0

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.

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...



ningaman151

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:
1bnn

PaulRB

#13
Jan 05, 2019, 02:47 pm Last Edit: Jan 05, 2019, 02:51 pm by 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.

ningaman151

#14
Jan 05, 2019, 06:37 pm Last Edit: Jan 05, 2019, 06:39 pm by ningaman151
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?

Go Up