Misplaced Pages

Arduino: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editContent deleted Content addedVisualWikitext
Revision as of 00:45, 22 May 2015 edit84.220.63.154 (talk) External links: Corretto errore di battitura, Aggiunti collegamentiTags: Mobile edit Mobile app edit← Previous edit Latest revision as of 07:05, 8 January 2025 edit undoJJMC89 bot III (talk | contribs)Bots, Administrators3,697,788 editsm Moving Category:Software using the GNU AGPL license to Category:Software using the GNU Affero General Public License per Misplaced Pages:Categories for discussion/Speedy 
Line 1: Line 1:
{{Short description|Italian open-source hardware and software company}}
{{Other uses}}
{{Redirect|LilyPad||Lily pad (disambiguation)}}
{{Other uses|Arduino (disambiguation)}}
{{Infobox information appliance {{Infobox information appliance
| name = Arduino | name = Arduino
| logo = ] | logo = ] ]
| image = ] | image = ]
| caption = "Arduino Uno" Revision 3 | caption = ] SMD R3
| developer = | manufacturer = Arduino
| type = ]
| releasedate =
| cpu = {{Plain list|
| type = ]
* ] (8-bit)
| price =
* ] (32-bit)
| cpu =
* ] (32-bit)
| graphics =
* ] (]) (32-bit)
| storage =
}}
| memory =
| storage = ], ]
| os =
| memory = ]
| power =
| os = None, with bootloader (default) <br> ] <br> ]
| website = {{URL|http://www.arduino.cc/}}
| website = {{URL|https://www.arduino.cc/|arduino.cc}}
}} }}


'''Arduino''' is an ] computer hardware and software company, project and user community that designs and manufactures kits for building digital devices and interactive objects that can sense and control the physical world.<ref>{{cite web|url=http://arduino.cc/en/guide/introduction|title=Arduino - Introduction|work=arduino.cc}}</ref> Arduino boards may be purchased preassembled, or as ] kits; at the same time, the hardware design information is available for those who would like to assemble an Arduino from scratch. '''Arduino''' ({{IPAc-en|ɑː|r|ˈ|d|w|iː|n|oʊ}}) is an Italian ] and ] company, project, and user community that designs and manufactures ]s and ] kits for building digital devices. Its hardware products are licensed under a ], while the software is licensed under the ] (LGPL) or the ] (GPL),<ref>{{Cite web |title=Getting Started: FOUNDATION > Introduction |url=https://www.arduino.cc/en/guide/introduction |url-status=dead |archive-url=https://web.archive.org/web/20170829015201/https://www.arduino.cc/en/Guide/Introduction |archive-date=2017-08-29 |access-date=2017-05-23 |website=arduino.cc}}</ref> permitting the ] of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official ] or through authorized distributors.<ref>{{Cite web |title=Arduino - Home |url=https://www.arduino.cc/ |access-date=2022-10-27 |website=www.arduino.cc}}</ref>


The project is based on a family of ] board designs manufactured primarily by SmartProjects in Italy,<ref>{{cite web|url=http://arduino.cc/en/Main/FAQ|title=Arduino - FAQ|work=arduino.cc}}</ref> and also by several other vendors, using various 8-bit ] ] microcontrollers or 32-bit Atmel ] processors. These systems provide sets of digital and analog ] pins that can be interfaced to various extension boards and other circuits. The boards feature serial communications interfaces, including ] on some models, for loading programs from personal computers. For programming the microcontrollers, the Arduino platform provides an ] (IDE) based on the ] project, which includes support for ] and ] programming languages. Arduino board designs use a variety of ]s and controllers. The boards are equipped with sets of digital and analog ] (I/O) pins that may be interfaced to various expansion boards ('shields') or ] (for prototyping) and other circuits. The boards feature serial communications interfaces, including ] (USB) on some models, which are also used for loading programs. The microcontrollers can be programmed using the ] and ] ]s (Embedded C), using a standard API which is also known as the '''Arduino Programming Language''', inspired by the ] and used with a modified version of the Processing IDE. In addition to using traditional ] ], the Arduino project provides an ] (IDE) and a command line tool developed in ].


The Arduino project began in 2005 as a tool for students at the ], Italy,<ref name="kushner">{{Cite journal |last=Kushner |first=David |date=2011-10-26 |title=The Making of Arduino |url=https://spectrum.ieee.org/the-making-of-arduino |journal=]}}</ref> aiming to provide a low-cost and easy way for novices and professionals to create devices that interact with their environment using ]s and ]s. Common examples of such devices intended for beginner hobbyists include simple ]s, ]s, and ]s.
The first Arduino was introduced in 2005. The project leaders sought to provide an inexpensive and easy way for hobbyists, students, and professionals to create devices that interact with their environment using ] and ]. Common examples for beginner hobbyists include simple ], ] and motion detectors. ] estimated in mid-2011 that over 300,000 official Arduinos had been commercially produced,<ref>{{cite web |url=http://www.adafruit.com/blog/2011/05/15/how-many-arduinos-are-in-the-wild-about-300000/ | title=How many Arduinos are "in the wild?" About 300,000 | publisher=] | date=May 15, 2011 | accessdate=2013-05-26}}</ref> and in 2013 that 700,000 official boards were in users' hands.<ref>{{cite web | url=http://medea.mah.se/2013/04/arduino-faq// | title=Arduino FAQ – With David Cuartielles | publisher=] | date=April 5, 2013 | accessdate=2014-03-24}}</ref>


The name ''Arduino'' comes from a café in ], Italy, where some of the project's founders used to meet. The bar was named after ], who was the ] of the ] and ] from 1002 to 1014.<ref>{{Cite journal |last=Lahart |first=Justin |date=27 November 2009 |title=Taking an Open-Source Approach to Hardware |url=https://www.wsj.com/articles/SB10001424052748703499404574559960271468066 |journal=] |access-date=2014-09-07}}</ref>
== History ==
Arduino started in 2005 as a project for students at the ] in ], Italy. At that time program students used a "]" at a cost of $100, considered expensive for students. Massimo Banzi, one of the founders, taught at Ivrea.<ref name="spectrum.ieee.org">{{cite journal | journal= ] | url=http://spectrum.ieee.org/geek-life/hands-on/the-making-of-arduino | title=The Making of Arduino | author=David Kushner | date=26 Oct 2011}}</ref> The name "Arduino" comes from a bar in Ivrea, where some of the founders of the project used to meet. The bar, in turn, was named after ], ] and ] from 1002 to 1014.<ref>{{Cite journal | author = Justin Lahart | date=27 November 2009 | title = Taking an Open-Source Approach to Hardware | journal = ] | url = http://online.wsj.com/article/SB10001424052748703499404574559960271468066.html | access-date=7 September 2014 }}</ref>


==History==
A hardware thesis was contributed for a wiring design by Colombian student Hernando Barragan. After the ]<ref>{{cite web|url=http://rhizome.org/editorial/2009/sep/23/interview-with-casey-reas-and-ben-fry/
|accessdate=2014-08-23
|title=Rhizome - Interview with Casey Reas and Ben Fry
|date=2009-09-23
}}</ref> platform was complete, researchers worked to make it lighter, less expensive, and available to the open source community. The school eventually closed, but the researchers, including David Cuartielles, promoted the idea. The Arduino core team consisted of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino and David Mellis.<ref name="spectrum.ieee.org" />


== Hardware == ===Founding===
]
{{refimprove section|date=May 2013}}
The Arduino project was started at the ] (IDII) in ], Italy.<ref name="kushner" /> At that time, the students used a ] ] at a cost of $50. In 2004, ] created the development platform '']'' as a Master's thesis project at IDII, under the supervision of Massimo Banzi and ]. Casey Reas is known for co-creating, with Ben Fry, the ] 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 ] (PCB) with an ]128 microcontroller, an IDE based on Processing and library functions to easily program the microcontroller.<ref name=":0">{{Cite web |last=Barragán |first=Hernando |date=2016-01-01 |title=The Untold History of Arduino |url=https://arduinohistory.github.io |access-date=2016-03-06 |website=arduinohistory.github.io}}</ref>
]
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''.<ref name=":0" />
] ] (upper left) and an Atmel ATmega8 microcontroller chip (black, lower right); the 14 digital I/O pins are located at the top and the six analog input pins at the lower right.]]


The initial Arduino core team consisted of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis.<ref name="kushner" />
An Arduino board consists of an ] 8-, 16- or 32-bit AVR ] with complementary components that facilitate programming and incorporation into other circuits. An important aspect of the Arduino is its standard connectors, which lets users connect the CPU board to a variety of interchangeable add-on modules known as ''shields''. Some shields communicate with the Arduino board directly over various pins, but many shields are individually addressable via an ] ]—so many shields can be stacked and used in parallel. Official Arduinos have used the ] series of chips, specifically the ATmega8, ATmega168, ATmega328, ATmega1280, and ATmega2560. A handful of other processors have been used by Arduino compatibles. Most boards include a 5&nbsp;volt ] and a 16&nbsp;MHz ] (or ] in some variants), although some designs such as the LilyPad run at 8&nbsp;MHz and dispense with the onboard voltage regulator due to specific form-factor restrictions. An Arduino's microcontroller is also pre-programmed with a ] that simplifies uploading of programs to the on-chip ], compared with other devices that typically need an external ]. This makes using an Arduino more straightforward by allowing the use of an ordinary computer as the programmer.


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,<ref>{{Cite web |date=May 15, 2011 |title=How many Arduinos are "in the wild?" About 300,000 |url=http://www.adafruit.com/blog/2011/05/15/how-many-arduinos-are-in-the-wild-about-300000/ |access-date=2013-05-26 |publisher=]}}</ref> and in 2013 that 700,000 official boards were in users' hands.<ref>{{Cite web |date=April 5, 2013 |title=Arduino FAQ – With David Cuartielles |url=http://medea.mah.se/2013/04/arduino-faq// |url-status=dead |archive-url=https://web.archive.org/web/20170906182556/http://medea.mah.se/2013/04/arduino-faq/ |archive-date=2017-09-06 |access-date=2014-03-24 |publisher=]}}</ref>
At a conceptual level, when using the Arduino software stack, all boards are programmed over an ] serial connection, but the way this is implemented varies by hardware version. Serial Arduino boards contain a level shifter circuit to convert between RS-232-level and ]-level signals. Current Arduino boards are programmed via ], implemented using USB-to-serial adapter chips such as the ] FT232. Some variants, such as the Arduino Mini and the unofficial Boarduino, use a detachable USB-to-serial adapter board or cable, ] or other methods. (When used with traditional microcontroller tools instead of the Arduino ], standard AVR ] programming is used.)


