Low-Cost Open Source Ventilator or PAPR

Overview

Last updated 2020/04/19

Full System

Low-Cost Open-Source Ventilator-ish Device or PAPR

NOTE: This is currently an independent project not affiliated with any commercial institution.

  • In the event that COVID-19 hospitalizations exhaust the availability of FDA approved ventilators. This project documents the process of converting a low-cost CPAP (Continuous Positive Airway Pressure) blower into a rudimentary non-invasive pressure support ventilator that could help with breathing during respiratory distress. It's an evolving project, but in it's current form, it most aligned with the definition of a non-invasive pressure support BiPAP ventilator.
  • This same project can also be used to create a reasonable low-cost Powered Air Purifying Respirator (PAPR) with filter adapter and mask. PAPRs are effective pieces of Personal Protective Equipment (PPE) that could be helpful to caregivers. PAPRs will also be in extremely short supply and are much less risky and controversial than a DIY ventilator. You may be able to save many more lives by building a PAPR that protects a caregiver than a mediocre ventilator for one patient. Unless you are able to participate in the detailed engineering and medical discussions regarding mitigating the risks of high pressure ventilation, I would highly recommend focusing on the PAPR version of this build.

WARNING/DISCLAIMER: Whenever possible, please seek professional medical care with proper equipment setup by trained individuals. Do not use random information you found on the internet. I am not a medical professional, just a random person putting information on the internet. There are significant risks associated with using a high pressure BiPAP as a DIY ventilator without medical supervision.

What are the primary risks of a DIY ventilator?

  • Being viewed as a viable alternative to available professional care or delaying seeking professional care. This should be viewed as an educational resource or a last resort option only. Community driven engineering efforts like this run the risk of making it "too easy to be harmful" which would be a bad outcome.
  • Using non-invasive interfaces (such as masks and mouth pieces) can create aerosolized virus infecting many others in clean environments. Infecing yourself or other healthy individuals multiplies the problem. Usage should be restricted to places where aerosolized viruses are already abundant (lots of unmasked symptomatic individuals), COVID wards, or in isolation. NOTE: Self-quarantine in an apartment or multi-unit residence is NOT proper isolation due to potential shared ventilation and sewage.
  • Giving too high a pressure (such as 20cmh2o and up) without observing lung compliance can cause rupture of infected lung tissue. This design currently lacks several features that provide enough feedback to a caregiver to monitor that risk.
  • See more detailed discussion of these risks and potential engineering/administrative controls to address them.

Too risky? Build a low-cost PAPR!

One more time, a low-cost Powered Air Purifying Respirator (PAPR) is highly valuable for caregivers, and may have much more positive impact than bulding a mediocre ventilator.

Want to build something without electronics? Consider building PPE

Hardware Requirements and Medical/Government Request for proposals:

Current Hardware Capabilities

  • This rudimentary design can have a programmable breathing rate (ex: 10-16/min)
  • It can have a programmed Positive End-Expiratory Pressure (PEEP)
  • The blower is physicially able to hit a peak airway pressure of up to 45cmh2o. However, going above 20cmh2o can be DANGEROUS.
  • It cannot yet hit a target tidal volume. What level of accuracy in volume would be sufficient? 100mL? 10mL?
  • It does not regulate fractional oxygen (FiO2). But, a down stream connection to an O2 tank is possible to boost O2 concentration with manual flow adjustment. I could use a pointer to a low cost O2 sensor.
  • It is lacking in many other ways, but it is possible that this limited functionality could be helpful when better care is not available. It is also a starting point for making progress. Critical features can be added over time.

Here's a youtube video walking through the components as of 2020/03/17: Youtube video

There are also many other efforts in this direction. Here's a short list of them Thanks! discussion

To Do's - aka Things I could use help with

I've moved the To Do's to a Wiki so it is easier to update. Please check there if you are interested in helping. Thanks to those that already have!

To provide comments/feedback/offer help, create a new issue on the project. Thanks!

Useful References/Docs about the supply shortages, and guidance around unapproved devices:

There is a growing list of useful documents around guidance for use of unapproved equipment, and information around estimated shortages of both ventilators and personal protective equipment. We have moved them to References Wiki to enable better updates to make it easier to maintain.

Materials

  1. Continuous Positive Airway Pressure (CPAP) devices are commonly used by individuals to treat sleep apnea. As a result, CPAP blower components are fairly abundant. Used ones are available on eBay and new ones on Alibaba. In many of these devices, the blower is a simple BLDC motor that can be driven with an Electronics Speed Controller (ESC) used by quadrotors and RC cars. The one I used is pulled from a Respironics REMStar. In volume, these blower components can be under $20.
  1. Arduino Compatible Nano/Clone to control the motor speed, breathing cycles, and handle user input. Download the Arduino IDE to program the microcontroller software.

  2. Brushless DC Motor Electronic Speed Controller capable of at least 10A.

  3. Button or switch for input control. The code cycles through 5 levels of pressure. Double click to switch between CPAP and BiPAP/Fixed PEEP mode.

  4. 12v DC power supply that can handle at least 5A. The blower works pretty hard, and the breathing cycles can create voltage drops which will reset the Arduino if the supply is not strong enough.

  5. Tubing and face mask. If you search for CPAP face mask, you'll find many options/suppliers. A full face mask that covers both the mouth and nose will enable pressure buildup in the lungs. As an alternative, see below for draft 3D printable parts.

  6. Optional inline 12v battery backup.

Building

This is the full system with mask, tubing, pump, 12v battery, and switch for input. However, I would strongly recommend running this with a DC power supply since the battery will only last about 3-4 hours. Wearing the mask with a dead battery could cause dangerous CO2 build up. This particular battery can charge and supply power at the same time, acting as an inline battery backup to wall power.

Full System

Below is a close up of the extracted blower. It is simply a BLDC motor driving a blower fan. A small ESC and Arduino are attached (technically a Teensy2.0++, but the code has now been changed to an Arduino Nano). It has a 3d printed tapered hose adpater on it to fit in the hose. The microcontroller software can be programmed with the Arduino IDE. The software goes through a short initialization sequence to configure the ESC; it then starts at the lowest CPAP setting. You can use the switch to cycle through pressure levels, and double click to cycle through operating modes.

Extracted CPAP Blower

Here is the schematic for the electronics. As you can see, it is very simple with only a few parts. A slightly modifed version that is able to sense the blower current is here. schematic

Face mask / Tube Adapter

Since I have a CPAP, I happen to have a Resmed AitFit F20 mask that I can use. This is quite comfortable and covers both the nose and mouth to make a good seal. However, if you can't get a mask, below is a prototype mouthguard that fits in the category of not-so-great-but-usable-if-you-have-a-lot-of-tape. I am using some elastic straps as head gear. However, in order to get a good air seal to get enough positive pressure, this would require some tape. A little bit of leakage is actually desirable to allow CO2 to escape near the mouth and nose to flush out the air over time; this prevents CO2 from being stuck in the tube. WARNING: wearing this sealed to the mouth with tape without power may cause dangerous CO2 build up.

Download the [3D model] [Fusion 360 link].

Mouth Guard Mouth Guard model

Pressure Testing

This is a picture of my test rig to measure the output pressure. It is a U-shaped tube with an attached measuring tape to check displacement of water. The actual liquid displacement is 2x the measured line since liquid is being pushed downwards an equal amount on the other side of the U, doubling the displacement. (I think this is the correct way to measure). At full blast at 12v, it is achieving 45cmh2o. WARNING: Going above 20cmh2o can be DANGEROUS. So, these blowers are plently powerful.

Pressure measurement fixture

Here are some images showing the dislacement of the liquid at different speeds. I happen to have Diet Dr. Pepper on hand which makes it easier to see the liquid level rather than just plain water.

3cm 6cm 11cm 22.5cm

Here's a video of the blower pushing a breathing cycle of 16 cycles/min oscilating between 12 and 22cmh2o.

Air Filtration - PAPR Option

An open air blower into someone's airway isn't great. If possible, some filtration is preferred. These parts were originally used for a DIY Powered Air Purifying Respriator (PAPR). However, adding a filter will definitely affect the output pressure. It will depend on the blower you have if the motor can handle the additional load. Given the headroom of the blower I tested, these CPAP blowers can probably handle the filter and still hit the target pressure. However, I haven't done long term thermal testing at high pressure and with a strong filter. These adapter plates can be attached with liberal amounts of hot glue and wrapping the unit in vinyl tape to get a reasonably airtight seal. My blower's enclosure was not air-tight, so it is difficult to guarantee that 100% of the air is coming only through the filter. Setting the blower to a low CPAP pressure, and leaving the face mask vent holes open will allow it to function reasonably as a PAPR.

3M Apart 3M attached

NATO Apart NATO attached

Update Log

Click here to see updates.

Owner
Johnny Lee
Johnny Lee
A Python-based Wordle solver and CLI player

Wordle A Python-based Wordle solver and CLI player This was created using Python 3.9.7. SPOILER ALERT: the data directory contains spoilers for upcomi

Will Fitzgerald 1 Jul 24, 2022
A CLI/Shell supporting OpenRobot API and more!

A CLI/Shell supporting JeyyAPI, OpenRobot API and RePI API.

OpenRobot Packages 1 Jan 06, 2022
A CLI based task manager tool which helps you track your daily task and activity.

CLI based task manager tool This is the simple CLI tool can be helpful in increasing your productivity. More like your todolist. It uses Postgresql as

ritik 1 Jan 19, 2022
A simple CLI tool for converting logs from Poker Now games to other formats

🂡 Poker Now Log Converter 🂡 A command line utility for converting logs from Poker Now games to other formats. Introduction Poker Now is a free onlin

6 Dec 23, 2022
A communist shell written in Python

kash A communist shell written in Python It doesn't support escapes, quotes, comment lines, |, &&, , or similar yet. If you need help, get it from

Çınar Yılmaz 1 Dec 10, 2021
Professor Wordlist is a free open source command line tool written in python

Professor Wordlist is a free open source command line tool written in python, With the aim of generating custom wordlists with a variety of unique parameters and functions providing many possibilitie

オークO A K Z E H オーク 1 Oct 28, 2021
A simple CLI to convert snapshots into EAVT log, and EAVT log into SCD.

EAVT helper CLI Simple CLI to convert snapshots into eavt log, and eavt log into slowly changing dimensions Usage Installation Snapshot to EAVT log EA

2 Apr 07, 2022
Simple CLI for managing Postgres databases in Flask.

Overview Simple CLI that provides the following commands: flask psql create flask psql init flask psql drop flask psql setup: create → init flask psql

Daniel Reeves 21 Oct 03, 2022
電通大のCLIツールです

uecli 電通大のCLIツールです。コマンドラインからシラバス検索、成績参照、図書館の貸出リストなどを見ることができます インストール pip install uecli 使い方 シラバスを検索 uecli syllabus search -s 'コンピュータサイエンス' シラバスを取得し、Mar

UEC World Dominators 2 Oct 31, 2021
pypinfo is a simple CLI to access PyPI download statistics via Google's BigQuery.

pypinfo: View PyPI download statistics with ease. pypinfo is a simple CLI to access PyPI download statistics via Google's BigQuery. Installation pypin

Ofek Lev 351 Dec 26, 2022
A simple command line tool written in python to manage a to-do list

A simple command line tool written in python to manage a to-do list Dependencies: python Commands: todolist (-a | --add) [(-p | --priority)] [(-l | --

edwloef 0 Nov 02, 2021
cmsis-pack-manager is a python module, Rust crate and command line utility for managing current device information that is stored in many CMSIS PACKs

cmsis-pack-manager cmsis-pack-manager is a python module, Rust crate and command line utility for managing current device information that is stored i

pyocd 20 Dec 21, 2022
Limit your docker image size with a simple CLI command. Perfect to be used inside your CI process.

docker-image-size-limit Limit your docker image size with a simple CLI command. Perfect to be used inside your CI process. Read the announcing post. I

wemake.services 102 Dec 14, 2022
A Neat Application To Manage Your To-Do Lists.

WTD - What To Do? A Neat Application To Manage Your To-Do Lists. One folder can only have one to-do file. Running wth without any subcommands executes

Adam Vajda 1 Oct 24, 2021
Bringing emacs' greatest feature to neovim - Tetris!

nvim-tetris Bringing emacs' greatest feature to neovim - Tetris! This plugin is written in Fennel using Olical's project Aniseed for creating the proj

129 Dec 26, 2022
This is a CLI utility that allows you to view RedFlagDeals.com on the command line.

RFD Description Motivation Installation Usage View Hot Deals View and Sort Hot Deals Search Advanced View Posts Shell Completion bash zsh Description

Dave G 8 Nov 29, 2022
This is a tool for managing file notes through the command line

This is a tool for managing file notes through the command line

2 Jun 22, 2022
A CLI Password Manager made using Python and Postgresql database.

ManageMyPasswords (CLI Edition) A CLI Password Manager made using Python and Postgresql database. Quick Start Guide First Clone The Project git clone

Imira Randeniya 1 Sep 11, 2022
This CLI give the possibility to do a queries in Star Wars API and returns a JSON in a terminal.

Star Wars CLI (swcli) This CLI give the possibility to do a queries in Star Wars API and returns a JSON in a terminal. Install $ pip install swcli Qu

Pery Lemke 5 Nov 05, 2021
instant coding answers via the command line

howdoi instant coding answers via the command line Sherlock, your neighborhood command-line sloth sleuth. Are you a hack programmer? Do you find yours

Benjamin Gleitzman 9.8k Jan 08, 2023