Giter VIP home page Giter VIP logo

ventmon-ventilator-inline-test-monitor's Introduction

VentMon T0.5

The VentMon is an OSHWA certified open source hardware, US002353

OSHWA_VENTMON

VentMon T0.5

DOI

Note: The previous version, the VentMon T0.3, has been published in HardwareX with extensive build instructions.

IMG_4102 2

The VentMon T0.5 was roughly designed in June of 2021. This version is self-contained---that is, it will not require a separate computer and internet access. The inventor team has been especially motivated by the work of Mr. Joe Leier, who repaired ventilators in Guatemala during the pandemic. Public Invention aims to create a self-contained unit that allows the user to test and repair it in the field. The device will, however, still be WiFi enabled, and still publish data to a the public data lake.

For now, our ideas and work are published in the directory called pi.

Previous Version VentMon T0.4 - Inline Ventilator Test Fixture and Monitor

March 9th, 2021

VentMonT0 4

The photo above shows the current version of the VentMon, the T0.4 tester/monitor, designed and manufactured by Ben Coombs. We are giving these away free of charge to worthy open source teams.

The VentMon T0.4 improves on the T0.3 because it is self-contained (no cables) and is quite compact. We have also improved the OLED display, although additional firmware changes are coming soon.

The software infrastructure that supports the VentMon, such as VentDisplay and PIRDS, have improved as well.

The VentMon is basically a cloud-enabled spirometer with an FiO2 sensor. When plugged into a standard 22mm airway, the device provides a rich stream of pressure and flow, with oxygen, humidity, and temperature sensors for continual monitoring. Engineering teams developing pandemic response ventilators and other respiration tools are the primary users of the VentMon. Additionally, it is completely and transparently open source, so any team can adopt the design and incorporate it into their own devices to provide the same data in an integrated way.

The parts in a VentMon cost about USD$600.

Usage

Basics

The VentMon T0.4 can be powered with any micro-USB cable. It has an RJ45 ethernet port, and supports WiFi. It has a male airway connector and a female airway connector in the international standard 22mm adult airway sizes. It comes with an oxygen sensor, which you may have to install by opening the case. It is not pre-installed because the oxygen sensors have a limited shelf life and some users don't need one. The case can be opened with a small jeweler's Phillips head screwdriver.

The VentMon has a small OLED display which gives some startup information and also shows momentary flow and pressure while producing a tiny graph of airway pressure. This is not intended for clinical use, but it is useful for letting you know that the device is on and working.

The Serial Port

The main target for the VentMon project is to support engineers who are working on ventilators and respiration support devices. Most of these engineers will know how to use the Arudino IDE to see the serial port. The baudrate is 500000 (500,000). A simple human-readable output is printed to the serial port at start up time, which shows some basic start up information. After searching for an ethernet connection and WiFi connection, the VentMon will begin printing dynamic data on the serial port. The output is in the PIRDS data format. This is useful for verifying that the device is functionally and correctly working. It is not a good way to analyze data, but you can tell a lot by reviewing this data stream. However, the preferred way to look at moving interactive waveforms and clinical paramaters is with VentDisplay, which requires some configuration.

Configuring a UDP conncetion

The easiest way to use VentDisplay is to check out our public IoT Data Lake at http://ventmon.coslabs.com/. We name your log file by your IP address. The webpage there looks like this: Screen Shot 2021-03-25 at 8 38 57 PM These files are sorted by modification timestamp, so if you use one of the methods to place your data there, it will likely be near the top! The "BreathPlot" links take you to the VentDisplay for that log file, whether it is is static or "live" (that is, being dynamically added to from a running VentMon.)

By entering a "c" character followed by a newline (probably in the Arduino IDE serial monitor tool), the VentMon will stop sending data to the serial port and write out a small menu of instructions. You can follow these instructions to enable or disable either the ethernet connection, the WiFi connection, or both. This menu allows you to enter your SSID for your WiFi network and your password, which will be stored in the EEPROM of the device.

If you choose to use the Ethernet connection, you will probably plug an ethernet CAT5 cable directly into your router and the port on the VentMon.

