The Arduino platform is doing something amazing: bringing hardware development to the masses. It’s a sweet little system, with a built-in hardware programmer, simplified programming language, and lively user base that offers plenty of sample code and assistance in the online forums. While this fully assembled solution is a good way to get your feet wet, there are a lot of good reasons to just buy an off-the-shelf processor, make your own circuit board, and write in a low-level language like C. It can be cheaper, quicker, and easier to debug. Here, check out some of the projects I’ve made and how I pay for my hobby, as well as my hardware setup.
What do the pros use?
I’m not the only one who knows there are times to leave Arduino behind. Adafruit Industries and Evil Mad Scientist Laboratories are arguably the leaders of the DIY electronics revolution. Look closely at their products and you will often find a humble AVR micocontroller instead a full-blown Arduino. I personally love a business card on which you can mount a microcontroller and start developing firmware. You are doing something right when you can sell your business card for $4.75. Adafruit sells an inexpensive persistence of vision kit for bike wheels that allows a single row of LEDs to show images or spell out text. Using Arduino for such a project would be overkill. Here are the two scenarios in which I reach for an AVR rather than an Arduino:
To save money, make money
Arduinos generally go for $15 to $60 each. This is affordable for one-off tinkering, but it doesn’t scale well. I’ve built 10-unit runs of simple projects using raw microcontrollers and custom circuit boards for 90 percent less than the price of a single Arduino. Among them are a temperature display for my veggie-powered car, intelligent irrigation controllers for the yard, even grow lights for plants that pulse LEDs.
These projects are also physically smaller than most Arduinos. By shrinking the design and keeping costs low, it’s easier to sell your homemade invention and turn a profit. I’ve actually been able to pay for my electronics habit by building a few extra units and selling them online.
For easy debugging
Most Arduino users debug their code by sprinkling print statements into the code then watching the output in a serial terminal. This is an effective way to find out where the software is misbehaving, but it’s time consuming. Professional hardware developers use in-circuit emulators (ICE), which allow the user to see the values of each variable and step through the code with a debugger as it executes on the processor. These ICE-based systems massively speed up hardware development time.
- Hardware programmer (Sparkfun, $50.95)
- Breakout board: ATMega128 (Sparkfun, $3.95)
- Microcontroller: ATMega169pv (Digikey, $3.81)—I have more than 25
This hardware programmer has ICE capability and uses the AVR JTAG MK-I protocol. In layman’s terms, that means I can program old AVR chips with a 10-pin connector and debug over the same connection. No need to set up an additional serial connection and litter the code with print statements to see what’s going on. Once the code is written and the sensors and actuators are working properly, I design a circuit board and order custom printing for at least 10 boards. I can typically develop and build a new item to sell online in less than a week.
Tell me about your development setup in the comments.