A Kalman Filtering Library written in C for embedded systems. The library allows you to implement an estimator for both linear and nonlinear systems (via an EKF or SOF). The filter uses only statically allocated memory, and is designed to run in the most constrained environments and systems.
μKal Website


A small linear algebra package to compute various matrix/vector operations. The library is optimized to work on microcontrollers and embedded environments, but can be used anywhere C can be compiled. All μLAPack functions are "safe" in that the matrix/vector operations are checked for initialization and mathematic dimensional legality before an operation takes place. The library contains various operations and manipulations that can be configured to your needs. The library can be configured to run safely in even the most constrained environments where memory allocation is a concern. μLAPack contains functionality to assist in your matrix math needs for feedback control, statistical analysis, data processing, filtering, estimation, basic algebraic computation, and machine learning.
μLAPack Repository

Masters Thesis in Computer Engineering

I developed a set of confidence-based field prediction and a path planning methods for autonomous exploration vehicles.
Masters Work Collection

The Jay Flight Controller

Jay is the custom flight controller software package written for my senior design project, PAVx. This package includes the feedback controller for a quad-copter flight control alongside the drivers and protocols for a 9DOF IMU, IR camera, wireless communication, and GPS. The software was intended to run on a custom made all-embodying printed circuit board which contained an Atmel AVR ATmega 328P, but could also be run on any AVR microcontroller with slight modifications. Jay enables a pod of drones to communicate and scan an unknown area both aerially and autonomously. The aerial pod-aggregated data feeds to a display on a ground station in real time.
Code Repository

Pod-Based UAV Heat Seeking

By simulating pod-UAV flight and an inverted distance weighting algorithm, this project allows a simulated pod of drones to work together to predict unknown points on a field.
Code Repository

snOS - Sensor Node Operating System

snOS is a framework built to assist the creation of low-cost and low-powered IoT systems. With networking capabilities built-in, two or more microcontrollers can run snOS and create a mesh of sensor nodes that can ultimately connect to the internet. A controller in a snOS network could subscribe and publish messages to another snOS device on the network. Messages have the ability to interrupt the operation and thread execution of other controllers in the network, creating a real-time event-driven IoT network.
Code Repository

Power Grid Modernization Research Lab

My research involved creating a controller board and the firmware for smart household appliances. The appliances had the ability to be remotely monitored and controlled
Code Repository

Smaller projects of mine can also be found here.