Dhiraj Bennadi

Embedded Software Engineer

I build application-layer firmware in C, backed by HAL designs that keep it portable across hardware. My background spans IoT systems end-to-end, with prior work on electric vehicle charging stacks. Currently working in Med-Tech, shipping embedded software that has to be correct the first time.

M.S. Embedded Systems & IoT — CU Boulder
Based in San Diego, CA / Portland, OR
Stack C / C++ / Python
Comm Protocols BLE, UART, SPI

Project Log

9 components // U1–U9
Time lapse acquisition rig with camera on tripod facing the capture setup
U1

Time Lapse Image Acquisition System

repo ↗

A real-time embedded system that captures and processes images at 10 Hz from a USB camera on a Linux-based Nvidia Jetson Nano.

CLinuxJetson NanoReal-Time
Hand landmark tracking overlay used for gesture-driven video control
U2

Gesture Recognition for Interactive Video

repo ↗

A real-time system using the MediaPipe ML framework for interactive video overlay — gesture-driven zoom in/out, snapshot capture, and session close on a live feed.

PythonMediaPipeComputer Vision
Client-server fitness tracker boards wired to accelerometer and air-quality sensors
U3

Fitness Tracker

A client-server system using Bluetooth LE as the communication protocol, interfacing accelerometer, gyroscope, and air-quality sensors for activity tracking.

BLEEmbedded CSensors
8051 and ESP32 boards wired together for remote UART flashing over Wi-Fi
U4

Remote Communication with 8051

repo ↗

A system for remotely transferring and flashing binaries onto an 8051 over Wi‑Fi via an ESP32, implementing UART to access the bootloader directly.

8051ESP32UARTAssembly
FRDM-KL25Z development board used for the FreeRTOS scheduler implementation
U5

FreeRTOS on KL25Z & Tiva C Launchpad

repo ↗

Implementation of a scheduler, tasks, and priority mechanisms in FreeRTOS, handling interrupts for LED interfacing across two microcontroller boards.

FreeRTOSKL25ZTiva CRTOS
Block diagram of SPI communication between two FRDM-KL25Z boards
U6

Secure Communication on FRDM-KL25Z

Secure communication between two SPI ports using AES encryption, with a custom SPI driver and buffering scheme to prevent data loss in transit.

SPIAESEmbedded C
U7

Command Processor

repo ↗

A Unix-terminal-style command processor built to parse and respond to valid user commands over a UART interface.

CCLIParsing
U8

Google Test Suite with CMake & VS Code

repo ↗

A project scaffold wiring up the Google Test framework through CMake inside VS Code for unit testing C++ components.

C++CMakeUnit Testing
U9

Raspberry Pi Kernel Drivers

repo ↗

Custom Linux kernel modules for Raspberry Pi, including a character device driver, a GPIO driver, and a memory-mapped (mmap) driver built up from a baseline hello-world module.

CLinux KernelRaspberry PiGPIO

Toolbox

languages // protocols // platforms
C C++ Python FreeRTOS UART SPI I2C BLE CMake Linux Git VS Code