Best Arduino to get in 2020 ? - Page 1
Forum section: electronics / general

author: MathWizard
author_rank: Super Contributor
timestamp: April 01, 2020, 12:02:16 am
content: I'm new to this type of stuff, I want it to play with and someday try robotics projects. There's a lot of version's. I know the nano has the SMD with 2 extra DAC or ADC lanes.What's the best 1 to get these days? I'm sure there's whole kit's too, with header boards and stuff. A wireless 1 out of the box would be nice. I'd consider a kit for sure, at a good price.What about the cheap ATMEL chips for these on ebay, are they fit to buy ?

author: Whales
author_rank: Super Contributor
timestamp: April 01, 2020, 12:08:33 am
content: There is no "best one", they're all different. Before starting a project it's simply impossible to guess which is best for you.If you have never used one before: start with a cheap Uno. That will give you the experience you need to consider whether or not the other models are worth getting. If you get a cheap one now then you will have more money for when you decide you want a different one later.> A wireless 1Be ware that "wireless" includes everything from "very simple" to "stupendously complex and irritating". Read up code examples of how to use wireless thingy X before buying.> What about the cheap ATMEL chips for these on ebay, are they fit to buy ?Greymarket sources like eBay are known to relabel chips (eg change the model of the ATMEL chip to a better one or change the manufacture date) and you will encounter some failures, but if you have time and it's for hobby use then it's often worth it.More important is how you intend to program the chips: an Arduino provides a USB interface and a convenient bootloader, a bare ATMEGA chip does not.

author: fourfathom
author_rank: Super Contributor
timestamp: April 01, 2020, 12:11:23 am
content: Look at Adafruit and Sparkfun to see a whole ecosystem of Arduino and compatible controllers (some with on-board WiFi, Bluetooth, etc.), and hundreds of useful I/O adaptors. Lately I've been using the Adafruit ItsyBitsyM0 for my gadgets, but there are dozens of other good choices.

author: MathWizard
author_rank: Super Contributor
timestamp: April 01, 2020, 12:16:53 am
content: I want to get into hardware hacking too.As for buying a few chips, I mean for more permant projects, like controlling a security cam motor over my door.Soon I'll be like The Lone Gunmen from the X-Files LOL

author: macboy
author_rank: Super Contributor
timestamp: April 01, 2020, 01:19:20 am
content: There is no one "best" Arduino for all projects. At minimum you need to consider I/O voltage (3.3 V or 5 V), CPU speed, memory (both RAM and program FLASH) and of course price.For most basic projects, I use the ~$3 "nano" clones that you can find on ebay and everywhere else. The nano is mostly the same as the larger UNO, but has the 2 extra ADC (analog input) lines. It still has the built-in USB to serial converter (the "micro" and clones of that do not) that the UNO has. One of the main drawbacks of the Nano (or UNO) is the lack of a single 8-bit I/O port, and generally few digital I/O's. If you need more, then the consider the Mega 2560 clones. There are other Arduinos with as many I/O's as the Mega but much faster processor (and more memory) but they are usually limited to 3.3 V I/O rather than 5 V.In my opinion, don't be afraid to buy inexpensive clones rather than Arduino-branded devices. Arduino is fully open-source both software and hardware, so they encourage third-parties to build devices. In fact, Arduino would not exist if not for the open-source Wiring and Processing frameworks that it is built upon.

author: ozcar
author_rank: Frequent Contributor
timestamp: April 01, 2020, 01:43:35 am
content: I've bought many cheap "Arduinos" on Ebay, but the smaller ones like Nanos, Micros and Pro Micros. Did get a few Nanos that had the infamous fake FTDI chips on them, so now I avoid those and select ones using CH340G instead. I have never had a problem that I could attribute to fake Atmel chips.I kind-of like the ATMEGA32U4 based Pro Micros with a little more ram and an extra timer in addition to the built-in USB, but have had them occasionally refusing to program through the USB without some messing about - on one occasion I had to re-program the bootloader using ICSP. Perhaps that is just due to them being reliant on the built-in USB to program them though, rather than having anything to do with them being non-genuine or fake.

