The Arduino project has produced a range of low cost open source computers based mostly around Atmel processors, plus an open source Integrated Development Environment (IDE) and programming language based on C/C++.

The Arduino Uno is perhaps the most widely known processor board in the range, offering a lost cost entry point into microcontroller programming, and supported by a huge range of add-on peripherals.

For more demanding applications the newly introduced Arduino Due offers additional input/output ports, more memory and enhanced processing capabilities, being based on a 32-bit ARM Cortex-M3 RISC processor. The Arduino Due has a similar footprint to the well established Arduino Mega 2560 (an updated version of the Arduino Mega), but has a generally higher specification. However the Due operates internally at 3.3 V, rather than the usual 5V as with other Arduino boards, making it incompatible with some existing add-ons.

The following table summarises the main features of the Arduino Uno, Due, and Mega 2560 processor boards

  Arduino Uno (web) Arduino Due (web) Arduino Mega 2560 (web)
CPU ATmega328 (data) ATSAM3X8E (data) ATmega2560 (data)
Clock 16 MHz 84 MHz 16 MHz
Flash 32 KB1 (KiB) 512 KB 256 KB
SRAM 2 KB 96 KB 8 KB
I/O 14 54 54
Operating Voltage 5 V 3.3 V 5 V

The Arduino Hardware page gives details of all officially produced Arduino circuit boards.

Writing Programs

Programs are written on a development system PC using the Arduino IDE and are downloaded to the Arduino processor board using a USB connection, with the aid of a small boot loader program stored in the microcontroller's memory.

The Arduino IDE is written in Java, and is based on the IDE used in the Processing programming language, although the Arduino programming language is itself based on a simplified set of C/C++ libraries developed in the Wiring project. The overall aim is to simplify the software development process, making it more accessible to a wider range of less technically minded people, including students, hobbyists and even artists. Perhaps, with the latter group in mind, Arduino programs are often called sketches.

A wide range of example programs are available from the File > Examples section of the IDE pull-down menu, and browsing through these applications is a great way to learn the capabilities of the hardware and software. One of the most basic programs is the Blink application, which as its name suggests, blinks a single LED at 1 second intervals.

Arduino Website Resources

Whether you are just getting started with Arduino software development, or an experienced programmer, then the Arduino website is a great source of information. Useful resources include:

Add-on Hardware

A wide variety of add-on interfacing boards are available and these are fitted on top of the main processor board using plug-in header connectors. These daughter boards are commonly called shields, presumably based on a superficial resemblance of the assembly to a knight holding a shield.


1 The commonly used definition of 1 KB = 1,024 bytes is used here, to match with associated manufacturer datasheets. The equivalent IEC recommended binary prefix would be 1 KiB.

Related Topics