This page and its subpages are about work that I do for fun or pro-bono--hobbies and volunteer gigs, basically.

Active Work

My big project right now, which has taken most of my time since the middle of 2020, is Multi-System Reactor, my new version of a rules engine that spans multiple home automation platforms. On February 18, 2021, I released the first developer preview, and active work is ongoing.

Current "Just for Fun" Projects

  • Read about the R2-D2 my boys and I are building. There's a world-wide club of R2 builders that publishes plans and details. It's an ambitious (and expensive) project, but a great teaching tool for mechanical design, materials science, electronics, and of course, all kinds of artistic skills.
  • I'm also an avid baker. I don't think we've bought a loaf of bread for sandwiches in several years -- I make a variety of breads, most notably artisan sourdough loaves that seem to be the family favorite (and appreciated by our neighbors from time to time as well). 

Recent Software Projects

Vera Home Automation

I've written and support several plugins for the Vera home automation gateway/controller. Read about those here.

Open Source

  • lexp.js - A lightweight infix expression parser I wrote for a JavaScript project. While it's possible to evaluate expressions directly in JavaScript, ensuring security can leave one wondering if all the holes are plugged, and perhaps finding out the hard when one is not. The lexp.js project addresses this by creating a limited grammar and contained execution environment. This project can be found on GitHub.
  • luaxp - An outgrowth of lexp.js that was born when I started implementing the SiteSensor plugin for Vera Home Automation, luaxp is an infix expression parser written entirely in Lua. It is found on GitHub.

Hardware Projects

  • RAVE, the Relay And Valve Expansion board for pool controls. This simple, cost-effective boards extends the capabilities of pool controls when the number of devices that need relay or valve actuator control exceeds the number of ports available on the controller. It is designed to be simple for pool installers to use to easily implement definitive control of the increasing number of devices modern pools have: more lights, waterfalls, fountains, fire features, etc. It also provides simple implementation of interlocking of devices, to prevent running pumps when dry, etc.
  • PiUPS -- This is a new project. When I was building the Halloween Photo Booth with my boys, I couldn't find an adequate solution for a simple, integrated DC UPS for a Raspberry Pi 3 B+. This board offers a battery-backed 2.5A supply (it's actually 3A). It safely charges a LiOn or LiPo battery, and switches quickly to battery power on brownout or blackout of the source supply. It has a low-battery signal to the Pi, so you know when it's time to do an orderly shutdown. The board conforms to the HAT (Hardware Attached on Top) form factor for RPi 3s (any version), but will work with any model RPi, Arduinos, and other controllers that take a 5V power supply.
  • LightShow16 -- Another idea from the Halloween Photo Booth project. Our booth had two 4-port opto-isolated MOSFET driver boards to drive the LEDs needed by the project. That worked great, but a natural evolution is a 16-port device, with on-board PWM control, to offload the Pi (or Arduino, or whatever). The processor uses I2C to control LightShow16's channels. The board drives up to a total of 144W of LEDs simultaneously (max 96W per channel), and is also capable of driving DC motors, actuators, and other devices.

Older Projects (Archive)

Information about some of my older projects can be found here.