Skip to content

nickmmark/open-ventilator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

open-ventilator

open source mechanical ventilator for educational purposes

background

The goal of this project is to build a simple mechanical ventilator that facilitates understanding of the mechanics and technology in modern ventilators. The purpose is pedagogical; this is not intended for medical or veterinary use.

Mechanical ventilators are complex machines. Often the best way to understand the nuances of a complex machine is to tinker with a simple open-source version. Unfortunately, ventilators aren't cheap (even the lowest cost veterinary ventilator will typically set you back at least $500) and no open source ventilator exists. This makes it hard for medical personnel (physicians, nurses, respiratory therapists, etc) and biomedical engineers to fully grok the technology they are working with and depend upon.

The purpose of this project is to build a simple, open-source, mechanical ventilator (hardware, control system, and interface) that can be used as a starting point for biomedical engineers and healthcare professionals to understand mechanical ventilation.

For a primer on mechanical ventilation see here. For a history of how modern mechanical ventilators have evolved see here.

components

There are three key components of the open-ventilator:

  • the hardware - servo to force air into/out of a cylinder, solenoid valves to control airflow, and pressure sensors
  • the control system - a microcontroller (e.g. Arduino Micro that controls the hardware; ideally this should be a realtime system to enable quick and reliable responses
  • the user interface - a single board computer (e.g. RasPi 4) connected to a touchscreen LCD display

high level system architecture

project objectives

The ideal project would be able to:

  • provide mandatory volume control ventilation - deliver a tidal volume at a set rate
  • provide mandator pressure control ventilation - deliver a inspiratory pressure for a inspiratory time at a set rate
  • allow triggered breathing, such as pressure support - deliver an inspiratory pressure every time a breath is detected using a pressure trigger
  • perform simple respiratory maneuvers such as plateau pressure - deliver a breath and measure the pressure
  • alert to unsafe conditions (e.g. alarms): peak pressure alarm, low volume alarm, etc
  • stream the data over a serial connection to an attached computer
  • display data and allow settings to be changed on a touchscreen display

hardware

control system

  • will likely use an Arduino and build a open-ventilator library to control the system. The library that controls the microcontrolled would be extremely useful for understanding a operation of a mechanical ventilator. The library could enable commands at different levels of abstraction:
    • direct control of components - e.g. inspiratoryValve == OPEN (set the valve on the inspiratory circuit to open)
    • coordinated activation of components - e.g. deliverPressureBreath (pressure = 30, iTime = 1, alarms = TRUE) (deliver a breath with a pressure of 30 cmH2O over 1 second)
    • automated delivery of ventilation - e.g. volumeControlStart (rate = 12, volume = 500) (begins volume control ventilation at a rate of 12 breaths per minute and a tidal volume of 500cc per breath)
    • administering advanced ventilatory maneuvers - e.g. inspiratoryHold() (deliver a breath, close the inspiratory and expiratory valves, and measure the airway pressure continuously)

figure - abstraction layers

user interface

  • the ideal user interface should be intuitive and straightforward
  • ideas
    • consistently color code the core concepts, both in the graphs and in the settings, so users connect a particular color to a particular concept:
      + volume 
      - pressure 
      * flow
    • imagine this curve with each colored appropriately:

references

About

open source mechanical ventilator project

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published