Projects

Dilited kNN: Lightweight ML Applications Embedded Devices


A novel approach to the supervised classification algorithm kNN, the project solves the issue of modern methods of deploying ML algorithms requiring increased hardware resources due to not focusing enough on hardware performance. The project can run on devices with 20 kB flash memory, and keeps the RAM usage under 1536 bytes.

Remote Patient Monitoring System


A custom made sensor that measured blood oxygenation and pulse was designed and manufactured. The data collected from the sensors were fed into a local device (Firebeetle) and processed, then sent to an online database. A dedicated mobile application allowed for healthcare workers to access the real time patient data on the database, and essentially help them track patient vitals remotely, without pyhsical contact with patients, which was essential during the Covid-19 pandemic.

Open Source & Terminal Based Analog Circuit Simulator


An open source project that aims to serve educational purposes. The simulator was developed in C programming language. The program takes an input circuit from the user component by component, creates a conductance matrix for the input circuit, performs forward and backward gauss elimination to solve for unknown node voltages, and finally, goes on to solve for the current matrix using the previously calculated node voltages. An academic paper is available examining the development process of the simulator to further improve the projects educational value.

CPU Clock Frequency Adjusment Based On CPU Temperature


The project runs on a custom Linux distro built via The Yocto Project. The automation of the process and runing of it as a background process from the device’s start-up was handled via bash scripts and the core application that handled the temperature monitoring and frequency adjustments was in C.

PWM Data Encoder


The project is about a circuit that encodes an incoming flow of binary data into the systems clock signal, which is an efficient way of transmitting two information (clock and data) within the same signal. The system adjusts the clock’s duty cycle to %75 for input data of 1, and %25 for input data of 0. The system was designed to work within the range of 10 KHz – 20 KHz.

Display Automation


A very old student-project that was about developing software to automate the operating behavior of large screens out in public, that would display upcoming events, news, announcements, and more. Multiple bash scripts that worked hand in hand, all managed by one main script. The project was running on Raspbian OS that was installed on a Raspberry Pi 3 Model B+.