Giter Club home page Giter Club logo

Comments (13)

jcl5m1 avatar jcl5m1 commented on August 12, 2024

do you have a pointer to the baro sensor and control board? Direct measurement of pressure would be nice.

from ventilator.

zobotek avatar zobotek commented on August 12, 2024

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.

zobotek avatar zobotek commented on August 12, 2024

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.

sorki avatar sorki commented on August 12, 2024

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.

jcl5m1 avatar jcl5m1 commented on August 12, 2024

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.

zobotek avatar zobotek commented on August 12, 2024

from ventilator.

zobotek avatar zobotek commented on August 12, 2024

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.

jcl5m1 avatar jcl5m1 commented on August 12, 2024

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.

jcl5m1 avatar jcl5m1 commented on August 12, 2024

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.

zobotek avatar zobotek commented on August 12, 2024

from ventilator.

drjgset avatar drjgset commented on August 12, 2024

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.

drjgset avatar drjgset commented on August 12, 2024

Is there a submersible model and code for determining barometric pressure using available sensors or biosensors with similar applications?

from ventilator.

zobotek avatar zobotek commented on August 12, 2024

from ventilator.

Related Issues (20)

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.