Both Ethernet and WiFi attempt to send UDP packets to port 6111 at ventmon.coslabs.com. There our PIRDS-logger connection automatically timestamps and logs your UDP packets, and allows them to render for your viewing and analysis pleasure.

Configuration

Configuring a VentMon T0.4 is a little complicated because we are developing a modular, composable, respiratory ecosystem. The diagrams below try to capture three distinct approaches: using our public data lake (easiest), using Apache (requires understanding httpd.conf and fully understanding all pieces), and a Docker Image (we have not actually created this, but we plan to).

Public Data Lake:

VentMon Cloud Ecosystem

Using Apache:

VentMon Apache Ecosystem

Public Invention recently created a repo that builds a Docker file image that makes all of this possible locally without running Apache/CGI. Please visit PIRDS-docker-local for more details. As of March 25th, the Docker system is working on one computer (the authors), and another user has reported a problem with it; this is in an early release stage.

VentMon Docker Ecosystem

Compiling and updating the Firmware

If you have received a VentMon from us, it will have VentMonFirmware.ino installed. The VentMon firmware is a work in progress, and we are making active improvements. Therefore, you may want to update it from time to time. This requires you to build it with the Arduino IDE on your system. You are welcome to modify the VentMonFirmware.ino file as needed. To do so, you will have to install a library of our creation which encpasulates the PIRDS standard. Copy the libary pirds_library into your Arduino library location. You may need to install the Adafruit BME680 library and other libraries as well.

Additionally, to compile the version of the firmware, you will need to install the SFM3X00 library. We wrote this library to encapsulate Sensirion flow sensors of various kinds.

This process is a little clunky; please contact us if you need help with that.

VentMon 0.3

Note: The important file "breath_plot.html" which renders respiration traces and calculated values from PIRDS data was moved to its own repo on Thursday, June 18, 2020.

Since March 16th, I've been working full time on this. Along with volunteers at EndCornaVirus.org and Public Invention, we have been tracking and analyzing all open-source ventilator projects we can find. It has become apparent that the biggest piece they are missing, and the area where Public Invention can most help, is not in designing a new ventilator. Instead, our priority is to build a test/monitoring fixture to assist other teams.

Monitoring and testing are critical for keeping patients alive, and thus we are attempting to make a combined tester/monitor.

At the moment, this repo is to that end. Our overall strategic plan will give clinicians enough confidence to actually deploy an open-source ventilator. Our goal is to certify ventilators in a limited, last-resort sense, in case of a shortfall of commercial and professional equipment. That strategy is discussed later in this document.

Our current process includes rapid high-quality, but also burn-in and multi-day, testing of ventilators. Perhaps we can produce a benchmark for the multiple efforts going on right now to develop a Free-libre Open Source ventilator design.

For further explanation of Public Invetion's design motivation and approach for this project, please refer to the following document - Motivation of Strategy

For a hands on demonstration and in-depth explanation of VentMon, watch our screen cast!
VentMon ScreenCast

User Manual

Although a work in progress, we have a user manaul v0.3T. This User Manual is basically for the VentMon.

Design and Dependencies

SystemDiagram

This project aims to design a standalone inline device plugged into the airway. It will serve the dual purpose of both monitor and alarm when used on an actual patient, and these tests may also produce prototype ventilators that allow for burns.

VentMon depends on the following Arduino library for communication with Sensirion flow sensors: SFM3X00

Assembly instructions can be found here: Assembly Instructions

Initial BOM can be found here: BOM

Status

** October 10th **

We have now shipped 20 units of the VentMons to open source teams all over the world. Some of them are using them successfully. We ordered 15 printed circuit boards and 15 3D printed sensor ports, and I built them by hand. There was an error in the PCBs which is now corrected; I fixed the current them by soldering a wire in place. The current design of the case does not perform cable management as well as it should; the flow meter cable tends to fall out. We will improve this in future designs.

** August 20th **

We have received 15 populated boards and desigend a 3D printed hat. We are beginning final assembly/manufacture of the 15 units that people have requested to be sent out free-of-charge.

** June 18th ***

Lauria plans to ship 5 more VentMons on the 23rd. She has added FiO2 sensing and important features. Rob Giseburt has create a VentMon-like device using a Raspberry PI; we may switch to that display. The VentMon was used internationally by several teams to gain important insights into their prototype pandemic ventilators. One team may be constructiong their own VentMon from our Open Source designs.

** May 25th **

We have now shipped 4 VentMons. Most recent modifications involved using the "pirds_library" more universally.

** May 7th **

We sent the first VentMon to Artemio Mendoza of the 1MillionVents team, and he made this great video:

VentMon testing an A.R.M.E.E. Device

May 4th:

May the Fourth be with you.

We have shipped two VentMons free of charge to an open source ventilators' team that will use them for volume and flow measurements.

A user manaul is progressing.

April 27th:

Assembly instructions can be found here: Assembly Instructions

April 21st:

Initial prototype is fully assembled!

Prototype

April 20th:

  1. Have a working ESP32 board with pressure sensors and Sensirion flow sensors.
  2. This code outputs a stream of PIRDS respiratory standard events on the serial port.
  3. These are read by data_server.py which presents a web server for retrieving this data.
  4. test_tools/breath_plot.html makes AJAX calls to this server and renders the results dynamically.

Volunteering

This project is co-led by Robert L. Read [email protected] and Geoff Mulligan.

Right now we have several needs. People need experience, to have read the essential reading list, and to have least 20 hours a week to work with limited supervision. They must also have the ability to tolerate the chaos produced by the pandemic and my own mistakes. Finally, they must accept and hope that the industry will increase ventilation production, and that the disease will be controlled so that this solution is no longer required.

Right now, we could use:

  1. An experienced Arduino engineer to build and improve the design below
  2. A JavaScript programmer to add the ability to scroll-through all time to https://github.com/PubInv/vent-diplay code.
  3. Someone to design the User Interface of the "monitor and alarm" feature. They would have to be or become familiar with existing ventilators make a similar interface. This will likely become a small LCD or OLED text screen, 4 physical buttons, and a small speaker or buzzer.

Request for Donations to Public Invention

Public Invention is a small, all-volunteer 501(c)3 US public charity. Your small donation is a stamp of approval for our work and will really help us.

Licensing

All code in this repo is licensed under the GPL License. All documents and diagrams are licensed under CC0. All hardware is licensed under the CERN Open Hardware Licences Version 2 - Strongly Reciprocal.

ventmon-ventilator-inline-test-monitor's People

Contributors

bencoombs avatar drmellenthin avatar gmulligan avatar kant avatar lauriaclarke avatar mairinogrady avatar megancadena avatar robertlread avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ventmon-ventilator-inline-test-monitor's Issues

Feature Request - Second SFM3/4xxx for monitoring input air/O2 injection (pneumatics)

Hey guys

First off thank you for the amazing work.

One issue unique to ARMEE is the pneumatic power source. We would like to somehow integrate a second flow meter to monitor incoming air supply conditions.

Is this something that can be

  • electrically implemented
  • programmed to display a baseline input/o2 flow rate.

Thanks in advance and keep up the great work!

Compute P0.1

From: Assessing effort and work of breathing
Giacomo Bellani and Antonio Pesenti

"Several other methods to measure or estimate the
breathing effort circumventing the use of Pes have
been described, and P0.1 (i.e. the airway pressure
drop in the first 100 ms) against an occluded airway
is probably one of the more robust and broadly used
[31], at least partly because it is readily available on
most commercial mechanical ventilators"

Manual Formatting

For some reason the normal GitHub header and footer are to the side of the user manual when viewing the page, making it hard to read. Not sure how to fix this. See attached photo.
github

Test lung

Apologies if this is the wrong place to post this information, but if you need to test or calibrate your device, I would like to draw your attention to our test rig which allows to create highly accurate volume flows and/or to realistically simulate the dynamic behavior of a human lung. For details, please see https://www.youtube.com/watch?v=KEQDs0R-pMc

Can ventmon be compatible with TSI certifier FA plus (ts4080)

hi.Dear ventmon team

Ventmon is a very good project,It may enable many people to use low-cost GAS flow analysis。

