Arduino Software
   HOME

TheInfoList



OR:

Arduino () is an Italian
open-source hardware Open-source hardware (OSH, OSHW) consists of physical artifact (software development), artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by th ...
and
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
company, project, and user community that designs and manufactures
single-board microcontroller A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program ...
s and
microcontroller A microcontroller (MC, uC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Pro ...
kits for building digital devices. Its hardware products are licensed under a CC BY-SA license, while the software is licensed under the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL) or the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(GPL), permitting the
manufacture Manufacturing is the creation or production of goods with the help of equipment, labor, machines, tools, and chemical or biological processing or formulation. It is the essence of the secondary sector of the economy. The term may refer to a r ...
of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official
website A website (also written as a web site) is any web page whose content is identified by a common domain name and is published on at least one web server. Websites are typically dedicated to a particular topic or purpose, such as news, educatio ...
or through authorized distributors. Arduino board designs use a variety of
microprocessor A microprocessor is a computer processor (computing), processor for which the data processing logic and control is included on a single integrated circuit (IC), or a small number of ICs. The microprocessor contains the arithmetic, logic, a ...
s and controllers. The boards are equipped with sets of digital and analog
input/output In computing, input/output (I/O, i/o, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, such as another computer system, peripherals, or a human operator. Inputs a ...
(I/O) pins that may be interfaced to various expansion boards ('shields') or
breadboards A breadboard, solderless breadboard, or protoboard is a construction base used to build semi-permanent prototypes of electronic circuits. Unlike a perfboard or stripboard, breadboards do not require soldering or destruction of tracks and are hen ...
(for prototyping) and other circuits. The boards feature serial communications interfaces, including
Universal Serial Bus Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
(USB) on some models, which are also used for loading programs. The microcontrollers can be programmed using the C and C++
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s (Embedded C), using a standard API which is also known as the Arduino Programming Language, inspired by the Processing language and used with a modified version of the Processing IDE. In addition to using traditional
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
toolchains A toolchain is a set of software development tools used to build and otherwise develop software. Often, the tools are executed sequentially and form a pipeline such that the output of one tool is the input for the next. Sometimes the term is use ...
, the Arduino project provides an
integrated development environment An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE) and a command line tool developed in Go. The Arduino project began in 2005 as a tool for students at the
Interaction Design Institute Ivrea Interaction Design Institute Ivrea (also known as Interaction Ivrea or IDII) was a two-year graduate program in the field of Interaction Design operating in the town of Ivrea, in Northern Italy between 2001 and 2006. The institute was based in ...
, Italy, aiming to provide a low-cost and easy way for novices and professionals to create devices that interact with their environment using
sensor A sensor is often defined as a device that receives and responds to a signal or stimulus. The stimulus is the quantity, property, or condition that is sensed and converted into electrical signal. In the broadest definition, a sensor is a devi ...
s and
actuator An actuator is a machine element, component of a machine that produces force, torque, or Displacement (geometry), displacement, when an electrical, Pneumatics, pneumatic or Hydraulic fluid, hydraulic input is supplied to it in a system (called an ...
s. Common examples of such devices intended for beginner hobbyists include simple
robot A robot is a machine—especially one Computer program, programmable by a computer—capable of carrying out a complex series of actions Automation, automatically. A robot can be guided by an external control device, or the robot control, co ...
s,
thermostat A thermostat is a regulating device component which senses the temperature of a physical system and performs actions so that the system's temperature is maintained near a desired setpoint. Thermostats are used in any device or system tha ...
s, and
motion detector A motion detector is an electrical device that utilizes a sensor to detect nearby motion (motion detection). Such a device is often integrated as a Electronic component, component of a system that automatically performs a task or Security alarm, ...
s. The name ''Arduino'' comes from a café in
Ivrea Ivrea (; ; ; ) is a town and ''comune'' of the Metropolitan City of Turin in the Piedmont region of northwestern Italy. Situated on the road leading to the Aosta Valley (part of the medieval Via Francigena), it straddles the Dora Baltea and is ...
, Italy, where some of the project's founders used to meet. The bar was named after
Arduin of Ivrea Arduin (; – 14 December 1015) was an Italian nobleman who was king of Italy from 1002 until 1014. In 990 Arduin became margrave of Ivrea and in 991 count of the Sacred Palace of the Lateran in Rome. In 1002, after the death of Emperor Otto ...
, who was the
margrave Margrave was originally the Middle Ages, medieval title for the military commander assigned to maintain the defence of one of the border provinces of the Holy Roman Empire or a monarchy, kingdom. That position became hereditary in certain Feudal ...
of the
March of Ivrea The March of Ivrea was a large frontier county (march) in the northwest of the medieval Italian kingdom from the late 9th to the early 11th century. Its capital was Ivrea in present-day Piedmont, and it was held by a Burgundian family of marg ...
and
King of Italy King is a royal title given to a male monarch. A king is an absolute monarch if he holds unrestricted governmental power or exercises full sovereignty over a nation. Conversely, he is a constitutional monarch if his power is restrained by ...
from 1002 to 1014.


History


Founding

The Arduino project was started at the
Interaction Design Institute Ivrea Interaction Design Institute Ivrea (also known as Interaction Ivrea or IDII) was a two-year graduate program in the field of Interaction Design operating in the town of Ivrea, in Northern Italy between 2001 and 2006. The institute was based in ...
(IDII) in
Ivrea Ivrea (; ; ; ) is a town and ''comune'' of the Metropolitan City of Turin in the Piedmont region of northwestern Italy. Situated on the road leading to the Aosta Valley (part of the medieval Via Francigena), it straddles the Dora Baltea and is ...
, Italy. At that time, the students used a
BASIC Stamp The BASIC Stamp is a microcontroller with a small, specialized BASIC interpreter ( PBASIC) built into ROM. It is made by Parallax, Inc. and has been popular with electronics hobbyists since the early 1990s. Technical specifications Although ...
microcontroller A microcontroller (MC, uC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Pro ...
at a cost of $50. In 2004, Hernando Barragán created the development platform ''
Wiring Electrical wiring is an electrical installation of cabling and associated devices such as switches, distribution boards, sockets, and light fittings in a structure. Wiring is subject to safety standards for design and installation. Allow ...
'' as a Master's thesis project at IDII, under the supervision of Massimo Banzi and
Casey Reas Casey Edwin Barker Reas (born 1972), also known as C. E. B. Reas or Casey Reas, is an American artist whose conceptual, procedural and minimal artworks explore ideas through the contemporary lens of software. Reas is perhaps best known for having ...
. Casey Reas is known for co-creating, with Ben Fry, the Processing development platform. The project goal was to create simple, low cost tools for creating digital projects by non-engineers. The Wiring platform consisted of a
printed circuit board A printed circuit board (PCB), also called printed wiring board (PWB), is a Lamination, laminated sandwich structure of electrical conduction, conductive and Insulator (electricity), insulating layers, each with a pattern of traces, planes ...
(PCB) with an
ATmega AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. They are 8-bit RISC single-chip microcontrollers based on a modified Harvard architecture. AVR was one of the first microcontroller ...
128 microcontroller, an IDE based on Processing and library functions to easily program the microcontroller. In 2005, Massimo Banzi, with David Mellis, another IDII student, and David Cuartielles, extended Wiring by adding support for the cheaper ATmega8 microcontroller. The new project, forked from Wiring, was called ''Arduino''. The initial Arduino core team consisted of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis. Following the completion of the platform, lighter and less expensive versions were distributed in the open-source community. It was estimated in mid-2011 that over 300,000 official Arduinos had been commercially produced, and in 2013 that 700,000 official boards were in users' hands.


Trademark dispute

In early 2008, the five co-founders of the Arduino project created a company, Arduino LLC, to hold the trademarks associated with Arduino. The manufacture and sale of the boards were to be done by external companies, and Arduino LLC would get a royalty from them. The founding bylaws of Arduino LLC specified that each of the five founders transfer ownership of the Arduino brand to the newly formed company. At the end of 2008, Gianluca Martino's company, Smart Projects, registered the Arduino trademark in Italy and kept this a secret from the other co-founders for about two years. This was revealed when the Arduino company tried to register the trademark in other areas of the world (they originally registered only in the US), and discovered that it was already registered in Italy. Negotiations with Martino and his firm to bring the trademark under the control of the original Arduino company failed. In 2014, Smart Projects began refusing to pay royalties. They then appointed a new CEO, Federico Musto, who renamed the company ''Arduino SRL'' and created the website ''arduino.org'', copying the graphics and layout of the original ''arduino.cc''. This resulted in a rift in the Arduino development team. In January 2015, Arduino LLC filed a lawsuit against Arduino SRL. In May 2015, Arduino LLC created the worldwide trademark Genuino, used as brand name outside the United States. At the World
Maker Faire Maker Faire is a convention of do it yourself (DIY) enthusiasts established by '' Make'' magazine in 2006. Participants come from a wide variety of interests, such as robotics, 3D printing, computers, arts and crafts, and hacker culture. Hist ...
in New York on 1 October 2016, Arduino LLC co-founder and CEO Massimo Banzi and Arduino SRL CEO Federico Musto announced the merger of the two companies, forming Arduino AG. Around that same time, Massimo Banzi announced that in addition to the company a new Arduino Foundation would be launched as "a new beginning for Arduino", but this decision was withdrawn later. In April 2017,
Wired Wired may refer to: Arts, entertainment, and media Music * ''Wired'' (Jeff Beck album), 1976 * ''Wired'' (Hugh Cornwell album), 1993 * ''Wired'' (Mallory Knox album), 2017 * "Wired", a song by Prism from their album '' Beat Street'' * "Wired ...
reported that Musto had "fabricated his academic record... On his company's website, personal LinkedIn accounts, and even on Italian business documents, Musto was, until recently, listed as holding a Ph.D. from the Massachusetts Institute of Technology. In some cases, his biography also claimed an MBA from New York University." Wired reported that neither university had any record of Musto's attendance, and Musto later admitted in an interview with Wired that he had never earned those degrees. The controversy surrounding Musto continued when, in July 2017, he reportedly pulled many
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
licenses, schematics, and code from the Arduino website, prompting scrutiny and outcry. By 2017 Arduino 'AG' owned many Arduino trademarks. In July 2017 BCMI, founded by Massimo Banzi, David Cuartielles, David Mellis and Tom Igoe, acquired Arduino AG and all the Arduino trademarks. Fabio Violante is the new CEO replacing Federico Musto, who no longer works for Arduino AG.


Post-dispute

In October 2017, Arduino announced its partnership with
Arm Holdings Arm Holdings plc (formerly an acronym for Advanced RISC Machines and originally Acorn RISC Machine) is a British semiconductor and software design company based in Cambridge, England, whose primary business is the design of central processing ...
(ARM). The announcement said, in part, "ARM recognized independence as a core value of Arduino ... without any lock-in with the
ARM architecture ARM (stylised in lowercase as arm, formerly an acronym for Advanced RISC Machines and originally Acorn RISC Machine) is a family of reduced instruction set computer, RISC instruction set architectures (ISAs) for central processing unit, com ...
". Arduino intends to continue to work with all technology vendors and architectures. Under Violante's guidance, the company started growing again and releasing new designs. The Genuino trademark was dismissed and all products were branded again with the Arduino name. In August 2018, Arduino announced its new open source command line tool
arduino-cli
, which can be used as a replacement of the IDE to program the boards from a shell. In February 2019, Arduino announced its IoT Cloud service as an extension of the Create online environment. As of February 2020, the Arduino community included about 30 million active users based on the IDE downloads.


Hardware

Arduino is
open-source hardware Open-source hardware (OSH, OSHW) consists of physical artifact (software development), artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by th ...
. The hardware reference designs are distributed under a
Creative Commons Creative Commons (CC) is an American non-profit organization and international network devoted to educational access and expanding the range of creative works available for others to build upon legally and to share. The organization has release ...
Attribution Share-Alike 2.5 license and are available on the Arduino website. Layout and production files for some versions of the hardware are also available. Although the hardware and software designs are freely available under
copyleft Copyleft is the legal technique of granting certain freedoms over copies of copyrighted works with the requirement that the same rights be preserved in derivative works. In this sense, ''freedoms'' refers to the use of the work for any purpose, ...
licenses, the developers have requested the name ''Arduino'' to be exclusive to the official product and not be used for derived works without permission. The official policy document on the use of the Arduino name emphasizes that the project is open to incorporating work by others into the official product. Several Arduino-compatible products commercially released have avoided the project name by using various names ending in ''-duino''. Most Arduino boards consist of an Atmel 8-bit AVR microcontroller (ATmega8, ATmega168,
ATmega328 The ATmega328 is a single- chip microcontroller created by Atmel in the megaAVR family (later Microchip Technology acquired Atmel in 2016). It has a modified Harvard architecture 8-bit RISC processor core. Specifications The Atmel 8-bit A ...
, ATmega1280, or ATmega2560) with varying amounts of flash memory, pins, and features. The 32-bit
Arduino Due This is a non-exhaustive list of Arduino boards and compatible systems. It lists boards in these categories: * Released under the official Arduino name * Arduino "shield" compatible * Development-environment compatible * Based on non-Atmel processo ...
, based on the Atmel SAM3X8E was introduced in 2012. The boards use single or double-row pins or female headers that facilitate connections for programming and incorporation into other circuits. These may connect with add-on modules termed ''shields''. Multiple and possibly stacked shields may be individually addressable via an
I²C I2C (Inter-Integrated Circuit; pronounced as "" or ""), alternatively known as I2C and IIC, is a synchronous, multi-master/multi-slave, single-ended, serial communication bus invented in 1980 by Philips Semiconductors (now NXP Semiconduct ...
serial bus In telecommunication and data transmission, serial communication is the process of sending data one bit at a time, sequentially, over a communication channel or computer bus. This is in contrast to parallel communication, where several bits ar ...
. Most boards include a 5 V
linear regulator 300px, Block scheme for voltage regulator in an electronic circuit In electronics, a linear regulator is a voltage regulator used to maintain a steady voltage. The resistance of the regulator varies in accordance with both the input voltage and t ...
and a 16 MHz
crystal oscillator A crystal oscillator is an electronic oscillator Electrical circuit, circuit that uses a piezoelectricity, piezoelectric crystal as a frequency selective surface, frequency-selective element. The oscillator frequency is often used to keep trac ...
or
ceramic resonator A ceramic resonator is an electronic component consisting of a piece of a piezoelectric ceramic material with two or more metal electrodes attached. When connected in an electronic oscillator circuit, resonant mechanical vibrations in the device ...
. Some designs, such as the LilyPad, run at 8 MHz and dispense with the onboard voltage regulator due to specific form factor restrictions. Arduino microcontrollers are pre-programmed with a
bootloader A bootloader, also spelled as boot loader or called bootstrap loader, is a computer program that is responsible for booting a computer and booting an operating system. If it also provides an interactive menu with multiple boot choices then it's o ...
that simplifies the uploading of programs to the on-chip
flash memory Flash memory is an Integrated circuit, electronic Non-volatile memory, non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for t ...
. The default bootloader of the Arduino Uno is the Optiboot bootloader. Boards are loaded with program code via a serial connection to another computer. Some serial Arduino boards contain a
level shifter In digital electronics, a level shifter, also called level converter or logic level shifter, or voltage level translator, is a circuit used to translate signals from one logic level or voltage domain to another, allowing compatibility between in ...
circuit to convert between
RS-232 In telecommunications, RS-232 or Recommended Standard 232 is a standard introduced in 1960 for serial communication transmission of data. It formally defines signals connecting between a ''DTE'' (''data terminal equipment'') such as a compu ...
logic levels and
transistor–transistor logic Transistor–transistor logic (TTL) is a logic family built from bipolar junction transistors (BJTs). Its name signifies that transistors perform both the logic function (the first "transistor") and the amplifying function (the second "transistor" ...
(
TTL serial TTL may refer to: Photography * Through-the-lens metering, a camera feature * Zenit TTL, an SLR film camera named for its TTL metering capability Technology * Time to live, a computer data lifespan-limiting mechanism * Transistor–transistor ...
) level signals. Current Arduino boards are programmed via
Universal Serial Bus Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
(USB), implemented using USB-to-serial adapter chips such as the
FTDI Future Technology Devices International Limited, commonly known by its acronym FTDI, is a Scottish privately held fabless semiconductor device company, specialising in Universal Serial Bus (USB) technology. It develops, manufactures, and suppo ...
FT232. Some boards, such as later-model Uno boards, substitute the
FTDI Future Technology Devices International Limited, commonly known by its acronym FTDI, is a Scottish privately held fabless semiconductor device company, specialising in Universal Serial Bus (USB) technology. It develops, manufactures, and suppo ...
chip with a separate AVR chip containing USB-to-serial firmware, which is reprogrammable via its own ICSP header. Other variants, such as the Arduino Mini and the unofficial Boarduino, use a detachable USB-to-serial adapter board or cable,
Bluetooth Bluetooth is a short-range wireless technology standard that is used for exchanging data between fixed and mobile devices over short distances and building personal area networks (PANs). In the most widely used mode, transmission power is li ...
or other methods. When used with traditional microcontroller tools, instead of the Arduino IDE, standard AVR in-system programming (ISP) programming is used. The Arduino board exposes most of the microcontroller's I/O pins for use by other circuits. The ''Diecimila'', ''Duemilanove'', and current ''Uno'' provide 14 digital I/O pins, six of which can produce pulse-width modulated signals, and six analog inputs, which can also be used as six digital I/O pins. These pins are on the top of the board, via female 0.1-inch (2.54 mm) headers. Several plug-in application shields are also commercially available. The Arduino Nano and Arduino-compatible Bare Bones Board and Boarduino boards may provide male header pins on the underside of the board that can plug into solderless
breadboard A breadboard, solderless breadboard, or protoboard is a construction base used to build semi-permanent prototypes of electronic circuits. Unlike a perfboard or stripboard, breadboards do not require soldering or destruction of tracks and are h ...
s. Many Arduino-compatible and Arduino-derived boards exist. Some are functionally equivalent to an Arduino and can be used interchangeably. Many enhance the basic Arduino by adding output drivers, often for use in school-level education, to simplify making buggies and small robots. Others are electrically equivalent, but change the form factor, sometimes retaining compatibility with shields, sometimes not. Some variants use different processors, of varying compatibility. In addition to hardware variations,
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
libraries have been developed to support Arduino hardware in EDA tools. One such project provides
KiCad KiCad ( ) is a free software suite for electronic design automation (EDA). It facilitates the design and simulation of electronic hardware for PCB manufacturing. It features an integrated environment for schematic capture, Printed circuit boar ...
schematic symbols and
PCB PCB may refer to: Science and technology * Polychlorinated biphenyl, an organic chlorine compound, now recognized as an environmental toxin and classified as a persistent organic pollutant * Printed circuit board, a board used in electronics * P ...
footprints for Arduino modules, expansion boards, and connectors, making it easier for engineers to integrate Arduino into their designs.


Official boards

The original Arduino hardware was manufactured by the Italian company Smart Projects. Some Arduino-branded boards have been designed by the American companies
SparkFun Electronics SparkFun Electronics (sometimes known by its abbreviation, ''SFE'') is an electronics retailer in Niwot, Colorado, United States. It manufactures and sells microcontroller development boards and breakout boards. History SparkFun Electronic ...
and
Adafruit Industries Adafruit Industries is an open-source hardware company based in New York City, New York, United States. It was founded by Limor Fried in 2005. The company designs, manufactures and sells Electronic Products, electronics products, electronics comp ...
. , 17 versions of the Arduino hardware have been commercially produced. File:Arduino316.jpg, Arduino RS232
(male pins) File:Arduino Diecimila 6.jpg, Arduino Diecimila File:Arduino Duemilanove 2009b.jpg, Arduino Duemilanove
(rev 2009b) File:Arduino UNO unpacked.jpg, Arduino Uno R2 File:Arduino Uno - R3.jpg, Arduino Uno SMD R3 File:Arduino Leonardo.jpg, Arduino Leonardo File:2x3 pin header on Arduino Micro.jpg, Arduino Micro (ATmega32U4) File:Arduino Pro Micro.jpg, Arduino Pro Micro (ATmega32U4) File:Arduino Pro.jpg, Arduino Pro
(No USB) File:Arduino Mega.jpg, Arduino Mega File:Arduino Nano.jpg,
Arduino Nano The Arduino Nano is an open-source breadboard-friendly Single-board microcontroller, microcontroller board based on the Microchip Technology, Microchip ATmega328P microcontroller (MCU) and developed by Arduino, Arduino.cc and initially released i ...

(DIP-30 footprint) File:LilyPad Arduino Main Board.JPG, Arduino LilyPad 00
(rev 2007) (No USB) File:Arduino Robot Top.jpg, Arduino Robot File:Arduino Esplora.jpg, Arduino Esplora File:Arduino Ethernet Board.jpg, Arduino Ethernet
(AVR + W5100) File:ArduinoYun.jpg, Arduino Yún
(AVR + AR9331) File:ArduinoDue Front.jpg, Arduino Due
(
ARM Cortex-M3 The ARM Cortex-M is a group of 32-bit reduced instruction set computer, RISC ARM architecture, ARM processor cores licensed by Arm (company), ARM Limited. These cores are optimized for low-cost and energy-efficient integrated circuits, which h ...
core) File:Arduino Giga R1 WiFi.png, Arduino GIGA R1 WiFi (Dual core
ARM Cortex-M7 The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by ARM Limited. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices. Though ...
+
ARM Cortex-M4 The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by ARM Limited. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices. Thoug ...
cores + Murata 1DX)


Shields

Arduino and Arduino-compatible boards use printed circuit expansion boards called ''shields'', which plug into the normally supplied Arduino pin headers. Shields can provide motor controls for
3D printing 3D printing, or additive manufacturing, is the construction of a three-dimensional object from a CAD model or a digital 3D model. It can be done in a variety of processes in which material is deposited, joined or solidified under computer ...
and other applications,
GNSS A satellite navigation or satnav system is a system that uses satellites to provide autonomous geopositioning. A satellite navigation system with global coverage is termed global navigation satellite system (GNSS). , four global systems are op ...
(satellite navigation), Ethernet,
liquid crystal display A liquid-crystal display (LCD) is a flat-panel display or other Electro-optic modulator, electronically modulated optical device that uses the light-modulating properties of liquid crystals combined with polarizers to display information. Liq ...
(LCD), or breadboarding (
prototyping A prototype is an early sample, model, or release of a product built to test a concept or process. It is a term used in a variety of contexts, including semantics, design, electronics, and software programming. A prototype is generally used to ...
). Several shields can also be made
do it yourself "Do it yourself" ("DIY") is the method of building, wikt:modification, modifying, or repairing things by oneself without the direct aid of professionals or certified experts. Academic research has described DIY as behaviors where "individuals ...
(DIY). File:Multiple shields stacked on an Arduino board.jpg, Some shields offer stacking headers which allow multiple shields to be stacked on top of an Arduino board. Here, a prototyping shield is stacked on two
Adafruit Adafruit Industries is an open-source hardware company based in New York, United States. It was founded by Limor Fried in 2005. The company designs, manufactures and sells electronics products, electronics components, tools, and accessories. It ...
motor shield V2s. File:Wingshield on Arduino - ARSH-05-WI.jpg, Screw-terminal breakout shield in a wing-type format, allowing bare-end wires to be connected to the board without requiring any specialized pins File:ARSH-09-DL 03.jpg, Adafruit Datalogging Shield with a
Secure Digital Secure Digital (SD) is a proprietary, non-volatile, flash memory card format developed by the SD Association (SDA). Owing to their compact size, SD cards have been widely adopted in a variety of portable consumer electronics, including digi ...
(SD) card slot and real-time clock (RTC) chip along with some space for adding components and modules for customization File:Adafruit Motor Shield - ARSH-02-MS 01.jpg, Adafruit Motor Shield with screw terminals for connection to motors. Officially discontinued, this shield may still be available through unofficial channels. File:Front of the motor shield.jpg, The Adafruit Motor Shield V2 uses IC, requiring vastly fewer digital I/O pins than attaching each motor directly. File:Closeup of usbhost shield with jumper.JPG, A USB host shield which allows an Arduino board to communicate with a USB device such as a keyboard or a mouse


Software

A program for Arduino hardware may be written in any
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
with compilers that produce binary machine code for the target processor. Atmel provides a development environment for their 8-bit AVR and 32-bit
ARM Cortex-M The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by ARM Limited. These cores are optimized for low-cost and energy-efficient integrated circuits, which have been embedded in tens of billions of consumer devices. Thoug ...
based microcontrollers: AVR Studio (older) and Atmel Studio (newer).


Legacy IDE

The Arduino
integrated development environment An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE) is a
cross-platform Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
application (for
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, and
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
) that is based on '' Processing IDE'' which is written in
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
. It uses the ''
Wiring Electrical wiring is an electrical installation of cabling and associated devices such as switches, distribution boards, sockets, and light fittings in a structure. Wiring is subject to safety standards for design and installation. Allow ...
'' API as programming style and
HAL HAL may refer to: Aviation * Halali Airport (IATA airport code: HAL) Halali, Oshikoto, Namibia * Hawaiian Airlines (ICAO airline code: HAL) * HAL Airport, Bengaluru, India * Hindustan Aeronautics Limited an Indian aerospace manufacturer of fight ...
. It includes a code editor with features such as text cutting and pasting, searching and replacing text, automatic indenting,
brace matching Bracket matching, also known as brace matching or parentheses matching, is a syntax highlighting feature of certain text editors and integrated development environments that highlights matching sets of brackets (square brackets, curly brackets, or ...
, and
syntax highlighting Syntax highlighting is a feature of text editors that is used for programming language, programming, scripting language, scripting, or markup language, markup languages, such as HTML. The feature displays text, especially source code, in differe ...
, and provides simple ''one-click'' mechanisms to compile and upload programs to an Arduino board. It also contains a message area, a text console, a toolbar with buttons for common functions and a hierarchy of operation menus. The source code for the IDE is released under the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
, version 2. The Arduino IDE supports the languages C and C++ using special rules of code structuring. The Arduino IDE supplies a
software library In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
from the
Wiring Electrical wiring is an electrical installation of cabling and associated devices such as switches, distribution boards, sockets, and light fittings in a structure. Wiring is subject to safety standards for design and installation. Allow ...
project, which provides many common input and output procedures. User-written code only requires two basic functions, for starting the sketch and the main program loop, that are compiled and linked with a program stub ''main()'' into an executable
cyclic executive A cyclic executive is an alternative to a real-time operating system. It is a form of cooperative multitasking, in which there is only one task. The sole task is typically realized as an infinite loop in , e.g. in C. The basic scheme is to cyc ...
program with the
GNU toolchain The GNU toolchain is a broad collection of programming tools produced by the GNU Project. These tools form a toolchain (a suite of tools used in a serial manner) used for developing software applications and operating systems. The GNU toolchain pl ...
, also included with the IDE distribution. The Arduino IDE employs the program ''avrdude'' to convert the executable code into a text file in
hexadecimal Hexadecimal (also known as base-16 or simply hex) is a Numeral system#Positional systems in detail, positional numeral system that represents numbers using a radix (base) of sixteen. Unlike the decimal system representing numbers using ten symbo ...
encoding that is loaded into the Arduino board by a loader program in the board's firmware. Traditionally, Arduino IDE was used to program Arduino's official boards based on Atmel AVR Microcontrollers, but over time, once the popularity of Arduino grew and the availability of open-source compilers existed, many more platforms from
PIC PIC or pic may refer to: Places * Penbay International Circuit, or PIC, a motor track circuit in Pingtung County, Taiwan * Pic River, in Ontario, Canada * Picayune (Amtrak station) (Amtrak station code PIC), Mississippi, United States * Pic, a ...
,
STM32 STM32 is a family of 32-bit microcontroller and microprocessor integrated circuits by STMicroelectronics. STM32 microcontrollers are grouped into related series that are based around the same 32-bit ARM processor core: Cortex-M0, Cortex-M0+, C ...
, TI MSP430,
ESP32 ESP32 is a family of low-cost, energy-efficient microcontrollers that integrate both Wi-Fi and Bluetooth capabilities. These chips feature a variety of processing options, including the Tensilica Xtensa LX6 microprocessor available in both dual-c ...
can be coded using Arduino IDE.


IDE 2.0

An initial alpha preview of a new Arduino IDE was released on October 18, 2019, as Arduino Pro IDE. The beta preview was released on March 1, 2021, renamed IDE 2.0. On September 14, 2022, the Arduino IDE 2.0 was officially released as stable. The system still uses Arduino CLI (Command Line Interface), but improvements include a more professional development environment and autocompletion support. The application frontend is based on the
Eclipse Theia Eclipse Theia is an Eclipse open source project providing the Theia Platform and the Theia IDE. The Eclipse Theia Platform is a free and open-source framework for building IDEs and tools based on web technologies. Theia-based applications ca ...
Open Source IDE. Its main new features are: * Modern, fully featured development environment * New Board Manager * New Library Manager * Project Explorer * Basic Auto-Completion and syntax check * Serial Monitor with Graph Plotter * Dark Mode and DPI awareness * 64-bit release * Debugging capability One important feature Arduino IDE 2.0 provides is the debugging feature. It allows users to single-step, insert breakpoints or view memory. Debugging requires a target chip with
debug port A debug port is a diagnostic interface (akin to a computer port) included in an electronic system or integrated circuit to aid design, fabrication, development, bootstrapping, configuration, debugging, and post-sale in-system programming. In ge ...
and a debug probe. The official Arduino Zero board can be debugged out of the box. Other official Arduino SAMD21 boards require a separate SEGGER J-Link or Atmel-ICE. For a 3rd party board, debugging in Arduino IDE 2.0 is also possible as long as such board supports GDB, OPENOCD and has a debug probe. Community has contributed debugging for ATMega328P based Arduino or CH32 RISC-V boards, etc.


Sketch

A ''sketch'' is a program written with the Arduino IDE. Sketches are saved on the development computer as text files with the file extension .ino. Arduino Software (IDE) pre-1.0 saved sketches with the extension .pde. A minimal Arduino C/C++ program consists of only two functions: * : This function is called once when a sketch starts after power-up or reset. It is used to initialize variables, input and output pin modes, and other libraries needed in the sketch. It is analogous to the function . * : After function exits (ends), the function is executed repeatedly in the main program. It controls the board until the board is powered off or is reset. It is analogous to the function . ;Blink example Most Arduino boards contain a
light-emitting diode A light-emitting diode (LED) is a semiconductor device that emits light when current flows through it. Electrons in the semiconductor recombine with electron holes, releasing energy in the form of photons. The color of the light (corre ...
(LED) and a current-limiting resistor connected between pin 13 and ground, which is a convenient feature for many tests and program functions. A typical program used by beginners, akin to Hello, World!, is "blink", which repeatedly blinks the on-board LED integrated into the Arduino board. This program uses the functions , , and , which are provided by the internal libraries included in the IDE environment. This program is usually loaded into a new Arduino board by the manufacturer. const int LED_PIN = 13; // Pin number attached to LED. void setup() void loop() Sweep example Sweeping a servo with an Arduino means moving it back and forth across a specified range of motion. This is commonly done using the Servo library in Arduino. To sweep a servo with an Arduino, connect the servo's VCC (red wire) to 5V, GND (black/brown) to GND, and signal (yellow/white) to a PWM-capable pin (e.g., Pin 9). Use the Servo library to control movement. The code below gradually moves the servo from 0° to 180° and back in a loop. #include Servo myServo; // Create a Servo object void setup() void loop()


Libraries

The open-source nature of the Arduino project has facilitated the publication of many free software libraries that other developers use to augment their projects.


Operating systems/threading

There is a
Xinu XINU Is Not Unix (XINU, a recursive acronym), is an operating system for embedded systems, originally developed by Douglas Comer for educational use at Purdue University in the 1980s. The name is both recursive, and is ''Unix'' spelled backwar ...
OS port for the ATmega328P (Arduino Uno and others with the same chip), which includes most of the basic features. The source code of this version is freely available. There is also a threading tool, named Protothreads. Protothreads are described as "extremely lightweight stackless threads designed for severely memory constrained systems, such as small embedded systems or wireless sensor network nodes. There is a port of
FreeRTOS FreeRTOS is a real-time operating system Kernel (operating system), kernel for embedded devices that has been ported to 40 microcontroller platforms. It is distributed under the MIT License. History The FreeRTOS kernel was originally developed ...
for the Arduino. This is available from the Arduino Library Manager. It is compatible with a number of boards, including the Uno.


Applications

*
Arduboy The Arduboy is a handheld game console with open source software, based on the Arduino hardware platform. History Development The original version of the Arduboy was thick, with the height and width of a credit card, and was initially designed ...
, a
handheld game console A handheld game console, or simply handheld console, is a small, portable self-contained video game console with a built-in screen, game controls and speakers. Handheld game consoles are smaller than home video game consoles and contain the con ...
based on Arduino *
Arduinome An Arduinome is a MIDI controller device that mimics the Monome using the Arduino physical computing platform. The plans for the Arduinome are released under an open source, non-commercial use only license. The Arduinome platform is noted for pro ...
, a
MIDI controller A MIDI controller is any hardware or software that generates and transmits Musical Instrument Digital Interface (MIDI) data to MIDI-enabled devices, typically to trigger sounds and control parameters of an electronic music performance. They mos ...
device that mimics the
Monome Monome is an Upstate New York-based company, founded by Brian Crabtree and Kelli Cain, that produces sound modules and MIDI controllers. Monome is also the name of their initial product, a grid-based controller that is now sometimes simply referre ...
*
Ardupilot ArduPilot is an autopilot software program that can control multirotor drones, fixed-wing and VTOL aircraft, RC helicopters, ROVs, ground rovers, boats, submarines, uncrewed surface vessels (USVs), antenna trackers and blimps. ArduPilot was or ...
, drone software and hardware *
ArduSat Ardusat () is a commune in western Maramureș County, Romania on the banks of the Someș River, near the border with Satu Mare County. The first record of its existence dates back to 1230. It is composed of three villages: Ardusat, Arieșu de Câ ...
, a cubesat based on Arduino * C-STEM Studio, a platform for hands-on integrated learning of computing, science, technology, engineering, and mathematics (C-STEM) with robotics * Data loggers for scientific research *
OBDuino OBDuino is an open source trip computer design based on the Arduino platform. An OBDuino may be assembled and customised by an electronics hobbyist; it displays information such as instantaneous fuel economy (e.g. miles per gallon, L/100 km o ...
, a
trip computer A trip computer is a computer fitted to some cars; most modern trip computers record, calculate, and display the distance travelled, the average speed, the average fuel consumption, and real-time fuel consumption. The first, mechanical trip ...
that uses the
on-board diagnostics On-board diagnostics (OBD) is a term referring to a vehicle's self-diagnostic and reporting capability. In the United States, this capability is a requirement to comply with United States vehicle emission standards, federal emissions standards ...
interface found in most modern cars *
OpenEVSE OpenEVSE ''(Electric Vehicle Supply Equipment)'' is an Arduino-based charging station created by Christopher Howell and Sam C. Lin. The charger is composed of open-source software and hardware that can be made by individuals. The project started ...
an open-source electric vehicle charger * XOD, a visual programming language for Arduino


Simulation

*
Tinkercad Tinkercad is a free-of-charge, online 3D modeling program that runs in a web browser. Since it became available in 2011 it has become a popular platform for creating models for 3D printing as well as an entry-level introduction to constructive ...
Circuits - an analog and digital simulator supporting Arduino Simulation, which is commonly used to create 3D models


Recognitions

The Arduino project received an honorary mention in the Digital Communities category at the 2006
Prix Ars Electronica The Prix Ars Electronica is one of the best known and longest running yearly prizes in the field of electronic and interactive art, computer animation, digital culture and music. It has been awarded since 1987 by Ars Electronica (Linz, Austria ...
. The Arduino Engineering Kit won the Bett Award for "Higher Education or Further Education Digital Services" in 2020.


See also

*
List of Arduino boards and compatible systems This is a non-exhaustive list of Arduino boards and compatible systems. It lists boards in these categories: * Released under the official Arduino name * Arduino "shield" compatible * Development-environment compatible * Based on non-Atmel processo ...
*
List of open-source hardware projects This is a list of open-source hardware projects, including computer systems and components, cameras, radio, telephony, science education, machines and tools, robotics, renewable energy, home automation, medical and biotech, automotive, prototypi ...


Explanatory notes


References


Further reading

* * * * * * * * *


External links

*
How Arduino is open sourcing imagination
a TED talk by creator Massimo Banzi
Evolution tree for Arduino

Arduino Cheat Sheet

Arduino Dimensions and Hole Patterns

Arduino Shield Template
* Arduino Board Pinout Diagrams
DueEsploraLeonardoMegaMicroMiniPro MicroPro MiniUnoYun
; Historical * Arduino – The Documentary (2010)
IMDbVimeo
* Massimo Banzi interviews
Triangulation 110FLOSS 61

Untold History of Arduino
– Hernando Barragán
Lawsuit documents from Arduino LLC vs. Arduino S.R.L. et al.
– United States Courts Archive {{Authority control Microcontrollers Open hardware electronic devices Robotics hardware Computer-related introductions in 2005 Physical computing Italian inventions Software using the GNU Affero General Public License Free software programmed in TypeScript Free software programmed in JavaScript