key: cord-0889250-ml7x3w2w authors: Read, Robert L.; Clarke, Lauria; Mulligan, Geoff title: VentMon: An open source inline ventilator tester and monitor date: 2021-04-22 journal: HardwareX DOI: 10.1016/j.ohx.2021.e00195 sha: c4ce7345bce3efdaa35386461752ed4e723d9449 doc_id: 889250 cord_uid: ml7x3w2w Humanitarian engineers responded to the pandemic ventilator shortage of March, 2020 by beginning over 100 open source ventilator projects [Robert L. Read et al. COVID-19 Vent List. Oct. 2020. url: https://docs.google.com/spreadsheets/d/1inYw5H4RiL0AC_J9vPWzJxXCdlkMLPBRdPgEVKF8DZw/edit#gid=0, Joshua M. Pearce. A review of open source ventilators for COVID-19 and future pandemics. In: F1000Research 9 (2020).]. By ventilator, we mean both an invasive ventilator (requiring intubation of the patient) and non-invasive ventilator (generally supporting spontaneously breathing). Inexpensive ventilator test equipment can facilitate projects forced to be geographically distributed by lockdowns. The VentMon is a modular, open source, IoT-enabled tester that plugs into a standard 22 mm airway between a ventilator and a physical test lung to test any ventilator. The VentMon measures flow, pressure, fractional oxygen, humidity, and temperature. Data is stored and graphed at a data lake accessible to all devlopment team members, and, eventually, clinicians. The open source design of the VentMon, its firmware, and cloud-based software may allow it to be used as a component of modular ventilators to provide a clinical readout. The software system surrounding VentMon has been designed to be as modular and composable as possible. By combining new, openly published standards for data with composable and modifiable hardware, the VentMon forms the beginning of an open system or eco-system of ventilation devices and data. Thanks to grants, 20 VentMons have been given away free of charge to pandemic response teams building open source ventilators. efficiency and accuracy of the development process for socially distanced, potentially international teams making open source ventilator, Bilevel Positive Airway Pressure (BPAP), and Powered Air-Purifying Respirator (PAPR) devices. Although it is beyond the scope of this paper to review or even comment on ventilation projects, a number of pandemic response ventilators have been reported on recently which seem to be candidates to benefit from the VentMon, if only because of its flow-sensing and oxygen sensing capabilities (most have pressure sensors in place) [6, 10, 3, 21, 2] . Although most published reports include bench-top testing, this may have been done with an instrumented test lung which is not continuously available to the development teams as a VentMon might be. Additionally, most of the teams mentioned in a report on open source teams [4] could make use of a VentMon. The VentMon plugs directly into a standard 22 mm adult airway. As air or medical gases pass through the VentMon, it records flow and pressure, temperature, humidity, and fractional O 2 at rates of 25 Hz to once per minute, depending on the measurement. When placed in the breathing circuit between a ventilator under test and a physical test lung as shown in Fig. 14 , this data is sent to a public data lake [13] using a clearly defined respiration standard [12] . This data can be graphically rendered either live or statically to provide a display that is typical of the clinical display of advanced ventilators as shown in Figs. 14 and 15. This functionality is similar to that of commercially available instrumented test lung devices, which tend to start at USD$10,000. Teams building open pandemic ventilators tend to be poorly funded and geographically distributed. VentMon's connectivity and overall cost address these two challenges by enabling team members on different continents to view waveforms (see Fig. 15 ) in real time and communicate the necessary adjustments to the ventilator device under test. While reliance on the internet is a strength for a distributed and virtually connected engineering team, it would be an addressable disadvantage in a field hospital. Being completely open, VentMon supports modification, extension, and has potential for integration into a complete ventilator. A team working to build a ventilator device with a graphical trace of pressure and flow-generally demanded by clinicians for all but emergency transport situations-could incorporate the open source VentMon into its complete design. VentMon has potential to be safe enough and reliable to be used as a monitor on human patients, however it requires much improvement before it is ready for that use. The VentMon thus offers the following benefits to teams developing ventilation devices. It: is inexpensive, is completely open source and part of a modular hardware/software system that can be customized and extended, allows remote collaboration, and currently provides many of the clinically significant metrics found in commercially available ventilators. We promote an open, modular, and composable respiration ecosystem. Therefore, we have more separate repositories and modules than would strictly be needed if we were only making the VentMon project. Our hope is that smaller modules may be reusable by others who do not need the VentMon specifically, but may have need for a particular component. 1. The main firmware is written in the Arduino environment. The firmware targets an ESP32, but could easily apply to other boards. This core firmware manages reading the various sensors, and outputs its data both on its small built-in OLED (used for functional testing), and via the PIRDS standard to a public data lake where a separate module renders it in a graphical display appropriate for a clinician. 2. Our current focus is on a printed circuit board version of the VentMon [1] . However, we also report here a system that can be made by an amateur using only commercial off-the-shelf (COTS) parts-version T0.2. Software that matches this version it is tagged as such. 3. VentMon has a tiny OLED screen which is used to graph pressure for quick ''smoke" testing. For serious performance testing and eventual clinical use, we use VentDisplay, a browser-delivered JavaScript code that presents a full clinical display. 4. The VentDisplay software can be pointed at any data logger that serves up data in the PIRDS format. This logger takes data from UDP packets and writes them to a file, which can then be served up by a webserver to any requester. 5. Integral to the VentDisplay and PIRDS Data Logger is the Public Invention Respiration Data Standard (PIRDS). This is a documented standard. 6. The VentMon v0.3T printed circuit board is designed with EAGLE CAD. 7. A small 3D printed housing epoxied over the ambient air quality sensor with a tiny pressure port allows us to share the air with the main pressure hose. The Bill of Materials specifies the parts needed to build the VentMon in a simple enclosure with drilled-out ports for cables. The parts are typical of hobby electronics. The flow sensor is one of the most expensive and critical parts. Throughout mid-2020 there was a global shortage of flow sensors, including the four electrically compatible with the VentMon as currently designed. The Sensirion SFM3400-AW ($180US) (a neonatal version with limited maximum flow sensing), SFM3200-33-D (disposable version $40USD), Sensirion SFM3200-250 ($145USD), and Sensirion SFM3200-AW ($180USD autoclavable version). We shipped VentMons with all of these depending on availability. The VentMon is not currently designed for use with humans, but if it were, the autoclavable version would have the advantage of sanitizability if a complete sanitization procedure were designed. This is important, as we hope the VentMon will be modified and integrated into a rapidly manufactured ventilator, for which sanitization is critical. The link below is to a spreadsheet which is includes the PCB-version, which is very similar except for the PCB itself. By following this link: VentMon BOM, you can reach browsable URLs to most of the non-commodity parts. The specific BOM for the SMD parts needed to assemble the PCB can be found in our GitHub repo in the directory named design/pcb along with the Eagle files: [1] . Two versions of VentMon can be assembled depending on availability of parts and time. The most physically robust and complete version of VentMon requires the purchase and manufacture of a PCB as well as a number of 3D printed plastic parts. This version of the device requires the least amount of time to assemble and contains fewest discrete components. The designs of the PCB and 3D printed parts are fully open. Due to the relatively high single-unit cost of PCB manufacture and assembly it makes most sense to use the PCB if you are building 10 or more VentMons. VentMon can also be created using off-the-shelf components readily available from DIY electronics suppliers. This version requires significantly more assembly time. We believe this has been done twice by third parties with little to no assistance from the VentMon team. Both assembly procedures are outlined below. The VentMon v0.2T is not meant to be used on human patients. The COTS version uses firmware v0.2 tagged as such [14] . This version is somewhat incompatible with v0.3 (described below), which uses a PCB, and which is the focus of our main development. See This PCB-based v0.3T version of VentMon (see Fig. 13 ) requires two 3D printed parts-one encapsulated an on-board pressure sensor and one is an airway adaptor-as well as a PCB assembly. Before beginning the assembly process make sure that you have manufactured those parts. Follow assembly instructions in Section 2. Follow assembly instructions in Section 4. The VentMon v0.3T is not meant to be used on human patients. The purpose of the VentMon is to measure, log, validate and verify the performance of rapidly manufactured ventilators, PAPRs, BPAP, and CPAP machines. The basic usage is to plug the VentMon 22 mm into an airway in between a respiration assistance device being tested (such as a pandemic ventilator or CPAP machine) and a simple physical test lung which models compliance and resistance of the human lung (see Fig. 14) . The VentMon then provides approximately the functionality of a breathing simulator, without being able to model the patient triggering a breath spontaneously. There are four ways to get data from the VentMon of varying quality and convenience with the firmware at the time of this writing. 1. After startup, the VentMon will begin displaying a real-time pressure graph on its small OLED screen, with a scale of 40 cmH 2 O. This display is too small for testing performance, but is a nice check that the breathing circuit is in place and functioning. You can ''smoke test" this by breathing into the VentMon and plugging one end with your hand. 2. The VentMon writes about 50 records a second of data out on the serial port in the PIRDS JSON format, publishing pressure and flow data at about 25 Hz. (Additional data, such as temperature and humidity, is configurably output about every 20 s. Each record contains about 35 characters. Using the serial monitor built into the Arduino IDE, you can visually inspect this data. The volume of the data makes this a cumbersome. You are free to write a serial-port reader of your own for programmatic interpretation. 3. At startup, by default configuration (it can be enabled or disabled), the VentMon tries to see if their is a cable connected to the Ethernet RJ45 jack. Plug the other end of the cable into your router. If found and enabled, the VentMon will begin sending PIRDS [12] data to the logger at ventmon.coslabs.com [11] . Your data can be viewed in real time by pointing a browser at the URL. Your IP address will appear near the top of the list with other recent or current users; by clicking on ''Breath Plot" you will be able to see a complete clinical display. 4. Similarly at startup, the VentMon will attempt to establish a WiFi connection. Using the WiFi connection will transmit exactly the same PIRDS data the logger at ventmon.coslabs.com and can be used in precisely the same way. However, the VentMon has to know a valid SSID and password to make the WiFi connection. This is configured via the Arduino serial monitor by sending a ''c" character (for configure) to the VentMon. It will then pause operation for 10 s and give instructions for entering the SSID and password. In this same configuration you can enable or disable the WiFi and the Ethernet connection if you choose. These settings are stored in the EEPROM, and survive a loss of power. Pressing the ''C" button on the VentMon OLED badge sends a special signal to the PIRDS logger to ''rotate the log" from this IP address. At the public data lake the current file will be copied to a file which a date and timestamp. A practitioner who makes their own version of the VentMon from commercial off-the-shelf parts without ordering a PCB will likely understand how to install and modify the firmware. The VentMon v0.2T [14] version is tagged specifically for this hardware release. The usage will likely be the same, though at the time of this writing some features may not be available in the software they are using, such as WiFi configuration. The primary use of the VentMon is to develop to and verify that rapidly manufactured ventilator meets requires specification, such as those published by the UK MHRA [7] . It is easy to have confidence in the basic dynamic function of the VentMon by simply breathing through it into a plastic test lung. Fig. 15 is a screenshot of VentDisplay rendering data from the VentMon with a human (RLR) breathing normally into a plastic test lung for 10 s. Although the VentDisplay and VentMon can be used independently, VentDisplay demonstrates what VentMon collects. The top trace is a pressure trace. The next shows flow. These curves are generated from samples published into the public data lake. VentMon produces pressure and flow graphs at about 25 samples per seconds which is fast compared to the physiological process of breathing. One can easily see that flow and pressure dynamically match the breath or changes in the mechanical ventilation, or even changes induced by changes in the resistance or compliance of the test lung. The bottom trace on the display is the ''event" curve which shows a number of computed values and events published from the VentMon, such as the humidity, FiO 2 , and temperature. Additionally, the beginning and ending of each breath is detected, and total volume of the breath computed by integrating the flow. These calculations allows us to present the numbers on the right side of the display, which are typical metrics found on a commercial ventilator. Computation of these values allows a would-be ventilator's performance to be verified and characterized against a repeatable and relevant standard. Features such as rise and fall time (at the bottom on the right) are particularly important. However, the most basic function is to dynamically report the respiration rate, peak pressure, minimum pressure, tidal volume and minute volume, and I:E ratio. In addition to the standard metrics, our software also measures pressure rise time which we have argued is an under-appreciated performance characteristic of rapidly manufactured emergency ventilators [18] . This VentDisplay software has been shown to be valuable, although it is dependent on accurate software decisions about the beginning and the ending of a breath, which can be subtle in some situations. The reliability of the data is inherently tied to the accuracy and precision of the device producing data for VentDisplay, which may or may not be a VentMon. The flow and differential pressure sensors used in the VentMon require no calibration. A VentMon equipped with the Sensirion SFM3200-AW was tested with a calibrated 500 ml syringe by integrating flow to obtain volume and found to reproduce volume and therefore flow more accurately than 2%. This commercial flow sensor measures a maximum flow of 250 slm (standard liters per minute). This range is almost impossible to exceed for a human being (by design). Nonetheless, because we sometimes had to use a neonatal flow sensor with a limit of 80 slm, our software detects this limit and publishes a PIRDS error event when the sensor ''clips", which extends to the adult flow sensors as well. The oxygen sensor spec sheet claims to be within 1% of FiO 2 . Since clinical practice normally prescribes FiO 2 in steps of 10%, this seems accurate enough for both clinical use and the current intended use of testing ventilator equipment. The differential pressure sensors have a resolution of 0.5 cmH 2 O. The Public Invention Respiration Data Standard format [12] is the underlying method by which data is communicated from the VentMon device to VentDisplay. The standard was created to provide a repeatable way for multiple teams to cooperate. Using this standard and cloud-based software enables VentMon to support a distributed engineering team-often required by the COVID-19 social distancing measures. The VentDisplay software allows export of the JSON binding of the PIRDS data to allow other programs to process if it is desired. We believe these tools could someday allow us to support telemedicine as suggested by others [17] . In fact we hope the VentMon will evolve into an open-source component that can be freely integrated into a pandemic ventilator or simply ''bolted on" to be used to control ventilators or to monitor human patients. Although it can effectively test ventilation equipment today, before it can be recommended for use on patients, it will require regulatory approval, such as FDA approval. Before that can happens the VentMon must progress beyond a number of limitations: 1. The current device is not autoclavable or easy to sanitize. Although the intended use is on the inspiratory limb of the breathing circuit, it may be exposed to air-borne virus unless its air input is sanitized. Use on a human patient would therefore require it to be disposed of immediately. 2. Our software has not be subject to rigorous Quality Assurance (QA) and Risk Analysis (RA) as the FDA would request. We have argued [16] for an ecosystem in which design teams such as Public Invention produce extensive documentation including QA/RA documentation to be reused by firms that become medical device manufactures incorporating opensource designs. 3. The mechanical design of the VentMon will require additional alteration to make it robust enough for use in a clinical setting. 4. The current data lake and software allow data logging over days or weeks. To enable longitudinal study of ventilator reliability we would like to create software that allows this data to be analyzed or accessed across long periods of time. CRediT authorship contribution statement Robert L. Read: Conceptualization, Methodology, Software, Writing -original draft, Supervision. Lauria Clarke: Investigation, Validation. Geoff Mulligan: Conceptualization, Software. We declare we have not conflict of interest. This is stated in the paper. VentMon v0.3T PCB. Version v0.3T Mechanical Ventilator Milano (MVM): A Novel Mechanical Ventilator Designed for Mass Scale Production in Response to the COVID-19 Pandemics Low-cost, easy-to-build noninvasive pressure support ventilator for under-resourced regions: open source hardware description, performance and feasibility testing Effect: Effectiveness of Open-Source Hardware in Times of a Pandemic Hardware design les for the Particle Ethernet Wing Emergency open-source three-dimensional printable ventilator circuit splitter and flow regulator during the COVID-19 pandemic Specification for ventilators to be used in UK hospitals during the coronavirus (COVID-19) outbreak Millions of Ventilators A review of open source ventilators for COVID-19 and future pandemics Aliaksei Petsiuk et al, Partially RepRapable automated open source bag valve mask-based ventilator PIRDS Data Logger. Version v0.1 Public Invention Respiration Data Standard. Version v0.1 VentDisplay v0.3T Release. Version v0.3T VentMon T0.2 Firmware Release. Version T0.2 COVID-19 Vent List The Pandemic-inspired Case for an Open-Source Medical HardwareEcosystemVentDisplay v0.3T Release Development of a research-oriented system for collecting mechanical ventilator waveform data The importance of characterising dynamic response and inertia in potential rapidly manufactured ventilator systems Welcome To Project PolyVent A lung for all: Novel mechanical ventilator for emergency and low-resource settings Robert L. Read conceived of and wrote most of the firmware for the VentMon. Geoff Mulligan created the initial cloudbased IoT approach which became the PIRDS-logger. Lauria Clarke did most of the hardware design, including the assembly instructions and the printed circuit board based on an MIT-licensed Ethernet Feather Wing design from Particle IoT [5] , and the SFM3X00 software repo for encapsulating Sensirion flow sensors in the Arduino environment. This paper was written by Robert L. Read and Lauria Clarke.The Mozilla Open Source Software foundation gave Public Invention a grant that allowed us to develop the hardware and provide 20 VentMons to open source teams around the world free-of-charge, including paying shipping costs. Protocol Labs provided Public Invention a grant that has been used for web communication and conference costs.We would like to thank early adopters of the VentMon on pandemic ventilator teams such as the ARMEE [8] , PolyVent [19] and DIY-Beatmungsgerät.de [20] who gave us valuable bug reports and feedback.Adafruit graciously continued to supply pandemic engineers and researchers even when their normal business was disrupted.Student volunteers on the COVID19-vent-list project [15] helped to make the need for the VentMon clear by assessing over 100 pandemic ventilator teams.