NanoProcessor
A nanoprocessor designed in VHDL and synthesized for the Basys3 FPGA — registers, add/sub unit, decoders, and multiplexers implemented from scratch.
A selection of things I've built — each links to a short write-up. More on GitHub.
A nanoprocessor designed in VHDL and synthesized for the Basys3 FPGA — registers, add/sub unit, decoders, and multiplexers implemented from scratch.
Experiments with the NPU on the Luckfox Pico Mini B (Rockchip RV1103) — model conversion to RKNN, quantization, and on-device inference.
Smart beehive monitoring that tracks hive conditions and bee acoustics to protect colony wellness and predict honey yield.
Smart pharmaceutical storage on an ESP32 — OLED interface, alarms with NTP time sync, and environment monitoring for safe medicine keeping.
ESP32 sensor node measuring dust, TVOC/CO₂, temperature, and humidity, with a live Node-RED dashboard for interactive control.
Hands-on bare-metal programming of the Arduino Uno (ATmega328p) in pure C — direct register manipulation, timers, and interrupts without any libraries.
AI-based physiotherapy assistant giving real-time posture feedback and personalized exercise programs — 2nd runner-up at Brainstorm, IEEE EMBS UoM.
A five-stage compiler for the WinZigC language — tokenize, parse, semantic analysis, optimize, and generate stack-machine assembly.
Scratch Blocks-to-Python converter with in-browser execution — easing students' transition from visual to text-based programming at RoboticGen Academy.
Real-time bus tracking built with Django and ESP32 GPS units — live map updates, schedule management, and rider dashboards.
LLM-powered analysis of Sri Lankan news — categorizing articles by sentiment and their social, economic, and political impact.
A clean Django CRUD application for managing a library's catalogue — books, search, and detail views.