3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

How to choose a MicroController

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.

But times have changed. Digikey lists over 16000 different line items under a 'microcontroller' search. Which one should a hobbyist with no particular prior experience choose?

Here are some hints. These are particularly aimed at someone trying to pick a microcontroller to use for the first time at least partially as a learning experience, rather than someone who wants to accomplish a particular task.

Update 2009-01-28: This Instructable was recently mentioned in some popular blogs, and is getting a bunch of new readers. Be sure to read the 'comments' made by other readers and the responses to them; there's a lot of value in those comments...
 
Remove these adsRemove these ads by Signing Up
 

Step 1What IS a "Microcontroller" ?

What IS a \"Microcontroller\" ?
If you ever took a very introductory computer course, you probably learned about the major components of ANY computer:

  • A Central Processing Unit or CPU. The part that actually performs logic and math
  • Memory. Where the computer stores data and instructions
  • Input and Output or I/O. How the computer moves data between its other components and the real world.

A microprocessor uses microelectronic fabrication techniques to shrink the CPU to a very small size; usually a single "chip."

A microcontroller uses the same techniques to shrink the entire computer to a single chip (or very small module.) CPU, Memory, and I/O all in a little package as small as a grain of rice. Just connect up power and it starts doing its thing; computing and talking to the world. Usually the I/O on a microcontroller is aimed at "low level" hardware like talking to individual switches and LEDs instead of keyboards, internets, and displays (like your desktop computer.) A microcontroller is just the thing you want, if you want to talk to individual switches and LEDs...

« Previous StepDownload PDFView All StepsNext Step »
175 comments
1-40 of 175next »
Feb 10, 2009. 12:50 PMebidk says:
Very nice instructable :)

You could also add http://maxim-ic.com to the free sample list, they have some nice things like DS80C390 and DS80C400 :)
Nov 3, 2011. 12:39 PMseefriek says:
These are 8051 core processors, and are very nice.
Oct 17, 2011. 5:38 PMdenilsonsa says:
After doing a very small project using PIC16F870 and doing a big project using ATmega8, I've written a comparison between AVR and PIC on my blog:

http://my.opera.com/CrazyTerabyte/blog/2011/09/08/comparison-between-microchip-pic-and-atmel-avr-microcontrollers

I hope it's useful for other people as well.

TL;DR: In my opinion, AVR is better than PIC.
Apr 3, 2007. 3:20 PMVIRON says:
8031 and 8032 is cheap, can be pulled as a 8051/8052 and bootstrapped from 64K each of RAM and ROM, if you have an eprom programmer. Eproms are cheap nowadays and I once built my own eprom programmers and was able to erase them on a fluorescent "blacklight" tube overnight, when I was REALLY unable to afford new equipment. Every non-USB keyboard probably has an 8048 chip, which may be EPROM compatible, but with limited external memory and different instructions, and has been around since the days of ATARI 2600. MicroProcessor mode systems just require extra wiring for address and data buses and separate i/o and memory but are otherwise doing the same things as MicroControllers. The chips I just mentioned have both modes. Many others do too. The art of emulating unsupported i/o is called bit-banging, which is easy for serial (except USB, ethernet, and other monsters), challenging for video, and annoying are those monsters which have wasteful complex protocol overheads that drive me nuts and slow everything down.
Jan 8, 2011. 1:01 PMC.D33 says:
Entertaining, VIRON. I just happen to have an extra keyboard lying around. Could you direct me on how to build an EPROM programmer- the circuit side? This question almost 4 years later.
Aug 27, 2011. 8:10 AMcyyww says:
I am Chinese
My mailboxcyyww@sina.cn
Engineering Do not consider the cost We use the STC of the MCU
Heard of it,
Cheap and feature-rich
FLASH Great 32K 64K
Aug 27, 2011. 8:15 AMcyyww says:
I am Chinese
My mailboxcyyww@sina.cn
Engineering Do not consider the cost We use the STC of the MCU
Heard of it,
Cheap and feature-rich
FLASH Great 32K 64K
Aug 27, 2011. 8:15 AMcyyww says:
I am Chinese
My mailboxcyyww@sina.cn
Engineering Do not consider the cost We use the STC of the MCU
Heard of it,
Cheap and feature-rich
FLASH Great 32K 64K
Aug 1, 2011. 12:07 PMakusumakar says:
go for p89v51rd2 make a simple development board interfacing max232, it is d best
Jun 27, 2011. 2:31 PMaytacgul says:
I've use ST ARM module. STM32VL Discover kit very Succesfull. http://www.signal.com.tr/arananurun.php?urun=STM32VLDISCOVER&&id=129339
Jun 12, 2011. 5:18 AMelias.alberto says:
What about the STM32F103 series? Not so hobbist-friendly because they don't have DIP packages, but they seem to be very reasonably priced (cents more than 8-bit atmega48v) and a performance beast, having 32-bit ARM cores and reaching 72 MHz. I have no idea if are there free IDEs and cheap ways of "burning" the mcus, though. Anyone ever had any experience with them?
Dec 30, 2010. 10:43 PMpanic mode says:
very nice article and fair review,
i've been using PIC AVR Zilog and now Rabbit
Nov 12, 2010. 2:53 AMtokomikon says:
I use ARM microcontroller.


