Definitions: Microcontroller, Single Board Computer, et al. - Page 1
Forum section: electronics / general

author: EPAIII
author_rank: Super Contributor
timestamp: October 27, 2021, 04:41:03 am
content: There are a number of devices that incorporate all or most of the functionality of a computer in a single chip. There are PIC chips which can be programmed at a low level (machine code or assembly). Then there are various single chip devices that incorporate some kind of higher level programming like Basic or C. And there are single board computers that incorporate one of the above as well as the memory, various forms of advanced input and output, and on board sensors and readout devices (from single LEDs to displays). And sometimes part or all of this advanced functionality is incorporated in the single, central controller chip which is the heart of the single board computer.What I would like to know is just what are the proper names for these and for any others that I may have left out? AND, what names or terms exist that cover two or more of these groups and most especially for all of them?This question has been festering in the back of my mind for some time now. I have struggled to find a term that covers all of these devices and have often used "PIC based devices" but I do not know if that is correct or, more importantly, if it conveys my meaning well. If pressed, I might say that "PIC" is perhaps used synonymous with "microcontroller". But I really do not know if that is correct. I mean, why would a Propeller chip or a Basic Stamp or an Arduino or a Raspberry Pi or a PicAxe or any of the others not be called a microcontroller?I looked at other boards here but this one seemed to be the one with the most traffic in this area. And, after reading the posting guidelines which seemed to discourage posts in this board on any of them except microcontrollers, I glanced at the first page of topic titles finding the Raspberry Pi, which is specifically mentioned in those guidelines as an example of what is not to be talked about here, as part of not one, but two different topic titles. So, apparently this board does discuss a wide variety of these devices. This is just an observation, not meant as a criticism. And part of my reason for posting this question here.

