🔥 NEW! Get my book The Developer's Guide to Having a Successful Blog
In this book I teach you all I know about starting and growing a blog.
Launch promo: 25% OFF until tomorrow! And a special challenge for you!
Arduino is a groundbreaking technology in the amateur electronics ecosystem.
By groundbreaking I don’t mean it introduced a new powerful microprocessor or anything like that.
It basically created an entire industry, a movement, where there was none.
I’m talking about the makers movement. Before Arduino existed, electronics was not fun and easy to learn as it is today, and there wasn’t a lot of resources around. It was something for professionals, and I know it because I studied electronics for years in my technical high school, and then at the polytechnic of Milan, but it was all work and no play.
Arduino, right from the start, was specifically designed to be a learning device. This simple fact informs several of the design choices made by the original Arduino Core team.
I won’t dive into the historic details and subsequent controversies that are well known, but you are free to check them out on Wikipedia.
The key success factor of Arduino is that it’s completely Open Source. The hardware is open source, and the software is open source.
For example, the schematics of the latest Arduino Uno board, the Arduino Uno Wifi Rev2, are available here.
It’s cool because we can build our own Arduino, if we want. And companies can build and sell their own Arduino clones, and they do. I got my first Arduino from a company called Elegoo which creates awesome and cheap sets with lots of components and tutorials to get you started.
Plus, there’s a whole ecosystem around it of tools, libraries and educational resources that made it a great success. Before that, boards like that either were difficult to obtain, with material that was too technical, oriented at technicians rather than students. Arduino changed all that. The official website, https://www.arduino.cc/, is full of learning material, examples, tutorials, and hosts an active project hub and community forum. Plus, Arduino created an IoT cloud hub, to let you connect devices to the network.
Over time the Arduino team released several different boards: Arduino Uno, Arduino Mega, Arduino Diecimila, Arduino Robot, Arduino Nano, Arduino Micro, Arduino Leonardo, and more.
Each board has it own use case. Arduino Nano and Arduino Micro for example are great for IoT, wearables and small devices. Arduino Mega has more memory and I/O pins than any other board.
The Arduino Uno board is the one that as of today has sticked as the best board for learning, it’s included in many toolkits and used in lots and lots of tutorials.
Arduino has no operating system, and it runs one single program at a time. You don’t have to worry about anything as there is nothing else than your program running on the Arduino.
Most Arduino boards do not even have network connection, out of the box. Some do, like the Arduino Uno WiFi rev 2 or the Arduino Nano 33 IoT.
Once a program is loaded, it is booted any time the Arduino is powered, either via USB or via the power port via a AC-to-DC power cable or a battery.
This means that once you load the program, you can put the Arduino on a mountain with a solar panel and a battery, and it will keep running until there’s power.
It can only run programs that were compiled for the Arduino platform, which mostly means programs written in the Arduino Language, which is C++ with some convenient features that make it easy for beginners to start with.
However you are not limited to it. If you can live with the constraints of having the Arduino attached to the USB port of the computer (or a Raspberry PI driving it), you can run Node.js code on it using the Johnny Five project, which is pretty cool. There are similar tools for other languages, like pyserial and Gobot .
What is Arduino good for?
First of all, it’s great to learn electronics.
Then, Arduino is awesome when you want to compile a program for it, attach a battery or a power connector and put it somewhere to run, and play around with sensors and other nice stuff that interfaces with the real world.
For example, I would use an Arduino to power my self-watering plants or track the temperature outside, or power some home automation stuff.
I’m going to make a lot of projects in the near future, and I’ll be posting tutorials here to show you how I built those things.