Graphical abstract
Keywords: Respiratory analysis, Reusable sensor, Mechanical ventilation, Customisable sensor
Abstract
A low-cost but reliable flow and pressure sensor is an impediment to development of medical equipment, and studies of human respiratory function, which is characterised by relatively low pressures and flows. A Venturi tube () connected to a differential pressure sensor (SDP816-125 Pa) allows accurate measurement of flow between , with Pearson Correlation over 4 min at , and distance correlation . The pressure measurement was similarly accurate using a MPVZ4006GW7U. Both sensors provide an analogue output from a supply, aiding compatibility and customisation. Each populated PCB costs approximately $50USD, and each Venturi sensor costs approximately $1USD. Multiple configurations exist, allowing flow rates up to , increased resolution for specific ranges, and different physical characteristics.
Specifications table:
Hardware name | ACTIV flow and pressure sensor |
Subject area |
|
Hardware type |
|
Open source license | Creative Commons Attribution-ShareAlike 4.0 |
Cost of hardware | $50USD initially, $1USD for sterilisable sensors |
Source file repository | https://doi.org/10.17605/osf.io/bre5f or registered: https://doi.org/10.17605/osf.io/uce2h |
1. Hardware in context
This device allows measurements of flow and pressure in physiological ranges for natural and assisted respiration. This relatively low range lends itself to respiratory research, and development of novel medical treatments without the necessity for substantial cost associated with a traditional flow and pressure sensor. For example, an off-the-shelf product such as the Sensirion SFM3300-250 (Sensirion AG, Switzerland) is either US$41.80 for a single-use version, or US$179.20 for one which can be autoclaved. While the device presented here has a smaller range, and less precision across sections of the range, it provides an effective, low-cost foundation for respiratory research, as well as further development of other specific applications or requirements.
Having access to a cost-effective, readily-assembled device which is well characterised and validated would enable considerable development of open source hardware. During the COVID-19 pandemic many open-source hardware solutions were developed in the respiratory therapy space, for example mechanical ventilators [1], [2], [3], [4]. An aspect that was absent or expensive in these designs was the ability to determine the characteristics of the respiratory therapy provided. The device presented in this paper provides for this in the form of flow and pressure data, from which many of the metrics and measurements required for a detailed understanding of the respiratory therapy can be gained. Being customisable and having multiple configurations, it also enables further development of other open source hardware, for example spirometers or peak flow meters. One hindrance to development of such technologies is that flow sensors, particularly multi-use ones, are too expensive to be accessible in low-resource regions.
2. Hardware description
The device1 consists of a 3D-printed Venturi tube, both an absolute and differential pressure sensor, and some minimal electrical hardware for interfacing. The Venturi is designed to interface with standard respiratory circuits as specified by ISO 5356-1:2015 [5], with a combined cone and socket (22 M/15F) input, and a socket (22F) output. Adapter designs are also provided for other common connections. The deadspace of the Venturi is approximately . For applications where a smaller deadspace is desired, for example in the analysis of neonatal respiratory circuits, a Venturi with all passages narrower could be used, for example . This narrowing and reduced deadspace comes at the expense of an increase in added resistance in the circuit.
The electrical hardware is a single printed circuit board housing two sensors, an absolute pressure sensor and a differential pressure sensor for determining the flow. The sensors both operate from a power supply, and provide an analogue voltage output between . Thus, they are very widely compatible with any device with an analogue to digital converter (ADC), such as Arduino or Raspberry Pi based systems.
The 3D-printed parts of the system can be sterilised with hydrogen peroxide, meaning the device can be reused between patients or subjects, if required. There should be minimal deformation to the Venturi [6]. It is also feasible to print multiple single-use Venturis, as each only uses approximately of filament and some hosing, thereby ensuring low costs.
The device provides a foundation for analysis of, and development of tools for respiratory circuits, such as mechanical ventilation. It is:
Low-cost | Widely compatible | |||
Mostly 3-D printable | Reusable and sterilisable |
3. Design files
3.1. Design files summary
The design files are all available at https://doi.org/10.17605/osf.io/bre5f. The file locations specified in Table 1 are relative to the base of this directory, as implemented in OSF’s Components.
Table 1.
Design filename | File type | License | Location of the file Relative to base directory |
---|---|---|---|
Production Files: | |||
venturi15–10 mm.stl | 3D-printable | CC BY-SA 4.0 | physical/renders |
barb.stl | 3D-printable | CC BY-SA 4.0 | physical/renders |
sensorComb1.0.zip | Contains Gerber and drill files | CC BY-SA 4.0 | electrical/SensorComb/ |
dataLog.ino | Arduino project | CC BY-SA 4.0 | software/dataLog |
Source files: | |||
venturi15–10 mm.FCStd | FreeCAD | CC BY-SA 4.0 | physical/ |
barb.FCStd | FreeCAD | CC BY-SA 4.0 | physical/ |
SensorCombined.pro | KICAD project | CC BY-SA 4.0 | electrical/SensorComb/ |
3.2. FreeCAD
Physical design was done in FreeCAD [7]. The holes for the barbs in the Venturi are slightly oval to account for deformation associated with 3D printing. This geometry has been shown to work in both PLA and PET-G with a tight seal, but with other materials or print orientations the deformation associated with gravity should be considered.
3.3. Printed circuit board design
The PCB was designed in KiCAD. Local library files are included for both the schematic and PCB footprints. The design is rudimentary, but has been shown to have acceptable noise characteristics from use (see Section 7.4 for data). While the PCB is designed to be connected with pitch pin header connectors, it could be modified to accept any other required plug. The PCB is very basic, but has proven itself operational with complex devices. There is also the ability to have basic on-board analogue-realm filtering. This rudimentary design provides a proven foundation for more advanced configurations.
3.4. Software
There is minimal software included by a simplicity-focused design. Only a very simple Arduino code is included, which enables data recording over a serial port. The sample frequency is adjustable, and the time since the previous data point was read (real-time sample period) is also reported. For an example of a more comprehensive application see the ACTIV ventilation system (https://gitlab.com/luihp/activVent). This simplicity, again, creates a simple but robust platform upon which more complex applications can be developed if desired.
4. Bill of materials
The complete bill of materials can be found at https://doi.org/10.17605/osf.io/bre5f. Table 2 contains the critical components and subsystem totals for costing and ease of reference
Table 2.
Component | Qty | Total Cost | Notes |
---|---|---|---|
Key components: | |||
Electrical Components: | |||
SDP816-125PA or SDP816-500PA | 1 | $30.69 | Differential pressure/flow sensor |
MPVZ4006GW7U | 1 | $15.36 | Absolute pressure sensor |
3D-printed parts: | PLA/PET-G recommended | ||
venturi15–10 mm.stl | 1 | $0.41 | |
barb.stl | 3 | $0.05 | |
3.5–4 mm ID Tubing | 0.3 m | $0.42 | Silicone |
System totals | |||
Populated PCB | 1 | $48.36 | Including sensor cost |
Sterilisable Venturi | 1 | $0.82 | |
Total device | $49.17 |
5. Build instructions
There are six main steps for the construction of the device:
-
1.
Determine the desired sensor and Venturi combination. Table 3 presents the range of possible combinations, and Table 4 the associated resolution.
-
2.
Place an order for the PCBs and the appropriate sensors. Due to shipping this step is often the slowest process, with the rest being done in–house.
-
3.
Print the correct Venturi; any layer height should be appropriate. Include at least three barbs, which are better with a layer height , for each flow and pressure sensor desired. The.stl files are in the correct orientation for printing, which can also be seen in Fig. 1. Support materials are not required..
-
4.
Insert the barbs into the appropriate holes of the Venturi for connection to the sensors. This can require a reasonable amount of force to properly seat them (in the realm of load axial to the barb).
-
5.
Populate the PCB. Note, the only required components are highlighted in the BOM, or indicated in Fig. 3.
-
6.Connect:
-
•The jumpers to select both the power supply, and the operating mode of the differential pressure sensor, as per Fig. 4.
-
•Hosing onto the sensors, and then onto the barbs of the Venturi, as shown in Fig. 2. The ‘High’ pressure terminal of the differential sensor must connect to the input of the Venturi.
-
•The PCB to an appropriate device. For example, an Adruino or Raspberry Pi.
-
•
Table 3.
Pressure sensor: | |||
---|---|---|---|
125 Pa | 500 Pa | ||
Venturi: | 15–10 mm | ||
15–12 mm |
Table 4.
Pressure sensor |
|||||
---|---|---|---|---|---|
125 Pa | 500 Pa | ||||
Venturi | 15–10 mm | Bot 10% (23.6) | .17 | Bot 10% (46.8) | 0.33 |
Top 10% (71.4) | 0.055 | Top 10% (142) | 0.11 | ||
15–12 mm | Bot 10% (39.6) | 0.28 | Bot 10% (78.6) | 0.56 | |
Top 10% (120) | 0.093 | Top 10% (238) | 0.18 |
6. Operation instructions
Once assembled, the device can be inserted into any respiratory circuit. Ensure that the flow is travelling from the cone/ socket (22 M/15F) input, to the socket (22F) output, as indicated by the arrow on the external aspect of the Venturi. With the device electrically interfaced to the desired electronic hardware, including a power supply, the device can be sampled with an ADC as frequently as is desired for the application.
For operation of the device with the provided software, simply connect the analogue voltage outputs to appropriate inputs of an Arduino, by default flow (Fl) to A0, and pressure (Pr) to A1. Ensure that the serial terminal used is set to a baud rate of 115200.
Device operation depends to a reasonable extent on non-turbulent flow. Turbulent flow is generally unlikely in respiratory circuits given the typical flow rates and pressures. However, as such, consideration should be given to the exact placement of the sensor within a respiratory or similar circuit. It is recommended to:
-
•
Avoid placing the sensor immediately after a narrow constriction or a sharp corner.
-
•
Avoid placing the sensor somewhere subject to a considerable amount of acceleration.
Other operating considerations include:
-
•
The length of tubing from the Venturi to the sensors should be minimised. A bracket is provided that enables the PCB to be attached directly to the Venturi or to another tubular part of the circuit, or if the tubing is sufficiently stiff, the PCB will often be fine suspended by the tubing, which will also isolate it from physical movement.
-
•
While the MPVZ4006GW7U reports its voltage requirements as specifically within the 4.75–5.25 V range, there have been no issues running it from the 5.0 V regulator from the Arduino for the 400 + hours of testing and use of the device.
-
•
There is definite potential for aerosol- and saliva-based pathogens to contaminate this device. If it is being used across multiple subjects, it is strongly recommended to sterilise and/or utilise filters in the respiratory circuit to minimise any possible cross contamination.
-
•Another safety concern is the barb becoming dislodged from the Venturi, causing a leak in the circuit. If being used as part of a critical respiratory circuit, for example on a ventilator, it is vital to:
-
–Ensure the barbs are properly seated by firmly tapping them in the axial direction of the Venturi,
-
–Possibly use tape between the barb and Venturi for added friction and vibration support,
-
–Ensure, if available, the use of leak alarms with any connected respiratory devices.
-
–
7. Validation and characterisation
In brief, for a system specifically defined as:
-
•
Using the 15–10 mm Venturi;
-
•
Connected to the 125 Pa differential sensor;
-
•
with the sensor configured to linear operation mode;
-
•
Operating at ; and
-
•
Interfaced to a 10-bit ADC
It is true that:
-
•
The device can be used for flows and pressures up to or
-
•
7.1. Characterisation
The flow sensor works on the basis of a pressure decrease associated with increase in velocity through a constriction. From first principles, assuming laminar flow, the flow can be calculated:
Where:
The high value is actually used as a linear scalar to fit the output of the sensor to the validation data. This value provided an acceptable fit to data for several Venturi/PCB combinations as shown in Section 7.4. Data are shown in full at https://osf.io/tj624/.
With the differential flow sensor in linear mode:
Thus, assuming the operating voltage is , and the sensor is connected to a device with a 10-bit ADC, such as an Arduino Nano, flow is defined:
For a 15–12 mm Venturi, replace the value of 6.722 with 11.284.
The pressure loss caused by the Venturi is minimal in the context of respiratory circuits. By modelling the Venturi as a cylinder with , and , the theoretical loss is at , and at .
7.2. Operational range
The operational range of the flow sensor is presented in Table 3 for a variety of configurations. It is important to note that with the differential pressure sensor configured in linear operating mode, the resolution at the lower flows listed here is particularly poor. It is also possible for the Venturi to be connected to both a and a sensor allowing a significantly greater range.
The device presented in this document is the foundation for other devices, to be built upon as required for specific applications. It is simple to design a custom Venturi, or series of Venturis, which enable a more comprehensive analysis of a respiratory circuit. Similarly, it is possible to include another port to allow for flow to be determined in two directions.
The pressure sensor range is , or .
7.3. Resolution
The resolution of a variety of configurations of sensors are shown in Table 4 Because of the square root relationship, the resolution is very poor at low flows. For a better resolution at lower flows, one could either investigate the use of the sensor in square root operating mode, or else using a tighter constriction in the Venturi.
While the resolution values presented in Table 4 are those associated with a 10-bit ADC, the resolution could be significantly increased with the use of a higher definition ADC, up to the 16-bit internal digital resolution of the component [8]. The validation has been performed with a 10-bit ADC to demonstrate effective and accurate sensing is achievable with accessible, cost-effective hardware such as that found on Arduino systems, but it could be expected that the resolution of the device with a 16-bit ADC would be smaller than the values presented in Table 4.
The resolution of the pressure sensor appears to be limited only by the resolution of the ADC to which it is connected: for example a 10-bit ADC sees a resolution of or .
7.4. Validation
The device was validated against the serial output data from both Puritan Bennett™ 840 (Medtronic, Ireland), and a Evita® Infinity® V500 (Dräger, Germany) mechanical ventilation devices. Several experiments were conducted, in which one device was used to detect the inspiratory flow from the ventilator, and another for the expiratory flow to the ventilator. A pair of devices were also used to examine the flow and pressure characteristics within the circuit. The circuit was driven by the mechanical ventilator, with settings in the following ranges:
Volume control | ||
Tidal volume: | ||
Maximum inspiratory flow: | ||
Maximum inspiratory time: | ||
Waveform | Trapezoid, square, triangular | |
Pressure control | ||
Inspiratory pressure: | ||
Inspiratory time: | ||
General settings | ||
PEEP | ||
Respiratory rate: RR |
Therefore, the device has been validated within a range of oscillatory environments common within mechanical ventilation.
Over the 80 s of experimentation from which the data within Fig. 5 were obtained, while sampling at , the Pearson correlation was consistently for flow, commonly . The distance correlation was typically . A Bland–Altman plot [9] demonstrating the error can be seen in Fig. 6. The points with significant error are due to the sample rate being relatively low relative to the gradient of the near-vertical increases in flow. These are shown at the start of inspiration in the earlier data of Fig. 5. The pressure sensor performed similarly, with the Pearson correlation typically . Complete datasets are available at https://osf.io/tj624/. Over the total approximate two hours of experimentation, the device consistently had a Pearson correlation , and more often than not performed as is shown in Fig. 5. There was not a significant difference in correlation when comparing with data from either mechanical ventilator or the other. Given the devices are intended for use in mechanical ventilation or similar applications, being validated against high-quality equipment which control these circuits demonstrates the ability of the device to determine the state of the system.
Venturis for validation were printed on the PRUSA MK3, PRUSA MK3S, and PRUSA MINI printers (PRUSA, Poland) at layer heights .
7.5. Calibration
The flow sensors have been shown to have a variability of less than 3% across combinations of sensors and Venturis. If available, calibration should be done against a device such as a mechanical ventilator, or a flow calibrator. If these devices are unavailable, a known volume can be passed through the flow sensor at a rate within the high-resolution range of the flow sensor, and the integration of the flow data should be equal to the known volume, where repetition of differing volumes and flow rates can provide robust calibration.
Human and animal rights
No human or animal studies were conducted in the design of this work.
Declaration of Competing Interest
This work was funded by a grant from the New Zealand Government through the Ministry of Business, Innovation, and Employment. The authors declare they there are now known competing financial or other interests that have influenced this design or application in any way.
Footnotes
To avoid ambiguity, in this document sensor pertains solely to the electronic components capable of detecting absolute or relative pressure, and the physical 3-D printed tube will be referred to as the Venturi. The entire system is the device.
References
- 1.O. Garmendia, M.A. Rodríguez-Lazaro, J. Otero, P. Phan, A. Stoyanova, A.T. Dinh-Xuan, D. Gozal, D. Navajas, J.M. Montserrat, R. Farré, Low-cost, easy-to-build noninvasive pressure support ventilator for under-resourced regions: open source hardware description, performance and feasibility testing, European Respiratory Journal 55 (6). [DOI] [PMC free article] [PubMed]
- 2.B.K. Lai, J.L. Erian, S.H. Pew, M.S. Eckmann, Emergency open-source three-dimensional printable ventilator circuit splitter and flow regulator during the covid-19 pandemic, Anesthesiology. [DOI] [PMC free article] [PubMed]
- 3.A. Petsiuk, N.G. Tanikella, S. Dertinger, A. Pringle, S. Oberloier, J. Pearce, Reprapable automated open source bag valve mask-based ventilator. [DOI] [PMC free article] [PubMed]
- 4.L. Acho, A.N. Vargas, G. Pujol-Vázquez, Low-cost, open-source mechanical ventilator with pulmonary monitoring for covid-19 patients, in: Actuators, vol. 9, Multidisciplinary Digital Publishing Institute, 2020, p. 84.
- 5.Anaesthetic and respiratory equipment – Conical connectors – Part 1: Cones and sockets, Standard, International Organization for Standardization, Geneva, CH, 2015.
- 6.O. Oth, C. Dauchot, M. Orellana, R. Glineur, How to sterilize 3D printed objects for surgical use? An evaluation of the volumetric deformation of 3D-printed genioplasty guide in PLA and PETG after sterilization by low-temperature hydrogen peroxide gas plasma, The Open Dentistry Journal 13 (1).
- 7.J. Riegel, W. Mayer, Y. van Havre, Freecad, 2016.
- 8.Sensirion, Datasheet SDP8xx-Analog, Vienna, Austria, 2018.
- 9.Altman D.G., Bland J.M. Measurement in medicine: the analysis of method comparison studies. Journal of the Royal Statistical Society: Series D (The Statistician) 1983;32(3):307–317. [Google Scholar]