author: MathWizard
author_rank: Super Contributor
timestamp: April 01, 2020, 04:54:16 am
content: What about this here, below. I want to start at low level, basic stuff, so an 8-bit chip is fine. Point #5 at 4:35 worries me, saying there's no debugging. So if that's like a code spell-checker, I will sure want that ability.IDK, I could get a basic standalone (and immediately want the display and accessories), or a nice kit with a few sensors and display for 3x the price, which is fine.The guy mentions the STM32G431 , does that allow easy debugging? If the other chips can do everything the atmega328 can but more and better......I could do that.Really I just know the name Arduino, and just want something for general purpose, hobby/educational use, on the digital/programing sides of EE

author: ChunkyPastaSauce
author_rank: Unknown
timestamp: April 01, 2020, 05:13:16 am
content: I usually use one of thesehttps://www.pjrc.com/teensy/techspecs.htmlAlso not clearly listed there,https://www.pjrc.com/store/teensy40.html600mhzNot $3 though

author: westfw
author_rank: Super Contributor
timestamp: April 01, 2020, 07:11:01 am
content: Quote+1. The vast majority of the examples, tutorials, and add-on boards are for the Uno processor and form factor.QuoteREAL Atmel chips from Real distributors (Or direct fromhttp://MicrochipDirect.com) are not expensive. Sometimes cheaper than eBay, for reasons that aren't clear. Sometimes shipping will push up the price, but sometimes there are free shipping deals. A possible exception is certain semi-obsolete chips (ATmega8, ATmega32, ATmega128, for example) that seem to have a well-established gray market.For more advanced boards, I tend to like Adafruit, Sparkfun, and PJRC ("Teensy") more than the newer Arduino Boards.https://www.tindie.com/stores/drazzy/has a wide variety of minimal circuit boards for the interesting ATtiny chips.

author: MathWizard
author_rank: Super Contributor
timestamp: April 01, 2020, 07:21:27 am
content: How similar is the language used for ATmega328 and the ARM STM32 ? It's like linux, or is linux right.I could get a STM32 based device for about the same as the Arduino kit I like. However the former doesn't come with wires, headers, or sensors.Is the Arduio easier to learn than the other 1 ? IDK, it doesn't matter, I can get both right now, but I'll probably order the arduino 1st anyways.....I can give it away when I don't want it anymore.

author: westfw
author_rank: Super Contributor
timestamp: April 01, 2020, 07:36:22 am
content: QuoteNone of the Arduinos have debugging, and the Arduino IDE does not support debugging.If you want debugging, you might consider one of the Microchip Xplained or Curiosity Eval boards (but you'd have to use them with Atmel Studio or MPLAB-X to get debugging.) Those run about $9 to $16. An ATmega328p Xplained Mini is pretty much Uno compatible, includes debugging, and costs $8.88.https://www.microchip.com/Developmenttools/ProductDetails/ATMEGA328P-XMINI

author: MathWizard
author_rank: Super Contributor
timestamp: April 01, 2020, 07:51:33 am
content: Ok I'll get the arduion kit, and this, unless some one point's out something wrong with this 1https://www.amazon.ca/gp/product/B07B2DS1NH/ref=ox_sc_act_title_1?smid=A29AOP4GIE7DX6&psc=1Does it have debugging ?There's a lot of tech. details there, that's way cheaper than the ones like this nucleohttps://www.amazon.ca/NUCLEO-F446RE-STM32F446RET6-development-integrates-XYG-Study/dp/B014IXUB1M/ref=sr_1_17?keywords=STM32&qid=1585727380&sr=8-17

author: AndrejaKo
author_rank: Frequent Contributor
timestamp: April 01, 2020, 08:54:49 am
content: Arduinos on their own do not support debugging at all. That's coming from the type of microcontroller used, which needs an external hardware debugger device. So you'll need to learn to debug by flashing LEDs and sending messages over UART.I also noticed that nobody commented on STM32s you mentioned.... I don't want to write a book here, so I'll keep it short: ATmega microcontrollers in Arduino are small and simple, with short documentation. For an STM32, you can expect few hundreds of pages for datasheet, plus a couple of thousands for the reference manual for the family. Then, a few thousands more for hardware abstraction layer library. That's only for the parts of the microcontroller made by STM32. Then, there's at least that much, if not more, for parts of the chip licensed to STmicro by ARM. You might be able to avoid those parts though, if everything works fine.On the other hand, they have 10 to 30 times higher clock rates compared to Arduino, some chips have megabytes of flash and RAM, support for floating point (some even with double precision), and the STM development boards all come with a debugger integrated on the board and the IDEs used have debugging support.So my advice would be to start with Atmega microcontrollers, until you have a good idea how things work, because they're simple enough so you'll most likely be able comprehend what's happening on the inside. Then, you'll be able to estimate if you want to jump onto the STM32 or not.

author: newbrain
author_rank: Super Contributor
timestamp: April 01, 2020, 09:48:41 am
content: Quote from: MathWizard on April 01, 2020, 07:21:27 amSome clarification is in order, here:Linux is an OS, not a language.Development environment to write programs for both Atmega and STM32, and also the Arduino specific IDE, are supported on PC running Linux or Windows and MACsThe Arduino ecosystem provides you with a (quite simplified and ugly) IDE, and allows you to write program in a (quite simplified) dialect of C++, relying on an easily understandable abstraction layer.Atmega and STM32 processor have very different internal architecture and supported peripherals (IO, timers, I2C, SPI etc.) but, if one limits oneself to Arduino ecosystem, this is very well hidden.All the basic libraries are available for both Atmega and STM32 based "Arduinos", but not all of the umpteen different ones available on theweb...Start with a cheap clone of the Uno, as others suggested, if you are completely green to microcontrollers.If you like that and want to aim higher, before being irremediably spoiled by the "just throw a lib I found at it and hack until it works" attitude of the Arduino world, move to programming the MPU directly in C/C++ without the Arduino framework.Then get an arm based board (or 20, as me) and live happily ever after.Disclaimer: I never owned an Arduino or wrote a program for it (I have some Atmegas and Attinys in my projects, though).

author: MathWizard
author_rank: Super Contributor
timestamp: April 01, 2020, 09:50:05 am
content: OK so it's a much bigger chip. Way closer to a PC than I realize. I ordered both anyways., it's all good.I had an arduino but lost it, years ago I spent 2-3hrs at it.ThanksRight an OS, that's what I meant. This will get me playing around with code again.

author: rstofer
author_rank: Super Contributor
timestamp: April 01, 2020, 06:25:12 pm
content: I would think the Arduino UNO is the standard place to start. There are thousands of examples on the Internet so there isn't a lot of head-scratching to do.The Nano might be easier to use on breadboards and it is certainly more useful when mounted to a daughter card with other peripherals.Everybody needs to start somewhere and Arduino is better than most.Moving up from there, you can choose from hundreds of prototype boards and several different architectures. I happen to like the LPC1768 mbed because it has the same 'stamp' format as the Nano and I can have wired Ethernet by just adding a MagJack to a daughtercard. It is important to me that the library provide Berkeley Sockets.The newer STM32F devices are pretty nice and I really like the PSoC chips. When I can just use a simple PSoC with a Dual Core ARM processor and all of the support software (like FatFS and FreeRTOS) are already library features, projects get pretty simple.As to debugging, some boards support some form of hardware debugging. Others do not. All support some form of printf() debugging. STM32F boards will usually have ST-Link V2 as part of the board. This works well with their toolchain. Arduino? Not so much, with the standard IDE, but serial.print works.Hints:Get the serial port working first and then steal some conversion functions from "The C Programming Language" (Kernighan and Ritchie) when working with bare metal.Use their string functions as well. GCC string functions use the heap and, in general, I like to avoid using a heap. GCC printf() uses the string functions so even if you don't use them directly, they are still included and a heap will be generated. So, when working on bare metal, I write functions that ultimately display results on the serial port, all from "The C Programming Language" I don't actually use printf() very often.Try to code your project from the bottom up. Get the peripherals working first then worry about the mainline. Make test cases as required to prove the low level stuff performs as intended. Then work on the higher levels.

author: NiHaoMike
author_rank: Super Contributor
timestamp: April 01, 2020, 11:12:41 pm
content: I would suggest Arduino Mega or Pro Micro instead of Uno - doesn't cost very much more but gives you extra features while they're still based on the "classic" Arduino design for compatibility with code that has not been ported to ARM.

author: westfw
author_rank: Super Contributor
timestamp: April 06, 2020, 10:03:36 am
content: Avr-libc string functions do not use the heap.Arm chips usually use newlib or newlib-nano, which does use a heap rather more (though I’d have to check which “string” functions use it. The basic c str* functions don’t, as far as I know. Printf/scanf do, but I think that’s more from “filesystem” involvement than from the string functions.All of the current arduino cpus consider themselves RISC, btw, so I don’t think that message was much more than spam...

author: iMo
author_rank: Super Contributor
timestamp: April 06, 2020, 01:11:14 pm
content: IMHO, the BlackPill with STM32F411 ($4) is the best buy in 2020..PS: or the cheaper BP w/ F401 ($3)..

author: bingo600
author_rank: Super Contributor
timestamp: April 06, 2020, 02:49:16 pm
content: For a 1'st try i'd go with the UNO as well , because of all the examples out there.I just got a "starter kit" for a friend , and got two of the below 3 itemsIf you select Aliexpress shipping on all of it , it should arrive within "decent time"Arduino UNOhttps://www.aliexpress.com/item/32697443734.htmlMF Boardhttps://www.aliexpress.com/item/33014299284.htmlBB + a bit of "glue"https://www.aliexpress.com/item/32931758724.html**** If aiming high ***Another option is Mega R3 , but i'd still get a few UNO's because that's what all (most) examples are made forhttps://www.aliexpress.com/item/32850843888.html/Bingo

author: rstofer
author_rank: Super Contributor
timestamp: April 06, 2020, 03:11:39 pm
content: When you buy into the Arduino platform, you are getting an entire ecosystem unlike any other on the planet. Literally everything that can be done with an Arduino has been done and it's all on the Internet. Just Google for 'arduino <whatever you want to build>' and see what pops up.Starting with STM32F is a LOT harder. Yes, there are libraries to help get the chip running but you won't find nearly as many documented projects. And, in general, getting anything actually working is going to take a lot more time.OTOH, most Arduinos are kind of small in terms of memory and certainly slower than any of the more modern chips.In any event, an Arduino is just one of several boards you are likely to have laying on your bench. It will probably be the first one you reach for if you just want to knock something out to see if it works.There are plenty of reasons to throw rocks at Arduino, it's minimal, it's slow, it doesn't support JTAG debugging and the UNO and Nano don't have very many pins when compared to the Mega and these are all true. But in terms of getting something working with minimal knowledge or effort, it's pretty hard to beat.Don't overestimate the utility of real-time debugging. It's an infinite time sink. If you don't put bugs in your code, you won't need to drive them out later on. More to the point, serial.print can provide a lot more information. Furthermore, debugging code can be left in place and surrounded by something like#define DEBUG // comment this one line to remove all debugging code or #undef DEBUG just in case it is defined elsewhere...#ifdef DEBUG.... code for debugging, Serial.print stuff, etc.#endifIt might be handy to have debugging code in place when you revisit a project.

author: rstofer
author_rank: Super Contributor
timestamp: April 06, 2020, 03:25:19 pm
content: Quote from: westfw on April 01, 2020, 07:11:01 amThe Teensy 4.0 is FAST at 600 MHz and has a convenient 'stamp' form factor. I have a couple of these but I just haven't found a project. One will come up sooner or later.The Teensy 4.0 uses the Arduino infrastructure, including the crappy IDE, and that makes getting started a lot easier. It also has 32-bit and 64-bit floating point and a rather interesting memory layout. This is going to become my go-to board.https://www.pjrc.com/store/teensy40.htmlDid I mention that it is FAST? Yes, I did!There will still be UNOs and Nanos sitting on my bench.

author: m98
author_rank: Frequent Contributor
timestamp: April 06, 2020, 05:21:12 pm
content: If you want to start out and learn about embedded programming, the AVR-architecture is much simpler to learn and understand than ARM. Also, peripherals are simpler and more consistent between models.

author: SilverSolder
author_rank: Super Contributor
timestamp: April 06, 2020, 08:26:44 pm
content: I like the Pro Mini. At around $1 each on eBay, they are sometimes cheaper than the chip that powers them!

author: Dielectric
author_rank: Regular Contributor
timestamp: April 06, 2020, 10:00:04 pm
content: Using the Arduino IDE in TYOOL 2020 is pants-on-head ridiculous. Check out VSCode + PlatformIO + Arduino framework. It works with my blue pills, my nanos, my ESP32, and even these weirdo Infineon XMC boards I have. Debugging via my clone ST-Link works as advertised, and I even reprogrammed a Blue Pill to the Black Magic Probe firmware and that worked fine as well.I put in almost zero effort in setting it all up, which made me really suspicious that anything was going to happen the first time I hit the "debug" button, but there it was, at the top of setup() ready to go. It's like having a real development environment but with the ability to pull in the whole Arduino ecosystem.

author: coromonadalix
author_rank: Super Contributor
timestamp: April 07, 2020, 04:29:46 am
content: I would love an teensymega ?? megateensy loll

author: SilverSolder
author_rank: Super Contributor
timestamp: April 07, 2020, 12:32:16 pm
content: Quote from: Dielectric on April 06, 2020, 10:00:04 pmIs there a resource somewhere on the Web that explains how to set that chain up?Hard to beat the Arduino IDE for easily getting something happening, even if you are a n00b or casual user...

author: rstofer
author_rank: Super Contributor
timestamp: April 07, 2020, 01:47:54 pm
content: I don't know if PlatformIO is still required but when I played with Visual Studio Code and Arduino some months ago, it seemed to be. There were licensing issues so I dropped the idea. Then the licensing changed but I had already moved on...Google for 'visual studio code arduino' and you will find something like this:https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduinoVisual Studio Code is a terrific IDE but it won't print anything. This is a MAJOR failing. The Arduino IDE doesn't do a swell job either.

author: fourfathom
author_rank: Super Contributor
timestamp: April 07, 2020, 02:35:39 pm
content: I've been using PlatformIO/VSC for some projects, but for some reason I've been unable to get the "TinyUSB" library to compile with that toolchain (target is the Adafruit "ItsyBitsyM0 Express", with the Atmel SAMD21 Cortex M0 chip). It's probably my fault, but so far I can't figure it out. TinyUSB gives me USB Mass Storage and I really need it for some projects. So for those I have reverted to the Arduino IDE, where it all compiles and works. I would appreciate any help getting it to run on PlatformIO.I do like PlatformIO/VSC, and have used it with various arduino clones and variants, including Bluepill using the STlink clone to program it. For that matter, I've used PlatformIO to load Verilog code into an FPGA, but that was with the Atom editor, not VSC.As for the OP, you have the option of doing your programming "down to the metal" where you deal the intricate details of the microcontrollers, or at a higher level, using the vast collection of libraries found in the Arduinoverse. Many of these libraries will work with both AVR and ARM chips. Even if you use the libraries you may occasionally find the need to dig deeper and do some register-level coding, although you can go a very long way just writing higher-level c and/or c++ code.

author: newbrain
author_rank: Super Contributor
timestamp: April 07, 2020, 02:48:18 pm
content: Quote from: rstofer on April 07, 2020, 01:47:54 pmWow!I never noticed it, and have been using VS Code since some public beta.I think last time I printed code was in the late 80s...I just had to launch MCUxpresso and Visual Studio to see whether they have a Print item in the menus (they, in fact, do).There are acoupleofextensionsto add printing to VS Code - they both work through HTML and a browser.

author: Dielectric
author_rank: Regular Contributor
timestamp: April 07, 2020, 07:04:38 pm
content: Quote from: rstofer on April 07, 2020, 01:47:54 pmMaybe it helps if you consider VSC as a framework, then you hang all of your plugins on it to do things like that? I could see having various print plugins that handle line numbering, shading, color translation, etc. I sort of didn't see the utility in VSC until I changed my thinking a little.I had been using Atom to some extent but that seems like it's dropped off the preferred list for the things I was working with.