Programs are called firmware because they are developed on another machine, like a GNU+Linux notebook then uploaded or “burned” into the Arduino’s EEPROM (electrically erasable programmable read only memory).
The Arduino doesn’t have an operating system like Windows, iOS, or GNU+Linux, either. Programs are small and single purpose.Īn example might be watching the rotational speed of a motor shaft and then adjusting the power to keep the motor spinning at a constant speed, regardless of load.
Nor does it have the attention span or memory to monitor hundreds of different processes and tasks. It doesn’t worry about network traffic or if it has to backup files at a certain time of day. It’s capable of cycling through that process extremely quickly, down into the milliseconds. It typically reads some inputs, maybe does a few computations, then sets some outputs. In the world of microcontrollers, the Arduino has a one-track mind. With all that in mind, today we’ll focus on outcome differences, rather than rehashing the typical super-nifty, geek-impressing and eyeball-glazing hardware specs. It’s easy to lump the Arduino, Raspberry Pi and other small-footprint computing devices together concluding that they are all interchangeable.
Teachers, software developers, managers and lay-persons, eager to learn this awesomely fascinating physical computing technology, likely don’t have piles of boards laying around or the time required to extensively compare and contrast the two. Last month, during my Future of Educational Technology Conference presentation, covering the Raspberry Pi, an audience member asked the same exact question. The question popped up during my micro-controller trend talk a couple of years back at OSCON. There’s still much confusion about when to use an Arduino or a Raspberry Pi, especially among “casual” or prospective off-the-shelf hackers.