I have a set of TSI certifier FA plus TSI 4080 gas flow analyzer,I lost its flow sensor(TSI 4081 HIGH FLOW modeule) when I went out!
When I saw this project, I wondered if ventmon could be used instead of TSI 4081,
TSI certifier FA plus consists of two parts: TSI 4088 interface module and TSI 4081 high flow module,They are connected via a 4-pin cable and transmit pressure and flow data,I guess it's probably RS232 bus But I don't know its data protocol。

So I'm here to ask a question. Maybe someone knows the communication protocol and data format between TSI 4088 and TSI 4081,If you know its communication protocol and data format, it should be easy to use ventmon instead of TSI 4081!

Everyone, can you provide some useful information for this idea。

Thanks to the great team!

Flow Sensor alternates due to supply-chain crunch,

The FM3200 is a really fantastic sensor from a specifications point of view.

The cons for the developing world, I think will be: price (it's $170/ea).
And perhaps even bigger, availability. I just checked Octopart and less than 100 in the world in-stock for the AW and AG models.

Erg, I propose one of the priorities-of-work would be finding a suitable alternative.

Automotive Mass Air Flow Sensor? They seem to be very cheap, have similar input/output dimensions, are probably available in qty in the developing world. I do not however, know if the engineering specifications would match.

AutomotiveMassAirSensors

RR rate seems low

RR rate does not seem to reflect actual respiratory rate. Please see attached photo. An RR of 6 would be approx 1 Peak to Peak in a decade.

Thanks for all the great work team!!!
C124C83C-7320-4C7C-8F53-69F4CA26B358

Error in printing of serial number and scaling

In SensirionFM3200/SFM3200/SFM3200.ino there's a function called requestSerialNumber:

  uint8_t a = Wire.read(); // first received byte stored here. The variable "uint16_t" can hold 2 bytes, this will be relevant later
  uint8_t b = Wire.read();
  uint8_t c = Wire.read(); // first received byte stored here. The variable "uint16_t" can hold 2 bytes, this will be relevant later
  uint8_t d = Wire.read(); 
  Serial.println(a,HEX);
  Serial.println(a,HEX);
  Serial.println(a,HEX);
  Serial.println(a,HEX);

As a is printed four times, this will not show the true serial number of the device.
I think you could base on my implementation under https://github.com/maehw/diy-beatmungsgeraet/tree/master/software/mass-airflow-sensor/controller-software - probably minor changes to support your Sensirion device, too.

Edit: I think there's another error in scaling:

 float scale = 120.0; // Scale factor for Air and N2 is 140.0, O2 is 142.8

The comment speaks of a value of around 140. Why do you use 120 in the code?

Airway Pressure Sensor

Thought I'd submit a "crash course" from an analog design point of view (also have 2 decades experience in emergency medicine).

Separately, but equally valid -- I'd like to suggest consideration for using a commonly available hospital item, the IPB pressure transducer (e.g. Edwards TruWave).

Please see attached, I have all the items on-hand mentioned in this doc for prototyping:

Airway Pressure Monitoring.docx

VentMon T0.5 architectureal ideas...

I think Public Invention may need to make a new run of VentMons. Possibly we will sell these, or sell some of them.
I've been trying to think about the sanitizability problem. I don't see any way to sanitize the pressure sensor, or the O2 sensor, or the flow sensor.
So, what I suggest is 3 separate modules (which a user might not be aware of as distinct).
We make the large-GUI with a "pocket" or "socket" where the VentMon can plug in or be mounted. We move the pressure sensor off the main board, and put it on a tiny breakout board. We use a molex-style electrical connector for it. We do the same thing with the O2 sensor (2-wire) circuit, and 4-wires (but one at 5V) for the sensirion flow sensor. That makes that entire combinations of parts electrically connect via a cable to main the main board.We switch to the cheap USD$40 disposable Sensirion flow sensor.The result of all of this is that we have a USD$100 disposable "daughter" airway that you just replace if it gets exposed. It fits in a separate USD$100 "mother board/enclosure", and that fits in a separate USD$100 "grand mother" board/enclosure. The result is an overall decreased costs, and a plausible infection control story. If the airway is sufficiently protected by one-way check valves, people might not feel it needs to be replaced on a per-patient basis. 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.