===Trademark dispute===
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 ] 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 {{convert|0.10|in|mm|sing=on}} 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 ]s.
In early 2008, the five co-founders of the Arduino project created a company, Arduino LLC,<ref>{{Cite web |title=Business Entity Summary for Arduino LLC |url=http://corp.sec.state.ma.us/CorpWeb/CorpSearch/CorpSummary.aspx?FEIN=262323943&SEARCH_TYPE=1 |website=Mass.gov |publisher=State of Massachusetts}}</ref> 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.{{Citation needed|date=September 2015}}


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.<ref>{{Cite web |last=Allan |first=Alasdair |date=6 March 2015 |title=Arduino Wars: Group Splits, Competing Products Revealed? |url=http://makezine.com/2015/03/06/arduino-vs-arduino/ |access-date=21 April 2015 |website=makezine.com |publisher=Maker Media, Inc.}}</ref><ref>{{Cite web |last=Banzi |first=Massimo |date=19 March 2015 |title=Massimo Banzi: Fighting for Arduino |url=http://makezine.com/2015/03/19/massimo-banzi-fighting-for-arduino/ |access-date=21 April 2015 |website=makezine.com |publisher=Maker Media, Inc.}}</ref><ref>{{Cite web |last=Williams |first=Elliot |date=28 March 2015 |title=Arduino SRL to Distributors: "We're the Real Arduino" |url=http://hackaday.com/2015/03/28/arduino-srl-to-distributors-were-the-real-arduino/ |access-date=21 April 2015 |website=Hackaday.com }}</ref>
There are many Arduino-compatible and Arduino-derived boards. 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 the construction of buggies and small robots. Others are electrically equivalent but change the form factor, sometimes retaining compatibility with shields, sometimes not. Some variants use completely different processors, with varying levels of compatibility.


In January 2015, Arduino LLC filed a lawsuit against Arduino SRL.<ref>{{Cite web |title=Arduino LLC vs Arduino SRL lawsuit; United States Courts Archive. |url=https://www.unitedstatescourts.org/federal/mad/167131/ |url-status=dead |archive-url=https://web.archive.org/web/20170709234951/https://www.unitedstatescourts.org/federal/mad/167131/ |archive-date=2017-07-09 |access-date=20 February 2018}}</ref>
=== Official boards ===
{{further|List of Arduino boards and compatible systems}}
The original Arduino hardware is manufactured by the Italian company Smart Projects.<ref name="smartprojects"/> Some Arduino-branded boards have been designed by the American company ].<ref>Schmidt, M. , '']'', January 22, 2011, Pg. 201</ref> Sixteen versions of the Arduino hardware have been commercially produced to date.{{When|date=April 2015}}<!-- Should be reworded "as of" and give a year -->


In May 2015, Arduino LLC created the worldwide trademark '''Genuino''', used as brand name outside the United States.<ref>{{Cite web |date=16 May 2015 |title=Arduino Announces New Brand, Genuino, Manufacturing Partnership with Adafruit |url=http://makezine.com/2015/05/16/arduino-adafruit-manufacturing-genuino/ |access-date=17 May 2015 |website=Make}}</ref>
<gallery caption="Example Arduino boards">
<!-- Note: This gallery is not meant to be a dumping ground for every Arduino! We need to be very selective! --->
File:Arduino_Diecimila_6.jpg|Arduino Diecimila in Stoicheia
File:Arduino Duemilanove 2009b.jpg|Arduino Duemilanove (rev 2009b)
File:Arduino UNO unpacked.jpg|Arduino UNO
File:Arduino Leonardo.jpg|Arduino Leonardo
File:Arduino Mega.jpg|Arduino Mega
File:Arduino MEGA 2560 R3, front side.jpg|Arduino MEGA 2560 R3 (front side){{Efn|name="MEGA-2560-R3"|This is a compatible version of the MEGA 2560 R3 board, made by an alternative manufacturer.<ref>{{cite web|url=http://www.arduino.cc/en/Main/ArduinoBoardMega2560|title=Arduino - ArduinoBoardMega2560|work=arduino.cc}}</ref>}}
File:Arduino MEGA 2560 R3, back side.jpg|Arduino MEGA 2560 R3 (back side){{Efn|name="MEGA-2560-R3"}}
File:Arduino Nano.jpg|Arduino Nano
File:Arduino Due.jpg|Arduino Due (ARM-based)
File:LilyPad Arduino Main Board.JPG|LilyPad Arduino (rev 2007)
<!-- Note: This gallery is not meant to be a dumping ground for every Arduino! We need to be very selective! --->
</gallery>


At the World ] 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.<ref>{{Cite web |date=October 2016 |title=Arduino Blog – Two Arduinos become one |url=https://blog.arduino.cc/2016/10/01/two-arduinos-become-one-2/ |access-date=2016-10-02 |website=Arduino Blog}}</ref> 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.<ref>{{Cite news |date=2017-06-09 |title=Free Arduino {{!}} Make |language=en-US |work=Make: DIY Projects and Ideas for Makers |url=https://makezine.com/2017/06/09/free-arduino/ |access-date=2017-12-22}}</ref><ref>{{Cite news |date=2017-06-19 |title=The Arduino Foundation: What's Up? |language=en-US |work=Hackaday |url=https://hackaday.com/2017/06/19/the-arduino-foundation-whats-up/ |access-date=2017-12-22}}</ref><ref>{{Cite web |date=2024-04-10 |title=A New Era for Arduino: Original Arduino Founders Finally Get 100% Control |url=https://audioxpress.com/news/a-new-era-for-arduino-original-arduino-founders-finally-get-100-control |access-date=2024-05-10 |website=audioXpress |language=en}}</ref>
=== 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, ], Ethernet, LCD, or ]ing (prototyping). A number of shields can also be made ].<ref name="AutoF7-35"/><ref name="AutoF7-36"/><ref>{{cite web | url=http://shieldlist.org/ |title= Arduino Shield list | author=Jonathan Oxer | accessdate=5 Nov 2013}}</ref>


In April 2017, ] 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.<ref>{{Cite magazine |title=Arduino's New CEO, Federico Musto, May Have Fabricated His Academic Record |url=https://www.wired.com/2017/04/arduinos-new-ceo-federico-musto-may-fabricated-academic-record/ |magazine=WIRED |language=en-US |access-date=2017-12-22}}</ref> The controversy surrounding Musto continued when, in July 2017, he reportedly pulled many ] licenses, schematics, and code from the Arduino website, prompting scrutiny and outcry.<ref>{{Cite news |last=Biggs |first=John |title=CEO controversy mars Arduino's open future |language=en |work=TechCrunch |url=https://techcrunch.com/2017/07/26/ceo-controversy-mars-arduinos-open-future/ |access-date=2017-12-22}}</ref>
<gallery caption="Example Arduino shields">
<!-- Note: This gallery is not meant to be a dumping ground for every shield known to man! We need to be very selective! --->
Image:Arduino Protoboard Shields.jpg|Multiple shields can be stacked. In this example the top shield contains a solderless breadboard.
Image:Wingshield on Arduino - ARSH-05-WI.jpg|Screw-terminal breakout shield in a wing-type format
Image:Adafruit Motor Shield - ARSH-02-MS 01.jpg|Adafruit Motor Shield with screw terminals for connection to motors
Image:ARSH-09-DL 03.jpg|Adafruit Datalogging Shield with a ] (SD) card slot and real-time clock (RTC) chip
Image:Fabric Shield for Arduino Nano.JPG|HackARobot Fabric Shield{{snd}} designed for Arduino Nano to hook up motors and sensors such as gyroscope or GPS, and other breakout boards such as WiFi, Bluetooth, RF, etc.
<!-- Note: This gallery is not meant to be a dumping ground for every shield known to man! We need to be very selective! --->
</gallery>


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.<ref>{{Cite web |date=28 July 2017 |title=Arduino Blog – A new era for Arduino begins today |url=https://blog.arduino.cc/2017/07/28/a-new-era-for-arduino-begins-today/ |access-date=19 Jan 2018 |website=Arduino Blog}}</ref><ref>{{Cite web |last=Davis |first=Tom |date=31 July 2017 |title=BCMI Acquires Arduino AG and Makers Breathe a Sigh of Relief |url=https://techwombat.com/bcmi-acquires-arduino-ag-makers-breathe-sigh-relief/ |access-date=29 November 2018 |website=techwombat.com}}</ref>
== Software ==
{{Infobox software
| name = Arduino Software IDE
| screenshot = ]
| caption = A screenshot of the Arduino IDE showing the "Blink" program, a simple beginner program
| developer = Arduino Software
| latest release version = 1.6.3
| latest release date = {{Start date|2015|04|02|df=y}}<ref name="AutoF7-37"/>
| latest preview version =
| latest preview date =
| operating system = ]
| genre = ]
| based on = ]
| programming language = ], ] and ]
| license = ] or ] license
| website = {{URL|http://arduino.cc/en/Main/Software|arduino.cc}}
}}


=== Post-dispute ===
The Arduino ] (IDE) is a ] application written in ], and derives from the IDE for the ] and the ] projects. It is designed to introduce programming to artists and other newcomers unfamiliar with software development. It includes a code editor with features such as ], ], and automatic indentation, and is also capable of compiling and uploading programs to the board with a single click. A program or code written for Arduino is called a "sketch".<ref>{{cite web | url=http://www.amazon.com/Programming-Arduino-Getting-Started-Sketches/dp/0071784225/ref=sr_1_1?s=books&ie=UTF8&qid=1364494138&sr=1-1&keywords=arduino+sketches | title= Programming Arduino Getting Started with Sketches | publisher= ] | date=Nov 8, 2011 | accessdate=2013-03-28}}</ref>
In October 2017, Arduino announced its partnership with ] (ARM). The announcement said, in part, "ARM recognized independence as a core value of Arduino&nbsp;... without any lock-in with the ]". Arduino intends to continue to work with all technology vendors and architectures.<ref>{{Cite news |date=2017-10-06 |title=Arduino reborn partners with ARM |language=en-GB |work=Electronics Weekly |url=https://www.electronicsweekly.com/blogs/distribution-world/arduino-reborn-partners-arm-2017-10/ |access-date=2017-11-03}}</ref> 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 (), which can be used as a replacement of the IDE to program the boards from a shell.<ref>{{Cite web |date=2018-08-24 |title=Announcing the Arduino Command Line Interface (CLI) |url=https://blog.arduino.cc/2018/08/24/announcing-the-arduino-command-line-interface-cli/ |access-date=2020-06-23 |website=Arduino Blog |language=en}}</ref>
Arduino programs are written in ] or ]. The Arduino IDE comes with a ] called "]" from the original Wiring project, which makes many common input/output operations much easier. The users need only to define two functions to make an executable ] program:


