My friend and EEJournal colleague Max Maxfield writes for several publications. Case in point is a 24-article Arduino Bootcamp series he has written for his Cool Beans column in Practical Electronics magazine, published in the UK. This series of articles is now downloadable as a PDF bundle. The series was two years in the making and sells for the low, low price of £20. If you’re interested, click here. If you think that’s too much to pay for a 24-article reprint, consider what it would cost you to buy a book on the topic. Further, consider that Max is an excellent explainer. If you’re a regular EEJournal reader, you understand what I mean.
Now, Max probably wouldn’t mention this series in EEJournal, but I taught a STEM summer program based on the Arduino in one of my past lives. The program was run by Xilinx in cooperation with the Silicon Valley Career Technical Education Center. Based on that experience, I feel qualified to review Max’s Arduino Bootcamp series here. The Arduino makes a marvelous introduction to microcontrollers and to coding in C/C++. Almost all of EEJournal’s readers are too experienced to need this tutorial-level instruction, but reviewing Max’s article series also allows me to discuss the extended Arduino microcontroller board family and competitors as possible hosts for a range of embedded projects.
At this point, if it were Max writing this article instead of me, you’d be reading about a lot of ephemera: what Max had for lunch, what the olive on Max’s plate reminds him of, who he had lunch with on that day, and what he ordered because the olive reminded him of something. Max’s ability to waffle on defies description (although I’ve just described it). He starts the second article in his series by admitting his problem: “The only problem is that I have so many thoughts bouncing around in my poor old noggin that I don’t know where to start.”
Now, I just don’t have the ability to write that sort of stuff. Instead, let’s discuss the Arduino.
A genuine Arduino Uno based on the Microchip/Atmel ATmega AVR microcontroller. Image credit: Arduino
The Arduino is an open-source hardware/software platform developed at the Interaction Design Institute in Ivrea, Italy in 2005. The developers envisioned a simple, low-cost way for students and professionals to familiarize themselves with the use of electronic sensors and actuators. The software portion of the Arduino was a self-contained IDE (integrated development environment) that simplified the development of microcontroller code using C/C++ and a large function library containing functions that understood how to control several sensors and actuators. The hardware portion of the platform was a small, uniquely shaped circuit board that originally incorporated an Atmel ATmega128 microcontroller. The design was later migrated to the less expensive Atmel AVR (ATmega8) microcontroller with 8 Kbytes of on-chip Flash ROM and a 1-Kbyte SRAM. The latest Arduino Unos (R2 and R3) have 32 Kbytes of on-chip Flash ROM and 2K bytes of RAM. (Through a series of acquisitions, Microchip now owns the ATmega microcontroller product line.)
Today, you can purchase dozens of different Arduino implementations that incorporate a diverse set of microcontrollers based on the original AVR, the ARM Cortex-M0 and M3, the x86, and the RISC-V processor architectures. Because the standard software interface to the Arduino is through the IDE, the IDE can be rewritten to accommodate any processor. As a result of the Arduino’s open-source design, you can purchase Arduino-compatible boards from Chinese vendors on AliExpress for less than $1 (if you feel lucky, that is); you can purchase improved versions from companies such as Adafruit and SparkFun for a few dollars; and you can buy boards from the originator for just under $30. You can also purchase myriad sensor, actuator, and display boards that plug-and-play with the Arduino IDE. In this sense, the Arduino concept truly lives up to its intended use.
Adafruit’s Metro 328 board is a clone of the Arduino Uno board with some hardware extensions. Image credit: Adafruit
In his first Bootcamp article, Max takes you through a bit of Arduino background and explains how to install the Arduino IDE on your PC. He then takes you through writing the first Arduino program, which the Arduino creators decided to call a “sketch,” for some reason. By the end of this first article, you’ll have written your first Arduino sketch and caused an LED to blink on and off. That’s the embedded equivalent of “Hello World.”
The SparkFun RedBoard is a functional clone of the Arduino Uno with a few hardware enhancements. Image credit: SparkFun
Part 2 of Max’s Bootcamp series discusses the control of a 7-segment LED display. More LEDs is “more better,” right? Max is teaching basic electronics with these articles, in addition to providing instruction in the use of the Arduino’s flavor of C/C++. That’s appropriate for Practical Electronics magazine’s audience and would have been equally appropriate for my STEM class. Max sticks with the 7-segment display for a while, introducing programming concepts such as loops and conditional branching. He dips into number formats such as BCD and hexadecimal. He covers bit-wise operations such as shifts. By the sixth article, he’s debouncing switches with code. In the tenth article, he starts introducing analog electronics using the Arduino’s built-in ADCs.
Part 14 starts to get serious about sensors with a discussion of ultrasonic range sensors. Controlling these kinds of sensors is a big Arduino feature. Part 15 discusses time-of-day clocks and their need for battery backup. Because of his deep engineering background, Max doesn’t just explain how to use these sensors in the Arduino environment, he explains the physics behind the sensors’ design.
In the final chapters, Max leaves the Arduino behind to introduce the reader to more electronics fundamentals including my old standby, TTL chips, yet even these explanations are grounded in the Arduino-centric discussions that preceded them. Today, no one designs commercial products using TTL chips, not when a 50-cent microcontroller can do most jobs faster and at lower cost. However, the simple logic chips from the 1960s and 1970s are still quite useful for teaching the basics.
Max’s Arduino Bootcamp article series focuses on teaching the fundamentals of embedded design. Few EEJournal readers, if any, need this sort of tutorial material. However, if you are called to teach a fundamentals class to some aspiring STEM or science students, you might consider using Max’s Arduino Bootcamp series as all or part of your lesson plan. The material is extensive. It’s not boring. It’s nicely illustrated. And it gets the job done.
My own preference is to use the Raspberry Pi Pico board for small microcontroller projects. The original Pico and the even more capable Raspberry Pi Pico 2 provide far more processing capability and much larger Flash and SRAM memories at lower cost in a smaller form factor than the original Arduino board. (Yes, I am aware that Arduino boards are now available in small form factors as well.)
Adafruit’s Metro ESP32-S3 board packages an Espressif ESP32-S3 microcontroller in an Arduino-compatible footprint. This board offers many improvements to the original Arduino Uno hardware platform. Image credit: Adafruit
Although Raspberry Pi was originally developed with a different IDE, there is at least one version of the Arduino IDE for the Raspberry Pi Pico family available from the open-source community. Click here for one such implementation. There’s also a version of the Arduino IDE for the very popular Espressif ESP32 made available by Espressif. Because the community has decided to expand the power of the simple Arduino IDE to many different microcontroller boards, learning the Arduino IDE using a tutorial like Max’s Bootcamp series provides a foundation for a wide range of embedded design projects using some powerful and inexpensive microcontroller boards.
Hi Steve, when I read “Max’s ability to waffle on defies description (although I’ve just described it)” I laughed out loud. Thanks so much for this review.