I2cDiscreteIoExpander v4.0.1 released

Overview

I2cDiscreteIoExpander is an Arduino library for the Texas Instruments PCF8575C 16-bit I2C I/O expander. Version 4.0.1 was released on 27 Sep 2016 and includes a number of changes.

Features

The PCF8575C provides general-purpose remote I/O expansion for most microcontroller families via the I2C interface serial clock (SCL) and serial data (SDA).

Read More

i2c_adc_ads7828 v2.0.2 released

Overview

i2c_adc_ads7828 is an Arduino library for the Texas Instruments ADS7828 12-bit, 8-channel I2C A/D converter. Version 2.0.2 was released on 27 Sep 2016 and includes a number of changes.

Read More

How to automatically test build Arduino libraries

Overview

This post describes how to use GitHub, Travis CI, and PlatformIO to automatically test build Arduino libraries.

Background

Modern languages and frameworks typically have mature, well-developed facilities for performing unit, integration, and functional testing. The Arduino/C++ platform is not as well-developed in terms of automated testing. Developers traditionally rely on manual testing of libraries (build via Arduino IDE) which is slow, prone to human error, and limit the ability to test against multiple hardware architectures.

User Story
1
2
3
As a project owner
I want my library to compile cleanly for multiple boards
So that it may be used on a wide variety of hardware
Read More

ModbusMaster v1.0.0 released

Overview

ModbusMaster is an Arduino library for communicating with Modbus slaves over RS232/485 (via RTU protocol). Version 1.0.0 was released on 11 Sep 2016 and includes a number of changes.

Read More

How to use Git to sync forked repositories

Overview

This post describes how to use git to sync forked repositories.

Background

I frequently need to look up the exact series of commands needed to sync with an upstream repository. This post is primarily for my convenience, but may be useful to others as well.

Read More

How to create an RPM package using Chef, Test Kitchen

This post describes how to leverage Chef and Test Kitchen to create a pristine virtual machine from which to create an RPM package.

Background

I needed customized versions of the FcgiWrap and Postfix RPM packages and preferred to develop a method that would allow me to periodically update the packages as new versions of the upstream source were released. Vagrant is a great tool for managing virtual machines and I was originally going to use this to provision a new VM to build the packages. I developed Chef cookbooks to provision the VMs, and while developing integration tests for the provisioners, I realized that it was more effective to use Test Kitchen to build and test my VMs (which itself uses Vagrant).

Read More

How to mount a remote file system over ssh

The following post describes how to mount a remote file system over ssh on Mac OS X 10.9.2. With minor modifications, the same thing can be achieved on other platforms.

Background

I recently needed to manipulate a sqlite database on a virtual machine and my gui tool lacked the ability to tunnel over ssh.

Enter sshfs: Secure SHell FileSystem – a file system for Linux (and other operating systems with a FUSE implementation, such as Mac OS X or FreeBSD) capable of operating on files on a remote computer using just a secure shell login on the remote computer.

Read More

How to remove a Git submodule

Overview

It often happens that while working on one project, you need to use another project from within it. Perhaps it’s a library that a third party developed or that you’re developing separately and using in multiple parent projects. A common issue arises in these scenarios: you want to be able to treat the two projects as separate yet still be able to use one from within the other.

Background

I frequently need to look up the exact series of commands remove a git submodule. This post is primarily for my convenience, but may be useful to others as well.

Read More

How to package a jQuery plugin as a gem for Rails 3.1 asset pipeline

Follow the instructions to Gemify Assets for Rails. Refer to RailsCast #245 for more information on packaging a gem.

How to add GitHub Pages to a project

Overview

GitHub Pages is a static site hosting service and is designed to host personal, organization, or project pages directly from a GitHub repository.

Background

I occasionally need to add GitHub Pages (gh-pages) to a project. These instructions are based on a GitHub help article and have been customized for my use.

Read More