In my last post, I gave an overview of Amazon’s tools for building Internet of Things devices and discussed the unique features that Amazon brings to the IoT space. Amazon has a lot to offer, but figuring out exactly which tools or components you need—and how to make them work together—can be challenging. If you want a more turnkey, off-the-shelf solution, you may want to consider Blynk. Read more on Can You Get Turnkey IoT with Blynk?…
By day, I work on web, mobile and desktop applications at Atomic Object. By night, I like to experiment with things that spark: ham radio, electronics, and embedded systems.
Up until a few months ago, my embedded platform of choice was the Arduino, specifically the pro mini since it was so easy to integrate it into my projects. I’m currently work on a project at home that’s going to be powered by a small capacity battery, thus putting a heavy emphasis on low power. The Arduino leaves a lot to be desired in this area, and given the recent Arduino drama, I started looking for alternatives. Read more on Spread Your Wings and Stop (Exclusively) Using Arduino…
The Arduino platform has a lot of advantages. It’s designed so that artists and hobbyists can do lots of cool stuff. There are plenty of tutorials for beginners, and the standard hardware means that incompatibilities won’t add extra confusion when learning microcontroller programming. Getting started is inexpensive — for $25ish, one can get a relatively self-contained hardware prototyping platform. Also, Arduino was carefully designed to have a smooth transition to more specific hardware in production — the hardware is open, and there isn’t any vendor lock-in.
However, there are also many benefits to reaching beyond Arduino. Much useful hardware isn’t available in a “shield” package (and what is tends to be expensive compared to just the components), and changing the hardware allows more flexibility in price, power, and size. Also, using C and its tools allows more options than the Arduino environment alone. (And it’s fun to learn how things work at a deeper level!)
Unfortunately, once you try to move a step or two outside of the Arduino ecosystem, beginner-friendly documentation gets thinner. The information is there if you know how to find it, but many questions have to be answered at once, upfront.
I have been using “raw” AVR microcontrollers for some personal projects, and I’m going to describe are some tools and resources I’ve found useful. (There are also non-AVR microcontrollers, like PICs, but I’m going to ignore those because they have less in common with Arduinos.) Read more on Completing the Circuit: From Arduino to AVR Microcontrollers for Hobbyist Projects…
Understanding processor load in an embedded system is important, yet often overlooked. It’s a step toward analyzing your processor’s ability to meet system deadlines. I have provided a sample arduino sketch to show how you can add real-time CPU utilization measurements to your embedded project.
When I first started looking into unit testing and test driven development for embedded, way back when, I was confronted with tools and techniques that were totally new to me. I was eventually successful in setting up an environment, but now I want to share an example so simple, and a list of instructions so complete, that pretty much anyone can start to do TDD in embedded. I also want to demonstrate how simply this can be accomplished without the need for a cumbersome GUI. Right now, there’s no more ubiquitous embedded development kit than the Arduino family of hardware, so that’s what we’re going to use. Oh, and there’s an awesome open source tool chain for it, more on that later. The example project is basically a fully tested, and Ceedling-ified Arduino_C_Scaffold. So, major credit is due to that project for providing a great foundation. This write up is going to go over absolutely everything needed to bring up a bone stock Windows XP development environment. If you’re using Mac OS or Linux see the Arduino_C_Scaffold project for non-Ceedling related details.
Read more on TDD Comes to Arduino…
Justin DeWind and I recently started working on a project involving XBee radios. These little devices are fun to work with and more capable than their small size lets on. A lot of questions have come up as we’ve worked through a technical spike using the devices, some with difficult-to-find answers. The following are a few notes that, hopefully, will save you time and frustration when adding a little bit of XBee to your projects.
I just started working on a new rev of some Arduino code originally written by someone else, consisting of half a dozen PDE files plus two contributed libraries. The Arduino environment supplies a nice little editor/IDE tool, but my favorite way to explore and author code is in Vim.
In addition to a nice base set of general configuration files and Vim plugins, it’s nice to have two major components in place for a language I’ll be spending time with:
- Syntax highlighting