Choosing a Micro-controller

There are lots of options to choose from and choice paralysis may set in if you try to optimize. If you don’t already have an UNO in your hands, buy one of the processors on my current favourites list and start experimenting to understand what the possibilities are.

If you do have a processor or two on your desk, start experimenting with your application idea on whatever processor is available and you will quickly get a sense of which features are missing. That will help you narrow down the options for other alternatives. If you code your initial experiments in the Arduino IDE, it should be fairly portable to run on whatever processor you eventually settle on for your project.

If you aren’t sure which processor to use, just start the project with what you have!

What I have been using

I have focussed on micro-controllers that I can program through the same Arduino IDE as beginners use for the Arduino UNO, so we can bring those skills along to use more sophisticated and more powerful processors. This chart sums up what I have been playing with over the last few years. The course columns list what I would have picked that year if starting from scratch, but reality has lagged behind for practical reasons.

Years What I have been using in new projects What I think is interesting MECH 217 MECH 848
2015 and before Arduino UNO, DUE (discontinued), micro, Teensy 3, 3.1, 3.2, ESP8266 WiFi options for IOT UNO UNO
2016 / 2017 Adafruit Feather M0 family, WINC1500 Secure options for WiFi UNO Feather M0 WiFi
2018 Teensy 3.5, Adafruit M0 Express ESP32 UNO Feather M0 WiFi
2019 Particle Argon, Xenon, Adafruit M4 Express, Teensy 3.5 Adafruit Grand Central M4 Express as DUE replacement, Circuit Python UNO not offered
2020 Itsy Bitsy M0 Express

My Current Favourites

I am biased towards Adafruit as a supplier and like to support their progressive and educational goals. All of my current favourites are available from them, and some from other sources. All my current favourites are 3.3V processors, making it easy to power them from LiPo batteries and compatible with most sensors without the need for level shifting.

Adafruit Itsy Bitsy M0 Express: small, powerful, inexpensive alternative to the UNO will also run Circuit Python in addition to C. Perfect for plugging into a half size breadboard. For student use it should probably not have pins in Bat, USB, pin 5, and VHi locations to avoid accidentally connecting 5V USB power to 3V data pins and causing damage.

It provides the capacity to use the 2MB flash storage as a disk to write files, then read them on a computer, however this process is more complex than ideal for use in MECH 217.

In addition to the usual LED on pin 13, it provides an RGB LED that can be accessed via the DotStar library to provide additional signalling.

Adafruit Feather M0 WiFi: small, powerful, with independent secure WiFi and built in LiPo charger. Still leaves some space on a half size breadboard. Don’t forget to upload the latest firmware and SSL certificates as detailed in the tutorial.

Teensy 3.5: extra powerful with a faster M4 processor and lots of IO pins for bigger projects. Plugs into a full size breadboard leaving lots of prototyping room.

The Arduino UNO remains a sentimental favourite as an excellent teaching platform with amazing robustness, but carrying some serious baggage. 5V operation is a hazard to 3.3V sensors. The 8 bit processor, tiny memory, and 10 bit resolution impose unrealistic limits on students, although they do promote deeper understanding. Easy availability of legitimate clones like in  this Smraza Kit can still make them a good first experience.

ESP8266 and ESP32: These are available in various configurations with WiFi and other communications. The base processors are very good value and find their way into a lot of IOT devices on the market. Unfortunately they are poorly documented, and the analog side of the processors are problematic and low accuracy. Even the newer ESP32 has low impedance on the analog read, which can pull down the result, and analog accuracy poorer than +/- 6% without calibration. Don’t use them for analog instrumentation unless you are ready to put significant effort in.

License

Icon for the Creative Commons Attribution-ShareAlike 4.0 International License

Rick's Measurement for Mechatronics Notes Copyright © 2019 by Rick Sellens is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License, except where otherwise noted.

Share This Book