karan@embedded:~$ ls projects/ --all

All Projects

~/ble-environmental-sensor-node case study →

Learned BLE from scratch and built a working ESP32-C3 BLE environmental sensor node within two weeks. Extended the project from simulated data to a real I2C temperature sensor, systematically isolated a non-responsive sensor using address scanning, multimeter checks, address-line testing, and replacement comparison, then demonstrated live temperature readings over BLE. Independently captured I2C bus transactions using an unfamiliar logic analyzer.

Why it matters: BLE from an embedded perspective: GATT design, peripheral behavior, sensor publishing, and agent-buildable documentation.

ESP32-C3NimBLEBLE GATTOLEDSensor Node
statusv1.0 working prototype
validation62 Unity tests · 25-case manual matrix · nRF Connect verification
evidenceCase study · GitHub repo · architecture docs · nRF Connect screenshots
~/bluetooth-audio-manager-linux

Linux utility / automation: fixes and toggles Bluetooth audio profiles on PipeWire systems.

Why it matters: Built from a real usability problem; focused on scripting, automation, and Linux troubleshooting.

ShellLinuxBluetoothPipeWireAutomation
~/stm32-smart-sensor-hub

A modular STM32 sensor hub focused on firmware architecture and observability.

Why it matters: Peripheral-heavy firmware with a clean architecture: sensor abstraction, I2C/SPI backends, UART logging, and CLI-based observability.

Embedded CSTM32 HALI2CSPIUARTGPIO
statusworking prototype
validationI2C/SPI sensor backends exercised via UART logging and CLI observability.
evidenceGitHub repo · README
~/vnet-driver

A phase-based Linux virtual Ethernet driver using vnet0.

Why it matters: Shows real kernel-space network driver work: TX/RX paths, ring buffers, NAPI-style polling, statistics, ethtool support, and kernel/user-space debugging.

CLinux Kernelnet_deviceNAPIethtool
statusworking driver
validationTX/RX path exercised with ethtool stats and NAPI-style polling; verified across kernel/user-space.
evidenceGitHub repo · README · driver source
~/mini-ecu-v2

A virtual automotive ECU built on STM32F446RE.

Why it matters: An end-to-end embedded system: FreeRTOS tasks, CAN loopback telemetry, a UART CLI, logging, and a bootloader-oriented layout as a base for OTA experiments.

CSTM32 HALFreeRTOSCANUARTBootloader
statusworking prototype
validationCAN loopback telemetry, UART CLI and logging exercised on STM32F446RE.
evidenceGitHub repo · README · architecture notes
~/stm32-virtual-vehicle-ecu

A modular STM32F4 virtual vehicle ECU with FreeRTOS, CAN, UART and a simple vehicle model.

Why it matters: Distinct from mini-ecu-v2: this one centers on vehicle-behavior simulation. Clean separation between drivers, RTOS tasks, application logic, and a simple simulated vehicle model.

CSTM32F4FreeRTOSCANUART
~/Pseudo-Character-Device-Driver

A Linux pseudo character device driver implementing common file operations.

Why it matters: Understanding the Linux driver lifecycle, file-operation callbacks, and kernel/user-space interaction.

CLinux KernelCharacter DriverFile Operations
~/EE-6314-RTOS

A real-time operating system built from scratch on the TI Tiva TM4C123G (ARM Cortex-M4).

Why it matters: Implements the core RTOS primitives — task scheduling, context switching, semaphores/mutexes and IPC — to understand RTOS internals from the ground up.

CTI Tiva TM4C123GARM Cortex-M4RTOSScheduling