Posts in Projects

Spying on a CANOpen bus

CANOpen is a protocol stack that sits on top of a normal CANBus. Recently I found myself needing to monitor the traffic between 2 devices on a CANOpen network. Monitoring a CANbus by itself is easy to do with a little Python. Where I ran into difficulty was interpreting the raw CANbus frames into CANOpen messages. Here’s how I solved that.

Read more ...


Defining CANBus messages with a DBC file

DBC files are a standard way to define the messages that will be transmitted over a raw CANBus. While working with this format I found it easy to find tools that could interpret, use, and generate DBC files. However I had a hard time finding resources to describe the format and schema of these files. This post describes some of the schema details I found the most helpful, many of which I had to learn by digging through the source code of tools that work with DBC files. Personally, I find examples the easiest way to learn/understand schema basics, so I’ll use that here while also describing the schema itself.

Read more ...


Embedded Development Primer

This post is meant to be an overview of some principles and practices I have found helpful for professional baremetal embedded development. This is meant for people who want to have total control over their embedded development environment and codebase.

Read more ...


LS-1: Modular Synth

The LS-1 is a modular oscillator and sequencer, and includes 2 LFO’s (low-frequency oscillators), one external oscillator, and the oscillator attached to the sequencer. The sequencer itself is made up of a counter which acts as a LFO/clock divider, and dual muxes to select the feedback resistance and led to display. The counter outputs and mux select inputs have ports on the front-panel allowing the user to mix and match LFO divisions with mux selects, thus creating custom sequences.

Read more ...


Pallet Desk

As I finished up my sophomore year at university, I realized that I needed my own desk. At that point I had lived in three different apartments. All 3 of them had desks provided, and all of those desks were mediocre at best, downright broken at worst. What’s worse is at the time I worked from home, which meant I needed a reliable desk. With the summer about to hit, and plans to work full-time from home, I knew I needed something fast. Here’s the end result:

Read more ...


My Website

Starting out with this website, I had essentially no knowledge of modern web technologies. I knew that I wanted something modern but also easy to maintain that I could use well into the future.

Read more ...


Darkstar Quadcopter

The Darkstar is a RC quadcopter with the ability to fly autonomously through pre-designated waypoints, using advanced estimation techniques and object avoidance.

Read more ...