Pressure Measuring

Updated 4 April 2020

This page summarises the importance of pressure measuring and monitoring even in the simplest ventilation scenarios. A pressure gauge attached to the manual facilitator’s sensing port, while better than nothing, provides only partial information and cannot be used for triggering alarms or detecting inspiration in a non-paralysed patient and providing Assist Control, which is explained on the Clinical page.

The pressure sensor, described in Electrical Hardware and Controls, is to be connected in a position so as to allow sensing of pressure in the patient’s airway, as shown in Plumbing. Because pressure transducers with the correct specifications to sense human respiration are in low supply, these sensors should not be single-use. To protect the pressure sensor, a small inline HEPA filter should be placed on the sensing line between the patient and the sensor to prevent viral migration and patient to patient infection.

Key Readings

The first three readings should be displayed to the clinician and the fourth is a condition that must be detected.

  1. PEEP – (positive end-expiratory pressure) – This is manually set by the PEEP valve 
  2. Plateau Pressure – This varies as a function of airway resistance
  3. PIP (Peak Inspiratory Pressure) – This varies as a function of airway resistance
  4. Inhalation Detection – This dip in pressure, with relation to the resting PEEP pressure, indicates that a non-paralysed patient is attempting to breathe and should initiate a cycle.

Sanity Checks & Alarms

There should be checking each cycles for relations and consistencies among PEEP, Plateau, and PIP and when discrepancies an alarm condition should be triggered accordingly:

  1. In Volume Control ventilation, it is expected that PIP > Plateau.
  2. It is expected that Plateau > PEEP in order to have a positive driving pressure. (Driving pressure = Plateau – PEEP)
  3. PEEP should not fall below a predetermined value, to prevent alveolar collapse, and the displayed value should match the value set manually with the PEEP valve.
  4. Plateau should not exceed a predetermined value, nominally 30 cm H2O in ARDS.
  5. PIP should not exceed a predetermined value; 40cmH2O in general. This value should be set (hard coded) to below the cracking pressure of the pop-off valve.
  6. A leak or disconnect in the system will be detected as plateau pressure below a predetermined level, e.g. 5 cm H2O.

Assist Control

Assist Control is dependent on a well executed pressure detection system, namely the ability to also read negative deflection of pressure when pressure falls below PEEP or baseline during a “detection window period” towards the end of expiration phase. For more information see Assist Control under Controls.

86 Replies to “Pressure Measuring”

  1. Michael Krasowski

    Cannot find, but wondering if you are using hydrophobic insufflation filter line sets between the ventilator gas circuit and your pressure sensor to mitigate against moisture and pathogens entering the pressure sensor. Thanks.

    • Yueh Lee

      Almost certainly the easiest approach. other option is simple syringe filter in front of the sensor? essentially what you said, but slightly different “source” of material.

  2. Eric Becker

    Hi E-Vent Team,
    I tested a diaphragm with 2 chambers and was able to get accurate pressure readings with limited attenuation. I’m not sure if this a viable solution, but this could mitigate the risk of contaminating the pressure sensor. The part I used was a back-flow protector from Sprectra breast pumps. These can also be sterilized. I’ve prototyped a PVC and latex glove version, which also worked.
    Keep up the great work!

    • Bjoern Keohane

      Hi Eric,
      I am very curious about your diaphragm protection. This might help me doing my bachelor thesis at Dräger company in Germany.
      If you like, you could send me a picture, too:
      thank you and everyone here for sharing their info and knowlegde.
      kind regards,

  3. Hemant Singh

    Others have said a HEPA filter tends to clog and change pressure readings. One will have to clean the HEPA filter periodically.

    Isn’t there disinfectant spray to sanitize the pressure sensor before moving the device to another patient?

      • Srinivas Boppu

        I have looked at the diagram, I wasn’t able to understand. Any other related information regarding the PEEP columns. Was bit tough to follow all the medical terms 🙂

        • NYMC Team

          Positive-end Expiratory Pressure (PEEP) is a technique utilized during mechanical ventilation in order to increase the oxygenation of the patient. In essence, PEEP is achieved when the pressure at the end of expiration is greater than atmospheric pressure. This helps keep the alveoli (sacs in the lungs where oxygenation of the blood occurs) from collapsing during this time. When the alveolar sacs are kept open, oxygen is able to be delivered to the capillary beds within these sacs during the entire respiratory cycle, thus increasing the time in which the blood may be oxygenated. Additionally, PEEP can be used to increases the surface area of the alveoli that are participating in gas exchange, which will also help to increase oxygenation of the patient. For more information about PEEP or respiratory physiology, please refer to the “Clinical” page of the E-Vent website (link:

    • Hemant Singh

      Disinfecting the sensor gauge is possible with latest news. See

      If a mask can be decontaminated, so can a sensor gauge. A study in cleaning using UV, heat and humidity, or hydrogen peroxide cleaning should be conducted to make sure electronics in the sensor survives.

      • Thomas Low

        I do not think most pressure sensors can be decontaminated. They cannot tolerate autoclave temperatures, and UV illumination can’t reach the inner parts of the package to kill viruses lodged inside.

        The sensors can be separated from the contaminated airway by a small membrane, to prevent passage of virus, sputum, blood, vomit, etc from reaching the sensor, but allowing a small displacement to insure that the sensor pressure is the same as the airway pressure. Otherwise, the sensor needs to be disposable (which at ~$10 for an MPXV7002DP sensor would not be a big deal from a cost standpoint).

        Also, I think it is hard to imagine decontaminating a porous and UV opaque HEPA filter. Plus, any significant flow restriction from the HEPA filter would be an issue degrading the accuracy of pressure measurement. I’m not a fan.

  4. Arshad Sherazi

    Hi there, wish you all the best. Do you recommend any specific OEM for the pressure transducer? Any recommended part numbers? Thank you

  5. Thiago Ennes

    Would it be possible to instead of differential sensors, two absolute sensors be used and subtracted from each other? Absolute sensor are way cheaper and easier to find. We are going to need thousands of those devices.

    • Thomas Low

      Differential sensors are inexpensive (~$10 for a reel of 100 MBPV7002DP from Digikey) and easier to implement for monitoring airway pressure (and flow) in the ventilator. One can use two absolute sensors, to build a differential one, but then one must cross calibrate them (making zero differential pressure correspond to zero reported signal)

      See my comment from 11 April 2020 at 23:59

    • Philip Martel

      There is also the issue of noise in the sensors. I am testing the concept of using two absolute pressure sensors (Adafruit LPS-25). Over a period of 1024 seconds (1 sample/ second) sitting in a room with no activity, I’m seeing a differential pressure error range of 0.0050 psi (about 0.48 cm of H2O)

  6. Shudhant Gautam


    Can someone please tell me what air pressure sensor they used as their input? I cannot find a differential one with a range of at least 100 CM H2O. Please advise!


    • Nolber Rumbo Avila

      Hi Shudhant Gautam
      The MPX10D could work fine. It have a 0 to 10 Kpa range

      • Hector Molina

        MPX10 have correct pressure range, but is necesary add external amplifier an temperstura compensation. MP5010 have all internally and out signal is ready for use with any micrprocessor
        B regards

        • Shudhant Gautam

          Hi Hector,

          Thanks for your response.

          So the MP5010 is the one you would recommend using?


          • Hector Molina

            Hello, yes is ready to use inner have amplifier and tempeatura compesation,
            pressure input 0 – 10 kpa output 0- 5V can use MPX5010GP gauge pressure have only one tube conector o MPX5010DP Diferential Pressure in last case only conect postive pressure tube, two models are fine.

            best regards

          • Jorge Lange

            Hi Shudhant – you might also want to take a look at the BMP280 ( has them for about $2.00) and the BMP680 (fancy, with gas analyzer;; the have good documentation and tech support for their products. $22). Both are I2C & ISP. Bosch has good data sheets on these. Digikey, Mouser et al carry them as well.

      • Shudhant Gautam

        Hi Nolber,

        Thanks for getting back to me.

        MIT here says that it must be able to sense negative vacuum air pressures, but you are saying the MPX10D would only measure 0-10 kPa? Could you please elaborate as to how the machine would detect inhalation if the sensor only works with positive air pressures?


        • Dmitry Vasiliev

          Anyway it is negative in relation to PEEP pressure, so actually is positive. Becides 5010 is able to show at least -5 cm H2O as its’ zero voltage is around 0.2V

          • Shudhant Gautam

            Hi Dmitry,

            Thanks for the information. So would you say that the MP5010 is suitable for use for this project? Could you please send me the link as to where I can buy this product? I cannot find it for sale anywhere.


      • Ashis Panda

        Hi all,
        I am from India.
        Keep up the good work !
        I have been working to develop a proof of concept low lost design for a mechanical ventilator controller. I used an I2C BMP180 sensor along with a Arduino Nano to get the airway pressure readings on the LCD. I calibrated the sensor to 0 when the airway is open to atmosphere ( exhale) and then used to get the readings in cm H2O. It displays +ve when I blow through the airway and displays -ve when I try to suck air in through the tube. Am I mising something ? Any suggestions ?

        Thanks !

        • Shudhant Gautam

          Namaste Ashis bhai,

          Kaise ho?

          I am wondering how you got the pressure sensor to read negative values for the inhalation component of the ventilator? Do I really need a differential pressure sensor for this, or can I just a normal positive-only pressure sensor and somehow code around that?

          Madat ke liye shukriyaa.


        • Thomas Low

          Hi Ashis,

          Does your BMP180 have two vent holes or barbed input ports, or just one? I had thought the BMP180 was a single vent hole absolute pressure sensor, but it sounds like yours may be differential. (the negative -ve sounds like the port pressure is simply below the reference (probably another port open to room air). If so, the difference in pressures is probably just proportional to |-ve|

          Check out my comment about the MPXV7002DP, and the importance of using a differential pressure sensor (instead of an absolute pressure sensor like the BMP180) for ventilators. (see my comment from 11 April 2020 at 23:59)

  7. Michael Ilewicz

    Just a raw Idea:

    Very thin U-Tube (2-3mm) filled with Oil (Water will evaporate) with one end open to atmosphere and one end to what you want to measure. A phone with the camera facing the tube and using image detection to measure the pressure over time.

    Such a tube would be 3D-printable. it might have to be calibrated once and a calibration value might be QR coded onto the tube for the phone to detect it. Temperatur calibration could be done when the oil is known by filling it with a certain weight and calculating the full Volume. The Oil would need to have as low viscosity as possible and be incompressible

    Does anybody know if that would have the required precision and response time? What Oil would be needed?

  8. Aamir Abbas

    I was wondering if you’ve considered the addition of esophageal manometry connected to the Arduino via a pressure transducer to measure lung compliance and subsequently prevent over or under-inflation. This measurement can be used to titrate PEEP and avoid barotrauma from the vent and can be done using readily available materials (a fluid filled Foley catheter, for example). This has been clinically validated and is especially useful in situations like ARDS. I understand the desire to keep things simple and avoid extra tubes going to the patient but something to consider if you’re running into issues transducing pressures directly from the circuit.

    • Thomas Low

      My understanding is very rudimentary and may be incorrect. I have heard that COVID-19 infected lungs tend to be abnormally HIGH compliance (dV/dP is LARGER than in a normal healthy lung) and so COVID-19 infected lungs tend to be MORE fragile against damage from excess pressure (“barotrauma”) or excess volume (“volutrauma”?).

      This makes it MORE critical to avoid excess pressure and excessive tidal volume in ventilators designed for the COVID-19 crisis.

      Measuring lung compliance (dV/dP) obviously requires accurately measuring BOTH airway pressure P(t) and tidal volume V(t) in order to extract lung compliance (dV(t)/dP(t)). It seems very likely that this quantity is NOT a constant (like a spring constant) but some function of the volume V(t).

      It **might** be possible to measure BOTH airway pressure P(t) and tidal volume V(t) using the pressure and FLOW sensor arrangement I described in my comment from 11 April 2020 at 23:59, and calculating the lung compliance (dV(t)/dP(t) or V(t)/P(t) ) from the resulting measured traces, or during a one shot inflation of the lungs. While this seems reasonable to try on a healthy patient with robust lower compliance lungs, it seems questionable and probably risky on a patient with COVID-19 degraded lungs.

      Yours is a good comment, and certainly worth considering in the MIT E-VENT design (especially the part about taking care to AVOID excess pressure (“barotrauma”) or excess volume (“volutrauma”?). However, building the MIT E-VENT to enable lung compliance measurement seems risky and problematic to me. Comments invited!

      • Fernando Moura

        Hi Thomas
        Ive read some of your comments and they are very insightful. im not designing anything, and I am not an expert on any of this ( retired EE) however I’m interested , especially during these hard times. Mostly, I,m trying to understand. You mentioned that for ARDS patients, volume and pressure are crtitical parameters. From what I read, I agree. My question ( probably rhethotical) is , how do “they” determine the tidal volume setpoing for a covid patient! It appears that the tidal volume is based on the person,s weight , usually in Kgs, and the volume from what i read has a multiplier ranging from 8 to 12 ml/Kg ( from what i recall). It also appears that the weight is estimated based on the height of the person ( male and female formulas are different. For a man, the estimated weight is ( height in inches-60)x2.3+50 for a male. So, a 6 foot man would weight 77.6 Kgs ( 170 lbs) which i find unlikely, more like 200 lbs, probably ( 90.7 Kg). I was curious about this and i found the formula info on a a Weinmann ventilator manual. As a matter of fact, the Weinmamn ventiltator has an input for person height and sex. How this is done in real life, i really do not know . My point is the following: If a 10 ml/Kg tidal volume is used, then, using the “ideal” body weight of 170 lbs ( 77.6 kg) the tidal volume would be 10×77.6 or 776 ml. in reality, if the person,s actual weight was 200 lbs ( 90.6) , then the tidal volume should have been 906 ml or a difference of 134 ml. So, should the tidal volume be on the low side or on the high side? Also, I am assuming that maybe for a non covid patient, the multiplier ( ml/Kg) would be different from a covid partient.
        How is this determined? I guess in an emergency like this, one just hooks up the person and dials in a reasonable number ( hopefully the bag compression and the tidal volume is deterministic and repeatable).
        So, getting back to your statement that tidal volume and pressure are very important, but it appears to me that pressure is much more important based on the the tidal volume calculation parameter influences.
        Just some food for thought.

        • Aby Mathew

          Did we arrive at a model to lung compliance. Basically we might be able to build the compliance parameters from a quick xray and physical parameters.

  9. Eric Baicy

    Can someone help me understand the specifications here? This is what I’ve gathered:

    1. Differential Sensor
    2. Max Range -100 cm H2O to +100 cm H2O (9807 Pa, 1.42 psi, 0.1Bar, 39.37 “ h2o)
    3. Min Resolution +/- 0.5 cm H2O (49.035 Pa, 0.0071 psi, 0.0005 Bar, 0.19685 “ h2o)

    However I’m confused about a few things as I’ve never worked with pressure sensors.
    A. Won’t we really be measuring the change in atmospheric pressure relative to breathing? So an absolute sensor could also measure the peaks and drops, right?
    B. Also with a PEEP in place there will always be some positive pressure above the room nominal pressure, Is a differential sensor required?
    C. If a differential sensor is used should it be a 2 port with one port exposed to room pressure? Or is the connection a single port that is connected to a “T” on the airway?
    D. Is a vented gauge or absolute gauge a good alternative to a differential one? Or am I missing something here?


    • Eric Baicy

      Also to add to this the Medtronic device that released their design details appears to use an absolute pressure sensor for their device.

      • Josson Mvuezolo

        Hello Will,

        Where can i find that fine print confirming the use of the honywell sensors?
        My organisation needs more proofs.

        Best Regards, Josson

    • Thomas Low

      Hi Eric, some hopefully helpful comments:
      A. a differential pressure sensor is needed to compare the absolute pressure in the patient’s airway to the room pressure. A crucial part of the P(t) trace is when the airway pressure drops a small amount (e.g., 1-2 cmH2O or 100-200 Pa) BELOW the ambient room pressure. This indicates the patient is trying to initiate a breath, and should initiate the next BVM breathing cycle by the Arduino code. A simple absolute pressure sensor would need to be repeatedly re-calibrated as the (variable) room pressure, so it is not suitable. You could make a differntial sensor by combining TWO absolute ones, but then you have to cross calibrate them. Best to go differential in the first place, like the MPXV7002DP in my comment from 11 April 2020 at 23:59
      B. Likewise, PEEP is a small positive pressure **relative** to the ambient pressure in the room, so a differential pressure sensor is needed there too.
      C. Yes, one port is just open to the room (and placed somewhere it can’t get obstructed or clobbered.
      D. not sure what you mean by a vented gauge; maybe you’re thinking of high pressure gauges, and comparing psig to psia (??) Anyway, there’s no down side to the differential sensors; their cheap, with good S/N and high sensitivity.

  10. ramin rezaei

    I read most of the comments, but I don’t think the electronic suggestions for the hospital environment and the patient are very accurate.
    I work on all-mechanical ideas. If I get a good result, I will definitely raise it

  11. Ignacio Arvizu


    If someone know where I can find the Arduino control programming code. Also, if someone already got it, please let me know.
    Thank you and best regards.

  12. jafar abbas

    can i ask about ( Finger-bag max contact area: Abag = 80 mm2) how this value was calculated ? With this value the power value( 50.2 N ) is incorrect !! can you help me please

  13. Eduardo José Rojas Fernández

    Hello, we are trying to implement this type of prototype to collaborate as quickly as possible with the emergency in Costa Rica.
    If anyone knows where I can find the Arduino control programming code. Also, if someone already has it, let me know and I could send it to the email
      Thanks and regards!

  14. Douglas Chin

    Bump +1
    Working with wonderful people in need in Afghanistan where materials are limited. How are you all addressing lack of assist control, which would mean: (1) not being able to wean a patient off of the ventilator; (2) risk of barotrauma in an unparalyzed or nonsedated patient (due to bucking /fighting the ventilator); (3) increased risk of nosocomial infection of HCW due to cuff leak and escape of aerosolized virus. (This concern is raised on several clinical blogs.)

    Does anyone have ARDUINO (or other processor) code, that would incorporate monitoring of inspiratory effort (negative pressue, Peff, of patient-initated breath)(Peff) by the patient? The goals being to provide the following conditions:
    Peff sufficient patient effort, so assist control (ventilator support of P=PIP – Peff up to tidal volume.
    Peff >= 10 –> full ventilatory support

    What sensors would you all recommend on the inspiratory limb to achieve this purpose?

    (Note: I am not an engineer but rather a clinician. This is a major and even fatal issue from a clinical point of view.)

    • Eric Baicy

      The system they are working on now has a pressure sensor for assisted breathing.

      I’m working on a model to compute many of the clinical values from pressure waveforms but I don’t think anyone has solved this completely yet.

    • Thomas Low

      I think this is an excellent question. Monitoring the time dependent airway pressure P(t) with the required accuracy and time sampling is easy (c.f., my comment below from 11 April 2020 at 23:59 ). It would also be easy to program the Arduino code to initiate a new breathing cycle when P(t) changed to some negative value (say -1 or -2 cmH2O) which would mean the patient was trying to initiate a breath. After some slightly longer time, if no negative transient in P(t) was detected, the Arduino (or other) code would initiate the new breathing cycle anyway.

      Obviously, there will need to be testing and careful clinical trials to optimize the logic and algorithms of the Arduino controller, but patient initiated breath cycles are certainly do-able, and they are equally certainly essential.


    which sensors did you recommend for airflow control and peep pressure. how are theirs pressur output connected to arduino

  16. Srinivas Boppu

    Dear All,

    1. Can you post a picture showing the sensor and HEPA filter assembly?
    2. MPX10D needs an external amplifier and temperature compensation circuit. Can you recommend some existing modules/circuits for doing this?
    3. Can someone explain, how do we know that an inspiratory cycle is going to start in assist mode?

    Srinivas Boppu

      • Thomas Low

        Hello Hector,
        I think you could simplify the design by using a more sensitive differential pressure sensor from NXP, namely the MPXV7002DP (The datasheet for this part is here

        This would ELIMINATE the need to provide any amplifier. The MPXV7002DP sensor can be connected directly to the Arduino, and it’s output can be read by the 10bit A/D on the Arduino analog pins A0 thru A5. The voltage output Vout from the sensor is ~ +2.5 Volts for zero pressure difference across the two input ports. It will increase linearly toward ~5V for a positive pressure difference approaching +2kPa, and decrease linearly toward 0V as for opposite sign pressure difference approaching -2kPa. The sensitivity and signal to noise of this pressure sensor is very good, so it is a good match for ventilator use, and for reading by the 10bit A/D of an Arduino (e.g., the UNO or similar).

        I have experimented with how to use this sensor to monitor airway pressure P(t) and also airway flow (if needed) on a breathing patient (i.e., me 🙂 ). See my comments of 11 April 2020 at 23:59 for a description of the setup. I can send pix and measured P(t) traces on request.

        • Hector Molina

          Hello tomas max range presure in ambu bag is limited by pop off valve at 40 cm h20 sensor is necesary by security for any case settings group of parameters go to rise pressure by fast volumen delivery, and is useful for voluntary inspiration, we are use mpx5010 , is better than mpx10 my recommendation of amplifier by mpx10 is for people what no have other option and only have these sensor
          Best Regards

  17. Puiu Craciunescu

    Together with my team I created a system following the MIT instructions:
    At this moment we have two aspects to clarify:
    1. How to read pressure in Assisted mode? I ask this because there is the possibility of capturing a wrong value if we capture it right at the moment when trigger input (voluntary inhalation) occur. We need a method to avoid the acquisition of a PEEP at the moment of voluntary inhalation. Can anyone help me with an idea?
    2. We want to calibrate the system in volume, having as reference a standard lung with compliance 25ml / mbar. I realized that the volume exhausted from the balloon must be normalized to atmospheric pressure. This is how the volume is measured on current ventilation devices in hospitals. Don’t you think it’s more useful to work with a value in volume instead of a percentage? Do you see any problem with volume calibration?

    Thank you!

    • Thomas Low

      I guess you are asking how to build the algorithm to extract the desired “pressure” value from the somewhat complicated (and variable) trace of airway pressure versus time P(t). Implicitly, you maybe also are asking how to reliably detect the negative pressure that indicates the patient is trying to inhale, which would trigger a new breathing cycle in assisted mode.

      These are excellent questions, and there are other pressure values and times which could be useful to extract from P(t). However, I think building robust algorithms for extracting these pressure values and times will require experimenting with different extraction methods on a realistic variety of P(t) traces; preferably ones taken from real patients. You could rough out the algorithm(s) with synthetic P(t) data. However, you should quickly move on to use real P(t) traces recorded on a real patient (i.e., fairly periodic P(t) with regular amplitude). After the extractions were working (as measured by comparing the extracted values to the actual P(t) trace with your own eyes), you could then graduate to messier P(t) traces (e.g., where the patient coughs, or twitches, or “fights the vent”) .

      It is easy to fabricate a P(t) trace generator that any human could breath through to generate some starting data. (See my comments of 11 April 2020 at 23:59 for a description of the setup. I can send pix and P(t) traces on request.

  18. hamid abrishami

    what the pressure sensor part number that you use I can not read and find that in schematic

    • Thomas Low

      please see my comment of 11 April 2020 at 23:59 for details about a suitable pressure sensor for both monitoring airway pressure and air flow (e.g., to detect leaks). I am not sure if this is the same sensor used by the e-vent team, but I think it might be a good choice.

      Comments invited.

  19. Eric Baicy

    I have completed some modeling of airway pressure readings which can be easily simulated in python3. I’ve also started work on detailed algorithms for processing important parameters to be extracted from the pressure data.

    Please see my github repository for code and details:

    This is a work in progress and is not very elegant.

  20. Srinivas Boppu

    Dear All,

    I am referring to the Electrical & Controls section, have the following questions.

    1. In assist control mode what are the typical values of Texhold?
    2. In the same control section, in the assist control mode state diagram, it is written that the next inhale phase should start when
    pressure < PEEP -TS
    Here, the pressure refers to current measured pressure and PEEP refers to the residual pressure in the Ambu bag which is also measured in LISTEN state for instance. What is TS?

    Thanks and regards,
    Srinivas Boppu

    • Hector Molina

      Hello, Peep pressure is adjusted with a manual peep valve, tipical value of peep presura range is 5 to 10 cm H20. In mandatory ventilation mode, after down pressure in expiration time, the pressure in airway stay in peep adjusted value, y these window of time is useful for sensing, voluntary inspiration, with down of the order of 1 o 2 cm H20

      best regards

      • Thomas Low

        I remember seeing a comment by a retired respiratory therapist that they used to use a simple dip tube (with adjustable depth into the water) as a PEEP valve. The depth in cmH2O could be used to continuously and accurately set the PEEP pressure. Elegant and simple. Maybe MIT E-VENT should consider this approach.

  21. Thomas Low

    I have several comments about some specific Arduino readable pressure sensors, and also how and why  to sense air FLOW with the same sensors.   I can elaborate on these comments, and provide more info, pix, and testing on request.  Finally, I made a comment about the possible value of using NDIR (optical absorption) sensors in the airway to sense the expected  ~15% CO2 content of exhaled breath.  

     A differential pressure sensor is required to report the patient’s airway pressure relative to ambient,    (i.e., to subtract the airway pressure from ambient room pressure).   Unfortunately, an absolute pressure sensor cannot provide this differential function.
       There are many a suitable differential pressure sensors.   I have successfully used the NXP MPXV7002DP differential pressure sensor to monitor and plot my own airway pressure.  These are  available singly ($18.59/pc) or in 100pc reels ($10.69/pc) from DigiKey .   The datasheet for this part is here  The same part is also  available from Mouser
     For testing,   I purchased two on MPXV7002DP breakout boards , with the recommended input and output caps, from amazon here:  (unfortunately,  this seller is out of stock):
      Fortunately,  there are several other amazon sellers who have similar or identical MPXV7002DP breakout boards,  including these:
        The MPXV7002DP sensor has just three connections, +5V, GND, and Vout, as you can see in the datasheet.  When the differential pressure between the two 0.110″ dia barbed   inlet tubes is zero, the MPXV7002DP reports Vout of about  +2.5V (about halfway between the 0V and +5V supply rails).  When the pressure is larger on the top  inlet tube than the bottom tube (e.g., if you blow into into a tygon tube attached to the top tube), the Vout value increases from ~ +2.5V   toward the +5V supply voltage,  in direct proportion to the pressure applied (increasing by ~0.0903 Volts per cmH2O of pressure).   I calibrated my sensor in cmH2O using a simple water dip tube.    
    The Vout continues increasing, and approaches the 5V supply rail as the  pressures increases to ~20cmH2O (~0.28 psig or ~1.96kPa), and above that pressure, the Vout is close to +5V independent of pressure.  This means pressures higher than ~20cmH2O cannot be accurately measured with the MPXV7002DP sensor.  However,  but excessive positive pressure applied to the airway manifold can still be detected (and an alarm could be sounded) whenver  Vout exceeded ~ 4.5Volts.  
      Similarly, when the (airway) pressure drops below the ambient (room) pressure, the Vout drops below the ~ +2.5 Volt  quiescent value.  The variaion of Vout has the same slope versus pressure on this “negative” differential pressure side, of -0.0903 Volts per cmH2O of pressure difference between the two input ports.
       The sensitivity of the MPXV7002DP is easily good enough to detect the small 1-2cmH2O negative airway pressure which would  indicate that the patient is trying to inhale.   Also, using the available 10bit A/D available on any of the analog pins of a 5V Arduino (Arduino Uno or other),   measurable +/- 20cmH2O  differential pressure range is parsed into integers from 0 to 1023 .  This means the native 10bit Arduino A/D resolution is  5V/1024 or about 5mV per A/D step, which corresponds to about 0.055 cmH2O change in pressure.   This resolution is good enough to produce a beautifully resolved trace of the  patient’s airway pressure versus time.
      The resulting pressure versus time P(t) could be plotted for patient monitoring, and the E-VENT logic could use P(t) to trigger and initiate breath cycles, measure PEEP,  or provide/display  other diagnostic info about P(t)  .
     It is worth noting that this same MPXV7002DP pressure sensor can be configured to measure air FLOW.   This could be valuable because it could enable automatic detection and alarms for ventilator malfunction.  For example measuring air flow at one or more sites in the airway manifold could enable detection of small leaks (e.g., due to loose fittings)  or clogs (sputum, vomit, etc, or clogs in intubation ) in the airway manifold.  If anomalies in air flow were detected, the controller software could trigger an appropriate alarm.
       I have also demonstrated this air FLOW measurement can work with a simple setup and the MPXV7002DP flow sensor.   The concept was simply to measure the small pressure drop across a similarly small flow impedance in a tube simulating the airway manifold of a ventilator, and interpret the differential pressure (cmH2O) in terms of air flow thru the tube  (slm) .
    The setup consisted of an ordinary 1/2″ NPT water valve, with a 6″ length of 1/2″ PVC pipe at the valve input and another at the valve output.   I installed small barbed fittings (10-32 threaded brass Clippard fittings)  into the sidewalls of each 1/2″ PVC pipe, and ran  two ~3mm tygon tubes from these upstream and downstream barb fittings to the input ports of the MPXV7002DP flow sensor.   The 1/2″ NPT water valve was set to wide open, and presented a small enough flow impedance to hardly be noticable when I was breathing through it.
    The flow related simply  to the difference in pressure between the upstream and downstream side of the flow restriction.   Bernoulli showed that mass flow of air is proportional to the square root of the pressure difference (see
    Again, the excellent pressure resolution provided by the MPXV7002DP sensor and the 10bit Arduino A/D enabled accurate measurement of air flow, even  WITHOUT imposing a significant flow restriction on my breathing airway.   Obviously, there is a tradeoff to be  studied here; we want to minimizing the flow impedance experienced by the patient, while providing adequate air flow information.    However, my impression from initial tests is that the flow restriction can be small enough to be quite acceptable, and still provide  a clear indication of air flow (and CHANGES in air flow) in the patient’s airway.  
    A happy aspect of these sensors is that they can be installed in the airway manifold with minimal addition of dead space volume  (which is essential, as noted on the e-vent site).    
       I would be happy to try to answer your questions about pressure or flow sensors, and to help with thinking about how to implement them in the E-VENT ventilator.    I have ideas about how to   make them re-usable (without COVID contamination), and to help decide where how to place them in the airway manifold, etc.  

    Please reply with questions or comments, or email me directly at 

  22. Sebastiano de Franciscis

    Hi all,

    my comment regards he section “Controls” but, as in thta page there is no “leave a Reply” form, I’ll write here.

    I don’t understand completely the Assist control Diagram, in particular:

    -) Time is resetted only in two blocks, in “inhale” and in “exhale” one, do I undestand correctly?

    -) The block “Exhale pause measure PEEP” is mandatory, or if the bag opens in less time, for example if the patient is able to exhale himself, do we switch directly to block “Listen” ?

    -) What’s “TS” in arrow “if pressure<PEEP-TS…"?

    -) There is a difference between "Te' " in block "listen" and "Te'" in arrow "if pressure<PEEP-TS…"?

    Thanks in advance and my congratulaton for your work and effort,

  23. Marco Chan

    Hi all, wondering if anyone find replacement for the differential pressure sensor from Sensirion?
    Say SDP3x

  24. Eric Baicy

    I just want to inform people that my work on modeling and measuring pressure parameters continues now with real anonymous ventilator data. I have created a second newer model cleverly called model2 and monitor2 which are on github:

    This code is in python so it is easy to read and it does not rely on complex libraries so you should be able to use it in other languages. It’s still in the debugging stages but it’s functional.

    If you have questions or comments, either open an issue on github or contact me


  25. Nikita Ambasana

    Thanks for this design. I had a question…the pressure sensor in your BOM is a differential pressure sensor. So does that mean it will always measure the difference in pressure? In that case, is one of your sensor nodes placed outside the system to measure atmospheric pressure? If not, how are you getting the PIP and Plateau values? As the difference in pressure in the 0.15s of pause will be 0?

  26. Hemant Singh

    Why does the pressure sensor transducer have two spigots. I suppose one is used for air flow into the sensor to measure pressure. What is the other one for? To let the air out and if so, “out to where”?

    • Hemant Singh

      Ah, one spigot sees atmospheric pressure and the other gets the pressure from the patient air flow.

  27. Rafael Martinez

    Why was an analog pressure sensor used instead of a digital like other ventilator projects?

    • NYMC Team

      The analog pressure sensor is used rather than a digital sensor because of the lower cost and higher availability of the analog sensor. Given the intended applications of this ventilator, utilizing materials that are adequately functional and reliable, while still being easily obtained, was prioritized. Furthermore, since pressure transducers with the correct specifications to sense human respiration may be in low supply, considerations like placing an in-line HEPA filter between the patient and the sensor were made so that the sensors are not limited to being for single-use only.

  28. Aravind Raj B

    In the E-Vent page, it was mentioned SSCDRRN001PD2A5 but why MPXV7002DP is the choice made by many? Is there a big price difference or availability ?

    • Hemant Singh

      MIT BOM says SSCDRRN001PD2A5 costs $65, but another part in MPX5010DP costs $9.08.

      • Aravind Raj B

        Thank you Hemant. Why do you suggest MPX5010DP(100cm H2O) instead of MPXV7002DP(20 cm H2O) as the inhale pressure is not going to exceed 5cm H2O ? For this project, is it good to use gauge type(MPXV7002GP) sensors ?

    • Hemant Singh



      and look for sensor. The sensor should support up to 100 cm of water. The MPX10DP supports up to 1.45 psi which is 101.95 cm of water. Note, the MIT sensor and the one I pointed to has two inlets, one for air to send to for measuring and, I think, another to get atmosphere air. The sensor need to measure differential pressure.

  29. Andrea Stanisci

    Hello everyone, may I ask you a favor? For a university research we are studying this biomedical device and we are trying to deal with the pressure sensor architecture and with all the signal chain that brings to the microprocessor from the sensor. Can you please provide me an electric diagram related more to the pressure sensor and a clear description on how the system works to transduce the patient airway pressure? Thank you so much, Andrea.

  30. Thomas Powderly

    I have spent the last 5 weeks on building a mostly off the shelf MITEvent/RiceEduApollo system.
    But , I ask:
    Is the E-vent meant to be used in a typical hospital room?
    Don’t typical hospital rooms have medical air and oxygen outlets for the patient?
    If so, why are we squeezing a bag?

    AFAICT , There is no need for motors, only for valves and timing. ( re: Oxford and Stanford designs )
    Dropping the motor/squeezer mechanism would allow more money and time to develope the on-demand
    Assist Control Ventilation.

    Why would we squeeze a bag?
    I have bought bags and built sqeezing mechanism prototypes here.
    I don’t have a good reason to NOT switch to valve only designs after reviewing them.
    Tell me if I am mislead.
    regards TJoseph Powderly

    • Hemant Singh

      Even an ICU ventilator uses a compressor or turbine to generate air. The MIT e-vent uses an Ambu bag to generate air. Oxygen is optional to add to a ventilator air flow and many ventilators support the option.

    • Jorge Lange

      Thomas, have the same thoughts. Of course, if you are in a developing country and don’t have compressed air but can bags, then this is a good solution. For places far, far away, playing around with a vacuum cleaner-driven version. Suppose if a hospital doesn’t have a vacuum cleaner, they have bigger problems than lack of ventilators.

  31. Joseph Habiyaremye

    Hello , i need some help about speed and position control i am using ” RoboClaw Solo motor controller” and a dc motor with encoder. thx

  32. Matthew Chu

    I am bit confuse on the pressure sensor selection. As the sensor should support up to 100 cm of water, and 1.45 psi which is 101.95 cm of water, so the sensor selection should have reach the range of 10kPa. How come the MPXV7002DP is ok to use? And also Bourns BPS120 is ok to use also?

Comments are closed.