The Arduino a Really Special Little Microcontroller Board.
From an Italian student watering hole, to conquering the Hackerspace world.
If you were to walk into a typical Hackerspace, Hackspace or Makerspace hub as a beginner to the world of making and ask for help with automating your project, the chances are you’d receive a unanimous suggestion. Use an Arduino board, they’d say, and show you a small blue circuit board with a couple of rows of headers and a USB socket.
Such has been the success of this circuit board and its stablemates, that a decade plus of more able competitors haven’t displaced it from its position as the go-to single-board computer for maker projects. To understand something about why that has been the case, it’s worth looking back at the start of the Arduino project that spawned it.
How The Arduino Project Changed The Makerspace Community
In the early 2000s, as a reaction to the limitations of previous simple microcontroller boards, a group of Italian postgraduate students and a lecturer at the Interaction Design Institute in Ivrea came together to create the first version of what would become the Arduino project.
They were lucky: they had the Wiring platform that had been the work of their fellow student Hernando Barragán to work with, a simple-to-use open-source integrated development environment and microcontroller board.
They created a fork of Wiring ported to the inexpensive Atmel ATmega line of microcontrollers, and the hardware they evolved became the ancestor of today’s Arduino boards. It featured an ATmega8 microcontroller in what is now a familiar form factor with its I/O lines brought out to a set of headers designed to accept expansion boards known as ‘shields’.
The ease of programming from the Arduino IDE and on-chip bootloader coupled with the flexibility of the shield boards compared to the relatively small prototyping area found on previous boards proved to be a hit, and the years since have seen an ever-increasing range of official successors.
If at the moment you’re wondering where the name ‘Arduino’ comes from, it may come as a surprise to find that a 21st-century microcontroller prototyping board has a name derived from an Italian king of the 11th century.
Arduin of Ivrea was Margrave of Ivrea from about 990 until 1015, and King of Italy from 1002 until 1014. He was defeated and forced to abdicate by the German King Henry II in 1014 and would be the last King of Italy until the restoration of the Italian monarchy in the 19th century.
The Arduino is a project with its origins in a university, and as with graduate students everywhere, the team had a favourite bar. Theirs was named after Arduin of Ivrea, and their project took its name from it.
Arduino Open Source Hardware and Software
The open-source nature of the whole Arduino project has been a crucial factor in its success as a platform, meaning that instead of being a single hardware product line from one Italian source, it has become a global phenomenon with an astonishing array of products claiming some level of Arduino compatibility.
In that sense, while an Arduino is generally understood as one of the official boards or a direct clone, it is safe to say that the Arduino project now transcends its origins and has instead become a platform ecosystem.
When you buy an Arduino, you are not merely buying it for the board itself, because the descendants of the original 8-bit ATmega-based boards are now rather technically outdated. Instead you are buying into the ease of the Arduino IDE and access to the Arduino community with its huge array of software libraries and support, and it is these resources which continue to make Arduino the obvious choice for so many Hackerspace/Hackspace/Makerspace projects.
Aside from the official Arduino boards, you’ll also see a huge number of non-official ones described as ‘Arduino compatible’. These range from variants that incorporate extra hardware such as a wireless module or a motor interface, to boards with different architectures that maintain the expansion header will also find direct clones of an Arduino Uno or similar, and even outright fakes bearing sometimes comically bad reproductions of the official branding.
Arduino lead Massimo Banzi has gone on record as welcoming the variant boards as bringing something extra to the project, while deploring the clones and fakes. You may find a Chinese Arduino Uno clone to be a cheap way to get started, but aside from supporting the project, when you buy a genuine board you are also guaranteeing that your board has, of course, genuine components.
In 2014 the manufacturer of the USB-to-serial chip found on most Arduinos issued a driver update designed to disable counterfeit copies of its devices; among those caught were many of the cheaper non-official Arduino clones. So your cheap board will work and will run your compiled sketches, but the extra money for the genuine article really does buy quality.
Arduino Timeline
- 1997 Atmel brings the first AVR microcontroller product to market.
- 2001 Processing computer language/IDE developed by Casey Reas and Benjamin Fry, at the MIT Media Lab.
- 2003 Wiring development platform developed by Hernando Barragán at the Interaction Design Institute Ivrea, Italy.
- 2003 Wiring ported to Atmel AVR8 processor architecture by Massimo Banzi, David Mellis, and David Cuartielles, again at the Interaction Design Institute Ivrea, Italy. This becomes a fork of the Wiring project, to be named Arduino.
- 2005 The first boards in the recognisable Arduino form factor are produced featuring an ATmega8 processor, after a succession of other prototypes.
- 2006 The Arduino NG gains an ATmega168 processor, featuring 16kB of storage.
- 2008 The tiny Arduino Nano appears, and the Duemilanove gains an ATmega328 with 32kB of storage.
- 2010 The ‘classic’ ATmega328 Arduino becomes the Arduino Uno.
- 2011 The Leonardo, boasting USB device capability, is launched.
- 2012 The 32-bit ARM Cortex M3-based Arduino Due is launched.
- 2013 The Arduino Yún is launched, featuring a MIPS processor and a custom Linux distribution.
- 2014 Beginning of split between Arduino LLC and Arduino SRL, leading eventually to creation of Genuino brand.
- 2015 Arduino/Genuino 101 launched, based upon the Intel Curie microcontroller.
- 2016 Reconciliation and merger between the two rival Arduino companies.
- 2016 Launch of Arduino MKR1000, featuring a 32-bit ARM Cortex M0 and on-board WiFi.
Which Arduino to Buy?
Given that you now know some of the history behind the Arduino project and you have some idea of the ecosystem, which of the many Arduino boards should you buy, and what can you do with an Arduino?
The ‘classic’ Arduino, in fact the board that earns the generic title of an Arduino, is any member of the line of descendant boards from that original one with an ATmega8 microcontroller and the signature two rows of header sockets to accept shield boards. Over the years the microcontrollers have been upgraded to the ATmega168 and then ATmega328 to give more storage capacity, but broadly the same functionality has been maintained from the earliest serial-port Arduino to the latest USB-equipped Arduino Uno.
This is the board that you should buy if you are a Makerspace beginner to the world of Arduino hardware, because it is the one with the most support, software, and libraries available for it: perfect for Makerspace beginners. There are many clones of the Arduino Uno, but in the range of official boards it is available in variants with either a surface-mount CPU or one in a dual-in-line package mounted CPU in a socket. Either board will give you the full Arduino experience, but of the two it’s the dual-in-line version which is a little more versatile because the CPU can be removed and placed on a breadboard or other project.
Beside the Arduino Uno, there’s a variety of official boards with special capabilities.
The Arduino Leonardo for example looks like an Uno, but can become a fully fledged USB device in its own right, capable of emulating for instance a keyboard, or a mouse.
Meanwhile, the Arduino Mega 2560 is an Arduino with a hugely expanded interface, useful for complex Computer Numerical Control (CNC) projects.
Then, beyond the ATmega line of processors is a huge array of boards that can be programmed with Arduino software.
Of the official boards, there are several that use ARM processors, including the Arduino Due, which brings raw computing power to the Uno form factor, and the Arduino Yún, which has a 32-bit MIPS system-on-chip that runs a custom Linux distribution and incorporates WiFi connectivity.
Arduino Genuino, What’s All That About?
If you are shopping around for Arduino boards, you may see genuine boards labelled ‘Genuino’ as well as ‘Arduino’.
This relates to a trademark dispute between different members of the Arduino team, with ownership of the Arduino mark in Europe resting with one camp and with another for the rest of the world. As part of the resulting legal battle, the rest of world trademark camp registered the name ‘Genuino’ for their boards when sold in Europe.
The resulting confusion caused at least one retailer to stop selling the official boards entirely.
Fortunately for all concerned, the competing factions were able to settle their differences earlier in 2017. So if you should find a Genuino-branded Arduino, don’t worry, it’s still an official Arduino, albeit one with another name on it.
If you are shopping for Arduino boards, you may also notice a variety of smaller PCBs: the Arduino Micro, Arduino Mini, and Arduino Nano. These can be available either as official boards or as clones with startlingly cheap prices, and with a set of pins fitted, can be used on a breadboard or similar.
They contain the rough equivalent of a full-sized Arduino Uno on a smaller PCB, but care should be exercised by those new to the Arduino world as they are not physically compatible with Arduino shields, they are not all current designs, and different programming cables may be needed to use them. When you have your shiny new Arduino, whatever model you have bought, your next step will be to do something with it. Write some code, see it running. If you go to the Arduino website, download and install the IDE, and then plug your Arduino into your computer with the appropriate cable, you should be ready to go.
The LilyPad Arduino for Wearables
Not all Arduino boards follow an official form factor.
The Lilypad from Sparkfun for example takes the low-power version of the ATmega processor from the Uno and incorporates it into a circular printed circuit board designed for incorporation in wearable electronics.
Special attention has been given to ensuring that it does not snag on fabric, and instead of header sockets for I/O lines it has large circular pads designed for sewing conductive thread to.
It has even been designed to survive clothes washing. The Lilypad’s sewable contacts are ideal for conductive thread.
Arduino Programming
Opening the Arduino Integrated Development Environment (IDE) puts you straight into a code editor, and if you are an experienced Arduino user, you could just start typing C code.
Fortunately, in the event that you are not, the IDE ships with a library of demo code which you can load from the File menu: simply find the ‘Examples‘ option and pick one.
The easiest one to start with can be found in the ‘Basics’ submenu: ‘Blink’ simply flashes the on-board LED.
/*
Blink
Turns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino model, check the Technical Specs of your board at: https://www.arduino.cc/en/Main/Products
modified 8 May 2014 by Scott Fitzgerald
modified 2 Sep 2016 by Arturo Guadalupi
modified 8 Sep 2016 by Colby Newman
This example code is in the public domain. http://www.arduino.cc/en/Tutorial/Blink
*/
// the setup function runs once when you press reset or power the board void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
If you look at the code, you’ll see two main sections: setup(), which initialises whatever pins the code will use, and loop(), which contains the guts of your work and, as its name suggests, loops continuously through it.
Arduino programming in depth is beyond the scope of this article, but there is plenty of information online if you are willing to spend a minute with a search engine. If you have perfected your code, or if you merely want to see the Blink example flash the LED, there are a couple more steps. The IDE must recognise the Arduino board you have, and then you must compile it to a sketch and upload it to the hardware.
To perform the first step, on the ‘Tools’ menu select your board model from the ‘Board’ submenu, and then select the port it is plugged into on the ‘Serial port’ submenu. Then, to see it running on the board, select ‘Upload’ from the ‘File’ menu. You will see some status messages scroll past at the bottom of the IDE window; then, if all is well, the on-board LED will start to flash at one-second intervals. Congratulations, you have just run your first Arduino sketch!
Of course, while flashing an LED makes a good simple demo of an Arduino it’s obvious that the boards are capable of so much more. If you are looking for ideas for what to connect to your board, there is a huge range of shields and breakout boards on the market, often complete with software libraries and example sketches of their own. Companies such as Sparkfun and Adafruit maintain extensive catalogues, if the official range of Arduino shields were not enough.
The Arduino Mega 2560, an Arduino With More I/O Lines
There are plenty of applications for which the Uno form factor can not provide enough connectivity. For example, a large robotic or CNC device will have multiple sensors and servos to connect to it.
To address this problem, there is a range of Arduino boards with many more I/O lines and a much larger shield form factor to accommodate them. The Arduino Mega 2560 uses an ATmega2560 microcontroller with all those extra lines.
Arduino Sensor Kits
A common Arduino project, once a first-time user has moved on from flashing LEDs, is to interface one to the real world by reading from a sensor. And since temperature sensors are among the most readily available and easy to interface with, many people create Arduino thermometers and thermostats.
The simplest of these temperature sensors are three terminal chips which take a 5 volt power supply from the Arduino and return a voltage on their other terminal proportional to their temperature. This can be connected to one of the Arduino’s analogue input pins and read using the Arduino’s analogRead() function for your code to calculate a reading from.
Since any measurement project including a thermometer is relatively useless without a display, you will also find a lot of Arduino projects featuring LCD displays.
The commonly available LCD displays using the venerable Hitachi HD44780 driver chip will interface directly with an Arduino, and can easily be controlled using the LiquidCrystal Arduino library. The example Arduino wired to an HD44780 display and an LM35 three-terminal temperature sensor to make a complete thermometer project.
Of course, the uses for an Arduino extend far beyond a simple LED flasher or a thermometer, and are far too numerous to cover in this article. But it’s worth looking at one more common use for an Arduino: its ability to produce a pulse-width-modulated (PWM) output allows it to control servos, and motors when paired with a suitable shield. You’ll find motor controller shields from multiple manufacturers; one of the most commonly found comes from Adafruit.
And once you have a motor shield, you can bring it to a host of robotic projects, from simple two-wheeled crawlers such as the Ardubot, to fully functioning robot arms such as the inexpensive and easy-to-build MeArm. It has been over ten years since the Arduino first saw the light of day, and the mainstay of the hardware range is now based on very outdated hardware when compared to more recent competitors such as the Raspberry Pi or the BeagleBone.
This might be the cue for it to fade into insignificance, as has been the case for other darlings of the electronics hobbyist world, but for two things. First, the Uno and its ancestors may use old chips, but they still do the same job that they did in 2005 very well, namely providing an extremely accessible microcontroller platform for beginners and experts alike. Secondly, the Arduino project is not simply a collection of boards. The open-source IDE and bootloader model has outgrown the hardware, and it is this that makes Arduino special in 2017. Whenever a new and exciting processor or board enters the market, it will always be only a matter of time before someone brings it to the Arduino environment.
If those Italian postgraduates had never met in a bar all those years ago and Arduino had never happened, it’s certain that we would still have had affordable microcontroller boards. What is in doubt is whether we would have had so many that are as accessible through the same open-source development environment. Instead we would probably have had a plethora of competing incompatible IDEs from board and chip manufacturers, many of which would have been difficult to use, or closed-source and proprietary.
If you were that hackspace newbie we mentioned at the start, it’s likely that whichever board you would have used would have had a much steeper learning curve, and if you weren’t extremely dedicated to your project, you might have given up. It’s fortunate then that we have the Arduino, and that its story is far from over. The future will see an ever-expanding range of boards bearing the name, with as-yet-undreamed-of capabilities. So if you’ve never used one, we hope you’ll now have the confidence of knowing a bit more about the project to help you pick up your first Arduino and work with the platform as it further evolves.
Originally published in HackSpace Issue 1 : HackSpace magazine is the monthly magazine for people who love to make things and those who want to learn. Grab some duct tape, fire up a microcontroller, ready a 3D printer and hack the world around you! Original article by Jenny List, the above article includes modifications from the original article. License CC BY-NC-SA 3.0