author: ataradov
author_rank: Super Contributor
timestamp: October 27, 2021, 05:00:09 am
content: Generally accepted terms:Microcontroller - computing device with integrated program memory and peripherals.Microprocessor - computing device that requires external memory and often peripherals.SBC - a board or a module based on a microprocessor (most often) with required memories and peripherals.Arduino and other boards like this are just prototyping/development boards. Calling them "a microcontroller" would be wrong and confusing.Although there seems to be a dedicated thing called Single-Board Microcontroller (https://en.wikipedia.org/wiki/Single-board_microcontroller) for stuff like Arduino. I'm not sure it makes sense to have this as a separate thing.But then again, you can make a parallel with a programmable logic controller (PLC), which is essentially a Single-Board Microcontroller (as described in the article above) with rugged I//O and a dedicated programming language.

author: james_s
author_rank: Super Contributor
timestamp: October 27, 2021, 05:11:01 am
content: The devices that support higher level languages are still microcontrollers, they just come already programmed with firmware that interprets the lower level language.

author: ataradov
author_rank: Super Contributor
timestamp: October 27, 2021, 05:14:27 am
content: The device (IC) itself, sure. But calling Arduino a "microcontroller" is strange. It is like calling a PC system block a "processor", which some people do.

author: james_s
author_rank: Super Contributor
timestamp: October 27, 2021, 05:18:52 am
content: Yeah I'm not arguing that. I would call the Arduino a SBC or microcontroller development board. It is really nothing more than a microcontroller and the minimum "glue" to make it work. There is no interpreter there, just a bootloader.There are or have been microcontrollers and SBCs that come pre-programmed with BASIC interpreters.

author: Berni
author_rank: Super Contributor
timestamp: October 27, 2021, 05:31:27 am
content: Well firstly there is the names of the actual chips only:-Microprocessor: Just the CPU and some support logic for a computer inside a chip. These usually need external memory to even run and external peripherals to talk to the outside world. This is a 6502, 68000, Intel Pentium...etc-Microcontroller: The entire computer on a single chip, however is typically used for embedded control applications(Hence the controller in the name). Due to this they tend to be low on performance but compact and power efficient as a result. They lack the features required to run a full OS such as Linux. This is a PIC16F, PIC32F, AVR, STM32, LPC...etc-SystemOnChip(SOC): Half way between the two above. They are powerful CPUs with a lot of the peripherals and support circuity included on chip. They still need external memory to run, but do have things like UART, USB, HDMI...etc directly on its IO pins. This is the chip used on the RaspberryPi, Nvidia Tegra, Qualcomm Snapdragon..etcBut even this is a bit muddy since technically what we think of CPUs used in PCs are actually more like SOCs. Today they now have a built in memory controller and a GPU that outputs video signals directly out of its IO pins. Lots of other IO is still done trough the southbridge, but some low power mobile CPUs actually have a good deal of other peripherals on chip such as USB, Sound, Ethernet, SDIO...etcThen for boards, you can argue the difference between a development board, evaluation board and SBC. There is no solid line between them. But a SBC tends to be a bit more specific as they tend to carry powerful SOC chips and feature fairly PC like IO (HDMI,USB,Ethernet,Audio). So something like a Arduino would not get called a SBC because its carrying a microcontroller with only very microcontroller like IO (GPIO,UART,I2C,SPI..etc)

author: brucehoult
author_rank: Super Contributor
timestamp: October 27, 2021, 06:18:38 am
content: First of all, I agree with ataradov, with one addition:SoC (System on a Chip): a microprocessor with all or most I/O integrated onto a single chip, the only external thing needed is usually DRAM, though that may also be internal, typically as multiple chips in a single package aka SiP.Also, microcontrollers don't usually have an external memory bus. Any microcontroller with a sufficient number of GPIOs can of course have some of them configured to control and access external memory in an explicit way by having the program manipulate some IO ports as addresses and data. Some, such as the ATMega2560, allow normal memory addressing to be used to access such external memory, even to run code from it, but usually at a speed penalty. The 8051 also has such external memory, but modern versions of it incorporate the "external" memory on the chip itself, thus completing a circle.Quote from: EPAIII on October 27, 2021, 04:41:03 amI've never seen a microcontroller that "incorporates" C programming. The chip runs a binary machine code. You can write and download the program of your choice into the EPROM or flash on the chip, where it is stored permanently (or until you overwrite it).The program you download is typically written in assembly language or C (or increasingly, Rust) but by the time it gets sent to the microcontroller it is binary machine code.The program might do any number of things (infinite variety), but one option is to implement an interpreter for a language such as BASIC or MicroPython which you can enter code for interactively via a serial interface. Extremely simple languages such as FORTH or Scheme might compile the code you enter interactively into machine code which is then stored in RAM (or flash).QuoteI would not call something an SBC unless a significant amount of RAM (enough to run some kind of operating system and capacity to self-host a proper compiler), and some kind of mass storage with a file system. The boundary is a bit fuzzy. Now days people expect Linux and tens or hundreds of MB of RAM and hundreds of MHz of CPU clock speed. But a 1 MHz Apple ][ or C64 is of course an SBC and those only have 64 KB RAM.Boards which merely bring the pins of a microcontroller out to convenient sockets or LEDs etc are not SBCs.And sometimes part or all of this advanced functionality is incorporated in the single, central controller chip which is the heart of the single board computer.QuoteRaspberry Pi is certainly not a microcontroller. Far too capable.May BASIC Stamp burn in hell. What an awful thing! I'm so glad Arduino saved us from that. I hadn't heard of Propeller, but I see it's from the same company. Hardware threads are an interesting idea that have their place. But fixed-length 32 bit instructions and an interpreter in ROM for "more compact" bytecodes for "Spin" is just a terrible idea. Well designed modern RISC instruction sets such as ARM's Thumb and RISC-V with the C extension are more compact than any bytecode I've seen, and run at full speed.

author: David Hess
author_rank: Super Contributor
timestamp: October 27, 2021, 06:59:51 pm
content: Microprocessors require external memory and support chips to operate. Microcontrollers have these built in.Single board computers are literally built on a "single board", and do not require expansion cards. In an earlier age, embedded computer systems were composed of separate cpu, memory, and interface cards. *shakes fist* There were several expansion bus standards for these systems likeSTD Bus.A System on a Chip is a further integration of what would previously be on a single board computer onto a single chip.

author: Siwastaja
author_rank: Super Contributor
timestamp: October 27, 2021, 07:07:13 pm
content: Arduinos are not SBCs. I would think it's obvious because clearly it isn't a computer. But I guess it's not so obvious after all given all the confusion.This is actually a terminology problem which I think is rather easy simply because of the market gap. The difficult borderline exists, but there are not too many products around that borderline as far as I know. What I mean, the difference between an Arduino and Raspberry Pi is just so massive in every possible regard that it's IMHO very hard to mislabel them.Yet that's what people still do, calling Arduinos SBCs and Raspis Microcontrollers.

author: SiliconWizard
author_rank: Super Contributor
timestamp: October 27, 2021, 07:25:11 pm
content: Quote from: Siwastaja on October 27, 2021, 07:07:13 pmHaha, I stumbled upon a YT video lately which was titled something like "Arduino vs. Raspberry Pi, which is best" (and no they were not talking about the Pico).

author: brucehoult
author_rank: Super Contributor
timestamp: October 27, 2021, 09:05:52 pm
content: Quote from: Siwastaja on October 27, 2021, 07:07:13 pmAgreed.QuoteThere is some overlap.Historical microcomputers running CP/M, Apple DOS (or the UCSD P-System) -- or modern retro-systems such as the Commander X16 -- are definitely SBCs because they have all the attributes of a computer. But their capacity and performance fall well into (or even below) that of modern microcontrollers.And then there are microcontrollers with unusually high capability such as the 600-1000 MHz 1 MB NXP iMX RT1062 used in the $20 Teensy 4.0. Or the dual core 64 bit 400-800 MHz 8 MB SRAM Kendryte K210 which has supervisor and user modes and an MMU and can borderline run a really cut down (or old) Linux (or xv6).

author: rstofer
author_rank: Super Contributor
timestamp: October 27, 2021, 10:02:56 pm
content: Quote from: brucehoult on October 27, 2021, 06:18:38 am8 each 32 bit cores is definitely an interesting chip. At a glance, Spin is no worse of an idea than MicroPython (or Python itself) in that neither are compiled to native code (generally). The thing is, the Propeller has been around for a long time, long enough that there is a GNU C compiler variant that generates native code. And there are a lot of other languages like Pascal, Forth, BASIC and Java.https://en.wikipedia.org/wiki/Parallax_Propellerhttps://www.parallax.com/propeller-2/#p2-specsI played with the Propeller a long time back recreating some old style arcade type games. I need to revisit this chip, it's kind of fun!

author: DiTBho
author_rank: Super Contributor
timestamp: October 27, 2021, 10:03:47 pm
content: Quote from: brucehoult on October 27, 2021, 09:05:52 pmIronically, two weeks ago I put 18639.49 rubles (~ 192 UKP, ~264 USD) into the purchase of an "SBC".VAT + S / H + customs duties all inclusive.In 1993, someone at Motorola decided to sell the kit as "SBC", and so it is written on the PCB, but clearly it isn't a "computer" because it doesn't look like a RPI and it doesn't run Linux ...so ... did they scam me? ....... maybeyes, but I found 10Kg of books, precious and rare printed application notes and datasheet included so it was worth it

author: ataradov
author_rank: Super Contributor
timestamp: October 27, 2021, 10:13:32 pm
content: Quote from: DiTBho on October 27, 2021, 10:03:47 pmThat things evolve over time, so are naming conventions.On the Propeller - I don't get how they stay in business. It is neat that they can make custom silicon in small quantities like this and still stay afloat for such a long time. But I feel like there is so much more could be done if you have ability to make custom silicon. Right now I don't really see what is so special about them.

author: brucehoult
author_rank: Super Contributor
timestamp: October 27, 2021, 10:30:51 pm
content: Quote from: rstofer on October 27, 2021, 10:02:56 pmAnd barrel processors are an interesting idea, but there are more modern implementations e.g. the XMOS xCore chips, or if you like a standard instruction set on your barrel processor the RISC-V GAP8 (with its GAPuino dev board) or it seems this newly announced thing:https://www.hackster.io/news/risc-v-based-vega-brings-continual-learning-to-tinyml-with-an-order-of-magnitude-efficiency-gain-6189df9bb365(where the "cluster" part *looks* a lot like a GAP8, but I haven't tried to dig deeper)

author: rstofer
author_rank: Super Contributor
timestamp: October 27, 2021, 11:45:59 pm
content: Quote from: brucehoult on October 27, 2021, 10:30:51 pmControl Data thought so back in the early years. One central CPU served 10 Peripheral Processors in rotation. They were the fastest computers in the world.https://en.wikipedia.org/wiki/CDC_6000_series2-3 MFLOPS (CDC 6600) got us to the Moon and back. Today we can have multiple TFLOPS on the desktop (NVIDIA CUDA Cores).

author: brucehoult
author_rank: Super Contributor
timestamp: October 28, 2021, 12:05:02 am
content: Quote from: DiTBho on October 27, 2021, 10:03:47 pm!! eevblog thinks you are in the UK.I just noticed your nick could be interpreted as "childishly".It was a PITA getting hold of tech stuff when I lived in Moscow. I found onpad.ru out in Fili was not bad for dev boards, but I had a hell of a time getting hold of an Arty FPGA board. US stores wouldn't ship to Russia, and the Russian distributors were only set up to sell to businesses not individuals!I found that if I took the advertised price in the USA (which always excludes sales taxes) and added 60% then it was usually very close to the final price in Russia.

author: westfw
author_rank: Super Contributor
timestamp: October 28, 2021, 02:46:11 am
content: QuoteI think the things labeled "System On a Chip" usually include some sort of high-level function on the chip, but that usually doesn't include (much) memory, and it might not include things that we think of as "standard" peripherals.ESP8266 is probably an SoC rather than a microcontroller, because of the Radio peripheral (there are a lot of these around.) Single-chip MP3 players may also consider themselves SoCs, even with a lowly 8051 CPU.

author: Bassman59
author_rank: Super Contributor
timestamp: October 28, 2021, 02:51:14 am
content: Quote from: ataradov on October 27, 2021, 05:00:09 amBack when I worked for a company that designed and manufactured them, a "single board computer" was basically just that: everything you needed for a computer -- processor, memory, display and user-interface peripherals, expansion bus (PCI, etc) communications peripherals (RS-232, Ethernet, etc) and interfaces to mass storage -- on a single board. They were designed for standard backplane usage so they were VME and CompactPCI compliant and fit into those chassis, which provided power and connectivity to other processor boards and peripherals.I think a Raspberry Pi fits that definition. An Arduino does not, as an Arduino is basically just a breakout board.

author: PCB.Wiz
author_rank: Super Contributor
timestamp: October 28, 2021, 04:39:12 am
content: Quote from: ataradov on October 27, 2021, 05:00:09 amThose were generally accepted delineations, but the first one is morphing a little these days with Microcontrollers that load from external flash, and run in RAM, or a combination of Internal RAM and Execute-in-place from external FLASH.The ESP8266 is probably the highest usage example of that chip class.

author: westfw
author_rank: Super Contributor
timestamp: October 28, 2021, 08:21:46 am
content: Also seen recently (WRT RPi Zero 2): "System in Package" - rather like a SoC, but with multiple chips stacked inside a single package (usually memory chips...)

author: nfmax
author_rank: Super Contributor
timestamp: October 28, 2021, 08:28:56 am
content: Back in 1976, Intel introduced the SBC 80/10, which held an 8080 microprocessor, up to four 8708 1kB EPROMs, 1kB of static RAM, and serial & parallel I/O. This was labelled (on the PCB!) asSINGLE BOARD COMPUTER 80/10. This, I believe, is the origin of the term.

author: Siwastaja
author_rank: Super Contributor
timestamp: October 28, 2021, 09:16:08 am
content: Expectations what a "computer" is have obviously evolved, and it's worth remembering a "microcontroller" is a newer class, separated from "computers".30-40 year old computers are quite close to a modern microcontroller in both processing power and number of available interfaces, but the big difference is the typical use case; the computer is used to run user-defined programs, and for that reason, there is some very simple (widely accepted) way of inputting the program; writing BASIC code, running a perforated tape, a C cassette with the binary, sudo apt-get install, go to web, download install.exe, whatever.Now there are difficult corner cases like mentioned by brucehoult, some large MCU development board can be used like a computer, running a general purpose OS, installing user software and so on. But such use cases tend to be quite specialized, and by people who have no trouble labelling their tools.Most of the confusion seems to be within the trivial extreme cases, like comparing Arduino (with ATMega328P) where UART is the fanciest interface it supports, to Raspberry Pi (with complete chipset of computer parts and interfaces, and a normal desktop OS).Finally, if you have trouble deciding if something is "SBC", the only questions you need to ask are:* Is this a single board?*Is this a computer?

author: DiTBho
author_rank: Super Contributor
timestamp: October 28, 2021, 09:34:48 am
content: Quote from: brucehoult on October 28, 2021, 12:05:02 amUSA product, bought from a dude located in Russia.Imported to the UK.

author: brucehoult
author_rank: Super Contributor
timestamp: October 28, 2021, 09:57:09 am
content: Quote from: DiTBho on October 28, 2021, 09:34:48 amFair enough.It's just tooo much to be coincidence that your nick can be interpreted as волапюк

author: DiTBho
author_rank: Super Contributor
timestamp: October 28, 2021, 10:21:15 am
content: OT:Quote from: brucehoult on October 28, 2021, 12:05:02 amSometimes the world feels really small, and offers funny tales. I think this is one of them.The previous owner lives inUlyanovsk, a city located on the Volga River 705 kilometers east of Moscow, the birthplace ofVladimir Lenin. We met on a Russian / English forum dedicated to theSony-Playstation1hacks becauseEcosia(a searching engine similar toGoogle) reported a post in their marketplace. So I contacted "him" via PM and found out that -1- he is a she (you cannot know from a nickname, even in Matrix Neo thought "Trinity" was a guy-nickname) and that -2- we have a couple of mutual friends located inRepublic of EstoniaandSweden.Hackers? simply enthusiasts? how could we define ourselves? mumble ... I don't really know, I don't like labels and and it probably doesn't matter, what really matters is thatEstoniais a developed country, with a high-income advanced economy, and I am so lucky to know a couple of guys and girls located inTallinnandTartu, the two urban areas from which people worldwide ship a lot of things.Estonia is a member of theEuropean Union, theEurozone, and it's still commercially close toRussia, but also toFinlandandSweden. It's is really a strategic place.The Russian girl told me he about a forwarding: USA (Texas) -> Estonia (a friend of her, forwarded to) -> Estonia-> RussiaNow you can understand why the S / H was so expensive for me, that package has moved a lot, from west to east, from one culture to another, and something tells me it won't stop here

author: brucehoult
author_rank: Super Contributor
timestamp: October 28, 2021, 12:09:14 pm
content: Quote from: DiTBho on October 28, 2021, 10:21:15 amTallinn is interesting. As captain of a team winning a prize (actually *two* prizes ) in the 2005 ICFP Programming Contest, I was invited to attend the ICFP conference in Tallinn to collect the prizes. It was a little far to go from New Zealand, so my team-mate from Berlin attended instead.A dozen years later I was living in Moscow and went to Helsinki and Tallinn for a weekend (by train).One thing that surprised me there was that even so long after 1991, and with Estonia being probably the most successful and entrepreneurial of the former Iron Curtain countries, my very bad Russian was much more useful to me there than English was.There is a very interesting submarine in the maritime museum in Tallinn. It was built in England and used by the Estonian navy before WWII. Later it was a part of the USSR Baltic fleet, before being returned to Estonia when Estonia gained independence. TI found the various signs and instrument markings inside interesting because some are in English, some in Estonian, and some (often crudely scratched or painted on) are in Russian.http://icfpc.eecs.northwestern.edu/

author: I wanted a rude username
author_rank: Frequent Contributor
timestamp: October 30, 2021, 01:06:42 am
content: Just don't call an SBC aminicomputer.

author: David Hess
author_rank: Super Contributor
timestamp: October 30, 2021, 04:24:28 am
content: Quote from: nfmax on October 28, 2021, 08:28:56 amThe Intel SBC that I remember from that area with the same or similar configuration was the PL-881, but I could not find anything online about it. It might have used the 8085 and 2716 by then which was a great improvement because only +5 volts was required instead of multiple supply voltages.