Arduino have recently released a special tiny version of the Arduino Uno called the Arduino Uno Mini which I couldn’t resist ordering. When I received it I found myself reflecting on the significance of the original Arduino Uno.
As a teenager I used to dabble in electronics, building power amplifiers with 2N3055 transistors mounted on big aluminium heatsinks, but after I started my first job I lost interest in electronics, partly because I was too busy, and partly because I was discouraged by the fact that you could then buy a better amplifier for less than the cost of building one.
I didn’t pick up my soldering iron again until one day my daughter brought home an Arduino Uno kit from college, and said “Hey Dad, we’ve been given these; can you help me do something with it?”. After a period of bafflement I persevered with trying to understand it, and soon rediscovered the same excitement of being able to realise your own ideas that I used to have with electronics.
Arguably the Arduino Uno is the board that started it all – developed from the earlier Arduino boards between 2003 and 2010 it brought the microcontroller out of electronics labs and into homes and schools where amateurs could build projects for a whole range of applications, and the Arduino IDE made programming the Arduino as accessible as using a text editor; according to the Arduino site it has been downloaded over 50 million times.
The Arduino Uno is also the board that inspired me to write uLisp. Lisp is the programming language I am most familiar with, and the one I use on my Mac for programming projects. So in 2016 I set myself the challenge of getting a version of Lisp running on the Arduino Uno. It probably would have been more sensible to start with a more powerful processor; after all the Arduino Uno has only 32Kbytes of program memory and 2Kbytes of RAM. However, I liked the idea of catering for the most widely-used board, and the challenge of shoe-horning something into a limited space. After many uploads I got the first version of uLisp working in May 2016. The latest version of uLisp, Version 4.1 released earlier this month, now supports many more powerful platforms, but it still also supports the Arduino Uno, albeit with only 36 bytes free. And, of course, it runs fine on the new Arduino Uno Mini.
Why use the Arduino Uno when you can get a much more powerful ARM-based Adafruit M4 board, or even a Raspberry Pi, for the same price or less? For me it’s because the Arduino Uno is easier to understand in depth, and there’s nothing in the way between you and the microcontroller chip. For example, you can program its timer to generate a waveform in four lines of C (or uLisp). ARM chips are significantly more complicated, and with the Raspberry Pi there’s also the Unix operating system standing in the way of feeling totally in control of the hardware. So the Arduino Uno is still the board I reach for when I want to try out a simple application in C or Lisp, such as controlling a string of serial RGB LEDs.
So what’s the point of the Arduino Uno Mini? It’s a bit of an anachronism – you can get an official Arduino Uno for half the price (Arduino Uno Rev3 on Arduino Official Store) and a Chinese copy for about a tenth of the price (Arduino Uno R3 on AliExpress), and they use exactly the same processor chip. In some ways though it’s state of the art. The PCB looks beautiful, and instead of the passive NCP1117 regulator on the Arduino Uno, which got warm when running the board from 9V, it features an MPM3610A step-down converter with an inductor integrated into the package for cool operation from up to 21V. The USB connector is a USB-C connector rather than the clunky USB-B socket used on the Arduino Uno, and the pin headers have half the spacing of the ones on the Arduino Uno, although this means that existing existing Arduino shields and cables won’t be compatible.
But I don’t regret having bought it; it’s a thing of beauty. However, I’m probably going to keep using my old Arduino Uno, and frame the Arduino Uno Mini and put it on the wall as a symbol of the microcontroller revolution the Arduino Uno started.