Deciphering Families of Microcontrollers and Single Board Computers
This blog post looks at the different families of hardware for prototyping IOT style devices. The focus in this article is on hardware with WIFI and on software development with Rust or TinyGo.
Micro Computer versus Micro Controller
The first thing to understand is that there are two fundamentally different types of boards:
- Micro Computers / Single Board Computers (SBC)
- Micro Controllers
Like a lot of nerd hobbyists, I’ve long had both of these and, honestly, been a bit unclear about the differences. The core difference is that a micro controller is a much more limited device:
- Less RAM
- Less CPU
- Less Power
- No Operating System
- No keyboard, mouse or screen and no real ability to hook one up to it
- Limited programming model of (generally) just running C/C++ code that is flashed onto the board
- Think of it as a computer that runs a single program in a loop doing whatever the code says
A micro computer / single board computer:
- A lot more power
- A lot more RAM
- A full operating system
- Ability to hook up a keyboard and mouse
- Much more robust programming model
This is better explained:
- Interview Bit
- Tom’s Hardware; Please note that this is an excellent article and well worth reading.
It should be noted that while there is better programming tools for micro computers / SBCs, that’s not entirely true with new technologies like Rust and Tiny Go which allow for targeting at least some Arduino models.
Supply Chain Issues
It should be noted that, in Summer 2022, there are real supply chain issues on hardware, particularly WIFI enabled hardware. Finding Raspberry PI 4 hardware for example is close to impossible.
Arduino
It is interesting to note that there has been some kind of a schism in the Arduino world with both Arduino.org and Arduino.cc being different organizations selling different products.
Raspberry PI
While Arduino really created the modern hardware prototyping ecosystem, Raspberry PI has really done a remarkable job in popularizing the whole idea of modern hardware development. Additionally Raspberry PI is now selling microcontrollers in the form of the new Pico Zero and Pico Zero W boards.
Beagle Board
The current wireless product is Beagle Bone Black Wireless.
There is at least some support for Rust and TinyGo development on BeagleBoard.
Intel Edison
Intel Edison was a line of boards competitive with the Raspberry PI. Sadly these have now been discontinued. The reason for specifically noting this is that there have been quite a few books and third party resources published that make you think this might still be available. I picked some up from the local library and only later realized that Intel Edison was discontinued.
Pros and Cons Between Microcomputers and Microcontrollers
Microcomputer Cons
- More expensive
- Needs more ram
- Needs more CPU
Microcomputer Pros
- Able to update its code
- Contains a real time clock
- Can run a keyboard
- Can run a screen
- easier wifi configuration (because of the keyboard and screen)
Microcontroller Cons
- Software updates are delivered by flashing the ROM (so a much harder, less integrated process)
- No keyboard
- No screen unless you’re programming it as part of your software
- harder wifi configuration
- Real time clock is usually an add on module like Arduino DS3231 or Pico RTC Hat
Microcontroller Pros
- Less CPU
- Less RAM
- Runs software in a tight loop without the operating system (i.e. no OS to cause issues)