Personal projects related to robotics and mechatronic systems.

Long Range FPV Drone

I designed the frame in CAD, all 3D-printed mounting components, and validated the build through multiple design iterations. The carbon fiber frame is machined by fabrication partners. Full FPV with camera and live video.

Powered by 1–2S 18650 Li-ion, this drone achieves 20-25 minutes flight time (hovering or cruising). GPS integration enables waypoint navigation and GPS-safe rescue on Betaflight, with support for Betaflight, iNav, and ArduPilot on various flight controllers.

Long Range FPV Drone (CAD render) Long Range FPV Drone (real)

Flight demo running DJI O4 VTX system. Flight performance is identical between the digital and analog; O4 simply replaces the analog video feed with a cleaner digital signal.

Nori F411 - Custom PCB Flight Controller

A custom flight controller PCB designed in Altium Designer, built around the STM32F411 MCU with an onboard MPU6050 IMU providing gyroscope and accelerometer data for flight stabilization. Designed to run a custom port of Betaflight firmware tailored for this board, with the autopilot control stack derived from my UAV Controller project.

Supports a range of RF link protocols for flexible integration: ELRS (ExpressLRS), TBS Crossfire, MAVLink, and my own custom RF protocol — allowing it to work across different ground stations and telemetry setups.

Nori F411 PCB (2D layout) Nori F411 PCB (3D render)

Micro FPV Drone

Fits in the palm of your hand—smaller than off-the-shelf micros like the Tinywhoop 65-class. Fully custom build; nothing like it on the market. I designed the frame in Fusion 360 (MCAD), all mounting components (3D-printed), and iterated on the design. I experimented with both 3D-printed frame and carbon-fiber-printed frame at this scale; both are viable. For the production build, the carbon fiber frame was machined by fabrication partners. Equipped with FPV camera and live video footage.

Micro FPV Drone

UAV Controller

Full-stack quadcopter control system with ROS 2, ROS 2 simulation (Gazebo + RViz), and a custom communication protocol I built from scratch.

  • Controllers (multiple options): cascaded PID, LQR, MPC (C++ for ROS; Python for standalone sim)
  • ROS 2 simulation workflow: Gazebo + RViz for system integration, visualization, and controller testing
  • Path planning (multiple options): A*, RRT, RRT* across plain, forest, and mountain terrains; fully adjustable via config
  • Safety gate: validation, limiting, watchdog
  • TX/RX stack: ESP32 (ESP-NOW) for indoor testing; outdoor comms use LoRa — ELRS, plus two custom stacks: one on 2.4 GHz and one on 433 MHz; CRSF/SBUS/PPM bridging; GPS support for autonomous navigation
  • Standalone Python-based simulator for fast iteration without ROS: quad pose visualization, dynamics simulation, and interchangeable controller/path-planner modules
GitHub Repo
UAV Controller forest terrain simulation
UAV Controller Gazebo simulation view
Gazebo simulation — RViz visualization and controller testing
5-inch drone used for TX/RX testing
5" drone build used to test custom TX/RX communication stacks

ESP32 LiDAR Bot

ESP32-C3 mobile robot with two DC motors, a motor driver, and a 360° LiDAR. Modes include manual teleop, LiDAR-based wander, mapping, and obstacle avoidance.

A browser interface renders the live LiDAR point cloud. Repo also keeps V1 — the original WiFi / ESP-NOW browser-controlled RC car with differential and omni drive variants.

Deployed as a target bot for a lab evaluation where students programmed their robots to intercept it — when I was a TA for a mechatronic systems course.

GitHub Repo

Wolfrom Bilateral Gearbox Actuator

A compound Wolfrom bilateral gearbox with high reduction ratio and meaningful backdrivability, fabricated entirely on a desktop FDM 3D printer. Useful for robotic arm joints, legged actuators, and force-controlled manipulation.

Based on my published research paper, where I co-optimized gearbox design parameters by combining Taguchi Orthogonal Arrays with Bayesian Optimization. One configuration identified through this method — 63.6:1 reduction ratio, backdrivable under 0.35 Nm, 49% score improvement over the Taguchi baseline.

Wolfrom Bilateral Gearbox Actuator Wolfrom Bilateral Gearbox Actuator

Manual Racing FPV Drone

3.5" quadcopter with STM32F4/F7 flight controller, 3–6" battery (typically 4S LiPo)—built for freestyle and racing, very fast.

Frame designed using topology optimization (Generative Design, Fusion 360). Iterated over multiple materials and geometry revisions, tuned using flight controller blackbox logs to validate structural and flight performance at each step. Final frame fabricated in carbon fiber. Custom mounting and integration. Full FPV with camera and live video.

Manual Racing FPV Drone (CAD) Manual Racing FPV Drone (real)

7 DOF Robot Arm

Panda Franka 7 DOF arm. Robotic manipulation system for pick-and-place operations. Path planning: RRT and potential field—reach the goal while avoiding collisions and obstacles. Forward and inverse kinematics; vision-based object detection.

GitHub Repo
7 DOF Robot Arm

Differential-Drive Mobile Robot

Semi-autonomous mobile robot with web interface. Features: localization-based navigation, wall follow, manual control for target tracking. PID control via motor encoders; position/orientation from Vive tracker integration. RGB LED effects and wheel system live visual feedback. Web-based control: point somewhere, the robot goes. Main board ESP32 for wireless; multiple microcontroller boards.

Differential-Drive Mobile Robot Differential-Drive Mobile Robot

RL Racing Drone

Sim-to-real reinforcement learning control stack for quadrotors. End-to-end system to deploy PyTorch RL policies on real hardware using ROS 2, Betaflight MSP, and ESP32 (CRSF/RC override). Designed for real-world deployment: deterministic control paths, explicit authority handoff, hardware-enforced safety, recoverable failure modes. RL inference on onboard SBC; ROS 2 as control/safety layer; ESP32 enforces RC-side arming and AUX; physical kill always overrides software. FPV not yet equipped.

GitHub Repo
RL Racing Drone

Nori AIO - Custom ESP32 Flight Controller (PCB)

Custom PCB designed in Altium Designer — a breakout-style all-in-one board for ESP32 with motor drivers integrated, enabling full flight control on a single chip. "Nori AIO" stands for Nori (this site) and AIO (all-in-one). This is the ESP32-based prototype, which isn't supported by mainstream firmware, so I wrote my own.

Nori AIO PCB (Altium design) Nori AIO PCB (real)

Additional Projects

Custom Embedded Linux Platform — Milk-V Duo S

Board bringup, custom toolchain, and build pipeline for the Milk-V Duo S (RISC-V/ARM64 SBC) for lab swarm robotics research. Built a ROS 2 / CycloneDDS bridge so the boards - too constrained for ROS 2 - can communicate with a centralized PC that publishes and subscribes over standard ROS 2. Core platform is in a private lab repo; an earlier Ubuntu port is public. Ubuntu Port Repo

FPV Drone Simulator

Browser-based FPV trainer built with Three.js. Twin-stick controls (WASD + mouse or IJKL), acro and angle flight modes, adjustable drone profiles, and multiple weather/lighting environments. Open Demo

PID Controller Visualizer

Interactive browser demo of cascaded PID loops for altitude and pitch control. Tune P/I/D gains live, switch between step/sine/square setpoints, inject wind gusts, and observe overshoot and integral windup in real time. Open Demo

Early-Stage UAV Variants

Several early-stage quadcopter builds, each exploring a different approach to flight control from the ground up—rather than relying on off-the-shelf flight controllers or plug-and-play stacks. One of them (pictured) was built on perfboard with an ESP32-C3, 4 MOSFETs, and an IMU driving 4 brushed DC motors, running a PID loop in Arduino to stabilize from raw IMU data. For anyone who truly wants to understand how a system works, it is better to build it from first principles than to reach for a pre-made solution.

Prototype Quadcopter

UAV Testing Tools

A suite of tools built around UAV development and testing. Includes a custom test rig for securing drones during static thrust runs, flight controller software, GPS module software with calibration tooling, a gesture-based test controller—an IMU and RF transceiver mounted on a handheld board that lets you fly the drone with hand movements—testing scripts, and a web-based drone movement simulator that was later superseded by the ROS 2 simulation stack in the UAV controller project.

UAV Test Rig

Mechanical Gripper

Physical build of my claw machine simulator.

Range Finder Tools

Built multiple distance-sensing tools using ToF and ultrasonic sensors for calibration, validation, and rapid integration tests.

Thermal Sensor Mobile Bot (Toast-E)

Differential-drive robot with thermal imaging streamed to a web browser. ESP32-based; uses ESP-NOW for wireless joystick control and AMG8833 8×8 thermal sensor. Live heatmap view with bilinear interpolation upscaling (64×64) for smoother visualization. GitHub Repo

← Back to Home