Low Cost Ventilator

Low cost ventilator for standalone use during the Covid-19 pandemic

Similar projects worth following
Low Cost Medical Ventilator

This is a medical ventilator designed to be used for Covid-19 patients if there are a lack of ventilators.

Goals of the project are:

  • To provide a cost effective option < $1000
  • To provide the patient with a safe ventilation option.
  • To make the design as simple as possible to purchase all of the parts and assemble.
    • Controller mostly SMD to simplify electronics build and ensure quality.
    • Few, if any, custom components to ensure availability and quality.
  • To provide the necessities.  These include the following:
    • Option to add oxygen.
    • Simple pressure control.
    • Flow information for the operator of the ventilator
    • Safety for patient and operator - IE Virus filter.
    • Covid-19 ARDS pateints are almost alway intubated so additon of an off the shelf humidifier is necessary.


Details on pressure feedback:

The system pressure is monitored with 3 pressure sensors.  This is to ensure patient safety and reliability of the system.  The system is averaged and voted.  This is done so that even if one sensor drops out, the system can still run.  This is done in many mission critical systems.

The pressure sensors chosen are Honeywell HSCMLNN001PGAA3's which will measure 0-1 psi gauge.  These are SMD components so that they can be assembled onto the PCB via pick and place for ease of mass manufacturing.  They also require 3.3Vdc to run them and send back a scaled output from 0-3.3V which is then read by the microcontroller of choice.  This works great because it is a 3.3V microcontroller.


Details on flow monitoring:

The Inspiratory and Expiratory flows will be measured via a Sensirion SFM3300-D or SFM3300-AW.  These are accurate flow meters which will give accurate information to the individual running the ventilator.  The Tidal volume or amount of air that goes into and out of the lungs per breath is critical with a Covid-19 ARDS patient who may have decreased Tidal Volumes for the same input pressures.  This could eventually lead to hypoxia if not corrected.  Without knowledge of the flows there is no way to know and correct this ahead of time.  Currently, it is not in the works to control the ventilator based on flow, this will be for monitoring only.


Details on air moving choice:

A Micronel U65MN-024KD-5 centrifugal blower was chosen as the air mover of choice for several reasons.  It is a fan and thus inherently not a positive displacement pump.  This is an engineering control to limit the possible pressure delivered to the patient's lungs.  This is a quality blower from Switzerland and will not disappoint.  

3D Printed Connector V002.STEP

Connector clip for flow meter

step - 117.14 kB - 04/03/2020 at 17:51


3D Printed Connector V002.STL

Connector clip for flow meter

Standard Tesselated Geometry - 34.55 kB - 04/03/2020 at 17:51


Portable Network Graphics (PNG) - 182.17 kB - 04/02/2020 at 16:29


Security Safety Analysis of Low Cost Ventilator.pdf

Safety and security analysis of high-level design concept

Adobe Portable Document Format - 155.14 kB - 03/21/2020 at 18:53


PCB Board Layout.pdf

Version 1 PCB Layout- Designed for mostly SMD components for mass production

Adobe Portable Document Format - 536.25 kB - 03/19/2020 at 23:06


View all 7 files

  • 1 × Blower Micronel U65MN-024KD-5
  • 3 × Pressure Sensors Honeywell HSCMLNN001PGAA3
  • 1 × Flow meter- to know tidal volumes Sensirion SFM3300-AW or SFM3300-D - available at mouser
  • 1 × BLDC Controller Maxon 380200
  • 1 × Microcontroller Adafruit Feather M4 Express

  • LCD and Flowmeter Testing

    Jake Wachlin6 days ago 0 comments

    In support of our PCB design, and to test out some of the more uncertain concepts, we set up a breadboarded prototype of the LCD and the flowmeter. The main components in the prototype:

    • Adafruit Feather M4 Express (SAMD51-based microcontroller development board
    • SFM3300 flowmeter (+/-250 SLM full scale range, I2C interface)
    • NHD-0420D3Z-FL-GBW-V3 LCD display (4x20 backlit LCD character display)

    The prototype was set up as shown below. The flowmeter and LCD both require 5V power, but the flowmeter is compatible with 3.3V level I2C communication. The LCD requires logic level shifting up to 5V. The LCD also can only communicate at up to 50kHz SPI. For maximum use of this project, the hope was to set up the firmware to use Arduino API's where possible. Unfortunately, for the Feather M4, the I2C speed cannot be lowered below 100kHz using the Arduino "Wire.setClock()" interface. I had to lower the rate manually. For reference, the snippet of code for setting up the SAMD51 in slower I2C is as follows (and all this on our GitHub as we update it):

    // Setup I2C at <50khz for LCD
        Wire.begin();                                     // Set-up the I2C port
        sercom2.disableWIRE();                            // Disable the I2C SERCOM
        GCLK->PCHCTRL[23].bit.CHEN = 0; // 23 is SERCOM2
        while(GCLK->PCHCTRL[23].bit.CHEN != 0);
    	GCLK->PCHCTRL[23].bit.GEN = 0x04;			// Generic clock generator 4
    	GCLK->PCHCTRL[23].bit.CHEN = 1;
    	while(GCLK->PCHCTRL[23].bit.CHEN != 1);
        // TODO what is GCLK4 actually?
        SERCOM2->I2CM.BAUD.bit.BAUD = 48000000 / (50000) - 1;   // Set the I2C clock rate slow
        sercom2.enableWIRE();                             // Enable the I2C SERCOM  

     For the Feather M4 board, the I2C is set up for SERCOM2. The peripheral index for SERCOM2 is 23. I set up SERCOM2 to be run off of GCLK4. Underneath all the layers of Arduino, I am not quite sure yet what GCLK4's rate is. Nonetheless, I was able to get about 30kHz clock rate, as confirmed by my logic analyzer.

    I set up the firmware to support:

    • Display of current information
    • Settings input mode using pushbutton to page between settings and knob to choose the particular setting's value.
    • Read flowmeter, numerically integrate it and estimate tidal volume

    The picture below shows the prototype setup and connections. The interface to the flowmeter was through a fairly long wire. In our design we will use an I2C driver specifically for long distance communication with high capacitance on the lines. This prototype does not have it, but still seemed reliable. The measurements have checksums and I did not see a checksum fail during testing. The flow measurements seem quite stable, and estimation of tidal volume from integrated flow rate seems reasonable.

  • Flow Meter Update

    Erik Wachlin03/27/2020 at 02:30 0 comments

    We have been working hard to design a connector for the flow meter that can be made anywhere.

    The Sensirion 3300-D flow meter communicates via I2C which is typically an on PCB communication protocol.  We are using it at the patient wye which is about 1 meter from the ventilator.  The likelihood of poor data quality was high, so we designed a solution using a Texas Instruments P82B715DR I2C bus extender on the main PCB as well as one on the flow meter PCB.  This bus extender allows us to go off the board to much further distances without sacrificing data quality.  The flow meter PCB is all SMD components.  It has spring pins to connect to the pads on the flow meter, and a molex microfit 3.0 connector on top to connect to the main PCB via and off the shelf cable. 

    The PCB is held onto the flow meter by a 3D printed clip.  Here is a picture of the full assembly.

    Here is a picture of a test print and the clip on the flow meter.

  • Information Links

    Erik Wachlin03/16/2020 at 02:54 0 comments
  • To dos- rolling list

    Erik Wachlin03/16/2020 at 02:28 0 comments

    Add 2 modes of ventilation that could be useful for Covid-19

    • Pressure Control mode
      • Inputs
        • PIP- Peak Inspiratory Pressure (cmH2O)
        • PEEP- Positive End Expiratory Pressure (cmH2O
        • BPM - Breaths per minute
        • FiO2 
      • Output
        • Directs user as to flow rate setting for oxygen
    • APRV- Airway Pressure Release Ventilation
      • Inputs
        • P-high (cmH2O)
        • P-Low (cmH2O)
        • T-high (seconds)
        • T-Low (seconds)
        • FiO2
      • Output
        • Directs user as to flow rate setting for oxygen

    Add startup checks for the ventilator:

    • Tightness test
      • Turn on blower to max and ensure that the pressure increases to static pressure and hold for 1 minute to verify that flow does stop.
    • Flow meter offset calibration
      • The tubing and system will have air capacitance that needs to be subtracted to get correct tidal volumes.  Pump up the system to max pressure and create a flows table.  Do this 5 times and take average.

    Add Alarms to ventilator- alarms to be published to cloud and sent out be sent out to hospital staff.

View all 4 project logs

Enjoy this project?



ksk wrote 2 days ago point

Can you comment on the availability of the SFM3300? Who has them, for example? 

  Are you sure? yes | no

Daren Schwenke wrote 2 days ago point

This is half of the reason we started to go down the path to roll our own sensor package.  This is perfect for the application and is commonly used in ventilators, hence the shortage.  It looks like there are less than 300 of these remaining in stock for all distributors combined right now.
#VISP - Ventilator Inline Sensor Package 

  Are you sure? yes | no

ksk wrote 2 days ago point

Agreed. I'm trying to do that, but even with working out the math, I'd like a reference sensor that someone else has calibrated so I can calibrate my design. Hope to post it to Github, if not Hackaday. 

Will continue to follow your project with interest!

  Are you sure? yes | no

mitch wrote 3 days ago point

Would you be willing to share the design for the 3D printed part of the flow meter connector?

  Are you sure? yes | no

Erik Wachlin wrote a day ago point

Yes.  I am sorry for the delay.  I will post both a step file and the STL if you want to go directly to a printer with it.

  Are you sure? yes | no

mitch wrote a day ago point

Thanks.  I also designed one and will print it soon.  I'll be interested to compare them. But no rush.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates