← udacity portfolio
ml cv other · systems cpp · April 2019

SD Embedded — Mini-car firmware

Embedded C/C++ firmware for a mini self-driving car. PWM, sensor sampling, basic PID — the bottom of the SDC stack.

What it was

Firmware for a small RC-style self-driving car platform — the lowest tier of the autonomy stack. Sample sensors via ADC, drive motors via PWM, and run a simple PID loop closing position error to motor command. Done alongside the SDC nanodegree as a hardware companion to the simulator-only projects.

What I’d do differently with hindsight

What it taught me

Even toy autonomy reveals where the complexity lives. The high-level SDC nanodegree projects (lane finding, EKF, etc.) all assume “I will be handed a velocity setpoint and the car will track it.” This project showed how much engineering hides inside that assumption — calibration, deadzones, PWM linearity, sensor noise. Most autonomy that fails in the field fails here, not in the planner.


Source archive: Shivam-Bhardwaj/SD-embedded (archived)
Writeup last touched: 2026-05-22