In February 2019, Arduino announced its IoT Cloud service as an extension of the Create online environment.<ref>{{Cite web |date=2019-02-06 |title=Announcing the Arduino IoT Cloud Public Beta |url=https://blog.arduino.cc/2019/02/06/announcing-the-arduino-iot-cloud-public-beta/ |access-date=2020-06-23 |website=Arduino Blog |language=en}}</ref>
* <code>setup()</code>: a function run once at the start of a program that can initialize settings
* <code>loop()</code>: a function called repeatedly until the board powers off


As of February 2020, the Arduino community included about 30 million active users based on the IDE downloads.<ref>{{Cite web |last=Emilio |first=Maurizio Di Paolo |date=2020-02-04 |title=Open-source HW in the Modern Era: Interview of Arduino's CEO Fabio Violante |url=https://www.eetimes.eu/open-source-hardware-in-the-modern-era-interview-of-arduinos-ceo-fabio-violante/ |access-date=2020-06-23 |website=EE Times Europe |language=en-US}}</ref>
A typical first program for a microcontroller simply blinks an ] on and off. In the Arduino environment, the user might write a program like this:<ref name="Blink Tutorial"/>


==Hardware==
]
] board with no Arduino logo]]


Arduino is ]. The hardware reference designs are distributed under a ] 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.
<source lang="c">
#define LED_PIN 13


Although the hardware and software designs are freely available under ] licenses, the developers have requested the name ''Arduino'' to be ] 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.<ref name="AutoF7-44" /> Several Arduino-compatible products commercially released have avoided the project name by using various names ending in ''-duino''.<ref name="freeduino" />
void setup() {
pinMode(LED_PIN, OUTPUT); // Enable pin 13 for digital output
}


] ] interface (upper left) and an Atmel ATmega8 microcontroller chip (black, lower right); the 14 digital I/O pins are at the top, the 6 analog input pins at the lower right, and the power connector at the lower left.]]
void loop() {
digitalWrite(LED_PIN, HIGH); // Turn on the LED
delay(1000); // Wait one second (1000 milliseconds)
digitalWrite(LED_PIN, LOW); // Turn off the LED
delay(1000); // Wait one second
}
</source>


Most Arduino boards consist of an ] 8-bit ] (ATmega8,<ref>{{Cite news |title=Chip Hall of Fame: Atmel ATmega8 |language=en |work=IEEE Spectrum: Technology, Engineering, and Science News |url=https://spectrum.ieee.org/chip-hall-of-fame-atmel-atmega8 |access-date=2017-10-10}}</ref> ATmega168, ], ATmega1280, or ATmega2560) with varying amounts of flash memory, pins, and features.<ref>{{Cite web |title=Arduino - Products |url=https://www.arduino.cc/en/Main/Products |access-date=20 February 2018 |website=www.arduino.cc}}</ref> The 32-bit ], based on the Atmel ] was introduced in 2012.<ref>{{Cite magazine |title=Microcontroller Maniacs Rejoice: Arduino Finally Releases the 32-Bit Due |url=https://www.wired.com/2012/10/arduino-due/ |magazine=Wired |access-date=20 February 2018}}</ref> 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 ] ]. Most boards include a 5&nbsp;V ] and a 16&nbsp;MHz ] or ]. Some designs, such as the LilyPad,<ref>{{Cite journal |last1=Di Tore |first1=Stefano |last2=Todino |first2=Michele Domenic |last3=Plutino |first3=Antonia |year=2019 |title=Le wearable technologies e la metafora dei sei cappelli per pensare a supporto del seamless learning |journal=Professionalità |volume=4 |issue=II |pages=118–13|issn=0392-2790}}</ref> run at 8&nbsp;MHz and dispense with the onboard voltage regulator due to specific ] restrictions.
Most Arduino boards contain an LED and a load resistor connected between the pin 13 and ground, which is a convenient feature for many simple tests.<ref name="Blink Tutorial" /> The previous code would not be seen by a standard C++ compiler as a valid program, so when the user clicks the "Upload to I/O board" button in the IDE, a copy of the code is written to a temporary file with an extra include header at the top and a very simple ] at the bottom, to make it a valid C++ program.


Arduino microcontrollers are pre-programmed with a ] that simplifies the uploading of programs to the on-chip ]. The default bootloader of the Arduino Uno is the Optiboot bootloader.<ref>{{Cite web |title=Optiboot Bootloader for Arduino and Atmel AVR |url=https://github.com/Optiboot/optiboot |access-date=2015-10-01 |website=]}}</ref> Boards are loaded with program code via a serial connection to another computer. Some serial Arduino boards contain a ] circuit to convert between ] logic levels and ] (]) level signals. Current Arduino boards are programmed via ] (USB), implemented using USB-to-serial adapter chips such as the ] FT232. Some boards, such as later-model Uno boards, substitute the ] chip with a separate AVR chip containing USB-to-serial firmware, which is reprogrammable via its own ] header. Other variants, such as the Arduino Mini and the unofficial Boarduino, use a detachable USB-to-serial adapter board or cable, ] or other methods. When used with traditional microcontroller tools, instead of the Arduino IDE, standard AVR ] (ISP) programming is used.
The Arduino IDE uses the ] and AVR Libc to compile programs, and uses avrdude to upload programs to the board.


]
As the Arduino platform uses Atmel microcontrollers, Atmel's development environment, AVR Studio or the newer Atmel Studio, may also be used to develop software for the Arduino.<ref name="AutoF7-38"/><ref name="AutoF7-39"/>


The Arduino board exposes most of the microcontroller's I/O pins for use by other circuits. The ''Diecimila'',{{Efn|name="N10000"|''Diecimila'' means "ten thousand" in Italian}} ''Duemilanove'',{{Efn|name="N2009"|''Duemilanove'' means "two thousand and nine" in Italian}} and current ''Uno''{{Efn|name="N1"|''Uno'' means "one" in Italian}} provide 14 digital I/O pins, six of which can produce ] 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&nbsp;mm) headers. Several plug-in application shields are also commercially available. The Arduino Nano and Arduino-compatible Bare Bones Board<ref>{{Cite web |title=Bare Bones Board (BBB) Kit |url=http://moderndevice.com/product/bare-bones-board-bbb-kit/ |access-date=29 November 2018 |website=moderndevice.com |archive-date=30 July 2013 |archive-url=https://web.archive.org/web/20130730012610/http://moderndevice.com/product/bare-bones-board-bbb-kit/ |url-status=dead }}</ref> and Boarduino<ref>{{Cite web |title=DC Boarduino (Arduino compatible) Kit (w/ATmega328) - v1.0 |url=https://www.adafruit.com/products/72 |access-date=29 November 2018 |website=adafruit.com}}</ref> boards may provide male header pins on the underside of the board that can plug into solderless ]s.
== Development ==
Arduino is ]: the Arduino hardware reference designs are distributed under a ] Attribution Share-Alike 2.5 license and are available on the Arduino Web site. Layout and production files for some versions of the Arduino hardware are also available. The source code for the IDE is available and released under the ], version 2.<ref>{{cite web|title=The arduino source code|url=https://github.com/arduino/Arduino|work=The arduino source code}}</ref>


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,<ref>{{Cite journal |last1=Di Tore |first1=Stefano |last2=Todino |first2=Michele |last3=Sibilio |first3=Maurizio |date=2019-04-30 |title=Disuffo: Design, prototyping, and development of an open-source educational robot |url=https://oaj.fupress.net/index.php/formare/article/view/3792 |journal=Form@re - Open Journal per la Formazione in Rete |language=it |volume=19 |issue=1 |pages=106–116 |doi=10.13128/FORMARE-24446|s2cid=181368197 }}</ref> 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.
Although the hardware and software designs are freely available under ] licenses, the developers have requested that the name "Arduino" be ] and not be used for derivative 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.<ref name="AutoF7-44"/> Several Arduino-compatible products commercially released have avoided the "Arduino" name by using "-duino" name variants.<ref name="freeduino"/>


===Official boards===
== {{Anchor|GERTDUINO}}Applications ==
{{See also|List of open-source hardware projects}} {{Further|List of Arduino boards and compatible systems}}
The original Arduino hardware was manufactured by the Italian company Smart Projects.<ref name="smartprojects" /> Some Arduino-branded boards have been designed by the American companies ] and ].<ref>{{Cite book |last=Schmidt |first=Maik |url=http://worldcat.org/oclc/1328333803 |title=Arduino : a quick-start guide |isbn=1-68050-523-8 |page=201 |oclc=1328333803}}</ref> {{As of|2016}}, 17 versions of the Arduino hardware have been commercially produced.
* Xoscillo: open-source ]<ref name="AutoF7-40"/>
* Scientific equipment<ref name="AutoF7-41"/>
* ]: a ] device that mimics the ]
* ]: a ] that uses the ] interface found in most modern cars
* ]: drone software / hardware
* ArduinoPhone<ref>. Instructables.com (2013-07-17). Retrieved on 2013-08-04.</ref>
* ''GertDuino'', an Arduino mate for the ]<ref>. Introducing The GertDuino Add-on Board For Raspberry Pi. Retrieved on 2014-11-09.</ref>
* Water quality testing platform<ref>Bas Wijnen, G. C. Anzalone and Joshua M. Pearce, Open-source mobile water quality testing platform. Journal of Water, Sanitation and Hygiene for Development, 4(3) pp. 532–537 (2014). doi:10.2166/washdev.2014.137 </ref>


