As a mechanical engineer, I often have ideas for how to physically make a project, leaving the “small detail” of programming things to the end. Perhaps this attitude is flipped for people whose background is skewed heavily toward programming and electronics, where that is the focus of the project. While I find programming interesting, in the end I just want everything to work.
After completing a recent build, I realized that I actually had come up with a tiny embeddable Arduino Nano package that I’ve used in several versions for very rapid prototyping. In fact, this particular build started out using a simple LED switch, but when I decided to use a programmable LED, it was only a matter of soldering a few things together to add its microcontroller heart. The basic circuit diagram is shown below:
There are a few things that make this a convenient design in many cases:
First off, DIP switches line up with the Arduino pin spacing perfectly as both are meant for use on a standard breadboard. I’ve got a collection of them, and while four switches have worked out nicely so far, more or fewer could be implemented as needed. The non-input pin of the switches is routed to the Arduino’s ground pin. This has the added benefit of forming a place where other connections can be easily grounded—a constant annoyance on these types of projects.
Connecting these input switches to the ground allows them to be set to “INPUT_PULLUP” as shown in the project’s example code on GitHub. Using this command allows the ATmega328 chip on the Nano board to pull each input positive, meaning no need for external resistors to keep the signal from floating. You’ll need to take into account in your code that “LOW” now means that a switch is activated, while “HIGH” means it’s off.
Additionally, the double-CR2032 battery holders used, which feature a built-in on/off switch are extremely convenient. The switch means that you don’t have to worry about this component—or pull the batteries over and over. While their nominal combined 6V charge is technically below the Nano’s recommended 7-12V input level, it seems to work quite well in simple applications. This holder is also a similar size physically to the Nano, meaning it can be strapped on to your computing package with a zip tie or even heat shrink.
Beyond that, the design is extremely flexible. I’ve used variations of this in several projects—a camera intervalometer, the “Hello Light” sound monitor, and a CNC light painting fixture. The last of these was done very quickly, and the fact that it was so small meant it can ride on the fixture—including the battery—while adding little bulk or weight to the device.
This setup uses CR2032 batteries, which are light and inexpensive, but are not rechargeable. If this is important, you could sub in LIR2032 batteries which function at a more in-spec 3.6V (combined 7.2V) anyway. Another option is to use the various boards made by Arduino, Adafruit and others that have a built-in LiPo connector. While nice, they tend to be more expensive than the $2-$3 dollars for a Nano clone, so you may be more hesitant to leave them in projects and move on. Yet another approach would be to use the Arduino Pro Mini (a clone since it’s officially retired) in order to forgo the Nano’s power-sucking FTDI chip.
Whichever way you decide to go, it’s good to have a go-to design with readily available parts in your bin, allowing you to throw something together at a moment’s notice. While certainly not the best possible solution for everything, as a quick-and-dirty automation solution, this has worked out very well for me!
Jeremy S. Cook is a freelance tech journalist and engineering consultant with over 10 years of factory automation experience. An avid maker and experimenter, you can follow him on Twitter, or see his electromechanical exploits on the Jeremy S. Cook YouTube Channel!