Skip to content

ozheng2/PillPilot-Firmware

Repository files navigation

PillPilot: Smart Medication Management (Firmware)

PillPilot Project Poster

📌 Project Overview

PillPilot is an automated medication dispensing system designed to assist individuals with Multiple Sclerosis (MS) who suffer from memory loss and dexterity impairments. This project was developed independently for the CMSC Competition.

This repository contains the firmware and control logic that powers the device. The system uses a Raspberry Pi 4 to parse medication schedules, drive a custom I2C hardware array, and host a local Flask server for wireless synchronization with an iOS companion app.

🚀 Key Features

  • Hardware Abstraction Layer (HAL): Custom drivers for PCA9685 (Servos) and MCP23017 (LEDs) to handle low-level I2C communication.
  • Threaded Architecture: Runs a PyQt5 Dashboard GUI on the main thread while a Flask server listens for incoming schedule updates on a background thread.
  • JSON Schedule Parsing: Dynamically parses complex dosage schedules (Time, Day, Compartment) to trigger precise hardware actions.
  • Audio-Visual Alerts: Integrates 1W Speakers and LED arrays for redundant notification systems.

🛠 Tech Stack

  • Controller: Raspberry Pi 4 Model B
  • Language: Python 3
  • Libraries: PyQt5, Flask, RPi.GPIO, adafruit-circuitpython-pca9685, adafruit-circuitpython-mcp230xx
  • Hardware: Micro Servos (x14), LED Array (x14), 8 Ohm 1W Speakers (x2).

📱 iOS Companion App

The system synchronizes wirelessly with a custom iOS application, allowing caregivers to configure pill attributes and view adherence schedules.

Hardware Configuration Weekly Schedule View
Direct mapping of pill data to the 14-slot hardware array. Visualizes the JSON schedule parsed by the firmware.

👥 Credits & Roles

Independent Competition Project (Team of 5)

  • Oscar Zheng: Embedded Systems Lead. Designed the Hardware Abstraction Layer (HAL), implemented JSON schedule parsing, and managed the Hardware-to-Display integration.
  • Sheba Panicker: Project Manager & Mechanical Lead. Managed project timeline and deliverables while designing the CAD models for the enclosure and dispensing mechanism.
  • Elizabeth Link: Mobile Application Lead. Architected and built the iOS companion app for remote scheduling and user management.
  • Louis Fermaintt: Frontend Lead. Designed the Raspberry Pi PyQt5 Dashboard UI and touchscreen interactions.
  • Kayla Staley: Research Lead. Collaborated with the PM to conduct market analysis, user validation, and project documentation.

About

Python-based control firmware for a Raspberry Pi 4 medical device. Integrates a custom I2C hardware layer with a PyQt5 touchscreen interface

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages