Arduino libraries

Arduino libraries

I’ve been working on a few Arduino libraries lately. Since there is no package manager for Arduino1 you have to install libraries manually. Generally, this is not a big deal as you just need to plop the library in your /Arduino/libraries/ folder. If you are writing a library, spend the extra effort and make the library conform to the Arduino IDE 1.5 Library Specification. This will make it even easier to plop libraries in that folder and plus, your library and examples, will nicely display in the IDE.

This is an Arduino Library. Punny :)
This is an Arduino Library. Punny 🙂

However, the documentation is very sparse about what keywords are. Basically, keywords are used by the IDE to perform syntax highlighting and thankfully, this post provides some clarification. I also submitted an issue so hopefully they improve that page. I guess I could have edited the wiki directly, but I couldn’t find a link to the actual keyword definitions.

Lastly, if you do create an Arduino library, pretty please, with sugar on top, pick an OSI Approved License. It may be fun to pick something else, but consider that there may be somebody who wants to seriously use your library and unless you pick a clear license, it will be unclear how to incorporate your library with their larger work.

Enjoy the snow while it lasts.


  1. Feel free to run off with this good idea. 

Hacking the SAINTCON Badge

Hacking the SAINTCON Badge

SparkFun Electronics gave me a free pass to SAINTCON, a networking security conference in Odgen, Utah. How did I receive this? Well, social media addiction has its rare benefits and I was the first to respond to a tweet.

SAINTCON hosted a Hardware Hacking Village (HHV) this year and as the recipient of a SparkFun-sponsored ticket, I felt I should check out the HHV immediately. I sat down, soldered my badge, and then proceeded to complete all five hardware challenges; I was the first to complete hack the badge. That’s what happens when a SparkFun social-media-addict goes to a conference.

Completed badge with the blinky kit.
Completed badge with the blinky kit.

Continue reading “Hacking the SAINTCON Badge”

Programming the ATmega328P from a BeagleBone Black

Update 15 May 2014

I wrote a much more detailed version of this in the May 2014 article of Linux Journal. That article goes into more detail about the device tree, how to build the hardware on a proto-cape, and how to add a webserver frontend.

We now return you back to your originally scheduled programming.


This tutorial will explain how to program an ATmega328P (the microcontroller used in the Arduino Uno) from a BeagleBone Black (BBB).  For those who can’t wait for the Arduino Tre, I’ll walk you through how to breadboard your ATmega328P to your BBB so you can be ready for its release!  The motivation for this tutorial is that I’m looking to put an ATmega328P on my CryptoCape, since there are few crypto libraries written for 8-bit AVRs, namely NaCl. Continue reading “Programming the ATmega328P from a BeagleBone Black”

BeagleBone Black I2C References

I’m planning on heavily using I2C for my CryptoCape. I’m still working through issues, but I wanted to capture some of my research in this post. As I’m currently experimenting, please treat this information as notes and not as definitive information. Feel free to post corrections in the comments and I’ll update the content.

The BeagleBone Black (BBB) has three I2C buses (thanks to Smith Winston providing most of this information at his BeagleBoard.org discussion post):