Posts in Projects

Docker for SW Development

This is from a lunch-n-learn I hosted which aimed to showcase the features and advantages of using docker during the development process. It includes with a few tutorials on how to use it.

Read more ...


Git basics

This is from a lunch-n-learn I hosted. Yet another intro to git is not necessary on the internet, but I wanted to store mine someplace easily accessible for when I need it again. This introduction is geared towards Software Engineers and touches on some of the inner workings/concepts git employs.

Read more ...


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 ...


Unified Messaging Solution for Small UAS

A major challenge I’ve repeatedly encountered while working in embedded software is communication protocols in a heterogeneous and evolving system. The main difficulty lies in obtaining modern messaging system conveniences while supporting the lowest-common denominator in your system (ie: a tiny Cortex-M0 running in the system).

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 ...


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 [Old]

This page describes how I initially implemented this website back in 2018. I’ve since moved to a much simpler solution using Sphinx Docs and ablog

Read more ...