Processors called embedded microcontrollers are truly everywhere, and they’re hidden from your view. There are probably many of these just in your car, controlling your anti-lock brakes, radio, fuel injector gas/air mixture, your console display, and so on. I’ve seen these things in sewing machines, microwave ovens, CD/DVD players, smart thermostats, home weather stations, stereos, printers, lawn sprinkler controllers, security systems, mobile phones… you get the idea. I’ve heard estimates that the embedded computer market is several hundred times larger than the desktop and server computer markets combined.
Now, before I go on, I want to say I am not completely convinced this massive proliferation of embedded processors is a good idea. To be fair, a very large part of my career has been spent designing embedded systems and programming these devices. However, I got cranky back in 1984 when I realized my car’s gas pedal was no longer directly mechanically connected to my engine. Instead, my gas pedal moved a variable sensor that in turn suggested to the fuel injector controller that I want to go at a certain speed, and this controller metered the fuel/air mixture to the engine appropriately. So maybe I have secret Luddite leanings. Regardless, I accept these beasties are here to stay, simply because they are so inexpensive and so very useful. Great fun to program, too, but that’s just because I’m an unrepentant geek.
In the The Heart of the Beast, I pointed out the microprocessor in your desktop computer is so useful to you because it can do so many things. On the other hand, an embedded microcontroller is programmed to do one thing really, really well. Your car’s anti-lock brake processor can’t run a spreadsheet program. It’s a good thing, too, as safety dictates you want that little processor to focus solely on monitoring your brakes. That’s why these devices are invisible to you, they do one thing well and your sewing machine, car radio, smart thermostat and so on just work (usually) like you expect them to work. You know how you press the buttons on your car radio or smart thermostat and things happen? You’re actually programming these embedded devices. It’s just that the set of programming commands is extremely limited by the specific function of each device. There is no point in having a radio tuning button on your sewing machine.
Many (most?) of these embedded microcontrollers are inexpensive for three reasons. First, they are designed by the device manufacturer to be low cost; second, they have to do only one thing very well; and third, they are sold in huge quantities. A desktop computer is general purpose, flexible and has much lower sales volume, so microprocessors cost a lot more. I did a faucet head lawn sprinkler controller once for a company where the microcontroller device cost the company about US$0.23 each in quantities of millions. Amazing, really.
As an aside, there’s an interesting middle ground that has appeared somewhat recently: smart mobile phones. Old mobile phones had an embedded processor or three in them and these executed all the functions required to do phone things. Smart mobile phones have the usual phone thing as well as having the ability to load other non-traditional phone functions. Mine even has a spreadsheet, which I still find a bit startling. Are smart mobile phones an embedded processor or a general purpose microprocessor? I’m going to answer “yes” and walk away from that question.
So. Embedded microcontrollers are cheap, function-oriented and everywhere in your world. Oh, and invisible.