<gallery mode="packed">
== Reception ==
File:Arduino316.jpg|Arduino RS232<ref>{{Cite web |title=Arduino - ArduinoBoardSerial |url=https://www.arduino.cc/en/Main/ArduinoBoardSerial |access-date=20 February 2018 |website=www.arduino.cc}}</ref><br/>(male pins)
The Arduino project received an honorary mention in the Digital Communities category at the 2006 ].<ref name="AutoF7-45"/>
File:Arduino Diecimila 6.jpg|Arduino Diecimila<ref>{{Cite web |title=Arduino - ArduinoBoardDiecimila |url=https://www.arduino.cc/en/Main/ArduinoBoardDiecimila |access-date=20 February 2018 |website=www.arduino.cc}}</ref>
File:Arduino Duemilanove 2009b.jpg|Arduino Duemilanove<ref>{{Cite web |title=Arduino - ArduinoBoardDuemilanove |url=https://www.arduino.cc/en/Main/ArduinoBoardDuemilanove |access-date=20 February 2018 |website=www.arduino.cc}}</ref><br/>(rev 2009b)
File:Arduino UNO unpacked.jpg|]<ref>{{Cite web |title=Arduino Uno Rev3 |url=https://www.arduino.cc/en/Main/ArduinoBoardUno |access-date=20 February 2018 |website=www.arduino.cc}}</ref><ref>{{Cite web |last=Smith |first= W.A. |title=Differences Between the Arduino Uno Revision 2 and Revision 3 |url=https://startingelectronics.org/articles/arduino/uno-r3-r2-differences/ |access-date=20 February 2018 |website=startingelectronics.org}}</ref>
File:Arduino Uno - R3.jpg|]<ref>{{Cite web |title=Arduino - ArduinoBoardUnoSMD |url=https://www.arduino.cc/en/Main/ArduinoBoardUnoSMD |access-date=20 February 2018 |website=www.arduino.cc}}</ref>
File:Arduino Leonardo.jpg|Arduino Leonardo<ref>{{Cite web |title=Arduino Leonardo with Headers |url=https://www.arduino.cc/en/Main/ArduinoBoardLeonardo |access-date=20 February 2018 |website=www.arduino.cc}}</ref>
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<ref>{{Cite web |title=Arduino Pro |url=https://www.arduino.cc/en/Main/ArduinoBoardPro |access-date=20 February 2018 |website=www.arduino.cc}}</ref><br/>(No USB)
File:Arduino Mega.jpg|Arduino Mega<ref>{{Cite web |title=Arduino Mega official webpage (arduino.cc) |url=https://www.arduino.cc/en/Main/ArduinoBoardMega2560 |access-date=20 February 2018}}</ref>
File:Arduino Nano.jpg|]<ref>{{Cite web |title=Arduino Nano |url=https://www.arduino.cc/en/Main/ArduinoBoardNano |access-date=20 February 2018 |website=www.arduino.cc}}</ref><br/>(DIP-30 footprint)
File:LilyPad Arduino Main Board.JPG|Arduino LilyPad 00<ref>{{Cite web |title=LilyPad Arduino Main Board |url=https://www.arduino.cc/en/Main/ArduinoBoardLilyPad |access-date=20 February 2018 |website=www.arduino.cc}}</ref><br/>(rev 2007) (No USB)
File:Arduino Robot Top.jpg|Arduino Robot<ref>{{Cite web |title=Arduino Robot |url=https://www.arduino.cc/en/Main/Robot |access-date=20 February 2018 |website=www.arduino.cc}}</ref>
File:Arduino Esplora.jpg|Arduino Esplora<ref>{{Cite web |title=Arduino Esplora |url=https://www.arduino.cc/en/Main/ArduinoBoardEsplora |access-date=20 February 2018 |website=www.arduino.cc}}</ref>
File:Arduino Ethernet Board.jpg|Arduino Ethernet<ref>{{Cite web |title=Arduino Ethernet Rev3 without PoE |url=https://www.arduino.cc/en/Main/ArduinoBoardEthernet |access-date=20 February 2018 |website=www.arduino.cc}}</ref><br/>(AVR + W5100)
File:ArduinoYun.jpg|Arduino Yún<ref>{{Cite web |title=Arduino Yún |url=https://www.arduino.cc/en/Main/ArduinoBoardYun |access-date=20 February 2018 |website=www.arduino.cc}}</ref><br/>(AVR + AR9331)
File:ArduinoDue Front.jpg|Arduino Due<ref>{{Cite web |title=Arduino Due |url=https://www.arduino.cc/en/Main/ArduinoBoardDue |access-date=20 February 2018 |website=www.arduino.cc}}</ref><br/>(] core)
File:Arduino Giga R1 WiFi.png|Arduino GIGA R1 WiFi (Dual core ] + ] cores + Murata 1DX)
</gallery>


==Legal dispute== ===Shields===
Arduino and Arduino-compatible boards use printed circuit expansion boards called ''shields'', which plug into the normally supplied Arduino pin headers.<ref>{{Cite web |title=Arduino - ArduinoShields |url=https://www.arduino.cc/en/Main/ArduinoShields |access-date=2017-10-04 |website=www.arduino.cc |language=en}}</ref> Shields can provide motor controls for ] and other applications, ] (satellite navigation), Ethernet, ] (LCD), or breadboarding (]). Several shields can also be made ] (DIY).<ref name="AutoF7-35" /><ref name="AutoF7-36" /><ref>{{Cite web |last=Oxer |first=Jonathan |title=Arduino Shield list |url=http://shieldlist.org/ |access-date=5 Nov 2013}}</ref>
When the Arduino project started, the five co-founders created a company, Arduino LLC, that owned all trademarks associated with Arduino. The manufacture and sale of the boards was to be done by external companies, and Arduino LLC would get a royalty from them. In the founding bylaws of the company, it was specified that each of the five founders was to transfer ownership of the Arduino brand to the newly formed company.


<gallery mode="packed">
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 Gianluca and his company to bring the trademark under control of the original Arduino company were not successful, and in 2014 Smart Projects began refusing to pay royalties. Smart Projects appointed a new CEO, Mr. Musto, who renamed the company to Arduino SRL and created a website named arduino.org, copying the graphics and layout of the original Arduino.cc. This resulted in a rift in the Arduino development team, and although all Arduino boards are still available to consumers, and the designs are open source, the implications of this are uncertain.<ref>{{cite web|last1=Allan|first1=Alasdair|title=Arduino Wars: Group Splits, Competing Products Revealed?|url=http://makezine.com/2015/03/06/arduino-vs-arduino/|website=makezine.com|publisher=Maker Media, Inc.|accessdate=21 April 2015|date=6 March 2015}}</ref><ref>{{cite web|last1=Banzi|first1=Massimo|title=Massimo Banzi: Fighting for Arduino|url=http://makezine.com/2015/03/19/massimo-banzi-fighting-for-arduino/|website=makezine.com|publisher=Maker Media, Inc.|accessdate=21 April 2015|date=19 March 2015}}</ref><ref>{{cite web|last1=Williams|first1=Elliot|title=Arduino SRL to Distributors: “We’re the REAL Arduino”|url=http://hackaday.com/2015/03/28/arduino-srl-to-distributors-were-the-real-arduino/|website=Hackaday.com|publisher=Hackaday.com|accessdate=21 April 2015|date=28 March 2015}}</ref>
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 ] 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 ] (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 ], 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
</gallery>


==Software==
In May 2015, "Genuino" was created around the world as another trademark.<ref>{{cite web|url=http://makezine.com/2015/05/16/arduino-adafruit-manufacturing-genuino/|title=Arduino Announces New Brand, Genuino, Manufacturing Partnership with Adafruit - Make:|work=Make:|accessdate=17 May 2015}}</ref>
A program for Arduino hardware may be written in any ] with compilers that produce binary machine code for the target processor. Atmel provides a development environment for their 8-bit ] and 32-bit ] based microcontrollers: AVR Studio (older) and Atmel Studio (newer).<ref name="AutoF7-38" /><ref name="AutoF7-39" /><ref name="AutoF7-46" />


==See also== ===Legacy IDE===
{{Portal|Free software|Electronics}} {{Infobox software
| name = Arduino Legacy IDE
| screenshot = Arduino IDE - Blink.png
| caption = Screenshot of Arduino Legacy IDE showing ''Blink'' program
| developer = Arduino Software
| latest release version = 1.8.19
| latest release date = {{Start date and age|2021|12|21|df=y}}<ref>{{Cite web |title=Releases · arduino/Arduino · GitHub |website=] |url=https://github.com/arduino/Arduino/releases/ |access-date=12 November 2022}}</ref>
| operating system = ], ], ]
| platform = ], ], ]
| genre = ]
| programming language = ], ], ]
| license = ] or ] license
| website = {{URL|https://www.arduino.cc/en/software}}
}}


The Arduino ] (IDE) is a ] application (for ], ], and ]) that is based on '']'' which is written in ]. It uses the '']'' API as programming style and ]. It includes a code editor with features such as text cutting and pasting, searching and replacing text, automatic indenting, ], and ], 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 ], version 2.<ref>{{Cite web |date=August 27, 2020 |title=arduino/Arduino |url=https://github.com/arduino/Arduino |via=GitHub}}</ref>
* ] <!-- Please add to LIST article instead of Arduino article -->
* ]


The Arduino IDE supports the languages ] and ] using special rules of code structuring. The Arduino IDE supplies a ] from the ] 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 ] program with the ], also included with the IDE distribution. The Arduino IDE employs the program ''avrdude'' to convert the executable code into a text file in ] 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 ], ], ], ] can be coded using Arduino IDE.<ref>{{Cite web |date=May 8, 2024 |title=Unofficial list of 3rd party boards support urls |website=] |url=https://github.com/arduino/Arduino/Unofficial-list-of-3rd-party-boards-support-urls/}}</ref>
==Notes==
{{Notelist}}


== References == ===IDE 2.0===
{{Infobox software
{{Reflist|30em|refs=
| name = Arduino IDE
| developer = Arduino Software
| latest release version = 2.3.2
| latest release date = {{Start date and age|2024|02|20|df=y}}<ref>{{Cite web |title=Releases · arduino/arduino-ide · GitHub |website=] |url=https://github.com/arduino/arduino-ide/releases/tag/2.3.2 |access-date=20 February 2024}}</ref>
| operating system = ], ], ]
| platform = ]
| genre = ]
| programming language = ], ], ]
| license = ] v3.0
| website = {{URL|https://www.arduino.cc/en/software}}
}}


