Image courtesy of Thinkstock
First, thanks to all of you who responded to my previous blog, “How to Choose the Best Microcontroller.” It’s great to get input like this from experts on the subject. While the responses were broad, there was a consensus of sorts.
In an informal, non-scientific tabulation of your responses, I concluded that the Arduino platform with an Atmel ATmega328p won the contest. Most agree that the Arduino is a great starting point for beginners, and the Atmel controller is typical and representative of micros today.
Clearly in second place were the PIC devices from Microchip. They are cheap, simple, and have lots of software and hardware support. Different models were recommended. By the way, in case you did not know, Atmel is owned by Microchip.
Fourth place goes to ARM. I discounted this line of processors, but usage is widespread and growing. It is more complex than typical 8-bit devices, but deserves a second look.
Another surprise recommendation was Cypress Semiconductor’s PSOC. It received much praise for its ease of use and support. Another one to investigate.
There were a few votes for some NXP and STM devices. I even got a recommendation for the 6502. Remember that? I used it in a few projects back in the day—a great, simple, and capable processor. Isn’t that what the Apple I and II used? There were also many memorable mentions of the 8051, but all agreed it was too out of date for most new designs.
As for what I plan to do, I will take another look at a few of the above-mentioned devices and focus on the availability of resources and support to beginners, hobbyists, and makers. I am leaning toward the majority recommendation of the Arduino/Atmel combo.
I did invest in an Arduino Uno recently. The price is right and there are quite a few books and web materials to support it. Unfortunately, I still haven’t made it work yet; I cannot get the free software from the Arduino site to work. There seems to be a “driver” problem. This is just the sort of discouraging occurrence that puts off beginners eager to learn. I suspect I will eventually solve this problem, but so far none of the many references I have acquired have been helpful. Maybe it’s just me. Any thoughts?
As for programming, the recommendations were uniformly for the C language. Assembler received a few votes, but C is the go-to language for embedded controllers. BASIC was universally rejected. IEEE’s magazine Spectrum recently ranked programming languages. Number one was C with Java in second place and Python in third. Arduino and Assembler ranked 12 and 13, while BASIC in the form of Visual Basic was number 18. Looks like I had better start learning C.
I do appreciate all the feedback from all you guys who have the experience. Thanks again.