Comments (13)
do you have a pointer to the baro sensor and control board? Direct measurement of pressure would be nice.
from ventilator.
MS5607 and MS5611 are common barometric pressure sensors in the older Atmega-based flight controllers such as the Ardupilot 2.X hw installed in many quadcopters that now grace many a garage and many would gladly sacrifice for a noble cause. The opensource Ardupilot SW is a fertile source of firmware that can read the sensors, control motors, log, interface with remote displays, and has PID controllers that might modulate compressor pressure.
These pressure sensors have closed backs, so they read absolute rather than differential pressure. So the pump/compressor or O2 source might need to be turned off occasionally to allow for measurement of atmospheric pressure.
Links:
APM 2.x flt controller hardware: https://ardupilot.org/copter/docs/common-apm25-and-26-overview.html
MS5611/MS5607 pressure sensors: https://www.te.com/usa-en/industries/sensor-solutions/applications/drone-sensors.html
from ventilator.
Adding some thoughts on using quadcopter brushless motor controllers to run a fan/turbine:
These controllers are capable of sensing motor current (they need phase-voltage back EMF to time commutation) and RPM. These typically run open source SW such as BLHeli. I once submitted a pull request the Blheli code for a specific speed controller to provide pulse RPM output on an unused pin that's then fed back to a digital input on the Arduino-based flight controller, making closed-loop motor speed control possible. I think this took a grand total of about 6 lines of code.
Communicating motor current back to the flight controller, if needed, could take more considerable design and development.
Many standard-sized quadcopter brushless motors could run a 3D-printed turbine with an off-the shelf or 3D-printed filter cartridge on the input to allow only clean air in. There are filter and turbine designs on Thingiverse that could be adapted. Note that most motors come lubed with oil and are therefore unsuitable for use with O2 unless cleaned and re-lubed with an O2-safe lubricant.
Links:
https://www.embedded.com/designing-electronic-speed-controllers-for-drones/
https://github.com/bitdump/BLHeli
from ventilator.
BMP180 / BMP280 are also quite common. We now have bunch of opensource BLDC controller firmwares as well running on 32 bit MCU ESCs that could be adapted with pressure sensing and other required functionality. Not all quadcopter ESCs can output current sensing data - most new Blheli32 can (via UART telemetry) but Blheli32 isn't opensource anymore.
I can try hacking pressure sensing via BMP180 which I have lying around to my BLDC firmware if needed - though isn't current sensing enough to detect breathing periods?
from ventilator.
the BMP180 seems to only go up to 1100hP. which is only 11cmh2o, That's not high enough.
https://www.adafruit.com/product/1603
MS5611/MS5607 pressure sensor claims it can operate uto 1200mbar, which is >1200 cmh2o, which is plenty. Seeing if it could measure lung pressure would be great. Could you log some data and share plots?
https://www.te.com/usa-en/product-CAT-BLPS0035.html
from ventilator.
from ventilator.
Working on this now. The plan is to have a small diameter O2 hose cannibalized from a cannula run from a Chinese 'Pixhawk LITE' (STM32) flight controller controller board to a CPAP hose attached to either a 3M dual-cartridge respirator or a CPAP mask (I have both to test with). Note that the breathing pressure is highly dependent on the whatever flow resistance and capacity that the air supply provides. This resistance may come from filters, valves, hoses, etc.
The pneumatic design needs some thought here. It's better from a durability/reliability perspective to sense pressure at the body of the ventilator so that a single (or double) air supply hose is all that runs to the patient -- no separate pressure measurement hose. But measuring closer to the lungs is probably more accurate. Since the commercial designs seem to NOT have a separate pressure sense hose, I'm going with the 'measure on the distal side of the CPAP hose - away from the mask'. But the design depends on some slight resistance to free breathing to generate a pressure drop, even if it's the resistance of air motion in an open area. More resistance means more pressure drop for a given airflow. So I'm thinking of using a double will rig it such that the air supply is open room air on the far side of a common CPAP hose, with the other end connected to the mask. So pressure
Step 1: Design & 3D-print an adapter that allows a tiny hose to be attached to the MEAS MS5611 pressure sensor that's soldered on to the flight controller. The adapter will be glued around the edges of the sensor in a manner that ensures the edges are sealed. I will cannibalize ~6' of small diameter O2 hose from an oxygen concentrator's cannula. I believe that this is a standard cheap hose that hospitals and drug stores are likely to have some stock of.
Step 2 is to use the stock logging capabilities of Ardupilot SW to log pressure while I breathe.
Step 3 would be to move away from precompiled Ardupilot firmware to pressure measurement routines supporting an Arduino STM32 tool chain that is compatible with this project's Arduino code. Hopefully this project's code will run on at least ATmega and STM32 controllers.
from ventilator.
Yes, the look ms5611 like it has plenty of accuracy and range. Correct, having a measurement to atmospheric would be best. But, I think this could be sample from an initial idle state.
https://www.youtube.com/watch?v=T3ma1n_jhbQ
from ventilator.
It seems that flow/volume measurement is a critical feature. I found some flow sensors for ventilators, but they are 1) reasonably pricey 2) the supply of those now dried up. I can't find a place to buy them.
Do you think you could make an accurate flow sensor using two MS5611s? This would be quite cheap, and digikey has a large stock of them.
from ventilator.
from ventilator.
If you need to set-up multiple pressure sensors for differential diagnoses in a hospital ward, then is there a Team out there that can use a liquid/air interface, especially viscous fluids, to determine the correct code for this need?
This is a necessary loop of code with a graded application that could save multiple lives.
from ventilator.
Is there a submersible model and code for determining barometric pressure using available sensors or biosensors with similar applications?
from ventilator.
from ventilator.
Related Issues (20)
- Oxygen Sensor, why not blood oxygen sensor (oximeter) instead? HOT 8
- Moisture or a moisturizer is needed in any ventilator system. HOT 4
- Free Online Book: Principles and Practice of Mechanical Ventilation, 3e HOT 1
- Pneumatic Ventilator Proof of Concept HOT 3
- Remote Monitoring (Via IOTLeaf)
- Tesla Seems to have a good design HOT 4
- Help with PAPR build please HOT 2
- Using electrical signals as alternative to pressure HOT 1
- PAPR current design issues. And have you considered cyclonic separation as part of design HOT 5
- FYI: Washington Hospital version of improvised PAPR HOT 3
- Great insight on the present designs.
- PPE Material Filter perfomance
- Reversing the flux direction
- Mask type
- Feedback noted: Push air through 40-50C degree water, less unanimous use nasal cannulas to prevent spread
- Project Updates
- Create a CODE_OF_COUNDUCT.md and a CONTRIBUTING.md HOT 3
- Designer
- I got inspired from your ventilator HOT 4
- non-technical: Petition to the EU to promulgate a EUA
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ventilator.