Arduino
- Summary
-
Discussion
- What can I build with an Arduino?
- What are the licensing terms for Arduino?
- How do I power up an Arduino?
- Could you explain the different memories on an Arduino?
- What hardware interfaces are available on an Arduino?
- What are the different Arduino hardware variants?
- How do I select an Arduino hardware for my application?
- Milestones
- Sample Code
- References
- Further Reading
- Article Stats
- Cite As
Working with electronics and programming microcontroller-based systems is generally a difficult task that's reserved for engineers. What if we could simplify the process so that more people can participate, including designers and artists? This is why Arduino was invented back in 2005.
Arduino is an open source platform of both software and hardware. It uses a simplified programming syntax based on C/C++ languages. Arduino boards can be easily programmed by anyone with a computer and a USB connection.
Arduino boards come in many variants and developers get to choose what suits their application. The ecosystem around Arduino is rich with many third-party libraries, derivative boards, modules and shields. Indeed, Arduino has been a catalyst to the Maker Movement.
Discussion
-
What can I build with an Arduino? Arduino is a simple low-cost platform to get started with DIY projects involving basic electronics and software. It's can be used to prototype applications involving sensors and motors for the Internet-of-Things (IoT). This means an Arduino can not only interface with real-world objects but also collect data and send them via the Internet to cloud applications.
You can use Arduino to automate routine tasks in your home such as watering plants or opening doors for your pets. You can build simple gadgets such as an LED matrix clock or a digital lock box. For learning purpose, you can build a traffic light system. More useful applications include fall detection for the elderly and ultrasonic glasses for the blind. You can also use Arduino as a substitute for more expensive engineering tools such as an audio meter or an oscilloscope. Among the simplest projects is to monitor and record temperature, humidity or pollution.
-
What are the licensing terms for Arduino? Arduino adopts the principles of open source for both hardware and software. For the hardware, the original design files (Eagle CAD) are available under CC BY-SA licensing. This allows for derivatives and commercial use but requires that attribution be given to Arduino. Derived works must also be released as CC BY-SA.
There's also an IDE to program the hardware, which uses GPL license. Code is in Java and available on GitHub. C/C++ microcontroller libraries use Lesser GPL license.
You can use the Arduino logo in tutorials, websites and community channels where the content is Arduino specific. However, if you release your own design, you should not use either the name or the logo. You can however say "XXX for Arduino" or "XXX (Arduino-Compatible)".
Despite these licensing terms, there are counterfeits that violate Arduino trademarks. There are also clones that are replicas of original designs but are branded differently. Finally, there are derivatives that innovate on the original design and therefore add value to the Arduino ecosystem. Examples include Teensy and Flora.
-
How do I power up an Arduino? There's more than one way to power an Arduino Uno: USB port, DC power jack, or header pins. Give power via VIN header pin for standalone battery-powered applications. To power peripherals, 5V and 3.3V outputs are available.
Most Arduino variants run on 5V. Due, M0 and Yun Mini are some boards that use 3.3V. Voltage input range is 9-12V for the Uno via the DC jack; 7-12V for Leonardo, Micro and Yun Mini; 5-12V for Mega 2560 R3; 5-7V for Mini. Note that smaller boards (Nano, Micro, Mini) lack DC power jack.
USB is also the interface to program the board. While Uno has USB A-B type, Nano has mini-B USB. Leonardo, Micro, and Due are some variants that use micro USB.
-
Could you explain the different memories on an Arduino? The following are the different Arduino memories:
- Flash: Used to store the program. Arduino programs are called sketches. They're saved as
*.ino
files during development. - SRAM: Temporary storage for variables during program execution. Contents are lost when board is powered off.
- EEPROM: Used for long-term storage. Most boards have EEPROM but Due and M0 don't have this.
- ROM: Read-only memory for storing bootloader. Programmed in factory. Available only on some boards such as Due.
- Flash: Used to store the program. Arduino programs are called sketches. They're saved as
-
What hardware interfaces are available on an Arduino? Arduino has many interfaces, often shared on the same physical pin. A pin can be used for only one function at a time. Among the interfaces are:
- General Purpose Input Output (GPIO): For digital IO. Useful for interfacing to button switches, LEDs, etc.
- Pulse Width Modulation (PWM): Mimics analogue output using digital pulses. Useful for controlling motors, fading LEDs, etc.
- Analogue Input: Uses a 10-bit Analogue-to-Digital Converter (ADC) to bring analogue signal values into the digital world. Used to read from an analogue sensor.
- USART: For serial communications. Used to send/receive data to/from laptop, Bluetooth device, etc. LEDs Tx and Rx help us see serial activity.
- Digital Interfaces: Other interfaces include I2C and SPI. Used for interfacing to digital sensors or other peripherals such a memory, display, etc.
-
What are the different Arduino hardware variants? The official Arduino product page lists all the variants. Arduino hardware comes in three main types:
- Boards: These offer the main functionality. Among the entry level boards are Uno, Leonardo, Micro, and Nano. Boards with more features or better performance include Mega 2560, Zero, Due, and M0 Pro. For the Internet of Things (IoT), we need connectivity to the internet. Some boards that offer this include Yun, Ethernet and Industrial 101. For wearable applications, the Lilypad series offer small form factor boards that can sewn to cloth.
- Modules: These are small form factor boards. Modules giving IoT connectivity include Fox 1200, WAN 1300, GSM 1400, NB 1500, and WiFi 1010.
- Shields: These extend the hardware features provided by boards. They can't be used on their own. They connect to boards via well-defined interfaces. There are shields for interfacing via USB, CAN, RS485, and more.
-
How do I select an Arduino hardware for my application? You should start by listing application requirements in terms of performance, memory, connectivity, and interfaces.
The most popular one is the Arduino Uno. Many shields are made compatible to the pin header of the Uno. To fit into tight spaces, Arduino Nano or Mini are cheaper and better options; but shields can't be used with them.
For USB apps, prefer Leonardo or Micro that are based on ATmega32U4.
Arduino Due has an ARM Cortex-M3 running at faster clock, with more memory and interfaces than the Uno. It runs on 3.3V, not 5V like the Uno. Standard Arduino shields can be used. Arduino Mega has similar form factor to the Due but uses ATmega2560, not an ARM processor. It runs on 5V and therefore friendly to hobbyists.
Any project needing lots of GPIO can use Due or Mega. If fast processing is needed, Due is a better choice. Due is also good for analogue, with 12 inputs and 2 outputs.
More information is available at Core Electronics and Hackster.
Milestones
Hernando Barragán creates Wiring platform so that designers and artists can approach electronics and programming more easily. Wiring itself is based on Processing. It's part of Barragán's Master's thesis project at the Interaction Design Institute Ivrea (IDII) in Italy. In March 2004, 25 Wiring PCBs are manufactured and hand-soldered.
2010
2014
2015
At the Maker Faire Bay Area, Massimo Banzi announces the creation of Genuino. Due to trademark issues and legal disputes, Arduino trademark will be limited to the U.S., for which Adafruit will be the manufacturer. In other markets, Genuino trademark will be used with manufacturing outside the U.S. In October 2016, differences are put aside and the companies behind Arduino and Genuino announce a merger.
In January, to take care of manufacturing, Arduino AG is incorporated. Later the same year, there's talk of forming Arduino Foundation for maintaining the IDE and other code infrastructure in an open source community-driven manner. Subsequently, not much information has been released about the Foundation.
Sample Code
References
- Ahmad, Tariq. 2016. "Arduino Founders End Civil War, Plan to Merge Under Single Brand." Element14, October 22. Accessed 2019-06-20.
- Aidan. 2018. "Arduino Boards, Compared." Core Electronics, November 22. Accessed 2019-06-20.
- Arduino. 2018. "The MKR family gets bigger with two new IoT boards!" Blog, Arduino, May 12. Accessed 2019-06-22.
- Arduino. 2019a. "Frequently Asked Questions." Accessed 2019-06-20.
- Arduino. 2019b. "Arduino Project Hub." Accessed 2019-06-20.
- Arduino. 2019c. "Memory." Accessed 2019-06-20.
- Arduino. 2019d. "About Us." Accessed 2019-06-20.
- Arduino. 2019e. "Arduino Products." Accessed 2019-06-20.
- Arduino. 2019f. "Arduino Board - Serial Interface." Accessed 2019-06-20.
- Banzi, Massimo. 2013. "Send in the clones." Blog, Arduino, July 10. Accessed 2019-06-20.
- Barragán, Hernando. 2016. "The Untold History of Arduino." Accessed 2019-05-31.
- Electronics For You. 2018. "Awesome Arduino Projects | Arduino Project Ideas." Electronics For You, November 17. Accessed 2019-06-20.
- Hock-Chuan, Chua. 2018. "Getting Started with Arduino." Nanyang Technological University, March. Accessed 2019-06-20.
- Hurst, Tenaya. 2014. "Happy Arduino Day! Declared March 29th 2014 for the first time ever." Linino.org, March 29. Accessed 2019-06-20.
- Kumar, Sharath. 2018. "Arduino Due." Factory Forward, May 16. Accessed 2019-06-20.
- Lewis, James. 2018. "Picking the Right Arduino." Hackster.io, October 22. Accessed 2019-06-20.
- Mitchell, Robin. 2018. "A Comparison of Popular Arduino Boards." Maker Pro, EETech Media, October 25. Accessed 2019-06-20.
- Orifov, Saidhon and Ali Batayneh. 2017. "Evolution of Arduino Models." Rochester Institute of Technology. Accessed 2019-06-20.
- Ruggeri, Luca. 2015. "Maker Faire Bay Area 2015, Interview with Massimo Banzi: Genuino and the future of Arduino." Open Electronics, June 03. Accessed 2019-06-20.
- Sam. 2017. "History of Arduino." Core Electronics, July 15. Accessed 2019-06-20.
- Ten22. 2018. "Open Your Lines of Communication Further with the Arduino MKR Family." RS Components, April 18. Accessed 2019-06-22.
- The Electronic Guy. 2017. "TOP 10 Arduino Projects Of All Time." Via YouTube, December 20. Accessed 2019-06-20.
- Wikipedia. 2019a. "Processing (programming language)." Wikipedia, May 19. Accessed 2019-06-20.
- Williams, Elliot. 2017. "The Arduino Foundation: What’s Up?" Hackaday, June 19. Accessed 2019-06-20.
- Zait, Anat. 2018. "An Introduction to Arduino Uno Pinout." Blog, Circuito.io, April 22. Accessed 2019-06-20.
- jimblom. 2019. "Arduino Comparison Guide." SparkFun Electronics. Accessed 2019-06-21.
Further Reading
- Hock-Chuan, Chua. 2018. "Getting Started with Arduino." Nanyang Technological University, March. Accessed 2019-06-20.
- Tawil, Yahya. 2016. "Understanding Arduino UNO Hardware Design." All About Circuits, July 01. Accessed 2019-06-20.
- Lewis, James. 2018. "Picking the Right Arduino." Hackster.io, October 22. Accessed 2019-06-20.
- Zait, Anat. 2018. "An Introduction to Arduino Uno Pinout." Blog, Circuito.io, April 22. Accessed 2019-06-20.
- Arduino Official Website
- Arduino Create
Article Stats
Cite As
See Also
- Arduino Programming
- Raspberry Pi
- Embedded Communication Protocols
- Open Source Hardware
- Sensor Characteristics
- Programming Concepts for Beginners