Which Arduino board to use?

Thread Starter

ronsimpson

Joined Oct 7, 2019
3,037
I have not written code for years. I am looking at Arduino, small board, USB connection, 3.3V IO.
We need to program some SPI parts (DAC) and I2C memory to get a board ready to test.
My EEPROM programmer/ Micro programmer is outdated and so I probably should switch to something like the Arduino.
I thought about Pi-0 but I cannot get my head around Python.

Thanks for your thoughts.
RonS.
 

dl324

Joined Mar 30, 2015
16,922
I thought about Pi-0 but I cannot get my head around Python.
You have many language choices with Pi Zero/Debian. I prefer C.
I too have trouble with Python.
Same here. I don't like the dependency on whitespace. Convinced myself I was going to learn how to use it, but decided it wasn't worth the bother. I'll hack on existing Python scripts, but I won't write anything from scratch using it.
 

Jon Chandler

Joined Jun 12, 2008
1,051
ESP8266 or ESP32 might be good choices if you want wireless options and more processing power. Programmable with Arduino code.

The cost is similar to Arduino boards.
 

Ya’akov

Joined Jan 27, 2019
9,165
[From postscript me: I really wish I had time to write more. I have so many little dev boards and there are so many options that it can be overwhelming, but if you choose from what I've talked about below you won't go wrong. Please don't hesitate to ask about any of it. Or, if you have more specific or quirky requirements, there may be something even more suited.]

Oh boy, there are so many options. But, this is not necessarily a trivial decision since it could be setting you up to buy into a particular ecosystem. Each option has strengths and weaknesses and you surely aren't restricted to one, but my experience is you start to collect resources—physical and mental—that tend to keep you going in one way. Here's what I know...

AVR-Based Options
The classic Arduino boards with AVR chips can be found cheap (not generally from Arduino itself, but third party manufacturers), are well supported, and work just fine. But, they are out of date at this point with only the latest ones competing with the other options that run just as well in the Arduino framework.

Given your requirements, I don't think I would recommend one of these as a first line option.

RP2040-based Options
The RPi foundation's RP2040 MCU is very different from traditional "Arduino" options. It's got a couple if interesting potential advantages.

One is the method of programming which involves the board appearing as a mass storage device via USB to which you copy your compiled binary. When it reboots, the program is automatically installed.

Another is PIO (Programmable IO) which allows for the asynchronous operation of IO pins controlled by a very simple language something like assembler. This frees the CPU from handling whatever you've programmed the pin(s) to do. You can bit bang protocols, deal with simple things like monitoring for changes, etc. while the happily ignorant CPU chugs along blissfully and without concerning for all that activity.

The RP2040 was designed with Python in mind, but the current support in the Arduino framework is just as good as most non-AVR options. If you choose an RP2040-based board you will have no problems.

Given your listed requirements, my choice for an RP2040 board would be the Seeed Studio XIAO. This is a very capable little board with a modern design. It comes in two architectures (RP2040 and SAMD21 (ARM)) and with a variety of peripherals depending on your needs. It uses a Type-C connector (yay!) and has excellent support in the Arduino IDE.

ARM-Based Options
This is a powerful possibility, the recommendation is the same as above.

Espressif-Based Options
The range of options with Espressif silicon is vast. You could do much worse than to invest in learning the ecosystem. The variety is excellent with options that range from the ESP8266 to the ESP32 with all the versions that implies.

Of course, ESP boards always have WiFi, it's part of the bargain, but they can also have a range of other radios including BLE, and others. The array of peripherals is staggering. These are SoCs, and they can do an amazing amount of stuff. They even have an RP2040 option or two.

For the ESP* range, my go-to is LilyGo. They offer a huge range of boards and their designs, quality, and support are excellent. The prices are not the cheapest but then they aren't expensive either, it's all relative!

I do also frequently use one other vendor and that is LOLIN (previously and sometimes still WEMOS). Like LilyGo, they have an official store on AliExpress and offer a range. The D1 Mini and related options fit your bill.

Other Options
There are many other options, but this is already quite long and if you choose from the above you will find many other companies producing clones that are identical or very similar. This gives you choices and backups.

If you have a particular questions about the above, or the development environment, please ask. I recommend that since you don't know or use Python, you start with the Arduino IDE and framework. You don't have to stay there. Python is always an option as is the Espressif IDE (free) if you are using ESP* hardware.
 

drjohsmith

Joined Dec 13, 2021
852
I'm afraid I would differ with some comments above...

I have seen people getting back into coding, running fast ,but the odd starter bit can be a stumble
proper Arduinos are "relatively cheap"
when you have a new tool chain as well, the last thing one wants is a nagging doubt, is it the hardware..
I'd suugest , get a cheap proper Arduino, and the tools and do the basics with that
it should do what you want
if later you need to move to different hardware,
thats still relatively cheap, and you old code and tools should be the same ,
 

Ya’akov

Joined Jan 27, 2019
9,165
I'm afraid I would differ with some comments above...

I have seen people getting back into coding, running fast ,but the odd starter bit can be a stumble
proper Arduinos are "relatively cheap"
when you have a new tool chain as well, the last thing one wants is a nagging doubt, is it the hardware..
I'd suugest , get a cheap proper Arduino, and the tools and do the basics with that
it should do what you want
if later you need to move to different hardware,
thats still relatively cheap, and you old code and tools should be the same ,
Currently, the Arduino framework and IDE completely support far more than "proper Arduinos". There are also many active communities for other architectures. I have not yet found any library I needed, that was currently maintained, that did not work with any of the options I suggested above.

I think the idea behind your comment is correct but as things stand there are many other options that are "Arduino" equivalent in terms of support in the Arduino ecosystem and most of them are superior hardware for the same or less money.
 

Ian Rogers

Joined Dec 12, 2012
1,136
The beauty of starting with a lil nano or pro, when the tools for any new board is installed, the code still works.
Having said that... The JSON for the Pico was pig easy... The Pi foundation has spent a lot of time letting Adafruit and others getting the pico onto that platform... I found it seemless.
 

nsaspook

Joined Aug 27, 2009
13,277
As long as no complex math is required the Raspberry Pi Pico and its like kin (no FPU) are nice. The lack of an FPU means the chip is dog slow when doing most engineering (PID control loops, vectors for IMU rotations, FIR/IIR filter, FFT, etc ...) or scientific calculations. 32 bit fixed point math works but is still slow next to a real FPU.
https://github.com/tana/pico_float_bench
 

John P

Joined Oct 14, 2008
2,026
Sure, there are plenty of options that cost no more than an Arduino and are vastly faster, with additional communication options like Wifi and Bluetooth. But what attracts people without much programming experience is that the Arduino in its original form is extremely easy to get into operation, with just a single download of software and only a few simple things to select from menus.

And lots of microcontroller projects are actually pretty simple, as this one seems to be. Why risk hassles over getting a powerful processor running, when you know that an Arduino is good enough to do the job, and won't tie you up in a complex programming environment?
 

Ya’akov

Joined Jan 27, 2019
9,165
Sure, there are plenty of options that cost no more than an Arduino and are vastly faster, with additional communication options like Wifi and Bluetooth. But what attracts people without much programming experience is that the Arduino in its original form is extremely easy to get into operation, with just a single download of software and only a few simple things to select from menus.

And lots of microcontroller projects are actually pretty simple, as this one seems to be. Why risk hassles over getting a powerful processor running, when you know that an Arduino is good enough to do the job, and won't tie you up in a complex programming environment?
This is also true of supported boards like the Seeed Xiao and the Lolin D1 Mini (to name a couple at random). It uses all the same libraries and is very well documented. At one time it was true that anything other than Arduino designed boards, and a few elect others from vendors like Adafruit, offered that easy on ramp but today there are many more with the same easy start.

And frankly, even the boards that take a bit more to get going with are probably about as easy as the “native” ones used to be. Things have improved in that regard in general with the easy getting easier and the hard getting much more like easy.
 

trebla

Joined Jun 29, 2019
543
As generic Arduino board replacement i use Nucleo-64 boards (or Nucleo-32 as nano replacement). All you need is to add STM32duino libraries to Arduino IDE (or for Platform IO for example). Nucleo boards have a programmer included, started from Nano-64 is the Arduino shield connectors installed and the onboard programmer can used for programming standalone STM32 MCUs. And later you can use for software development CubeIDE (or Keil, etc). Look at the fully supported Nucleo boards in STM32duino, some boards are poor support.
 

Thread Starter

ronsimpson

Joined Oct 7, 2019
3,037
I got a very small Arduino board to play with and now that I have it, I should have got a board with USB. I still can program it but USB connection would have been easier.
 

Ya’akov

Joined Jan 27, 2019
9,165
I got a very small Arduino board to play with and now that I have it, I should have got a board with USB. I still can program it but USB connection would have been easier.
Which board do you have? You can buy a very inexpensive USB <—> UART connector to talk to it via serial.
 

KeithWalker

Joined Jul 10, 2017
3,093
I read your requirements. An Arduino 3.3V 8MHz Pro Mini will do the job. It will require a CH340E MSOP10 USB to serial Converter to program it. If you buy from AliExpress, the pro mini is about $3.00 and the interface board is less than $1.00.
The Arduino software takes all the hard work out of setting up and programming and it is very well documented and supported.
There are comments above about the reliability of clones. I have used all types of clone Arduino modules and ATI chips from AliExpress for many years and never encountered a failure.
 
Top