Designing and building autonomous UAV systems, flight computers, and real-world engineering hardware from first principles. Focused on avionics, embedded systems, and autonomous flight.
Interested in sponsoring a component, partnering on a build, or discussing engineering applications? I respond to every message.
Each system below was physically designed, fabricated, wired, and tested. Click any to read the full engineering case study.
Custom 850mm CF quad with INAV autopilot, MAVLink telemetry, and a Pi Zero 2W NDVI imaging payload. Full photogrammetry pipeline via WebODM.
Sounding rocket with custom ESP32 avionics, BMP280 altimetry, dual LoRa 915MHz telemetry, and full flight state machine. Designed in Onshape, simulated in OpenRocket, built and flown.
Compact 4-port USB hub PCB built around the SL2.1S controller, featuring two USB-C and two USB-A ports in a minimal custom board layout.
Custom NFC-enabled PCB business card that transmits a URL on tap and lights up an LED — powered entirely wirelessly from your phone.
Off-grid real-time GPS tracker on LilyGO T-Beam with Meshtastic, MQTT relay, and live Leaflet.js map dashboard. Trail-tested with 10-satellite lock.
OSCAR is an endurance-optimized autonomous agricultural mapping quadcopter designed and built from first principles. The platform integrates a custom-fabricated carbon fiber airframe, a full MAVLink telemetry layer, distance-based NDVI image capture, real-time geotagging, and a WebODM photogrammetry pipeline — all developed without pre-built software frameworks.
This is not a kit build. Every subsystem — structural, electrical, and software — was designed, fabricated, and validated independently.
Design a low-cost, field-deployable UAV capable of conducting autonomous NDVI agricultural mapping missions with a target endurance of 25–30 minutes, sub-$500 total build cost, and a custom ground-up software pipeline replacing expensive commercial mapping solutions.
The frame uses 16mm round carbon fiber tubing (2mm wall thickness) with 3D-printed PETG-CF structural connectors. Round tubing was selected specifically for internal wire routing — all motor phase wires run through the hollow arm cores, eliminating exposed wiring and reducing aerodynamic drag.
Motor mounts are round clamp-style PETG-CF blocks that grip 45mm of arm tube. Nylon M3 bolts are used on the center plate stack for electrical isolation from frame vibrations. Steel M3 hardware is used on motor mounts where structural clamping load requires higher shear strength — a deliberate mixed-materials decision based on load path analysis.
The electrical stack is organized around a Matek H743 Slim V3 flight controller running INAV firmware, paired with a 4-in-1 ESC stack for clean signal routing and reduced wiring complexity. Motor telemetry is returned via DSHOT600 bidirectional protocol.
The companion computer is a Raspberry Pi Zero 2W connected to the flight controller over hardware UART at 115,200 baud using the MAVLink protocol. This enables real-time GPS coordinate streaming, battery state monitoring, and flight mode awareness — all of which feed the autonomous imaging pipeline.
The imaging system uses a Raspberry Pi NoIR Camera v2 with a 680nm bandpass filter mounted in the NIR channel to approximate near-infrared separation for NDVI calculation. This achieves multispectral-quality vegetation mapping at ~$3 filter cost vs. $400+ commercial sensors.
Photo capture is triggered using a Haversine great-circle distance formula rather than a fixed time interval. The system calculates the great-circle distance between the last capture coordinate and the current GPS position — triggering the shutter every 5 meters of ground track. This corrects for variable airspeed, crosswind drift, and heading deviations inherent in time-based sampling.
NDVI is computed per-pixel using the standard formula: (NIR − Red) / (NIR + Red). Images are geotagged in real-time from MAVLink GPS and stitched using OpenCV before ingestion into the WebODM API for photogrammetric orthomosaic generation.
STRATO is a custom sounding rocket with a fully self-designed avionics system. The flight computer is a LilyGO T-Beam V1.2 — an ESP32 module with integrated GPS, LoRa radio, and OLED display. The complete structural design was modeled in Onshape, flight-simulated in OpenRocket, physically fabricated, and successfully launched.
Design, build, and fly a custom sounding rocket with a self-designed avionics bay capable of real-time telemetry, barometric altitude logging, GPS positioning, and onboard video — using commercially available embedded hardware repurposed for aerospace applications.
The airframe features an ogive nose cone (3D printed) selected for its low drag coefficient at subsonic velocities. Fins use a clipped delta planform cut from balsa stock and hand-sanded to an aerodynamic profile. Stability margin was tuned to ~1.9 calibers — within the accepted 1.5–2.5 cal range, avoiding the over-stability threshold (~3.47 cal) that would cause the rocket to weathercock aggressively into wind.
Total length: 105 cm. Simulated apogee: ~559 m. Construction used phenolic tubing, epoxy primary joints, and hot glue secondary fills at the fin can.
The avionics bay was designed from scratch in Onshape with custom mounting brackets for each component. The system runs a complete flight state machine with the following states: IDLE → LAUNCH_DETECT → BOOST → COAST → APOGEE → DESCENT → LANDED — transitions driven by BMP280 barometric altitude rate-of-change deltas.
Two LoRa 915MHz modules provide live telemetry: one onboard, one at the ground station. Telemetry data includes altitude, GPS coordinates, flight state, and battery voltage streamed at 1Hz throughout flight.
The rocket was successfully built, passed structural inspection, and launched. The avionics system executed all state machine transitions correctly through the flight envelope. Live LoRa telemetry was received throughout flight. The custom avionics bay demonstrated structural integrity under flight loads.
TrailBeam is a real-time GPS position tracking system designed for terrain navigation environments without cellular network coverage. The system relays live GPS coordinates from a handheld device to a mapped dashboard without requiring any carrier infrastructure.
Build a compact, self-contained GPS tracking and visualization system deployable in environments with no cellular coverage. Target: 10+ satellite lock and a live web-mapped trail display.
A LilyGO T-Beam running Meshtastic firmware connects to a phone hotspot WiFi network and publishes GPS position data over MQTT at configurable intervals. A Python subscriber script receives the MQTT packets and writes coordinates to a local data feed consumed by a Leaflet.js dashboard — which plots the live trail as a polyline on a tile-mapped background.
The architecture eliminates cellular dependency: the T-Beam GPS module acquires satellite fix independently, WiFi is used only for local network relay to the receiving laptop. LoRa radio capability is retained for future mesh networking extension.
Deployed and trail-tested over a complete outdoor route. Achieved 10-satellite GPS lock with stable position hold throughout. Position updates transmitted and mapped at approximately 30-second intervals. Trail polyline extended correctly in real-time on the Leaflet.js dashboard. System operated reliably throughout the test duration with two noted MQTT packet drops.
Matrix is a compact 4-port USB hub PCB designed around the SL2.1S hub controller. The board exposes two USB Type-C ports and two USB Type-A ports, consolidating multiple connections into a single clean footprint.
I'm constantly juggling hardware at my desk microcontrollers, dev boards, programmers, peripherals. Every session turned into a cable management nightmare and I kept running out of USB ports at the worst moments. I wanted something small clean, and built with purpose. Matrix started as a simple idea: what if I just made my own?
Built around the SL2.1S USB 2.0 hub controller. Power filtering and decoupling capacitors are distributed across the board to ensure stable operation across all four ports simultaneously.
Mach Card is a custom PCB business card with an embedded NFC antenna. Tap it to any NFC-enabled phone and it transmits a URL instantly. The card also lights up an LED using energy harvested wirelessly from the phone's NFC field.
I wanted a way to share my links and contact info that felt personal and technical at the same time. A paper business card felt boring. So I designed this as a way to learn PCB design while making something I'd actually use and hand out.
The antenna is tuned to 13.56 MHz for NFC. Harvested RF energy drives a small LED for a visual tap confirmation. Decoupling and power filtering are included throughout to keep the circuit stable under varying phone NFC field strengths.