It has been very a long time since my day job was writing code, and I still prefer writing code to most other things, so I spend what time I can, well, writing code. I also love playing with different single board computers (SBC) and microcontrollers, so, as you can see here, my biggest list of repositories is here. The repository list below reflects all of my public projects for Raspberry Pi, Arduino, Tessel, Particle, and who knows what else. This page contains links to 34 repositories.
If you find any of these projects useful or helpful, please consider buying me a coffee.
This repository contains the source code for a very simple, but complete, example of how to configure an Arduino project for ESP32 to run separate tasks on each processor core.
Arduino Glowing Pumpkin (Feather & NeoPixel)
This project is very similar to the other Glowing Pumpkin project (below) although this is designed for a huge pumpkin and uses the Adafruit Feather board. I put this pumpkin in my house's front atrium.
Arduino Glowing Pumpkin (Trinket & NeoPixel)
I built a bunch of these years ago and we put them in pumpkins in all of our front upstairs windows at Halloween. The project randomly fades in and out multiple Halloweeny colors (red, orange, purple, etc.) with periodic lightning or electricity flashes. This version uses the Adafruit Trinket board.
Every father helps his kid with is Pinewood Derby car, right? Well I stayed back for as long as I could, watching other fathers do everything on their son's cars, but I couldn't take it anymore. I build, sorry, I helped him build, an Arduino-powered car with an array of LEDs on top that changed their blink pattern based on the orientation of the car. Hehe.
I wanted to reproduce those vacation light timers they sell everywhere but with a realtime clock set via the network (using Network Time Protocol). This one used a commercial 110v relay box which made it safer.
This is an Arduino variant of the Pimoroni Firefly Light. Two stands of little LEDs that fade up and down to create a cool night light.
The original twinkle lights project used to LED strands and it was easy to fade one strand up while the other faded down. For the US Fourth of July holiday, I wanted to use three strands of LEDs (Red, White and Blue), so I made this version of the project that used an array of LED Pins to enable you to have as many strands of lights as you wanted.
I recently joined Oracle as a product manager and discovered the Oracle Education Foundation and quickly volunteered to help in their Hello Circuit Playground program. The program uses the Adafruit Circuit Playground to help teach high school students Design Thinking and microcontroller-based project development. One of our prep assignments was to build something using the Circuit Playground and this is the project I came up with.
Node module that synchronizes the files on a connected CircuitPython device to a local project folder. It provides a one-way sync from the CircuitPython device to the local project folder.
Work in progress (WIP) Lightning detector project.
Flame-Throwing Pumpkin (Arduino)
I always wanted a flame throwing pumpkin, so finally built one. This project uses a Glade Air Freshener, an Adafrui Feather board and a remote control relay board to create a flame-throwing pumpkin.
My children were born in late October, so we always make a big deal out of the holiday. Its also a great opportunity to do some cool projects. Last year I purchased some plastic globes and my wife frosted the inside to make them translucent. We added a microcontroller, microphone, LEDs, and a battery inside and do some cool light flickering based on sounds nearby. It flashes red when it hears a sound.
Glowing Pumpkin Receiver (UDP)
This is the Glowing Pumpkin Xiao 5x5 BFF project with a UDP broadcast listener added to you can control the LEDs from a smartphone or tablet application. The original project changed colors randomly and periodically flashed the LEDs white to simulate sparks or lightning.
This is the Glowing Pumpkin Xiao 5x5 BFF project with a web server added to you can control the app from a smartphone, tablet, of desktop PC. The original project changed colors randomly and periodically flashed the LEDs white to simulate sparks or lightning.
This is a version of the Glowing Pumpkin Xiao 5x5 BFF project that allows multiple devices to synchronize LED Matrix colors so all devices display the same color. I built this project because I wanted to place one of the Glowing Pumpkin Xiao 5x5 BFF devices in each of the front dormers in my house and synchronize the display across all of them.
A new version of my Glowing Pumpkin project - this one uses the Seeed Studio Xiao and the Adafruit 5x5 BFF NeoPixel Matrix.
Pi Remind is a series of projects I built using the Raspberry Pi. Essentially this connects the Pi to my Google Calendar and visually reminds me of my upcoming appointments. This is the very first version, built using the Pimoroni Unicorn HAT (64 LEDs).
This is the second version of my Pi Remind project, built using the Pimoroni Unicorn HAT HD (256 LEDs).
This is the most recent edition of Pi Remind. This one enhances the Pi Remind HD project by connecting it to the Remote Notify device enabling me to automatically indicate to my family when I'm busy and available. My intention is to release the Remote Notify device as a commercial product.
This is the third version of my Pi Remind project, built using the Raspberry Pi Zero and the Pimoroni Blinkt! (8 LEDs).
Pumpkin Controller (FireMonkey)
This is a cross-platform native version of my Pumpkin Controller app created using Embarcadero RAD Studio and FireMonkey.
This is a web application used to control the Glowing Pumpkin Server (HTTP) hosted on Netlify.
Raspberry Pi Relay Controller (ModMyPi)
This project implements a simple web-based application to control the ModMyPi Relay Board. It runs as a Flask application on the Raspberry Pi delivering a simple web app to interact with the relay board.
Raspberry Pi Relay Controller (Seeed Studio)
Along with the Seeed Studio Relay board library, I needed an application to test it, so I built this web-based relay controller application for the Seeed Studio Raspberry Pi Relay Board V1.0. It only supports a single relay board and gives you a simple ui (Bootstrap-based) for interacting with the state of the relays.
As I played with the different relay boards for the Raspberry Pi, I built this timer application that enabled me to turn a relay on and off on a particular scheduled. I built versions of this for Arduino, but the Raspberry Pi platform enabled me to do more interesting things like support dynamic time ranges and turning the relay on or off based on sunrise and sunset times for the current location.
When the Raspberry Pi community sent the Raspberry Pi Sense HAT to the International Space Station through the Astro Pi project, I knew I needed to get one and play with it. The result? A Raspberry Pi-based weather station that uploads data to Weather Underground. This project was published in Make Magazine
Raspberry Pi Weather Station (Simple)
This is a version of the Raspberry Pi Weather Station that uses a simple environmental sensor rather than the Astro Pi board. It's designed to be a less expensive alternative.
Seeed Studio Relay Board Library (V1)
I love playing with relays, so I've picked up every relay board I can find for Raspberry Pi. One of them is the board from Seeed (three E's, not sure why) Studio. When I started playing with their board, I noticed that example code and detailed instructions were lacking, so I repackaged their code into a Python library and updated the documentation. Seeed later updated their Wiki page for the board to point to my repo here.
Seeed Studio Relay Board Library (V2)
This is an updated version of the Python library for the Seeed Studio Relay Board. In this version, I updated the library to support multiple relay boards.
I'm very interested in JavaScript-based microcontrollers and the Tessel 2 is my current favorite. When I ordered my first couple of Tessel devices, I picked up their Relay module which provides a simple way to programatically control a switch. Of course one of the projects I had to do was a remote garage door opener. This project hosts a web server on the Tessel device and provides a simple interface for opening/closing my garage door. I later built a much more capable version of this on the Particle platform that I've had running in my garage for years now.
I'm very interested in JavaScript-based microcontrollers and the Tessel 2 is my current favorite. When I ordered my first couple of Tessel devices, I picked up their Climate module which provides simple environmental measurements. This is a Tessel-based weather station similar to the Tessel Weather Station (Weather Underground) below; this one uploads its weather data to the AT&T M2X service. At the time I built this, I was doing some freelance writing for AT&T and their IoT platform, and this weather station gave me an excellent platform to send data to their data storage service.
Tessell Weather Station (Weather Underground)
I'm very interested in JavaScript-based microcontrollers and the Tessel 2 is my current favorite. When I ordered my first couple of Tessel devices, I picked up their Climate module which provides simple environmental measurements. With that in hand, what else could I do but build a weather station that uploaded local conditions to Weather Underground.
Word Clock NeoMatrix Wi-Fi Desktop
This is a fork of Andy Doro's Word Clock, updated to use the Feather family of microcontrollers plus Wi-Fi and Network Time Protocol (NTP) to keep the clock accurate.