/ventilator

Low-Cost Open Source Ventilator

Primary LanguageC++MIT LicenseMIT

Full System

Low-Cost Open-Source Ventilator-ish Device

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 ventilator that could help with breathing during an acute respiratory attack.

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 on the internet. There are significant risks associated with using a high pressure BiPAP as a DIY ventilator without medical supervision.

Alternative: Build a PAPR!

As an alternative to building a DIY ventilator, this exact device can also become a reasonable Powered Air Purifying Respirator (PAPR) if a filter is attached and a full face mask is used. Please see the bottom of the README for links for filter cartridge adapters. 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 less controversial than building a DIY Ventliator.

Hardware Capabilities

This rudimentary design could provide a programmable target breathing rate (10-16/min), a target Positive End-Expiratory Pressure (PEEP), and the blower is physicially able to hit a peak airway pressure of upto 45cmH20. However, going above 20cmH20 can be DANGEROUS. It can't guarantee a specific tidal volume, and doesn't regulate specific fractional oxygen (FiO2). With an attached O2 tank, it could provide 100%. Without a tank, it just pushes atmospheric air (21% O2). Any other ratio would require manual guess work on the O2 supply flow. It is lacking in many ways, but it is possible this limited functionality could help when better care is not possible.

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 that I could use help with):

  1. I had a long conversation with a pulmonologist to discuss the critical features of a proper ventilator and trade offs. Here are my notes. If you know someone with domain expertise, I would like confirmation that my take away notes are reasonable since this will drive priorities on engineering effort/conversations.
  2. Develop a simple low-cost sensor configuration that can provide a similar approximation of lung compliance provided by a ventilator loop display
  3. Test lung sourcing/research. Example high end one from Michigan Instruments.
  4. A supply chain person that can help us find good suppliers of parts. If there is desire to make these, I don't have a supply chain setup. The few parts I have on hand may not be easily sourcable in any volume quickly.
  5. Figure out how to reprogram an existing BiPAP. If this operating mode is helpful, there's a large number of these device's already in the field which could be enabled. I don't have good stats on the popularity of different makes/models. There could be on the order of a 1M devices worldwide?
  6. Design modifications to recapture exhaust to minimze addition viral spread. This only works in already "dirty" environments, where there is likely already airborne droplets containing virus - such as quarnateened spaces or other negative air pressure environments.
  7. Develop Arduino compatible algorithms to align blower cycle to the breathing cycle by looking at backpressure load on the blower, or very simple air pressure sensor that can be inserted into the output of the pump. For ease of developing algorithms see Colab notebook with data visualization.
  8. Solutions to prevent the system from becoming unsafe if power is lost. It's not obvious to me on how to do this. Ideas welcome.
  9. A 3D model for an inline air filter with link to common filter supply such as this
  10. Test with a simple inflator pump and achieve the same pressure control.
  11. Develop a low-cost simple minute volume sensor/approximator. Here is some information about the downsides of being over/under on target volume.. Critical care seems to want up to 10-12L/Min.

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

References about the supply and potential shortage of ventilators:

Here we will briefly summarize information on the supply and potential shortage. Key numbers that will affect this:

  1. The current numbers for supply of ventilators (# of ventilators currently)
  2. The demand for ventilators, over time (# of ventilators needed over time)
  3. The ability to increase supply of ventilators (# of ventilators able to be manufactured over time)

Additionally, the numbers above will vary based on each region's need globally.

Some preliminary data (we can continue to update) on some of these areas:

Region # ventilators, current supply # ventilators, needed
Globe
U.S. 46,000 [1] 200,000 or more [1]
California 7,587 and "buying more" now [2]
U.K. 5,000 [3] > 30,000 [3]
... add more... ... ...

References

  • [1] Text from my friend who is a doctor at Stanford, let's replace with citable sources if possible. "Estimated 46,000 vent beds across US with anticipated need of 200,000, maybe more if more severe than we know"
  • [2] Gavin Newsom press conference, March 15, 2020 (add link)
  • [3] https://www.ft.com/content/7ebb238c-67c7-11ea-a3c9-1fe6fedcca75

References from doctors specifically about ventilator technical requirements

Specifically for COVID-19

Tweets from Vamsi Aribindi, MD (March 13, 2020) https://mobile.twitter.com/aribindi/status/1238629714069032961

Specifically for ARDS (which is associated with COVID-19)

Journal article about treating ARDS (2017): https://www.nejm.org/doi/full/10.1056/NEJMra1608077

References about CPAP/BiPAP/PEEP ventilator modes

Lung Mechanics: PEEP,PEP,ACMV

Ventilator Modes Explained! PEEP, CPAP, Pressure vs. Volume

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 swtich for input control. The code cycles through 5 levels of pressure, and double click to swtich between CPAP and BiPAP/Fixed PEEP mode.

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

  5. Tubing and face mask. If you search for CPAP face mask, you'll find many options/suppliers. The full face mask that covers both the mouth and nose and enabled 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 swtich for input. However, I would strongly recommend running 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 simply an BLDC motor driving a blower fan. A small ESC and Arduino 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, and 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's 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 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 fit 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. But to get an good air seal to get enough positive pressure would require some tape. A little bit of leakage is actually desirable to allow CO2 to escape near the mouth nose and flushes out the air over time, rather than 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's a U-shaped tube with attached measuring tape to check displacement of water. The actual liquid displacement is 2x the measured line since liquid is being push downwards on the other side of the U an equal amount, doubling the displacement. (I think this is the correct way to measure). At full blast at 12v, it is achieving 45cmH20. WARNING: Going above 20cmH20 can be DANGEROUS. So, these blowers are plently powerful.

Pressure measurement fixture

Here are some images showing the dislacement of the liquid at differen 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 22cm/H20.

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 longterm thermal testing at high pressure and 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

Updates:

2020-03-19-8AM PST: added comment about building a PAPR alternative

2020-03-18-10PM PST: added link to notes from chatting with a pulmonologist

2020-03-18-2PM PST: added some information about pressure capabilities and todo around minute volume measurement

2020-03-18-9AM PST: added to do about capturing exhaust droplets

2020-03-18-9AM PST: added to do about reprogramming CPAPs

2020-03-18-3AM PST: added youtube video

2020-03-17-11PM PST: added current/breathing datasets, plots, and wiki for discussing analysis, and this update section