An initial alpha preview of a new Arduino IDE was released on October 18, 2019, as the 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.<ref>{{Cite web |date=14 September 2022 |title=It's here: please welcome Arduino IDE 2.0 |url=https://blog.arduino.cc/2022/09/14/its-here-please-welcome-arduino-ide-2-0/ |access-date=12 November 2022}}</ref>
<ref name="smartprojects">{{cite web|url=http://smartprj.com/|title=Redirect...|work=smartprj.com}}</ref>


The system still uses Arduino CLI (Command Line Interface), but improvements include a more professional development environment and autocompletion support.<ref>{{Cite web |last=Williams |first=Al |date=21 October 2019 |title=The Arduino IDE Finally Grows Up |url=https://hackaday.com/2019/10/21/the-arduino-ide-finally-grows-up/ |access-date=26 October 2019 |website=Hackaday}}</ref> The application frontend is based on the ] Open Source IDE. Its main new features are:<ref>{{Cite web |last4=Faris |first4=Salmon |date=21 October 2019 |title=Introducing new Arduino Pro IDE with advanced features |url=https://www.seeedstudio.com/blog/2019/10/21/introducing-new-arduino-pro-ide-with-advanced-features/ |access-date=26 October 2019 |website=Seed Studio}}</ref>
<ref name="AutoF7-35">{{cite web|url=http://todbot.com/blog/2006/07/11/arduino-breadboard-shield/|title=Arduino breadboard shield: $10 & 10 mins|work=todbot blog}}</ref>
* 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.<ref>{{Cite web |date=12 September 2024|title=Debugging Fundamentals|url=https://docs.arduino.cc/learn/microcontrollers/debugging/ |access-date=26 September 2024 |website=Arduino}}</ref> It allows users to single-step, insert breakpoints or view memory. Debugging requires a target chip with ] 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.
<ref name="AutoF7-36">{{cite web|url=http://www.tigoe.net/pcomp/code/arduinowiring/26|title=Arduino Shields for Prototyping|work=tigoe.net}}</ref>


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 <ref>{{Cite web | date=9 September 2023 |title=Arduino Board Package to Debug Uno/ATmega328P with CH552 debugger in Arduino IDE 2.0.0 |url=https://github.com/DeqingSun/unoDebugTestPackage |access-date=26 September 2024 |website=Github}}</ref> or CH32 RiscV Boards,<ref>{{Cite web | date=28 February 2023 |title=add debug feature.|url=https://github.com/openwch/arduino_core_ch32/commit/959844e9eba655169430bf6686b2ba055823d1cd |access-date=26 September 2024 |website=Github}}</ref> etc.
<ref name="AutoF7-37">{{cite web | url = http://arduino.cc/en/Main/ReleaseNotes | title = Arduino Software Release Notes | publisher = Arduino Project | accessdate = May 31, 2013 }}</ref>


===Sketch===
<ref name="Blink Tutorial">. Arduino.cc.</ref>
A ''sketch'' is a program written with the Arduino IDE.<ref>{{Cite book |title=Programming Arduino Getting Started with Sketches |date=Nov 8, 2011 |publisher=] |isbn=978-0071784221}}</ref> 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:<ref>{{Cite web |title=Arduino - BareMinimum |url=https://www.arduino.cc/en/Tutorial/BareMinimum |access-date=20 February 2018 |website=www.arduino.cc}}</ref>
<ref name="AutoF7-38">{{cite web | url = http://www.megunolink.com/Building_an_Arduino_project_with_MegunoLink_and_Atmel_Studio_(Blink_Tutorial) | title = Using Atmel Studio for Arduino development | publisher = Megunolink.com | date = | accessdate = 2013-01-18 }}</ref>
* {{code|setup()}}: 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 {{code|main()}}.<ref>{{Cite web |title=setup() - Arduino Reference |url=https://www.arduino.cc/reference/en/language/structure/sketch/setup/ |website=www.arduino.cc}}</ref>
* {{code|loop()}}: After {{code|setup()}} function exits (ends), the {{code|loop()}} 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 {{code|while(1)}}.<ref>{{Cite web |title=loop() - Arduino Reference |url=https://www.arduino.cc/reference/en/language/structure/sketch/loop/ |website=www.arduino.cc}}</ref>


;Blink example
<ref name="AutoF7-39">{{cite web | url = http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/ | title = Using AVR Studio for Arduino development | publisher = Engblaze.com | date = | accessdate = 2013-01-18 }}</ref>
]
Most Arduino boards contain a ] (LED) and a current-limiting resistor connected between pin 13 and ground, which is a convenient feature for many tests and program functions.<ref name="Blink Tutorial" /> A typical program used by beginners, akin to ], is "blink", which repeatedly blinks the on-board LED integrated into the Arduino board. This program uses the functions {{code|pinMode()}}, {{code|digitalWrite()}}, and {{code|delay()}}, which are provided by the internal libraries included in the IDE environment.<ref>{{Cite web |title=pinMode() - Arduino Reference |url=https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/ |website=www.arduino.cc}}</ref><ref>{{Cite web |title=digitalWrite() - Arduino Reference |url=https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/ |website=www.arduino.cc}}</ref><ref>{{Cite web |title=delay() - Arduino Reference |url=https://www.arduino.cc/reference/en/language/functions/time/delay/ |website=www.arduino.cc}}</ref> This program is usually loaded into a new Arduino board by the manufacturer.


<syntaxhighlight lang="arduino" style="font-size:10pt;">
<ref name="AutoF7-40">{{cite web | url = https://code.google.com/p/xoscillo/ | title = xoscillo&nbsp;– A software oscilloscope that acquires data using an arduino or a parallax (more platforms to come). – Google Project Hosting | publisher = Code.google.com | date = | accessdate = 2013-01-18 }}</ref>
const int LED_PIN = 13; // Pin number attached to LED.


void setup() {
<ref name="AutoF7-41"> </ref>
pinMode(LED_PIN, OUTPUT); // Configure pin 13 to be a digital output.
}


void loop() {
<ref name="AutoF7-44">{{cite web | url = http://arduino.cc/en/Main/Policy | title = Policy | publisher = Arduino.cc | date = | accessdate = 2013-01-18 }}</ref>
digitalWrite(LED_PIN, HIGH); // Turn on the LED.
<ref name=freeduino>{{cite web | url = http://www.freeduino.org/freeduino_open_designs.html | title = Freeduino Open Designs | publisher = Freeduino.org | accessdate = 2008-03-03 }}</ref>
delay(1000); // Wait 1 second (1000 milliseconds).
digitalWrite(LED_PIN, LOW); // Turn off the LED.
delay(1000); // Wait 1 second.
}
</syntaxhighlight>


===Libraries===
<ref name="AutoF7-45">{{cite web | title = Ars Electronica Archiv | url = http://archive.aec.at/prix/#8052 | accessdate = 2015-03-27 }}</ref>
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 ] OS port for the ATmega328P (Arduino Uno and others with the same chip), which includes most of the basic features.<ref>{{Cite web |title=xinu-avr: The Xinu OS for AVR ATmega328P |url=http://se.fi.uncoma.edu.ar/xinu-avr/ |website=se.fi.uncoma.edu.ar}}</ref> The source code of this version is freely available.<ref>{{Cite web |date=October 9, 2022 |title=xinu-arduino |url=https://github.com/real-xinu/xinu-arduino |via=GitHub}}</ref>

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.<ref>{{Cite conference |last1=Dunkels |first1=A. |last2=Schmidt |first2=O. |last3=Voigt |first3=T. |year=2005 |title=Using Protothreads for Sensor Node Programming |url=http://urn.kb.se/resolve?urn=urn:nbn:se:mdh:diva-4058 |work=Proceedings of the REALWSN 2005 Workshop on Real-World Wireless Sensor Networks Presented at the REALWSN 2005 Workshop on Real-World Wireless Sensor Networks}}</ref>

There is a port of FreeRTOS for the Arduino.<ref>{{Cite web |title=FreeRTOS for Arduino |url=https://www.arduino.cc/reference/en/libraries/freertos/ |website=www.arduino.cc}}</ref> This is available from the Arduino Library Manager. It is compatible with a number of boards, including the Uno.

==Applications==
* ], a ] based on Arduino
* ], a ] device that mimics the ]
* ], drone software and hardware
* ], a cubesat based on Arduino
* ], a platform for hands-on integrated learning of computing, science, technology, engineering, and mathematics (C-STEM) with robotics
* Data loggers for scientific research<ref>{{Cite journal |last1=Beddows |first1=Patricia A. |last2=Mallon |first2=Edward K. |date=2018-02-09 |title=Cave Pearl Data Logger: A Flexible Arduino-Based Logging Platform for Long-Term Monitoring in Harsh Environments |journal=Sensors |language=en |volume=18 |issue=2 |pages=530 |bibcode=2018Senso..18..530B |doi=10.3390/s18020530 |pmc=5856100 |pmid=29425185 |doi-access=free}}</ref><ref>{{Cite journal |last1=Ali |first1=Akram Syed |last2=Zanzinger |first2=Zachary |last3=Debose |first3=Deion |last4=Stephens |first4=Brent |date=2016-05-01 |title=Open Source Building Science Sensors (OSBSS): A low-cost Arduino-based platform for long-term indoor environmental data collection |journal=Building and Environment |language=en |volume=100 |pages=114–126 |doi=10.1016/j.buildenv.2016.02.010 |issn=0360-1323 |doi-access=free|bibcode=2016BuEnv.100..114A }}</ref><ref>{{Cite journal |last1=Bardaji |first1=Raul |last2=Sánchez |first2=Albert-Miquel |last3=Simon |first3=Carine |last4=Wernand |first4=Marcel R. |last5=Piera |first5=Jaume |date=2016-03-15 |title=Estimating the Underwater Diffuse Attenuation Coefficient with a Low-Cost Instrument: The KdUINO DIY Buoy |journal=Sensors |language=en |volume=16 |issue=3 |pages=373 |bibcode=2016Senso..16..373B |doi=10.3390/s16030373 |pmc=4813948 |pmid=26999132 |doi-access=free}}</ref><ref>{{Cite journal |last1=Lockridge |first1=Grant |last2=Dzwonkowski |first2=Brian |last3=Nelson |first3=Reid |last4=Powers |first4=Sean |date=2016-04-13 |title=Development of a Low-Cost Arduino-Based Sonde for Coastal Applications |journal=Sensors |language=en |volume=16 |issue=4 |pages=528 |bibcode=2016Senso..16..528L |doi=10.3390/s16040528 |pmc=4851042 |pmid=27089337 |doi-access=free}}</ref>
* ], a ] that uses the ] interface found in most modern cars
* ] an open-source electric vehicle charger
* ], a visual programming language for Arduino

==Simulation==
* ], 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 ].<ref name="AutoF7-45" />

The Arduino Engineering Kit won the Bett Award for "Higher Education or Further Education Digital Services" in 2020.<ref>{{Cite web |date=2020-01-20 |title=Arduino Education nominated for Bett Award |url=https://blog.arduino.cc/2020/01/20/arduino-education-nominated-in-bett-awards-2020/ |access-date=2020-07-01 |website=Arduino Blog |language=en}}</ref>

==See also==
{{Portal|Free and open-source software|Electronics}}
* ]
* ]

== Explanatory notes ==
{{Notelist}}


==References==
{{Reflist|refs=
<ref name="smartprojects">{{Cite web |title=Redirect... |url=http://smartprj.com/ |url-status=dead |archive-url=https://web.archive.org/web/20160305001726/http://www.smartprj.com/ |archive-date=2016-03-05 |access-date=2011-05-03 |website=smartprj.com}}</ref>
<ref name="AutoF7-35">{{Cite web |title=Arduino breadboard shield: $10 & 10 mins |url=http://todbot.com/blog/2006/07/11/arduino-breadboard-shield/ |website=todbot blog|date=11 July 2006 }}</ref>
<ref name="AutoF7-36">{{Cite web |title=Arduino Shields for Prototyping |url=http://www.tigoe.net/pcomp/code/arduinowiring/26 |website=tigoe.net |access-date=2011-09-16 |archive-date=2017-07-02 |archive-url=https://web.archive.org/web/20170702144039/http://www.tigoe.net/pcomp/code/arduinowiring/26/ |url-status=dead }}</ref>
<ref name="Blink Tutorial">{{Cite web |title=Blink Tutorial |url=https://www.arduino.cc/en/Tutorial/Blink |website=Arduino.cc}}</ref>
<ref name="AutoF7-38">{{Cite web |title=Using Atmel Studio for Arduino development |url=http://www.megunolink.com/Building_an_Arduino_project_with_MegunoLink_and_Atmel_Studio_(Blink_Tutorial) |url-status=dead |archive-url=https://archive.today/20130128115914/http://www.megunolink.com/Building_an_Arduino_project_with_MegunoLink_and_Atmel_Studio_(Blink_Tutorial) |archive-date=2013-01-28 |access-date=2013-01-18 |publisher=Megunolink.com}}</ref>
<ref name="AutoF7-39">{{Cite web |title=Using AVR Studio for Arduino development |url=http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/ |access-date=2013-01-18 |publisher=Engblaze.com |archive-date=2012-08-28 |archive-url=https://web.archive.org/web/20120828135304/http://www.engblaze.com/tutorial-using-avr-studio-5-with-arduino-projects/ |url-status=dead }}</ref>
<ref name="AutoF7-44">{{Cite web |title=Policy |url=https://www.arduino.cc/en/Main/Policy |access-date=2013-01-18 |publisher=Arduino.cc}}</ref>
<ref name="freeduino">{{Cite web |title=Freeduino Open Designs |url=http://www.freeduino.org/freeduino_open_designs.html |url-status=dead |archive-url=https://web.archive.org/web/20080410220309/http://www.freeduino.org/freeduino_open_designs.html |archive-date=2008-04-10 |access-date=2008-03-03 |publisher=Freeduino.org}}</ref>
<ref name="AutoF7-45">{{Cite web |title=Ars Electronica Archiv |url=http://archive.aec.at/prix/#8052 |url-status=dead |archive-url=https://web.archive.org/web/20190630155735/http://archive.aec.at/prix/#8052 |archive-date=2019-06-30 |access-date=2015-03-27}}</ref>
<ref name="AutoF7-46">{{Cite web |title=Ch Arduino |url=http://c-stem.ucdavis.edu/studio/charduino/ |access-date=2016-10-07}}</ref>
}} }}


==Further reading== ==Further reading==
* {{Cite book |first1=Massimo |last1=Banzi |first2=Michael |last2=Shiloh |title=Make: Getting Started With Arduino: The Open Source Electronics Prototyping Platform |edition=4th |publisher=Make Community |year=2022 |isbn=978-1680456936}}
* ''Getting Started with Arduino''; Massimo Banzi, Michael Shiloh; 262 pages; 2014; ISBN 1-4493-6333-4.
* {{Cite book |first=Jeremy |last=Blum |title=Exploring Arduino: Tools and Techniques for Engineering Wizardry |edition=2nd |publisher=] |year=2019 |isbn=978-1119405375}}
* ''Arduino For Dummies''; John Nussey; 446 pages; 2013; ISBN 978-1118446379.
* {{Cite book |first=John |last=Boxall |title=Arduino Workshop: A Hands-On Introduction with 65 Projects |edition=2nd |publisher=] |year=2021 |isbn=978-1718500587}}
* ''Programming Arduino Next Steps: Going Further with Sketches''; Simon Monk; 2013; ISBN 978-0071830256.
* {{Cite book |first1=Tero |last1=Karvinen |first2=Kimmo |last2=Karvinen |first3=Ville |last3=Valtokari |title=Make: Sensors |edition=1st |publisher=Make Community |year=2014 |isbn=978-1449368104}}
* ''Exploring Arduino: Tools and Techniques for Engineering Wizardry''; Jeremy Blum; 384 pages; 2013; ISBN 978-1118549360.
* {{Cite book |first=Simon |last=Monk |title=Programming Arduino Next Steps: Going Further with Sketches |edition=2nd |publisher=] |year=2018 |isbn=978-1260143249}}
* ''Arduino Workshop: A Hands-On Introduction with 65 Projects''; John Boxall; 392 pages; 2013; ISBN 978-1593274481.
* {{Cite book |first=Simon |last=Monk |title=Programming Arduino: Getting Started with Sketches |edition=3rd |publisher=McGraw-Hill Education |year=2022 |isbn=978-1264676989}}
* ''Beginning C for Arduino: Learn C Programming for the Arduino and Compatible Microcontrollers''; Jack Purdum; 280 pages; 2012; ISBN 978-1430247760.
* {{Cite book |first=John |last=Nussey |title=Arduino For Dummies |edition=2nd |publisher=John Wiley & Sons |year=2018 |isbn=978-1119489542}}
* ''Programming Arduino: Getting Started With Sketches''; Monk Simon; 162 pages; 2011; ISBN 978-0071784221.
* {{Cite book |first=Jack |last=Purdum |title=Beginning C for Arduino: Learn C Programming for the Arduino |edition=2nd |publisher=] |year=2015 |isbn=978-1484209417}}
* ''Make: Electronics (Learning by Discovery)''; Charles Platt; 352 pages; 2009; ISBN 978-0596153748.
* {{Cite book |first=Maik |last=Schmidt |title=Arduino: A Quick Start Guide |edition=2nd |publisher=] |year=2015 |isbn=978-1941222249}}


== External links == ==External links==
{{Commons category}} {{Commons category|Arduino}}
* {{Official website|https://www.arduino.cc}}
<!-- See ] before mass deletion of or additions to these links -->
* , a ] talk by creator Massimo Banzi
* {{Official website|http://arduino.org/}}
* {{IMDb title|1869268|Arduino The Documentary}},
*, Wired Magazine (Italian with English subtitles)
*
*
*
*
* Arduino Board Pinout Diagrams: , , , , , , ,
* *
*
<!-- See ] before mass deletion of these links -->
*
* {{Triangulation|110|Massimo Banzi}}
*
* {{FLOSSweekly|61|Massimo Banzi}}
* Arduino Board Pinout Diagrams: , , , , , , , , ,
*

* ; Federal district court docket from the United States Courts Archive
; Historical
* Arduino – The Documentary (2010): ,
* Massimo Banzi interviews: ,
* – Hernando Barragán
* – United States Courts Archive
<!-- See ] before mass deletion of these links -->


{{Single-board computer}} {{Single-board computer}}
{{Microcontrollers}} {{Microcontrollers}}
{{Ambient intelligence}} {{Ambient intelligence}}
{{Authority control}}


] ]
]
] ]
] ]
]
] ]
]
]
]
]
]
]

Latest revision as of 07:05, 8 January 2025

Italian open-source hardware and software company "LilyPad" redirects here. For other uses, see Lily pad (disambiguation). For other uses, see Arduino (disambiguation).
Arduino
Arduino Uno SMD R3
ManufacturerArduino
TypeSingle-board microcontroller
Operating systemNone, with bootloader (default)
Xinu
FreeRTOS
CPU
MemorySRAM
StorageFlash, EEPROM
Websitearduino.cc

Arduino (/ɑːrˈdwiːnoʊ/) is an Italian open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller 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 (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.

Arduino board designs use a variety of microprocessors and controllers. The boards are equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards ('shields') or breadboards (for prototyping) and other circuits. The boards feature serial communications interfaces, including Universal Serial Bus (USB) on some models, which are also used for loading programs. The microcontrollers can be programmed using the C and C++ programming languages (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 toolchains, the Arduino project provides an integrated development environment (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, Italy, aiming to provide a low-cost and easy way for novices and professionals to create devices that interact with their environment using sensors and actuators. Common examples of such devices intended for beginner hobbyists include simple robots, thermostats, and motion detectors.

The name Arduino comes from a café in Ivrea, Italy, where some of the project's founders used to meet. The bar was named after Arduin of Ivrea, who was the margrave of the March of Ivrea and King of Italy from 1002 to 1014.

History

Founding

The first prototype

The Arduino project was started at the Interaction Design Institute Ivrea (IDII) in Ivrea, Italy. At that time, the students used a BASIC Stamp microcontroller at a cost of $50. In 2004, Hernando Barragán created the development platform Wiring as a Master's thesis project at IDII, under the supervision of Massimo Banzi and Casey Reas. 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 (PCB) with an ATmega128 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 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 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 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). The announcement said, in part, "ARM recognized independence as a core value of Arduino ... without any lock-in with the ARM architecture". 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-compatible R3 Uno board with no Arduino logo

Arduino is open-source hardware. The hardware reference designs are distributed under a Creative Commons 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 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.

An early Arduino board with an RS-232 serial interface (upper left) and an Atmel ATmega8 microcontroller chip (black, lower right); the 14 digital I/O pins are at the top, the 6 analog input pins at the lower right, and the power connector at the lower left.

Most Arduino boards consist of an Atmel 8-bit AVR microcontroller (ATmega8, ATmega168, ATmega328, ATmega1280, or ATmega2560) with varying amounts of flash memory, pins, and features. The 32-bit Arduino Due, 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 serial bus. Most boards include a 5 V linear regulator and a 16 MHz crystal oscillator or ceramic resonator. 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 that simplifies the uploading of programs to the on-chip flash memory. 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 circuit to convert between RS-232 logic levels and transistor–transistor logic (TTL serial) level signals. Current Arduino boards are programmed via Universal Serial Bus (USB), implemented using USB-to-serial adapter chips such as the FTDI FT232. Some boards, such as later-model Uno boards, substitute the FTDI 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 or other methods. When used with traditional microcontroller tools, instead of the Arduino IDE, standard AVR in-system programming (ISP) programming is used.

An official Arduino Uno R2 with descriptions of the I/O locations

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 breadboards.

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.

Official boards

Further information: List of Arduino boards and compatible systems

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 and Adafruit Industries. As of 2016, 17 versions of the Arduino hardware have been commercially produced.

  • Arduino RS232 (male pins) Arduino RS232
    (male pins)
  • Arduino Diecimila Arduino Diecimila
  • Arduino Duemilanove (rev 2009b) Arduino Duemilanove
    (rev 2009b)
  • Arduino Uno R2 Arduino Uno R2
  • Arduino Uno SMD R3 Arduino Uno SMD R3
  • Arduino Leonardo Arduino Leonardo
  • Arduino Micro (ATmega32U4) Arduino Micro (ATmega32U4)
  • Arduino Pro Micro (ATmega32U4) Arduino Pro Micro (ATmega32U4)
  • Arduino Pro (No USB) Arduino Pro
    (No USB)
  • Arduino Mega Arduino Mega
  • Arduino Nano (DIP-30 footprint) Arduino Nano
    (DIP-30 footprint)
  • Arduino LilyPad 00 (rev 2007) (No USB) Arduino LilyPad 00
    (rev 2007) (No USB)
  • Arduino Robot Arduino Robot
  • Arduino Esplora Arduino Esplora
  • Arduino Ethernet (AVR + W5100) Arduino Ethernet
    (AVR + W5100)
  • Arduino Yún (AVR + AR9331) Arduino Yún
    (AVR + AR9331)
  • Arduino Due (ARM Cortex-M3 core) Arduino Due
    (ARM Cortex-M3 core)
  • Arduino GIGA R1 WiFi (Dual core ARM Cortex-M7 + ARM Cortex-M4 cores + Murata 1DX) Arduino GIGA R1 WiFi (Dual core ARM Cortex-M7 + ARM Cortex-M4 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 and other applications, GNSS (satellite navigation), Ethernet, liquid crystal display (LCD), or breadboarding (prototyping). Several shields can also be made do it yourself (DIY).

  • 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 motor shield V2s. 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 motor shield V2s.
  • Screw-terminal breakout shield in a wing-type format, allowing bare-end wires to be connected to the board without requiring any specialized pins Screw-terminal breakout shield in a wing-type format, allowing bare-end wires to be connected to the board without requiring any specialized pins
  • Adafruit Datalogging Shield with a Secure Digital (SD) card slot and real-time clock (RTC) chip along with some space for adding components and modules for customization Adafruit Datalogging Shield with a Secure Digital (SD) card slot and real-time clock (RTC) chip along with some space for adding components and modules for customization
  • Adafruit Motor Shield with screw terminals for connection to motors. Officially discontinued, this shield may still be available through unofficial channels. Adafruit Motor Shield with screw terminals for connection to motors. Officially discontinued, this shield may still be available through unofficial channels.
  • The Adafruit Motor Shield V2 uses I2C, requiring vastly fewer digital I/O pins than attaching each motor directly. The Adafruit Motor Shield V2 uses IC, requiring vastly fewer digital I/O pins than attaching each motor directly.
  • A USB host shield which allows an Arduino board to communicate with a USB device such as a keyboard or a mouse 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 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 based microcontrollers: AVR Studio (older) and Atmel Studio (newer).

Legacy IDE

Arduino Legacy IDE
Screenshot of Arduino Legacy IDE showing Blink program
Developer(s)Arduino Software
Stable release1.8.19 / 21 December 2021; 3 years ago (2021-12-21)
Written inJava, C, C++
Operating systemMicrosoft Windows, macOS, Linux
PlatformIA-32, x86-64, ARM
TypeIntegrated development environment
LicenseLGPL or GPL license
Websitewww.arduino.cc/en/software

The Arduino integrated development environment (IDE) is a cross-platform application (for Microsoft Windows, macOS, and Linux) that is based on Processing IDE which is written in Java. It uses the Wiring API as programming style and HAL. It includes a code editor with features such as text cutting and pasting, searching and replacing text, automatic indenting, brace matching, and syntax highlighting, 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, version 2.

The Arduino IDE supports the languages C and C++ using special rules of code structuring. The Arduino IDE supplies a software library from the Wiring 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 program with the GNU toolchain, also included with the IDE distribution. The Arduino IDE employs the program avrdude to convert the executable code into a text file in hexadecimal 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, STM32, TI MSP430, ESP32 can be coded using Arduino IDE.

IDE 2.0

Arduino IDE
Developer(s)Arduino Software
Stable release2.3.2 / 20 February 2024; 10 months ago (2024-02-20)
Written inTypeScript, JavaScript, Go
Operating systemMicrosoft Windows, macOS, Linux
Platformx86-64
TypeIntegrated development environment
LicenseGNU Affero General Public License v3.0
Websitewww.arduino.cc/en/software

An initial alpha preview of a new Arduino IDE was released on October 18, 2019, as the 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 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 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 RiscV 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:

  • setup(): 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 main().
  • loop(): After setup() function exits (ends), the loop() 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 while(1).
Blink example
Power LED and Integrated LED on Arduino Compatible Board
Power LED (red) and User LED (green) attached to pin 13 on an Arduino-compatible board

Most Arduino boards contain a light-emitting diode (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 pinMode(), digitalWrite(), and delay(), 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() {
    pinMode(LED_PIN, OUTPUT);       // Configure pin 13 to be a digital output.
}
void loop() {
    digitalWrite(LED_PIN, HIGH);    // Turn on the LED.
    delay(1000);                    // Wait 1 second (1000 milliseconds).
    digitalWrite(LED_PIN, LOW);     // Turn off the LED.
    delay(1000);                    // Wait 1 second.
}

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 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 for the Arduino. This is available from the Arduino Library Manager. It is compatible with a number of boards, including the Uno.

Applications

Simulation

  • Tinkercad, 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 Arduino Engineering Kit won the Bett Award for "Higher Education or Further Education Digital Services" in 2020.

See also

Explanatory notes

  1. Diecimila means "ten thousand" in Italian
  2. Duemilanove means "two thousand and nine" in Italian
  3. Uno means "one" in Italian

References

  1. "Getting Started: FOUNDATION > Introduction". arduino.cc. Archived from the original on 2017-08-29. Retrieved 2017-05-23.
  2. "Arduino - Home". www.arduino.cc. Retrieved 2022-10-27.
  3. ^ Kushner, David (2011-10-26). "The Making of Arduino". IEEE Spectrum.
  4. Lahart, Justin (27 November 2009). "Taking an Open-Source Approach to Hardware". The Wall Street Journal. Retrieved 2014-09-07.
  5. ^ Barragán, Hernando (2016-01-01). "The Untold History of Arduino". arduinohistory.github.io. Retrieved 2016-03-06.
  6. "How many Arduinos are "in the wild?" About 300,000". Adafruit Industries. May 15, 2011. Retrieved 2013-05-26.
  7. "Arduino FAQ – With David Cuartielles". Malmö University. April 5, 2013. Archived from the original on 2017-09-06. Retrieved 2014-03-24.
  8. "Business Entity Summary for Arduino LLC". Mass.gov. State of Massachusetts.
  9. Allan, Alasdair (6 March 2015). "Arduino Wars: Group Splits, Competing Products Revealed?". makezine.com. Maker Media, Inc. Retrieved 21 April 2015.
  10. Banzi, Massimo (19 March 2015). "Massimo Banzi: Fighting for Arduino". makezine.com. Maker Media, Inc. Retrieved 21 April 2015.
  11. Williams, Elliot (28 March 2015). "Arduino SRL to Distributors: "We're the Real Arduino"". Hackaday.com. Retrieved 21 April 2015.
  12. "Arduino LLC vs Arduino SRL lawsuit; United States Courts Archive". Archived from the original on 2017-07-09. Retrieved 20 February 2018.
  13. "Arduino Announces New Brand, Genuino, Manufacturing Partnership with Adafruit". Make. 16 May 2015. Retrieved 17 May 2015.
  14. "Arduino Blog – Two Arduinos become one". Arduino Blog. October 2016. Retrieved 2016-10-02.
  15. "Free Arduino | Make". Make: DIY Projects and Ideas for Makers. 2017-06-09. Retrieved 2017-12-22.
  16. "The Arduino Foundation: What's Up?". Hackaday. 2017-06-19. Retrieved 2017-12-22.
  17. "A New Era for Arduino: Original Arduino Founders Finally Get 100% Control". audioXpress. 2024-04-10. Retrieved 2024-05-10.
  18. "Arduino's New CEO, Federico Musto, May Have Fabricated His Academic Record". WIRED. Retrieved 2017-12-22.
  19. Biggs, John. "CEO controversy mars Arduino's open future". TechCrunch. Retrieved 2017-12-22.
  20. "Arduino Blog – A new era for Arduino begins today". Arduino Blog. 28 July 2017. Retrieved 19 Jan 2018.
  21. Davis, Tom (31 July 2017). "BCMI Acquires Arduino AG and Makers Breathe a Sigh of Relief". techwombat.com. Retrieved 29 November 2018.
  22. "Arduino reborn partners with ARM". Electronics Weekly. 2017-10-06. Retrieved 2017-11-03.
  23. "Announcing the Arduino Command Line Interface (CLI)". Arduino Blog. 2018-08-24. Retrieved 2020-06-23.
  24. "Announcing the Arduino IoT Cloud Public Beta". Arduino Blog. 2019-02-06. Retrieved 2020-06-23.
  25. Emilio, Maurizio Di Paolo (2020-02-04). "Open-source HW in the Modern Era: Interview of Arduino's CEO Fabio Violante". EE Times Europe. Retrieved 2020-06-23.
  26. "Policy". Arduino.cc. Retrieved 2013-01-18.
  27. "Freeduino Open Designs". Freeduino.org. Archived from the original on 2008-04-10. Retrieved 2008-03-03.
  28. "Hardware Index". Arduino Project. Retrieved 2013-12-10.
  29. "Chip Hall of Fame: Atmel ATmega8". IEEE Spectrum: Technology, Engineering, and Science News. Retrieved 2017-10-10.
  30. "Arduino - Products". www.arduino.cc. Retrieved 20 February 2018.
  31. "Microcontroller Maniacs Rejoice: Arduino Finally Releases the 32-Bit Due". Wired. Retrieved 20 February 2018.
  32. Di Tore, Stefano; Todino, Michele Domenic; Plutino, Antonia (2019). "Le wearable technologies e la metafora dei sei cappelli per pensare a supporto del seamless learning". Professionalità. 4 (II): 118–13. ISSN 0392-2790.
  33. "Optiboot Bootloader for Arduino and Atmel AVR". GitHub. Retrieved 2015-10-01.
  34. "Bare Bones Board (BBB) Kit". moderndevice.com. Archived from the original on 30 July 2013. Retrieved 29 November 2018.
  35. "DC Boarduino (Arduino compatible) Kit (w/ATmega328) - v1.0". adafruit.com. Retrieved 29 November 2018.
  36. Di Tore, Stefano; Todino, Michele; Sibilio, Maurizio (2019-04-30). "Disuffo: Design, prototyping, and development of an open-source educational robot". Form@re - Open Journal per la Formazione in Rete (in Italian). 19 (1): 106–116. doi:10.13128/FORMARE-24446. S2CID 181368197.
  37. "Redirect..." smartprj.com. Archived from the original on 2016-03-05. Retrieved 2011-05-03.
  38. Schmidt, Maik. Arduino : a quick-start guide. p. 201. ISBN 1-68050-523-8. OCLC 1328333803.
  39. "Arduino - ArduinoBoardSerial". www.arduino.cc. Retrieved 20 February 2018.
  40. "Arduino - ArduinoBoardDiecimila". www.arduino.cc. Retrieved 20 February 2018.
  41. "Arduino - ArduinoBoardDuemilanove". www.arduino.cc. Retrieved 20 February 2018.
  42. "Arduino Uno Rev3". www.arduino.cc. Retrieved 20 February 2018.
  43. Smith, W.A. "Differences Between the Arduino Uno Revision 2 and Revision 3". startingelectronics.org. Retrieved 20 February 2018.
  44. "Arduino - ArduinoBoardUnoSMD". www.arduino.cc. Retrieved 20 February 2018.
  45. "Arduino Leonardo with Headers". www.arduino.cc. Retrieved 20 February 2018.
  46. "Arduino Pro". www.arduino.cc. Retrieved 20 February 2018.
  47. "Arduino Mega official webpage (arduino.cc)". Retrieved 20 February 2018.
  48. "Arduino Nano". www.arduino.cc. Retrieved 20 February 2018.
  49. "LilyPad Arduino Main Board". www.arduino.cc. Retrieved 20 February 2018.
  50. "Arduino Robot". www.arduino.cc. Retrieved 20 February 2018.
  51. "Arduino Esplora". www.arduino.cc. Retrieved 20 February 2018.
  52. "Arduino Ethernet Rev3 without PoE". www.arduino.cc. Retrieved 20 February 2018.
  53. "Arduino Yún". www.arduino.cc. Retrieved 20 February 2018.
  54. "Arduino Due". www.arduino.cc. Retrieved 20 February 2018.
  55. "Arduino - ArduinoShields". www.arduino.cc. Retrieved 2017-10-04.
  56. "Arduino breadboard shield: $10 & 10 mins". todbot blog. 11 July 2006.
  57. "Arduino Shields for Prototyping". tigoe.net. Archived from the original on 2017-07-02. Retrieved 2011-09-16.
  58. Oxer, Jonathan. "Arduino Shield list". Retrieved 5 Nov 2013.
  59. "Using Atmel Studio for Arduino development". Megunolink.com. Archived from the original on 2013-01-28. Retrieved 2013-01-18.
  60. "Using AVR Studio for Arduino development". Engblaze.com. Archived from the original on 2012-08-28. Retrieved 2013-01-18.
  61. "Ch Arduino". Retrieved 2016-10-07.
  62. "Releases · arduino/Arduino · GitHub". GitHub. Retrieved 12 November 2022.
  63. "arduino/Arduino". August 27, 2020 – via GitHub.
  64. "Unofficial list of 3rd party boards support urls". GitHub. May 8, 2024.
  65. "Releases · arduino/arduino-ide · GitHub". GitHub. Retrieved 20 February 2024.
  66. "It's here: please welcome Arduino IDE 2.0". 14 September 2022. Retrieved 12 November 2022.
  67. Williams, Al (21 October 2019). "The Arduino IDE Finally Grows Up". Hackaday. Retrieved 26 October 2019.
  68. "Introducing new Arduino Pro IDE with advanced features". Seed Studio. 21 October 2019. Retrieved 26 October 2019.
  69. "Debugging Fundamentals". Arduino. 12 September 2024. Retrieved 26 September 2024.
  70. "Arduino Board Package to Debug Uno/ATmega328P with CH552 debugger in Arduino IDE 2.0.0". Github. 9 September 2023. Retrieved 26 September 2024.
  71. "add debug feature". Github. 28 February 2023. Retrieved 26 September 2024.
  72. Programming Arduino Getting Started with Sketches. McGraw-Hill. Nov 8, 2011. ISBN 978-0071784221.
  73. "Arduino - BareMinimum". www.arduino.cc. Retrieved 20 February 2018.
  74. "setup() - Arduino Reference". www.arduino.cc.
  75. "loop() - Arduino Reference". www.arduino.cc.
  76. "Blink Tutorial". Arduino.cc.
  77. "pinMode() - Arduino Reference". www.arduino.cc.
  78. "digitalWrite() - Arduino Reference". www.arduino.cc.
  79. "delay() - Arduino Reference". www.arduino.cc.
  80. "xinu-avr: The Xinu OS for AVR ATmega328P". se.fi.uncoma.edu.ar.
  81. "xinu-arduino". October 9, 2022 – via GitHub.
  82. Dunkels, A.; Schmidt, O.; Voigt, T. (2005). Using Protothreads for Sensor Node Programming. Proceedings of the REALWSN 2005 Workshop on Real-World Wireless Sensor Networks Presented at the REALWSN 2005 Workshop on Real-World Wireless Sensor Networks.
  83. "FreeRTOS for Arduino". www.arduino.cc.
  84. Beddows, Patricia A.; Mallon, Edward K. (2018-02-09). "Cave Pearl Data Logger: A Flexible Arduino-Based Logging Platform for Long-Term Monitoring in Harsh Environments". Sensors. 18 (2): 530. Bibcode:2018Senso..18..530B. doi:10.3390/s18020530. PMC 5856100. PMID 29425185.
  85. Ali, Akram Syed; Zanzinger, Zachary; Debose, Deion; Stephens, Brent (2016-05-01). "Open Source Building Science Sensors (OSBSS): A low-cost Arduino-based platform for long-term indoor environmental data collection". Building and Environment. 100: 114–126. Bibcode:2016BuEnv.100..114A. doi:10.1016/j.buildenv.2016.02.010. ISSN 0360-1323.
  86. Bardaji, Raul; Sánchez, Albert-Miquel; Simon, Carine; Wernand, Marcel R.; Piera, Jaume (2016-03-15). "Estimating the Underwater Diffuse Attenuation Coefficient with a Low-Cost Instrument: The KdUINO DIY Buoy". Sensors. 16 (3): 373. Bibcode:2016Senso..16..373B. doi:10.3390/s16030373. PMC 4813948. PMID 26999132.
  87. Lockridge, Grant; Dzwonkowski, Brian; Nelson, Reid; Powers, Sean (2016-04-13). "Development of a Low-Cost Arduino-Based Sonde for Coastal Applications". Sensors. 16 (4): 528. Bibcode:2016Senso..16..528L. doi:10.3390/s16040528. PMC 4851042. PMID 27089337.
  88. "Ars Electronica Archiv". Archived from the original on 2019-06-30. Retrieved 2015-03-27.
  89. "Arduino Education nominated for Bett Award". Arduino Blog. 2020-01-20. Retrieved 2020-07-01.

Further reading

  • Banzi, Massimo; Shiloh, Michael (2022). Make: Getting Started With Arduino: The Open Source Electronics Prototyping Platform (4th ed.). Make Community. ISBN 978-1680456936.
  • Blum, Jeremy (2019). Exploring Arduino: Tools and Techniques for Engineering Wizardry (2nd ed.). Wiley. ISBN 978-1119405375.
  • Boxall, John (2021). Arduino Workshop: A Hands-On Introduction with 65 Projects (2nd ed.). No Starch Press. ISBN 978-1718500587.
  • Karvinen, Tero; Karvinen, Kimmo; Valtokari, Ville (2014). Make: Sensors (1st ed.). Make Community. ISBN 978-1449368104.
  • Monk, Simon (2018). Programming Arduino Next Steps: Going Further with Sketches (2nd ed.). McGraw-Hill Education. ISBN 978-1260143249.
  • Monk, Simon (2022). Programming Arduino: Getting Started with Sketches (3rd ed.). McGraw-Hill Education. ISBN 978-1264676989.
  • Nussey, John (2018). Arduino For Dummies (2nd ed.). John Wiley & Sons. ISBN 978-1119489542.
  • Purdum, Jack (2015). Beginning C for Arduino: Learn C Programming for the Arduino (2nd ed.). Apress. ISBN 978-1484209417.
  • Schmidt, Maik (2015). Arduino: A Quick Start Guide (2nd ed.). Pragmatic Bookshelf. ISBN 978-1941222249.

External links

Historical
Single-board computer and single-board microcontroller
Devices
SoCs
ARM
MIPS
x86/x86-64
Software
Microcontrollers
Main
Architectures
Word length
4-bit
8-bit
16-bit
32-bit
64-bit
Interfaces
Programming
Debugging
Lists
See also
Ambient intelligence
Concepts
Technologies
Platforms
Applications
Pioneers
Other
Categories: