Category Academic

Testing Cross Compiling with QEMU

Having to frequently set up cross-compilers, I figured it would be interesting to write out my current understanding and see what gaps I have. I found it educational to set...

Playing Around With JTAG

While this wasn’t a particularly novel project, I spent some time trying to better familiarize myself with how the JTAG interface works.

Building a TIS100 Node for an FPGA

It’s been awhile since I used an FPGA toolchain, so I was looking for a good project to use as a refresher.

Side-channel Attacks Using the Chipwhisperer

I finally had a chance to dig into the chipwhisperer. It’s a learning tool to teach about hardware security vulnerabilities like Side-channel attacks.

Heart Monitoring

A project at the Karlsruhe Institute of Technology, in Germany, to use accelerometers to track heart motion to aid in robotic surgery.

Autonomous Drifting RC Car

As part of a project for the machine learning lab at Cornell, I did the hardware and some of the software to make a stock RC car autonomously drift though...

FPGA Localization of Robot from its Beeps

Final project for ECE 576 at Cornell, click here for the project write up

Persistence of Vision Clock

Final project for ECE 476 at Cornell, click here for the project write up

Sumo Robot

Final project for mechatronics. Ended up winning first prize in the sumo robot competition.

Category Hardware

Sad Pumpkin Failure

My failed attempt to make an IoT nightlight.

Pixels Dice Box

I made an IoT dice box to combine two of my favorite open source LED projects, Pixels Dice and WLED.

Writing an Arduino library for Pixel Dice

I wrote a library for connecting Pixel dice to the ESP32 mcu and published it for Arduino and PlatformIO.

Custom Sound Board for Pixel Dice Using QPython

Well the Pixels Dice KickStarter I supported like 3 years ago finally came in. I wanted to do something fun with them before I played my next TTRPG session, so...

Adding Custom Songs to a Toy Guitar

A friend wanted to use a toy guitar as a prop for a halloween costume, and they asked if I could swap out the sound effects with playing some song...

Toy Controller WiFi

A friend of mine gave me a baby toy to hack awhile back, and I finally got a chance to take a crack at it.

Cat Door Sensor

I added a cat door to one of our windows to give our cat a bit more freedom to make up from our lack of attention due to the baby....

Custom PCB Magic Card Game Life Tracker

I had my first circuit board printed. I made an extremely over engineered life total counter.

Haunted Doll Keyboard with VUSB

I added a USB cable to a doll which would be detected as a USB keyboard, and give a personality quiz through notepad. The user starts and responds to the...

Two Keys Wedding Gift Box

I made a decorated box that opens when a magnet key is placed on both sides.

Logging a Cheap Air Quality Monitor

With fire season approaching in California I wanted to get a air quality monitor to see how bad the air is over time. I thought I’d do another reverse engineering...

Adding Wifi to a Weather Station

I bought a cheap weather station with the intent of adding networked data logging. I ended up reverse engineering both the RF transmission, as well as the inter-chip communication at...

Setting Up GNURadio and Tracking Planes

I bought a cheap software defined radio (SDR), and tracked planes in realtime with ADS-B. This was a bit of a warmup for a bigger project I wanted to use...

Hacking a Yo Digital Microscope

Since the last article was on the female side of fertility why not switch to the male? Yo produces a test kit to measure sperm count. It’s main selling point...

Tearing Down a Digital Ovulation Tester

In starting to try to have a baby, my wife got a digital device to track her hormones. Who am I to turn down an opportunity to reverse engineer something?...

A Sun Following Chair for my Cat

I wanted to do a quickish project over my time off for the holidays. I had a recently broken a coffee grinder, and it inspired me to automate a chair...

Internet Cutoff Switch

I had a really cool 3 position key switch that I’ve been trying to come up for a use for. I decided to make an IoT controller that could turn...

Icosahedron Travel Globe

Well it’s been awhile since we’ve been able to travel, so to feel better I decided to make a memento to the big trip Maria and I went on last...

Playing Around With JTAG

While this wasn’t a particularly novel project, I spent some time trying to better familiarize myself with how the JTAG interface works.

Building a TIS100 Node for an FPGA

It’s been awhile since I used an FPGA toolchain, so I was looking for a good project to use as a refresher.

Side-channel Attacks Using the Chipwhisperer

I finally had a chance to dig into the chipwhisperer. It’s a learning tool to teach about hardware security vulnerabilities like Side-channel attacks.

Litter Box Reminder

Another simple “home automation” project. My wife mentioned it would be nice to have a way to keep track of when the cat litter was last cleaned. This is a...

Web Based Door Control Update

Another update to Web Based Door Control. Here I take the path of least resistance to add Google Assistant integration and uptime monitoring by integrating with Blynk, IFTTT, and UptimeRobot....

Fire Emblem Lights

As gift for my wife’s birthday I wanted to make something to celebrate our shared time with the game Fire Emblem Three Houses. I was originally inspired by a light...

AWS IoT Setup

As a followup to NodeMCU Development, I decided to connect my project to the AWS IoT cloud to see what that entailed. Turns out, it’s a huge amount of headache...

NodeMCU Development

I’m starting another electronic art project, and decided to use the NodeMCU for the processor. It’s cheap, easy to setup, and has WiFi. However, when I previously used the board...

Laser Stars Revisited

During some time off, I decided to rewrite the laser_stars (http://www.robopenguins.com/laser-stars/) code using the ROS framework. During the original project I ended up creating a lot of the configuration /...

Piano Repair

Today I decided to break out a Alesis Q45 midi keyboard that I’ve had lying around. Much to my dismay, my computer had trouble detecting it. Looking at the device...

Laser Stars

This is a bit of a weird one. I’m not sure what drew me to this project, but I decided to do a project to use a laser to draw...

Phone Puzzle

This is another old one from back in college. I stuffed a microcontroller in a rotary phone to act as a stage in a scavenger hunt puzzle. When the phone...

Arts and Crafts Odds and Ends

Here’s a bunch of other old projects I dug up while updating the site that I’m throwing together into a pile.

K40 Laser Cutter

Maria got me a k40 laser cutter for my birthday!

Wreath Pixel Display

This idea was based on the concept of making a “Sound Catcher” pixel display. I’ve been wanting to make this for a long time, but only recently made the time...

High Voltage Lifter

One more high voltage project from highschool. This is a really simple ion thruster setup called a “lifter”

Potato Cannon

Another classic, I actually modified this one over the course of a couple years making a super sketchy cordless phone controlled version.

Pong Clock

Wow this is an old one. I’ve decided to go back and write up some of the first projects I did.

Hand Puzzle

Another set of puzzle pieces I made back in the day.

Flower Calculator

I wanted to do another electrical project that focused on aesthetics. While looking at thrift stores for material for another project I saw some pieces that inspired me. I decided...

Web Based Door Control

After have locked myself out of my apartment one too many times, I decided that running to make a keyless entry system. I’ve been looking for a project to use a Raspberry...

Object to Be Destroyed

I decided to recreate a sculpture I saw while in Spain for my Optometrist to be brother. A very simple project, but I had fun making the lenticular eye.

Infinity Mirror

Infinity mirrors are an optical illusion that gives the impression of a long corridor, by sandwiching some lights between two mirrored surfaces. I’ve been interested in trying to make a...

Simple Doorbell Switch

Here’s a quick hack I through together to prevent jerks from ringing my doorbell late at night.

Blinky Statues

Over the holidays I wanted to come up with a simple project that could be somewhat streamlined for “mass production”. I’ve always liked working with clay and decided to make...

Outlaw Star Gillium II Clock

My brother and I used to watch the anime Outlaw Star together as kids, so I decided to get him something based on the show as a gift this year. Being...

Heart Monitoring

A project at the Karlsruhe Institute of Technology, in Germany, to use accelerometers to track heart motion to aid in robotic surgery.

Autonomous Drifting RC Car

As part of a project for the machine learning lab at Cornell, I did the hardware and some of the software to make a stock RC car autonomously drift though...

FPGA Localization of Robot from its Beeps

Final project for ECE 576 at Cornell, click here for the project write up

Persistence of Vision Clock

Final project for ECE 476 at Cornell, click here for the project write up

Book Safe

A hollowed out book that works as a keyboard controlled locking safe.

Sumo Robot

Final project for mechatronics. Ended up winning first prize in the sumo robot competition.

Category Personal

The Random Projects I've Had Time For

I’ve had a few projects I’d done kicking around that didn’t really warrant their own articles.

Pathfinder Lore Letters

I’ve been making in universe letters and posters as part of a Pathfinder game I’ve been playing. They started out as something my character roleplayed producing, but they’ve become a...

Running Card Conjurer Locally

Unfortunately, the custom magic card creation tool Card Conjurer has been taken down by Wizards of the Coast. However, you can still use the tool if you run it locally....

Phoenix Wright Reenactment of Alex Jones Trial

After watching a clip from the insane Alex Jones Cross trial, I thought it would be funny to make a Phoenix Wright reenactment.

A Few Small Baby Projects

While I don’t have much time to make things, I have managed to do a few small projects involving my daughter.

Laser Engraving Wooden Boxes

I recycled some wooden boxes into card organizers. Mostly an effort in making art suitable for the laser cutter .

Making a Custom Hellboy Magic Deck

For an update on the custom card creator Card Conjurer mentioned in this article see this update: Running Card Conjurer Locally

A New Robopenguin Enters the World

My daughter was born 12/30/2021. This project was certainly more of an effort from my wife than me, though I saved the 100th article spot for the occasion.

99th Article Retrospective

I realized that I’m approaching my 100th article on this site. I wanted to take a look back at over the last 18 years of making things and see how...

TV Mount Carpentry

I’ve been doing some entry level carpentry to make the TV’s around the house a little weirder.

Printing Custom Magic Card Proxies With MPC

After playing a game of Magic the Gathering with a friends kids, I decided to see if there was a way to get back in the game without taking out...

Hacking a Yo Digital Microscope

Since the last article was on the female side of fertility why not switch to the male? Yo produces a test kit to measure sperm count. It’s main selling point...

Tearing Down a Digital Ovulation Tester

In starting to try to have a baby, my wife got a digital device to track her hormones. Who am I to turn down an opportunity to reverse engineer something?...

Internet Cutoff Switch

I had a really cool 3 position key switch that I’ve been trying to come up for a use for. I decided to make an IoT controller that could turn...

Dishonored 2 Jindosh Riddle

I wrote a quick script to solve a logic grid puzzle in Dishonored 2. It probably would be a decent tool for solving arbitrary logic grid puzzles.

Painting DnD Minis

For a non-software related project my wife and I recently had a chance to paint some miniatures for our DnD characters.

Litter Box Reminder

Another simple “home automation” project. My wife mentioned it would be nice to have a way to keep track of when the cat litter was last cleaned. This is a...

Exapunks Optimization

For something a little different, I thought I’d look at the process I went through to optimize a solution in the game Exapunks.

Fire Emblem Lights

As gift for my wife’s birthday I wanted to make something to celebrate our shared time with the game Fire Emblem Three Houses. I was originally inspired by a light...

Holiday Crafts

Over the holidays I spent some time on craft projects. Really enjoyed having access to my tools and materials after not being able to craft much while traveling.

Piano Repair

Today I decided to break out a Alesis Q45 midi keyboard that I’ve had lying around. Much to my dismay, my computer had trouble detecting it. Looking at the device...

Souvenir Clock Figurines

On a recent trip to Hong Kong, we visited an area called Cat Street to look for souvenirs. One thing that caught my eye, was a model of mechanical clock...

Gif Editting

I’ve done a little GIF creation and pixel editting in the past, but I wanted to take another stab at making a sprite. I eventually found the awesome free program...

Programming Odds and Ends

Here’s a bunch of other old projects I dug up while updating the site that I’m throwing together into a pile. This time programming!

Phone Puzzle

This is another old one from back in college. I stuffed a microcontroller in a rotary phone to act as a stage in a scavenger hunt puzzle. When the phone...

Arts and Crafts Odds and Ends

Here’s a bunch of other old projects I dug up while updating the site that I’m throwing together into a pile.

Diploma Frame

Finally got around to framing and hanging my undergraduate diploma. I originally wanted to do something a little more elaborate, but after so many years of gathering dust, I decided...

How do computers work?

Awhile back my great aunt asked me for some resources on learning about computers. I’d thought I’d upload the conversation to save it for posterity.

Eye Mobile

As a decorative project for the apartment, Maria and I made a mobile of eyeballs.

Magic Ornaments

Maria got the idea for these ornaments at http://tallystreasury.com/2010/12/paper-ornaments-its-magic/

Magic Box

A gift I made for Maria. Uses mana rocks to unlock a treasure.

Gwyndolin Costume

My 2016 Halloween costume. I made the mask, and Maria made the dress! Almost everything was handmade except for one layer of the skirt, the white wig, and one of...

High Voltage Lifter

One more high voltage project from highschool. This is a really simple ion thruster setup called a “lifter”

Potato Cannon

Another classic, I actually modified this one over the course of a couple years making a super sketchy cordless phone controlled version.

Pong Clock

Wow this is an old one. I’ve decided to go back and write up some of the first projects I did.

Switched to a new host

After having a flaky VPS host for a year or so decided to switch to a new slightly less flaky host. I tried to remove some of the weird custom...

Crimson King Costume

Halloween 2015 costume. It’s loosly based on the Crimson King from Steven King’s Dark Tower series. Here’s the thrift store junk that inspired it.

Hand Puzzle

Another set of puzzle pieces I made back in the day.

King in Yellow Costume

Halloween 2014 costume. It’s loosly based on the King in Yellow https://en.wikipedia.org/wiki/The_King_in_Yellow. Here’s the thrift store junk that inspired it.

Flower Calculator

I wanted to do another electrical project that focused on aesthetics. While looking at thrift stores for material for another project I saw some pieces that inspired me. I decided...

Object to Be Destroyed

I decided to recreate a sculpture I saw while in Spain for my Optometrist to be brother. A very simple project, but I had fun making the lenticular eye.

Infinity Mirror

Infinity mirrors are an optical illusion that gives the impression of a long corridor, by sandwiching some lights between two mirrored surfaces. I’ve been interested in trying to make a...

Simple Doorbell Switch

Here’s a quick hack I through together to prevent jerks from ringing my doorbell late at night.

Blinky Statues

Over the holidays I wanted to come up with a simple project that could be somewhat streamlined for “mass production”. I’ve always liked working with clay and decided to make...

Outlaw Star Gillium II Clock

My brother and I used to watch the anime Outlaw Star together as kids, so I decided to get him something based on the show as a gift this year. Being...

Security Camera From a Webcam

Here’s a quick project that came together the evening before a long vacation. In order to get a little piece of mind I wanted to set up a simple security...

Evilution

This is a very simple evolution simulator.

Book Safe

A hollowed out book that works as a keyboard controlled locking safe.

Web War

This is a simple demo that builds a video game level based on the content of a webpage.

Category Software

Trying Out Rust

For some inexplicable reason, I had a whim to try out Rust. I wanted a project that was very limited on scope, but still “real”. I decided to port the...

Sad Pumpkin Failure

My failed attempt to make an IoT nightlight.

PyPI Proxying for Docker Builds

I wanted to improve our CI system by caching PyPI data locally. I saw that there’s a project to do this, but I didn’t see any good examples actually using...

Pixels Dice Box

I made an IoT dice box to combine two of my favorite open source LED projects, Pixels Dice and WLED.

Backtrace

My battles with trying to generate useful backtraces. Follow up article to Making Linux C++ Crashes Less Chaotic.

Making Core Dumps Useful

Some pointers on using GDB to analyze core dumps. Follow up article to Making Linux C++ Crashes Less Chaotic.

Making Linux C++ Crashes Less Chaotic

Fear the dreaded “Segmentation fault (core dumped)”? Here’s how I stopped worrying and learned to love the crash.

Writing an Arduino library for Pixel Dice

I wrote a library for connecting Pixel dice to the ESP32 mcu and published it for Arduino and PlatformIO.

Custom Sound Board for Pixel Dice Using QPython

Well the Pixels Dice KickStarter I supported like 3 years ago finally came in. I wanted to do something fun with them before I played my next TTRPG session, so...

Understanding Linux Pipes to Capture a Process's Last Words

For a work tool, I wanted to capture the last output from a process if it crashed. I ended up doing a deep dive into Linux data pipes to accomplish...

Optimizing Searching a File for a Binary Sequence in Python

I recently spent some time optimizing a deserialization tool at work. I wanted to walk through my process for optimizing this Python code.

CLI Murder Mystery

For old time’s sake, I decided to do a quick write up of the cute “educational” mystery game that tests your Bash knowledge https://github.com/veltman/clmystery. This is very reminiscent of the...

Running Syncthing on ancient QNAP NAS

Syncthing is a Dropbox alternative that I’ve wanted to try out. I decided to set it up to run on my decade old QNAP NAS.

Software Bug Hunt

Recently, at work, I was faced with one of the more satisfying bug hunts that I’ve had in awhile.

Server Side Site Analytics

I’m removing Google Analytics from my blog, but I’d still like to see view counts. To do this I’m running my own analysis on the HTTP request logs provided by...

Running Card Conjurer Locally

Unfortunately, the custom magic card creation tool Card Conjurer has been taken down by Wizards of the Coast. However, you can still use the tool if you run it locally....

Phoenix Wright Reenactment of Alex Jones Trial

After watching a clip from the insane Alex Jones Cross trial, I thought it would be funny to make a Phoenix Wright reenactment.

Toy AVR OS

As an educational project I could do purely in software, I decided to make a toy OS for an AVR microcontroller from scratch.

Understanding C Struct Binary Representation

While C structures seem very straightforward, there are some surprising behaviors if you need to get consistent binary representations across different processors and compilers.

Custom PCB Magic Card Game Life Tracker

I had my first circuit board printed. I made an extremely over engineered life total counter.

Controlling WLEDs with Scratch

Scratch is an online visual programming tool meant to introduce children to programming. I made an extension that allows the language to control LEDs through a WLED controller.

Haunted Doll Keyboard with VUSB

I added a USB cable to a doll which would be detected as a USB keyboard, and give a personality quiz through notepad. The user starts and responds to the...

Two Keys Wedding Gift Box

I made a decorated box that opens when a magnet key is placed on both sides.

Logging a Cheap Air Quality Monitor

With fire season approaching in California I wanted to get a air quality monitor to see how bad the air is over time. I thought I’d do another reverse engineering...

Adding Wifi to a Weather Station

I bought a cheap weather station with the intent of adding networked data logging. I ended up reverse engineering both the RF transmission, as well as the inter-chip communication at...

Setting Up GNURadio and Tracking Planes

I bought a cheap software defined radio (SDR), and tracked planes in realtime with ADS-B. This was a bit of a warmup for a bigger project I wanted to use...

Testing Cross Compiling with QEMU

Having to frequently set up cross-compilers, I figured it would be interesting to write out my current understanding and see what gaps I have. I found it educational to set...

Dashboard to See Dice Stats from Roll20

Unsurprisingly, I am a member of a DnD (Pathfinder actually) group. During the pandemic we switch to playing online with a service called Roll20. We would often joke about the...

Creating a Library for Google Nest API Monitoring

After the Roomba and Reolink, I thought Nest devices would be a snap. How wrong I was. Google made this much, much then it had any right to be.

Reolink Python API with checkmk

Who watches the watchmen? In this case I set up a check to monitor my security cameras.

Roomba Python API with checkmk

I wanted to know what my Roomba was up to without going through official channels.

Creating Home IT Monitoring with checkmk

My home has a lot of computers and other devices on the network. To the point where I decided to set up some monitoring infrastructure.

Hacking a Yo Digital Microscope

Since the last article was on the female side of fertility why not switch to the male? Yo produces a test kit to measure sperm count. It’s main selling point...

Tearing Down a Digital Ovulation Tester

In starting to try to have a baby, my wife got a digital device to track her hormones. Who am I to turn down an opportunity to reverse engineer something?...

A Sun Following Chair for my Cat

I wanted to do a quickish project over my time off for the holidays. I had a recently broken a coffee grinder, and it inspired me to automate a chair...

Scraping a web journal with Selenium

Last year I kept a daily journal using the Journey android app. After falling off the wagon, I wanted to export my entries to a more durable format, so I...

Adding Video Call Effects with OpenCV

After seeing some co-workers use snapchat filters with Zoom, I was inspired to find a simple way to program custom effects that would work with video calls. I skipped out...

Experimenting with GCC Linker

I spent a little bit of time trying to expand my understanding of the GCC linker. I was a bit surprised the hoops I needed to jump through, but I...

Internet Cutoff Switch

I had a really cool 3 position key switch that I’ve been trying to come up for a use for. I decided to make an IoT controller that could turn...

Dishonored 2 Jindosh Riddle

I wrote a quick script to solve a logic grid puzzle in Dishonored 2. It probably would be a decent tool for solving arbitrary logic grid puzzles.

Hacking Capture the Flags

I’ve been learning the basics of penetration testing and reverse engineering by doing capture the flag (CTF) puzzles.

Unity Cat Stopwatch Game

I wanted to make a very basic game to get a bit more experience with Unity, so I made a game base on how our cat stakes out her food...

Icosahedron Travel Globe

Well it’s been awhile since we’ve been able to travel, so to feel better I decided to make a memento to the big trip Maria and I went on last...

Lying Game with React and Websockets

With the current call for social isolation, online games have been a way to get some level of socialization. Since a lot of the people I want to play with...

Exapunks Optimization

For something a little different, I thought I’d look at the process I went through to optimize a solution in the game Exapunks.

Web Based Door Control Update

Another update to Web Based Door Control. Here I take the path of least resistance to add Google Assistant integration and uptime monitoring by integrating with Blynk, IFTTT, and UptimeRobot....

Added SSL to Blog

I finally decided to go through the hassle of setting this blog up with SSL. While normally this wouldn’t be too hard with https://letsencrypt.org/, since I’m using S3 bucket based...

x86 Boot Loading

In my previous careers, I’ve spent a decent amount of time involved with bringing up processors in embedded platforms. However, despite spending a decent amount of time working with bootloaders...

Fire Emblem Lights

As gift for my wife’s birthday I wanted to make something to celebrate our shared time with the game Fire Emblem Three Houses. I was originally inspired by a light...

AWS IoT Setup

As a followup to NodeMCU Development, I decided to connect my project to the AWS IoT cloud to see what that entailed. Turns out, it’s a huge amount of headache...

SQL Murder Mystery

Had some fun playing the SQL murder mystery game at https://mystery.knightlab.com/. Pretty fun way to refresh myself on SQL syntax. I figured I’d record my thought process playing through it....

Fog of War Game

I made a tactics game with a gimmick of espionage in the LibGDX Java framework. This is probably the most complete game I’ve put together.

Sushi Go Arena

I made a framework for testing AI’s made to play the card game “Sushi Go”. Source at https://github.com/axlan/sushi_go_ai . It included a GUI to allow a human to play against...

Gif Editting

I’ve done a little GIF creation and pixel editting in the past, but I wanted to take another stab at making a sprite. I eventually found the awesome free program...

Programming Odds and Ends

Here’s a bunch of other old projects I dug up while updating the site that I’m throwing together into a pile. This time programming!

Laser Stars

This is a bit of a weird one. I’m not sure what drew me to this project, but I decided to do a project to use a laser to draw...

Using NixOS to Manage Hardware Testing Environments

This was a blog post I did for Swift Navigaiton. I appears it’s been lost to the sands of time, so I’m reproducing it here.

Site Moved to AWS / Jekyll

I decided I should probably move my site to a less fragile platform. I’ve been using Wordpress on 000webhost. 000webhost is fine for a free host, but about a year...

OKCompute Analysis Framework

As part of my work at Swift Navigation I’ve done a lot of work analyzing the results of test runs and building CI frameworks to generate metrics or raise alarms based on...

Spirit Island Boardgame Helper

Over the holidays my wife and I had some fun playing Spirit Island. The game describes itself as “The cooperative settler-destruction strategy game”. As a fun project to refresh my...

Visual Studio Code Multiline Find Extension

Visual Studio Code has been my text editor of choice for awhile. I enjoy that it’s a bit out of left field when it comes to the VIM vs Emacs...

Wreath Pixel Display

This idea was based on the concept of making a “Sound Catcher” pixel display. I’ve been wanting to make this for a long time, but only recently made the time...

Version Control Game

I often get ideas to make games, but rarely have the time needed. I had an idea for a game mechanic based on version control, and thought it would be...

Pong Clock

Wow this is an old one. I’ve decided to go back and write up some of the first projects I did.

Time Tagger App (Part 2)

After getting the most basic functionality working I realized I had hit a bit of a dead end. SQLJet was severely limited in how it could manipulate the data. I...

Time Tagger App (Part 1)

I’ve wanted to document my work from start to finish on a project for a while, so I decided to try a screen capture program. I’ve used a bunch of...

A* for 2D path finding

I wrote this almost a year ago, but never posted it since I didn’t get a chance to fully comment the code. Since I probably won’t get around to it...

Scraping Google Maps for Traffic Data

I have a daily commute that I drive down the US 101 highway. The length of the drive can vary immensely with traffic, and I’ve always been curious what the optimal departure...

Security Camera From a Webcam

Here’s a quick project that came together the evening before a long vacation. In order to get a little piece of mind I wanted to set up a simple security...

Evilution

This is a very simple evolution simulator.

Webcomic Viewer

This was another app made to add a specific function I couldn’t find elsewhere. This apps purpose is to view the title text associated with an image. Specifically for webcomics...

Plant Pal

Google Play Link My first published android app. I decided to take a problem that I couldn’t find an existent app for and make a solution myself.

GPS Spoofer

This was an app that I didn’t publish. It used the developer interface to control the phones apparent GPS location over the network. This was just a proof of concept,...

Web War

This is a simple demo that builds a video game level based on the content of a webpage.

Category Android Apps

Spirit Island Boardgame Helper

Over the holidays my wife and I had some fun playing Spirit Island. The game describes itself as “The cooperative settler-destruction strategy game”. As a fun project to refresh my...

Webcomic Viewer

This was another app made to add a specific function I couldn’t find elsewhere. This apps purpose is to view the title text associated with an image. Specifically for webcomics...

Plant Pal

Google Play Link My first published android app. I decided to take a problem that I couldn’t find an existent app for and make a solution myself.

GPS Spoofer

This was an app that I didn’t publish. It used the developer interface to control the phones apparent GPS location over the network. This was just a proof of concept,...

Category Reverse Engineering

Logging a Cheap Air Quality Monitor

With fire season approaching in California I wanted to get a air quality monitor to see how bad the air is over time. I thought I’d do another reverse engineering...

Adding Wifi to a Weather Station

I bought a cheap weather station with the intent of adding networked data logging. I ended up reverse engineering both the RF transmission, as well as the inter-chip communication at...

Dashboard to See Dice Stats from Roll20

Unsurprisingly, I am a member of a DnD (Pathfinder actually) group. During the pandemic we switch to playing online with a service called Roll20. We would often joke about the...

Hacking a Yo Digital Microscope

Since the last article was on the female side of fertility why not switch to the male? Yo produces a test kit to measure sperm count. It’s main selling point...

Tearing Down a Digital Ovulation Tester

In starting to try to have a baby, my wife got a digital device to track her hormones. Who am I to turn down an opportunity to reverse engineer something?...

Scraping a web journal with Selenium

Last year I kept a daily journal using the Journey android app. After falling off the wagon, I wanted to export my entries to a more durable format, so I...

Hacking Capture the Flags

I’ve been learning the basics of penetration testing and reverse engineering by doing capture the flag (CTF) puzzles.

Side-channel Attacks Using the Chipwhisperer

I finally had a chance to dig into the chipwhisperer. It’s a learning tool to teach about hardware security vulnerabilities like Side-channel attacks.

Autonomous Drifting RC Car

As part of a project for the machine learning lab at Cornell, I did the hardware and some of the software to make a stock RC car autonomously drift though...

Category Work

Trying Out Rust

For some inexplicable reason, I had a whim to try out Rust. I wanted a project that was very limited on scope, but still “real”. I decided to port the...

PyPI Proxying for Docker Builds

I wanted to improve our CI system by caching PyPI data locally. I saw that there’s a project to do this, but I didn’t see any good examples actually using...

Backtrace

My battles with trying to generate useful backtraces. Follow up article to Making Linux C++ Crashes Less Chaotic.

Making Core Dumps Useful

Some pointers on using GDB to analyze core dumps. Follow up article to Making Linux C++ Crashes Less Chaotic.

Making Linux C++ Crashes Less Chaotic

Fear the dreaded “Segmentation fault (core dumped)”? Here’s how I stopped worrying and learned to love the crash.

Understanding Linux Pipes to Capture a Process's Last Words

For a work tool, I wanted to capture the last output from a process if it crashed. I ended up doing a deep dive into Linux data pipes to accomplish...

Optimizing Searching a File for a Binary Sequence in Python

I recently spent some time optimizing a deserialization tool at work. I wanted to walk through my process for optimizing this Python code.

Software Bug Hunt

Recently, at work, I was faced with one of the more satisfying bug hunts that I’ve had in awhile.

Using NixOS to Manage Hardware Testing Environments

This was a blog post I did for Swift Navigaiton. I appears it’s been lost to the sands of time, so I’m reproducing it here.

OKCompute Analysis Framework

As part of my work at Swift Navigation I’ve done a lot of work analyzing the results of test runs and building CI frameworks to generate metrics or raise alarms based on...

A GPS Spoofing Work Project

One of my work projects from awhile back popped up on Ars Technica.

Category IoT

Sad Pumpkin Failure

My failed attempt to make an IoT nightlight.

Pixels Dice Box

I made an IoT dice box to combine two of my favorite open source LED projects, Pixels Dice and WLED.

Writing an Arduino library for Pixel Dice

I wrote a library for connecting Pixel dice to the ESP32 mcu and published it for Arduino and PlatformIO.

Adding Custom Songs to a Toy Guitar

A friend wanted to use a toy guitar as a prop for a halloween costume, and they asked if I could swap out the sound effects with playing some song...

Toy Controller WiFi

A friend of mine gave me a baby toy to hack awhile back, and I finally got a chance to take a crack at it.

Cat Door Sensor

I added a cat door to one of our windows to give our cat a bit more freedom to make up from our lack of attention due to the baby....

Controlling WLEDs with Scratch

Scratch is an online visual programming tool meant to introduce children to programming. I made an extension that allows the language to control LEDs through a WLED controller.

Logging a Cheap Air Quality Monitor

With fire season approaching in California I wanted to get a air quality monitor to see how bad the air is over time. I thought I’d do another reverse engineering...

Adding Wifi to a Weather Station

I bought a cheap weather station with the intent of adding networked data logging. I ended up reverse engineering both the RF transmission, as well as the inter-chip communication at...

Creating a Library for Google Nest API Monitoring

After the Roomba and Reolink, I thought Nest devices would be a snap. How wrong I was. Google made this much, much then it had any right to be.

Reolink Python API with checkmk

Who watches the watchmen? In this case I set up a check to monitor my security cameras.

Roomba Python API with checkmk

I wanted to know what my Roomba was up to without going through official channels.

A Sun Following Chair for my Cat

I wanted to do a quickish project over my time off for the holidays. I had a recently broken a coffee grinder, and it inspired me to automate a chair...

Internet Cutoff Switch

I had a really cool 3 position key switch that I’ve been trying to come up for a use for. I decided to make an IoT controller that could turn...

Icosahedron Travel Globe

Well it’s been awhile since we’ve been able to travel, so to feel better I decided to make a memento to the big trip Maria and I went on last...

Web Based Door Control Update

Another update to Web Based Door Control. Here I take the path of least resistance to add Google Assistant integration and uptime monitoring by integrating with Blynk, IFTTT, and UptimeRobot....

Fire Emblem Lights

As gift for my wife’s birthday I wanted to make something to celebrate our shared time with the game Fire Emblem Three Houses. I was originally inspired by a light...

AWS IoT Setup

As a followup to NodeMCU Development, I decided to connect my project to the AWS IoT cloud to see what that entailed. Turns out, it’s a huge amount of headache...

NodeMCU Development

I’m starting another electronic art project, and decided to use the NodeMCU for the processor. It’s cheap, easy to setup, and has WiFi. However, when I previously used the board...

Wreath Pixel Display

This idea was based on the concept of making a “Sound Catcher” pixel display. I’ve been wanting to make this for a long time, but only recently made the time...

Web Based Door Control

After have locked myself out of my apartment one too many times, I decided that running to make a keyless entry system. I’ve been looking for a project to use a Raspberry...

Simple Doorbell Switch

Here’s a quick hack I through together to prevent jerks from ringing my doorbell late at night.

Category Costumes

Arts and Crafts Odds and Ends

Here’s a bunch of other old projects I dug up while updating the site that I’m throwing together into a pile.

Gwyndolin Costume

My 2016 Halloween costume. I made the mask, and Maria made the dress! Almost everything was handmade except for one layer of the skirt, the white wig, and one of...

Crimson King Costume

Halloween 2015 costume. It’s loosly based on the Crimson King from Steven King’s Dark Tower series. Here’s the thrift store junk that inspired it.

King in Yellow Costume

Halloween 2014 costume. It’s loosly based on the King in Yellow https://en.wikipedia.org/wiki/The_King_in_Yellow. Here’s the thrift store junk that inspired it.

Category Electronic Art

Pixels Dice Box

I made an IoT dice box to combine two of my favorite open source LED projects, Pixels Dice and WLED.

Custom PCB Magic Card Game Life Tracker

I had my first circuit board printed. I made an extremely over engineered life total counter.

Haunted Doll Keyboard with VUSB

I added a USB cable to a doll which would be detected as a USB keyboard, and give a personality quiz through notepad. The user starts and responds to the...

Two Keys Wedding Gift Box

I made a decorated box that opens when a magnet key is placed on both sides.

Icosahedron Travel Globe

Well it’s been awhile since we’ve been able to travel, so to feel better I decided to make a memento to the big trip Maria and I went on last...

Holiday Crafts

Over the holidays I spent some time on craft projects. Really enjoyed having access to my tools and materials after not being able to craft much while traveling.

Laser Stars

This is a bit of a weird one. I’m not sure what drew me to this project, but I decided to do a project to use a laser to draw...

Arts and Crafts Odds and Ends

Here’s a bunch of other old projects I dug up while updating the site that I’m throwing together into a pile.

Diploma Frame

Finally got around to framing and hanging my undergraduate diploma. I originally wanted to do something a little more elaborate, but after so many years of gathering dust, I decided...

Wreath Pixel Display

This idea was based on the concept of making a “Sound Catcher” pixel display. I’ve been wanting to make this for a long time, but only recently made the time...

New Scope

Quick demo of my new scope. I finally broke down and got one to help with an audio visualizer project I’m working on.

Magic Ornaments

Maria got the idea for these ornaments at http://tallystreasury.com/2010/12/paper-ornaments-its-magic/

Magic Box

A gift I made for Maria. Uses mana rocks to unlock a treasure.

Pong Clock

Wow this is an old one. I’ve decided to go back and write up some of the first projects I did.

Category Magic the Gathering

Laser Engraving Wooden Boxes

I recycled some wooden boxes into card organizers. Mostly an effort in making art suitable for the laser cutter .

Making a Custom Hellboy Magic Deck

For an update on the custom card creator Card Conjurer mentioned in this article see this update: Running Card Conjurer Locally

Custom PCB Magic Card Game Life Tracker

I had my first circuit board printed. I made an extremely over engineered life total counter.

Printing Custom Magic Card Proxies With MPC

After playing a game of Magic the Gathering with a friends kids, I decided to see if there was a way to get back in the game without taking out...

Magic Ornaments

Maria got the idea for these ornaments at http://tallystreasury.com/2010/12/paper-ornaments-its-magic/

Magic Box

A gift I made for Maria. Uses mana rocks to unlock a treasure.

Category Laser Cutter

A Few Small Baby Projects

While I don’t have much time to make things, I have managed to do a few small projects involving my daughter.

Laser Engraving Wooden Boxes

I recycled some wooden boxes into card organizers. Mostly an effort in making art suitable for the laser cutter .

Two Keys Wedding Gift Box

I made a decorated box that opens when a magnet key is placed on both sides.

Icosahedron Travel Globe

Well it’s been awhile since we’ve been able to travel, so to feel better I decided to make a memento to the big trip Maria and I went on last...

Fire Emblem Lights

As gift for my wife’s birthday I wanted to make something to celebrate our shared time with the game Fire Emblem Three Houses. I was originally inspired by a light...

K40 Laser Cutter

Maria got me a k40 laser cutter for my birthday!

Category Food

Arts and Crafts Odds and Ends

Here’s a bunch of other old projects I dug up while updating the site that I’m throwing together into a pile.

Category Blogging

Server Side Site Analytics

I’m removing Google Analytics from my blog, but I’d still like to see view counts. To do this I’m running my own analysis on the HTTP request logs provided by...

A New Robopenguin Enters the World

My daughter was born 12/30/2021. This project was certainly more of an effort from my wife than me, though I saved the 100th article spot for the occasion.

99th Article Retrospective

I realized that I’m approaching my 100th article on this site. I wanted to take a look back at over the last 18 years of making things and see how...

Added SSL to Blog

I finally decided to go through the hassle of setting this blog up with SSL. While normally this wouldn’t be too hard with https://letsencrypt.org/, since I’m using S3 bucket based...

Site Moved to AWS / Jekyll

I decided I should probably move my site to a less fragile platform. I’ve been using Wordpress on 000webhost. 000webhost is fine for a free host, but about a year...

Category WLED

Pixels Dice Box

I made an IoT dice box to combine two of my favorite open source LED projects, Pixels Dice and WLED.

Toy Controller WiFi

A friend of mine gave me a baby toy to hack awhile back, and I finally got a chance to take a crack at it.

Cat Door Sensor

I added a cat door to one of our windows to give our cat a bit more freedom to make up from our lack of attention due to the baby....

Controlling WLEDs with Scratch

Scratch is an online visual programming tool meant to introduce children to programming. I made an extension that allows the language to control LEDs through a WLED controller.

Internet Cutoff Switch

I had a really cool 3 position key switch that I’ve been trying to come up for a use for. I decided to make an IoT controller that could turn...

Icosahedron Travel Globe

Well it’s been awhile since we’ve been able to travel, so to feel better I decided to make a memento to the big trip Maria and I went on last...

Web Based Door Control Update

Another update to Web Based Door Control. Here I take the path of least resistance to add Google Assistant integration and uptime monitoring by integrating with Blynk, IFTTT, and UptimeRobot....

Fire Emblem Lights

As gift for my wife’s birthday I wanted to make something to celebrate our shared time with the game Fire Emblem Three Houses. I was originally inspired by a light...

Category Cat

A Sun Following Chair for my Cat

I wanted to do a quickish project over my time off for the holidays. I had a recently broken a coffee grinder, and it inspired me to automate a chair...

Unity Cat Stopwatch Game

I wanted to make a very basic game to get a bit more experience with Unity, so I made a game base on how our cat stakes out her food...

Litter Box Reminder

Another simple “home automation” project. My wife mentioned it would be nice to have a way to keep track of when the cat litter was last cleaned. This is a...

Category Baby

A Few Small Baby Projects

While I don’t have much time to make things, I have managed to do a few small projects involving my daughter.