Arduino: How Low Can It Go? How High Can It Fly?

Clive "Max" Maxfield
Supplyframe
Published in
4 min readFeb 18, 2020
Image via Wikipedia Commons

I’ve been making “stuff” for as long as I can remember. Every now and then, something I make actually works, in which case it’s time to break out the party hats and perform a happy dance (not in public, of course, ever since… but let’s not go there).

I remember the 1970s and 1980s, when most of the people I knew were involved in building hobby projects in one form or another. Then came the 1990s, at which time it seemed that folks were giving up on making things. By the time we entered the 2000s, it appeared that the majority of people had lost any interest in getting their hands dirty; hobbyist magazines in general, and electronics hobbyist magazines in particular, were going out of business right, left, and center, as they say.

I must admit that I was starting to fear that hobby electronics was going the way of the dodo. And then, as if by magic, everything started to change. The first issue of MAKE magazine made an unexpected appearance in January 2005, which turned out to be the start of an auspicious year, because that’s also when the name Arduino jumped into the limelight with a fanfare of trumpets.

Which came first, the Arduino Uno or the Arduino Mega? To be honest, if you’d asked me this earlier this morning, I would have said “the Uno, of course,” but I just read this very interesting History of Arduino, in which we learn that the actual progression was the Arduino Serial (2005), Extreme (2006), Diecimila (2007), Duemilanove, Nano, Pro, Pro Mini (2008), Mega (2009), and Uno (2010), and then things started to get complicated.

In addition to the 8-bit, 16 MHz versions like the Uno, Mega, Micro, and Nano, the first 32-bit, 84 MHz Arduino made its appearance in 2012 in the form of the Duo. Now, of course, there are more Arduinos than you can swing a stick at.

How Low Can It Go?

Regarding this column, the “How Low Can It Go?” portion of the title relates to price. As I mentioned in my recent How Can They Make It So Cheap? column, you can buy a Kuman Expansion Board for Arduino Uno on Amazon Prime for only $8.88, and this includes an acrylic base, a breadboard, an Arduino Uno, and a USB cable.

Kuman Expansion Board for Arduino Uno (assembled) (Image source: kumantech.com)

Believe it or not, at the time of this writing, you can pick an Arduino Nano plus USB cable with free shipping for only $1.05 on eBay, which makes me shake my head in disbelief.

How High Can It Fly?

What about the “How High Can It Fly?” portion of the title? Well, in addition to the plethora of official Arduino boards, there is also a cornucopia of compatibles. One of my favorites is the Hitex ShieldBuddy TC275, which costs €99 (approximately $110) plus shipping.

The Hitex ShieldBuddy TC275 (Image source: hitex.co.uk)

At first glance this looks like an Arduino Mega, but it’s so much more. Remember that the 8-bit Mega processor with its 16 MHz clock comes equipped a measly 256 KB of flash memory and a miserable 8 KB of SRAM. By comparison, the 32-bit ShieldBuddy has a 200 MHz clock and comes equipped with a generous 4 MB of flash (Eeek!) and lavish 500 KB of SRAM (Eeek²!).

“Can it get any better than this?” I hear you cry. Why, yes it can, because the ShieldBuddy actually has three 32-bit processors, all running at 200 MHz.

“It may sound good, but I bet this is difficult to program,” I hear you mutter under your breath (you really should stop doing that). Actually, the programming is ridiculously easy since you can use the familiar Arduino IDE.

To be honest, I’m really impressed with the thought that went into this. In the case of a regular Arduino sketch (program), you have to use two functions called setup() and loop(), where the former is executed a single time and the latter is executed over and over again. Also, of course, you can create your own functions.

In the case of the ShieldBuddy, you can have setup0(), setup1(), and setup2(), along with loop0(), loop1(), and loop2(), which will run on processor cores 0, 1, and 2, respectively. Furthermore, setup() is synonymous with setup0() and loop() is synonymous with loop0(), which means that any of your existing Arduino sketches will compile and run on core 0 without you having to modify your code in any way. As to any functions you create on your own, they will run on whichever core or cores they need to, depending on which setup or loop function(s) calls them.

The bottom line is that you now have the ability to create three applications that run simultaneously and totally independently. Alternatively, these applications can communicate between themselves using techniques like semaphores and/or shared memory.

The more I think about the ShieldBuddy, the more I want to play with one. How about you? Is the thought of a ShieldBuddy getting your creative juices flowing and rousing you to action?

--

--

Clive "Max" Maxfield
Supplyframe

Over the years, Max has designed everything from silicon chips to circuit boards and from brainwave amplifiers to Steampunk Prognostication Engines (don’t ask).