What is Arduino?

Definition of Arduino

Arduino is an open-source hardware and software platform designed to provide an easy, low cost, yet high performance entry point into the world of microcontrollers. Arduino was pioneered nearly two decades ago by David Cuartielles, Gianluca Martino, Tom Igoe, David Mellis, and Massimo Banzi.

This definition of Arduino provides a reasonable answer to the questions that certainly would have been true 10 years ago. However, Arduino has grown. Over the past two decades thousands of people have contributed to the open-source material. Today Arduino is so much bigger than just Arduino.

What has changed within Arduino?

Arduino continues to provide an expanding range of products. They still have a version of the original UNO along with expanded versions that retain the original form factor. This includes the UNO R4 with an 8 by 12 LED matrix as pictured in Figure 1 and Video 1. They also have a new line of Pro products featuring high performance 32-bit processors with web connectivity. This allows convenient remote monitoring and sharing of data. The pro line includes a Programmable Logic Controller (PLC) known as the Opta. Enhanced Integrated Development Environments (IDE) are available with features such as serial Plotter.

Figure 1: Picture of a Sparkfun kit featuring the Arduino Uno R4 and a variety of Qwiic devices.

Video 1: The Arduino Uno R4 is the latest revision of the original Uno device.

Where has Arduino succeeded?

On a personal note, I have never met a college student or an educator that is not familiar with Arduino. All have strong feelings about the product ranging from the purist who prefers to use bare-metal programming to the fan club who use Arduino for everything. Collectively, they point to the same position. Arduino is a successful product deeply ingrained into the basic microcontroller and maker spaces across the nation. Stated another way, all students and many hobbyists are intimately familiar with the product and the Integrated Development environment (IDE).

But that is not the end of the story as Arduino’s influence is not bounded by the company and its associated products.

Where is Arduino expanding?

This is where it gets interesting, as we will soon learn why our opening definition of Arduino is lacking. As a DigiKey engineer I have the opportunity to see and gain experience with a wide variety of platforms. I’ve observed that Arduino has grown beyond our original definition. Earlier, I stated that Arduino is a near universal constant in the education setting. That fact has not gone without notice both within Arduino and by other manufacturers.

Internal expansion of the Arduino product line

Arduino’s previously mentioned Pro line is an outgrowth of this thinking. Recognizing that they have a solid foundation in education, Arduino has expanded their hardware and software to encompass Internet of Things (IoT) devices. These new devices are identified by their trademark black appearance as opposed to the original blue. The new devices generally feature 32-bit microcontroller with wireless transmitters.

Tech Tip: There is a tradeoff between cost and development time. It takes time and considerable engineering effort to design a product for optimal low cost and reliability. This optimization can be especially advantageous for high-numbered production volumes as there is a good change of reaping the benefits from the initial investment. However, this optimization may not be financially viable for lower volume production runs.

This is where solutions such as the Arduino Pro line comes to play. For some applications, Arduino’s Portenta devices provide a fast to-market turnkey solution with a low engineering investment. Your design team may be rewarded by capturing market shares with this fast development time. The additional engineering effort and expense can be integrated into later revisions of the product.

Video 2: The Portenta C33 is a member of the Arduino Pro line of microcontrollers.

External expansion of Arduino-like tools and products

Other manufacturers are leveraging the Arduino knowledge base by incorporating Arduino-like and Arduino compatible tools into their products.

Arduino-like products

Many manufacturers provide Arduino compatible boards. This includes boards that are directly programmed via the official Arduino IDE. It also includes boards that are programmed by related IDEs such as Energia IDE and the Texas Instruments Launchpad line of MPS430 microcontroller.

Arduino compatible products

Companies such as STMicroelectronics produce devices that are Arduino compatible. A clever example is the NUCLEO-L031K6 and related devices. These could be classified as “double compatible” as they are pin compatible with the Nano V3 footprint. They may also be programmed directly from the Arduino IDE itself provided the appropriate board manager has been installed.

Tech Tip: Programming an STM32 product from within the Arduino IDE introduces the associated hardware. However, the discovery process may be enhanced by programming beyond the Arduino IDE to access the underlying hardware. For example, from within the Arduino IDE a programmer could configure an Analog to Digital Converter (ADC) to use Direct Memory Access (DMA). From here, you can then jump to the hardware specific IDE such as Renesas or ST microcontroller. This is an excellent academic exercise. However, as previously mentioned, there is a time-to-market consideration argument against such optimization.

Arduino language translators

This conversation becomes very interesting when we shift focus from Arduino to the Raspberry Pi. There we find a variety of techniques. For example, the Raspberry Pi Pico may be programmed directly from the Arduino IDE. There are also ways to program the Pi independent of the Arduino IDE while retaining the Arduino language. These techniques are also applicable to Pi based PLC such as the KUNBUS products.

On a related note, other manufacturers can import Arduino code into their IDE. For example, Microchip MPLAB can import an Arduino project. A sample project may be programmed directly for the UNO. The Arduino code may then be imported into MPLAB. The resulting code can then be pushed back into the Microchip AVR microcontroller (formerly Atmel). Once again, we see the vast Arduino education base being leveraged to provide a deeper understanding of the microcontroller.

Tech Tip: The large body of Arduino C code has been used to train Artificial Intelligence (AI) models. Consequently, the AI may be used to generate and assist with code generation. As an example, consider this non-blocking code that was generated with AI assistance. The article demonstrates how ideas originally attributed to Programmable Logic controllers (PLC) programming may be easily adapted to general use.

Conclusion

The open-source community has expanded “Arduino” beyond the bounds of the parent company. This is highly desirable as it leverage the large education driven foundation provided by Arduino. This is reflected in the IoT emphasis of the new Arduino Pro line as well as the code and hardware compatible devices provided by other manufacturers. Together, there is an emphasis on low to mid volume turnkey production with quick time to market.

Please share your success stories with these new products.

Best Wishes,

APDahlen

About the Author

Aaron Dahlen, LCDR USCG (Ret.), serves as an application engineer at DigiKey. He has a unique electronics and automation foundation built over a 27-year military career as a technician and engineer which was further enhanced by 12 years of teaching (interwoven). With an MSEE degree from Minnesota State University, Mankato, Dahlen has taught in an ABET accredited EE program, served as the program coordinator for an EET program, and taught component-level repair to military electronics technicians. Dahlen has returned to his Northern Minnesota home and thoroughly enjoys researching and writing articles such as this. LinkedIn | Aaron Dahlen - Application Engineer - DigiKey