Regards,
Dave T.
ATmega8535 | ATmega16 | ATmega32 | AVR USB ISP Seller
Nov 2, 2010. 5:49 PMshaggs31 says:
Thanks for the info. I really like free stuff!
Sep 25, 2010. 12:51 PMGoddard007 says:
Thanks for all the information. It really helped me out.
Jan 28, 2009. 7:35 AMjastreich says:
You mention Parallax;s Basic Stamp, but you missed their coolest and most useful two MCUs. The SX and Propeller. The SX is sort of in the Basic Stamp family, but it runs assembly and I think it is a RISC chip. They are cheap, easy to program and are less "hobby" than the Basic Stamps or Javalin chips. The Propeller can run Assembly natively or interpret Spin out of the box, it has 32 general purpose I/O lines which are accessible on all 8 Arithmetic Logic Units (cores they refer to as "cogs").
Sep 21, 2010. 1:54 PMcoilgunman222 says:
I'd agree, while I love the propeller IDE and programming language, it is totally importable across architectures, as nothing else uses their proprietary spin code. However, they now have a C compiler for the Propeller, so it may not be as bad a choice for a beginner as it used to be.
Aug 5, 2010. 6:48 AMdevinmccloud says:
I would like to see a start to finish tutorial on recovering parts from old boards, reading the data sheets and learning what the individual chips are capable of doing. I have hundreds of chips from Motorola to Toshiba sitting around that i removed from electronic boards. It would be nice to know where to start to use this stuff.
May 18, 2010. 12:37 PMWVvan says:
This is instructable is just what the doctor ordered. I want to get into microcontrollers and spent several hours reading piecemeal accounts trying to gather enough information before I found this most excellent write up. I should have know that Instructables was the place to start.

FYI - this link is broken: "Trip report to an Early TI seminar"

Double Plus Good.
May 31, 2010. 9:04 PMduct tape says:
RIP geocities
You will be missed T_T
Jun 1, 2010. 10:37 AMWVvan says:
Another bad link.
Step 10.
Device list at AVR Freaks
Aug 3, 2010. 10:45 PMduct tape says:
double post :)
Aug 2, 2010. 8:08 PMthegoogleist says:
Ok, I am so confused, I have been looking around for the better part of a day now trying to make sense of this all. You see, where I work we are converting a gas powered go-kart to run on hydrogen, and to manage the fuel system, which is quite complex actually, consisting of several different stages of fuel, we needed to code our own fuel system controller. To do this, one of the other people working on the project was going to use one of the Renesas M16C microcontrollers to do this, but he moved, and now, as the only one on the team with any programming experience, the job has fallen to me. Now granted, I am an amateur Android developer, but the way things are done with these microcontrollers is truly baffling to me. So basically, my boss has said that we can get whatever other controller we need for the project, but it needs to be done fairly quickly. What microcontroller or any other type of product can I use to accomplish this task in a timely manner, going from average Java knowledge, minimal C++ knowledge, and no microcontroller/computer hardware design knowledge? I know this topic is old, but I didn't know where else to ask. Thank you so much!
Jul 11, 2010. 8:22 AMbigjeff5 says:
I know this post is a couple years old now, so chances are things have changed a little since you wrote it, but I have to disagree with your assessment of the "module" type setups (arduino, picaxe, etc) as being bad for learning about microcontrollers in general.  I personally have been using an Arduino for about a week and I have to say what I've learned about the ATMega controller, and microcontrollers in general, is nothing short of amazing to me. 

Before the Arduino, these things were black boxes, and while I had an interest in electronics I had nearly zero working knowledge.  Now I feel relatively confident that I could read some reference material on an Atmel chip and work out how to utilize it in a project without the Arduino platform.  Other brands would likely take a little more work getting used to the differences, but it now definitely feels within my reach, whereas before I didn't even think such a thing was possible.

