COVID-19 sucks. Ventilators are needed.
This is our take for turning a bag-valve-mask (BVM) into a ventilator.
Compresses the bag much like a hand would to reduce the stress on it.
Lightweight at just 360g (12oz) for the BLDC version, so it can be positioned on the bag itself, on the patient.
This eliminates needing to extend the tube from the bag to the mask, which eliminates CO2 buildup while still allowing the use of the most common BVMs.
Can also be used off the patient with bags which extend the inlet instead, like the L770 Disposable Confined Space Manual Resuscitator, or by stealing the tubes/valve from an actual ventilator.
Laser cuts in about 10 min, or 3D prints in about 6-8 hours (not including the VISP sensor) The parts are all interchangeable.
Files are up on GitHub now.
Some hacking and slashing was used on the source to generate the laser cut parts, so use the rendered files unless you are willing to work for it.
Hardware is done until testing reveals issues with it.
So far you can use a BLDC gear motor, a small worm drive gear motor, or a Nema 23 stepper to drive this.
Torque requirement is 15-30 kg/cm and speed requirement is 22 to 30 rpm.
We need to deliver a faster inhale stroke than previously specified, so torque requirement is now 30 kg/cm and speed requirement is 48 rpm. This may put it beyond what our Nema 23 can do and puts my first pick for the BLDC out of the running as well. The previous number for inhale time was 1.5s. I picked the parts based on 1s. The actual time from the UK document is now 0.3s. Ooof. Everything gets harder.
We were looking at using cheap barometric pressure sensors, but the issue is they are absolute pressure sensors. They are exceedingly sensitive and work within the range we need for both positive and negative pressure, but they read the pressure applied to them relative to a vacuum within the device.
Because of this, to determine where '0' is with regards to your current ambient pressure, you need to take a sample with no pressure above or below ambient pressure applied. Where you are in the world (altitude) will move this number as well.
But... if you were already connected to a patient, and providing pressure, and lost power for a split second you would no longer know where '0' was. You would take your sample and your 'relative to startup' number would be offset then, and that is dangerous as now you could be doubling the airway pressure of the patient!
We just solved that. Use four of them.
Put three on one side of a PCB and epoxy that board into the ports on the pitot tube we have already designed. That gives you forward flow, reverse flow and pressure. Now the trick is have a fourth sensor, and point it back at atmospheric pressure.
Now you have your zero point independent of what you read at startup and can accurately calculate what each of the sensors is reading relative to that. You have just turned all your absolute pressure sensors into relative ones.
One remaining issue is that all of the sensors share an I2C address, but they also have a pin to change that address by 1. So if we pull those all those pins low with resistors, and then cycle through pulling them high with something like an LED driver also on the same I2C bus, then we can read all of the sensors from the same address.
Better solution, use a proper I2C translator such as the LTC4316. We have enough unique addresses with just one as we can hang two sensors off the I2C bus before the translator, and two off after it by setting the SDO pin on every other one. We added a second bus translator to do level shifting and allow moving the address of the whole package so you can have two of them on the same bus, or avoid something else with a static I2C address
Four wires, better resolution, faster updates, and the sensors are $3 each.
Still working on the best way to flip that address pin.
We are working on spinning up a PC board for this. Right now it looks like it's 16 mm by 40 mm to house the four sensors, two I2C bus translators, an Eeprom, and a voltage regulator.
Those components will allow the device to work with both 5 volts and 3.3 volts seamlessly, and if needed, put more than one completed device on the same bus. Thanks to @Steven.Carr for brainstorming this with me and coming up with this layout, and @harit trivedi for also working on the schematic and parts placement.
I want to put a shout out to Stefan from Williamstown, NJ who let me pick up these sensors this afternoon. This sensor is used by quadrocopter and drone enthusiasts for it's compact size and robust capabilities. If you are having trouble locating some, reach out to your local drone enthusiast club, they might have a couple on hand!
Did an experiment a few days ago. Gutted a vape and stole the sensor.
Applied 3.3v and ground to the appropriate two pins to match the setup in the vape. Given it runs directly from the battery this is probably a 2.6-5v device.
The signal pin went from 0 to Vcc on inhale.
I don't know if this is an analog or a digital signal, but I will find out today.
If it is analog, it is going rail to rail with < 0.3 psi of input. I am hoping it is...
If it is an analog device, two of them sealed side by side, facing opposite with a voltage divider on the output pin would give me a sensor capable of -0.3 psi to 0.3psi. That is what I need to measure the flow using my pitot tubes.
<EDIT> Um.. that would suck as my output would be centered around 0v and go down to -Vcc. Just reading them both as to ADC inputs would work though. I did not get to testing if these are analog or digital yesterday. Perhaps today. </EDIT>