I work at the moment with Arduino boards in my projects, but I don’t know if for other ones an Arduino Uno might be unsufficient (complex robots, computer vision, etc.). How can we now in advance if our microchip or board of choice will be sufficient? Could we get some advice and directions of chosing the perfect board for our project, and to how do the jump between Arduino and, say, ARM chips?
This is a really great question and I am sure is one that most of us will end up asking. What determines the “perfect board” can be pretty illusive, and given that Digikey lists almost 34,000 microcontroller variations, choosing the right one is not an easy task. As Arduino is pretty much limited to the ATTiny45/85, ATmega8, ATmega168, ATmega328, ATmega32u4, ATmega1280, and ATmega2560 there might be occasions where none will fit the bill……although I personally have not hit this wall.
When I begin the design process for a new project, I create a list of all of the features I would like the project to have, then attach the necessary I/O and pin requirements to each feature and generate a pseudo-schematic. As I am most familiar with Arduino, I look at the available chips and see which one most closely fits the bill. I.E. If there are just a few more I/O requirements then say the 328 can facilitate, I will either consider adding a MUX to bridge the gap or move to another Arduino compatible chip with more I/O.
Now, if you happen to be working on a project that is going to the more of a resource hog, moving to something like an ARM might be in your best interest. This tends to be the case when you move more in the direction of human interfacing, image processing, embedded OS’s, etc.
I have found a few articles that should assist in further answering the question:
Instructable: How to choose a Microcontroller
It used to be that the number of different microcontroller chips available to the hobbyist was pretty limited. You got to use whatever you could manage to buy from the mail-order chip dealer, and that narrowed down the choice to a small number of chips.
PCB Heaven: Choosing the right PIC
Choosing a PIC according to your needs is sometimes a headache. There are people of course that hate headaches and therefore they use just 2-3 types of PICs and that’s all. That is a solution of course, absolutely inefficient though.
Maxim: Microcontroller Training Course, Microcontroller Basics
[Lesson 1 is a] tutorial [that addresses] the fundamental features of microcontrollers, explanation of processing power and power efficiency variables and a comparison RISC and CISC devices.
Choosing the right microcontroller: A comparison of 8-bit Atmel, Microchip and Freescale MCUs
When choosing a microcontroller there are many options, so which platform should you choose? There is little independent information available to help engineers decide which platform might best suit their needs and most designers tend to stick with the brand with which they are familiar.
Choosing a Micro for an Embedded System Application
Dr. Manuel Jiménez from the University of Puerto Rico details the difficult task of choosing the right MCU.
I hope this has helped answer your question and good luck with your decision! If anyone has more insight they would like to share, please feel free to leave a comment!
Don’t forget, everyone is invited to ask a question!
“Ask an Educator” questions are answered by Adam Kemp, a high school teacher who has been teaching courses in Energy Systems, Systems Engineering, Robotics and Prototyping since 2005.
this is a really interesting question. IMO an arduino is ALWAYS sufficient. With so many varieties out there you can usually find one that has the features you require. If you need computer vision or other processor intensive tasks then you can always boot up a raspberry pi. Need computer vision for a robot? Combine a raspberry pi with an arduino. Everytime someone suggests using a different micro in my robotics club, I patiently allow them their opinion and while they’re sourcing components and figuring out how to program the new chip, I’ve accomplished the task on my arduino in just a few hours.
I’m not very popular at the prototyping stage because I push the arduino platform religiously. They feel that arduino isn’t "real engineering" and they should build from the ground up. But when they’re in a pinch come competition time and can’t figure out why their micro is misbehaving, I’ve got my arduino ready to step in and save the day.
On the other hand, I do recognize that if you are building or planning or building embedded electronics in industry you should move away from the arduino crutch and get serious about embedded fundamentals.
Woha! Thanks a lot for answering my question!
I’ve worked some time with Arduinos, I did my end-of-career project with it and in fact at this very momment I am working in some DIY-form of an Adalight (yay Adafruit!).
I’ve seen the Uno’s specs, the sizes of my scripts and the memory left on the Uno that the IDE indicates, etc., and always wondered, how much are those kb in real life? What do they mean? Where would I need a Mega instead of a Uno?
I’ve also seen some FPGAs, Parallax boards, ARMs boards, etc. being offered here and in some other web-stores and always wondered which projects were they intended to.
So thank you, I’m reading all these links!
– Marcos Manuel Ortega
Awesome. Glad to help!