Projects

A selection of things I've built — each links to a short write-up. More on GitHub.

Research & Embedded

NanoProcessor

A nanoprocessor designed in VHDL and synthesized for the Basys3 FPGA — registers, add/sub unit, decoders, and multiplexers implemented from scratch.

  • VHDL
  • FPGA
  • Xilinx Vivado

NPU Playground

Experiments with the NPU on the Luckfox Pico Mini B (Rockchip RV1103) — model conversion to RKNN, quantization, and on-device inference.

  • Python
  • RKNN Toolkit
  • Quantization
  • Edge AI

IntelliBee

Smart beehive monitoring that tracks hive conditions and bee acoustics to protect colony wellness and predict honey yield.

  • TinyML
  • DSP
  • IoT
  • Python

Medibox

Smart pharmaceutical storage on an ESP32 — OLED interface, alarms with NTP time sync, and environment monitoring for safe medicine keeping.

  • C++
  • ESP32
  • IoT

IoT Air Quality Node

ESP32 sensor node measuring dust, TVOC/CO₂, temperature, and humidity, with a live Node-RED dashboard for interactive control.

  • C++
  • ESP32
  • Node-RED
  • Sensors

Bare-Metal Microcontroller Programming★ 7

Hands-on bare-metal programming of the Arduino Uno (ATmega328p) in pure C — direct register manipulation, timers, and interrupts without any libraries.

  • C
  • AVR
  • ATmega328p

PosturePulse

AI-based physiotherapy assistant giving real-time posture feedback and personalized exercise programs — 2nd runner-up at Brainstorm, IEEE EMBS UoM.

  • JavaScript
  • Computer Vision
  • AI

Systems & Software

WinZigC Compiler

A five-stage compiler for the WinZigC language — tokenize, parse, semantic analysis, optimize, and generate stack-machine assembly.

  • C++
  • Compilers

Obo Blocks

Scratch Blocks-to-Python converter with in-browser execution — easing students' transition from visual to text-based programming at RoboticGen Academy.

  • JavaScript
  • Pyodide
  • MicroPython
  • EdTech

Bus Tracking System★ 31

Real-time bus tracking built with Django and ESP32 GPS units — live map updates, schedule management, and rider dashboards.

  • Django
  • Python
  • ESP32
  • Google Maps API

News Analyzer

LLM-powered analysis of Sri Lankan news — categorizing articles by sentiment and their social, economic, and political impact.

  • Python
  • LLM
  • NLP

Library Management System

A clean Django CRUD application for managing a library's catalogue — books, search, and detail views.

  • Django
  • Python