That's the power of boards like the Arduino and other hobby boards - they abstract away the nitty gritty, but it's only one layer of abstraction, so that learning the nitty gritty isn't a huge leap if that's what you want to do.  I'm pretty sure that's what I'm going to do, but like I said I've only been into it for about a week so far.  Even without learning the absolute bare metal workings of the chips, though, the Arduino and others can do anything their respective chips can do, you're simply locked in to certain chips lines. 

The hobby boards allow you to play with microcontrollers without making you start from scratch, which is a significant barrier to entry.  It makes microcontrollers significantly less accessible.  Plus, while the brand-name boards may be $30+, you can easily find kits for less than $15, and if you move certain functionality off board (like the USB or Serial connection) you can drop it down to below $10 - about what you'd spend to use the same micro-controller without the platform.  And once you know how the board works, incorporating it directly into a project board is no problem at all and does not cost much, if any, more than it would to use the microcontroller directly.   At that point you're only paying for parts.
Jun 5, 2010. 10:01 PMchazpdx says:
I recently used a PICAXE18x for a school project. I needed something cheap, easy to learn, and easy to get setup. The PICAXE turned out to be the best choice. It kicked butt, was really easy to program, really cheap to set up, the chips are really cheap, and it was powerful enough for what I was doing. It was the first time I'd really played around with a microconroller, and I had it working the day I got it.
May 2, 2010. 1:12 PMTuxifant says:
Well done! I've been reading some off-the-net material about these things before but this instructable sums the thing up - compact and informative.
Jan 2, 2010. 6:10 AMArchive555 says:
This is by-far the most comprehensive, understandable, and informative Instructable regarding electronics I've ever seen. Without even actually including something to build, as most electronics Instructables do, you've far surpassed my expectations of this guide.

You've helped my decision alot, as I was using AVRs from Atmel, and was experimenting with Arduino, but was thinking of switching to (or expanding to) Pic, as it is far-wider spread, and more comprehensively documented, and you guide re-affirmed this for me.

As I type this, I've ordered a Pic starter kit, including some Pic chips of various sizes, a programmer, and a book detailing some simple, beginner-level circuits. Thank you very much for this extremely well-written instructable!

Bravo!
Jan 28, 2010. 12:55 PMDavidRobertson says:
 AVRs are becoming more and more popular than thy ever were. Just interested, what PIC starter kit did you buy?
Dec 26, 2009. 9:49 AMngenius says:
Just a great article/write-up/instructable end-to-end. 

Excellent Job.
Oct 6, 2009. 8:53 PMthebear1 says:
great write up give me some good places to start on microcontroller's thanks
Oct 6, 2009. 5:50 PMjohngineer says:
I've been working with MCUs for a while, but I recently started a new project with vastly different criteria to anything i'd done before, and this provided a nice step-by-step with regards to choosing the brains of the operation. Thanks!
Jul 30, 2009. 1:45 PMcgosnell says:
I have had very good experiences with Freescale so far. Not only for small quantities of their microprocessors, but also other chips like motor drivers, supervisor chips, etc... Their e-mail assistance has been very good also. My one problem was using the Codewarrior IDE. It was recommended by Freescale as an IDE, but cost more than the project I was developing, and the 'Free' version had features that timed out after a period of time (memory size limits, and or app 'beans') that made me vary wary of using this. In the end, I waited for the software 'free trial' to time out and then I know the features I have now will not expire unexpectedly. The other cost limitation is for the JTAG or BDM interfaces that are used for programming. These can also be quite expensive, and sometimes are processor specific. Lastly, as long as you can get SOIC chips, you can find sources on ebay that sell SOIC to DIP converters that are quite a lot less expensive than Digi-Key or Mouser. (No disrespect meant, they are great sources) I have yet to burn out an SOIC chip during soldering to the adapters, but you have to remember to do a continuity check on all of the pins after soldering.
Jun 28, 2009. 7:47 PMpharoah says:
This instructable is essentially rewritten into an eHow article here http://www.ehow.com/how_2319026_choose-microcontroller.html without attribution. I believe eHow editors get paid for their submissions, so if you're not Tiesha Whatley you might want to send them an email about this.
1-40 of 175next »

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
157
Followers
29
Author:westfw
Middle aged geek username also works at yahoo.com, mac.com, comcast.net, wharton-10.arpa