This project contains the microcontroller code for the paper Dense Neural Network Based Arrhythmia Classification on Low-cost and Low-compute Micro-controller where we deployed a neural network to detect arrhythmia. Here, main.cpp
contains the MCU code for detecting arrhythmia in real-time. model.h
contains, the quantized neural network weights. Finally, training.ipynb
contains the training code.
- Title - Dense Neural Network Based Arrhythmia Classification on Low-cost and Low-compute Micro-controller
- Authors - Md Abu Obaida Zishan, H M Shihab, Sabik Sadman Islam, Maliha Alam Riya, Gazi Mashrur Islam, and Jannatun Noor.
- Supervisor - Dr. Jannatun Noor
- Journal - Expert Systems with Applications
- Lab - Computing for Sustainability and Social Good, BRAC University, Dhaka, Bangladesh
- Download and extract avr-gnu toolchain for Linux/Windows from here.
- Add the
/bin
directory after extraction to PATH. - Download the AVRDUDE binary for Windows from here and add to PATH.
- For debian-linux, run
sudo apt install avrdude
. For other distros, install avrdude with your respective package manager.
To run the project, connect your workstation with an Arduino Nano/Uno. Change the last line of the Makefile
file to include the port where the Arduino is connected:
avrdude -F -v -v -c arduino -p ATMEGA328P -P YOUR_PORT_GOES_HERE -b 115200 -U flash:w:build/main.hex
Additionally, connect AD8232 SparkFun Single-Lead Heart Rate Monitor for full reproducibility of our work as the connection schema provided below:
For training the neural network and generating your own model.h
file, run training.ipynb
with google-colab (recommended) or locally.