Low-cost automated ventilator
An automated emergency ventilator prototyping closed-loop PID control in embedded C, with continuous airway pressure and SpO₂ telemetry on an Arduino platform.
- Control
- PID loop in embedded C on Arduino
- Sensing
- MAX30100 (SpO₂, heart rate), MPX5010 (differential pressure), LM35 (temperature)
- Interfaces
- I²C and analog acquisition
Background & Objectives
Commercial ventilators in Nepal are primarily imported, costly to maintain, and difficult to service outside major tertiary hospitals. This project investigated whether core mechanical ventilation functions, specifically regulated tidal volume and pressure control, could be delivered using accessible, locally replaceable electromechanical and sensor components.
System Architecture & Control
The mechanical system automates compression of a standard bag-valve mask (BVM) using a motor-driven mechanical actuator. Because a pneumatic reservoir exhibits non-linear resistance over its stroke and varies with patient lung compliance, open-loop timed actuation delivers inconsistent volumes across changing airway states.
To stabilize delivery, the system implements closed-loop PID control. An MPX5010 differential pressure sensor continuously samples airway pressure to modulate actuator displacement and rate set-points. A MAX30100 sensor provides pulse oximetry (SpO₂) and heart rate over I²C, while an LM35 analog sensor measures circuit temperature. Sampling routines execute within the primary control loop to enable dynamic cycle interruption upon overpressure detection.
A companion monitoring interface parses serial telemetry to display real-time airway pressure curves, respiration rate, and patient vitals for visual inspection.