This is an Open Source project I created to help people build an effective ventilator. The control system is the biggest hurdle for most people building a ventilator. Most ventilator builds I've seen just run on a fixed cycle or timer, and feed a breath regardless if the patient is inhaling or exhaling. Unless the patient is sedated or paralyzed, these simple ventilators won't be effective. They need a more sophisticated control system, and that is what this project is about. The mechanism that squeezes the bag can take on any shape (squeezing arms, cam lobe, belt cinch, weights and pulleys..), these are all compatible with the control system plans I'm providing. This control system adds: - Breath sensing functionality, so the ventilator synchronizes it's breath when the patient inhales, allowing the patient to breath naturally without timing their breath with the machine. - Ability to change the volume, rate, and speed of breathing (T.V. BPM, I/E ratio) - Measure diagnostic pressures (Peak, Plateau, and Peep) - Turn on an Alarm if something goes wrong (pressures exceeded, belt slip, sensor fault...) This ventilator control system uses a PLC (programmable controller), pressure sensor and position sensor to upgrade a simple mechanical ventilator into an Assist Control Ventilator. My control system design is open source, and provided free. A link to all the files is at the bottom of this webpage. Note: I have no experience in the medical field, and am certainly not an expert in ventilators. |
![]() |
2020-04-14 Part 3 - Project completeProject is completed and functional, link to the PLC code, and drawings at the bottom of the page. |
04-14-2020![]() ![]() ![]() PLC panel is assembled, and was able to start cycling the motor for the first time. The user can modify the following parameters using the keypad and LCD screen on the HMI. Breathing rate, Volume (Arm close position), Arm open position, Inhale/Exhale ratio, Pressure drop trigger to initiate next breath cycle, mS delay from Peak pressure to measure plateau presssure, Max pressure alarm limit, Max plateau pressure alarm limit, peak minus plateau pressure alarm limit, Alarm end of travel limits, Arm travel time out limits, |
2020-04-05 Part 2Finished programming the PLC, all parts are in hand, just powered up the stepper drive and started bench testing. Next steps are to make a cradle to hold the bag in the gripper, and start wiring the PLC. |
2020-04-05 Using a Shapeoko to fab a simple PCBI needed a 5v and 10v power supply, so I decided to make a PCB on my CNC router. This board is a DC-DC converter, generating 5v and 10v from the 24v power supply. |
2020-03-31 Part 1An "Assist Control" (AC) ventilator measures the pressure change as the patient starts to inhale, and uses that as a trigger to start the breath cycle on the ventilator. This is slightly more complex than a "Volume Control" (VC) ventilator that runs purely based on timers. The ventilator I'm building will have both modes available. I'll also have as many fault detections as possible (stalled motor, slipping coupling, high pressure limits, plateau pressure limits...) |
2020-04-10 ![]() My Siemens PLC code directory is HERE Just a framework has been written so far, including start stop logic for the arms, step sequencer framework, alarm screen with faults. PDF copy |
Bill of Materials |
||
Siemens Logo PLC 6ED1052-1MD08-0BA0 8 Inputs (4 configurable as Analog), 4 Relay outputs 12/24 VDC, Ethernet, micro SD card slot Ebay |
![]() |
$130 |
Siemens Comfort Soft PLC programming software Windows 32/64bit and Mac I will also provide a compiled copy of the PLC code which you can put on a micro SD card. Insert the SD card into the PLC, and it will download it, you do not need to purchase the programming software (unless you want to make changes). Changes to variable values can be done on the PLC without the programming software. |
![]() |
$80 |
Nema 34 118mm length stepper motor 8.5Nm (6.25 lb*ft) torque. Weight: 3.6kg 6 Amps Amazon |
![]() |
$62 |
Sprocket 14mm bore, 5mm pitch, 20 teeth Amazon |
![]() |
$9 |
Belt, 5mm pitch, 90 teeth BESTORQ 450-5M-15 Amazon |
![]() |
$18 |
Stepper drive 2.4~7.20A, 18-80VAC or 36-110VDC, 1/256 Microstep Resolution Amazon |
![]() |
$66 |
Pulse Generator Operating voltage range DC 3.3v~30v Frequency range 1Hz-150kHz Output current 5-30mA Duty cycle range 0-100%. Amazon |
![]() |
$13 |
Sensor, hall effect for measuring angle, 0-5v output, (Range Rover suspension height sensor) RQH100030 Ebay |
![]() |
$14 |
Electrical connector, for Range Rover suspension height sensor YMQ503220 Ebay |
![]() |
$12 |
Sensor, air pressure 0-1.45 PSI, 0-25mV output MPX2010DP Used to measure the back pressure in the breathing mask that is created by the PEEP valve. DigiKey |
![]() |
$15 |
*Alternative Sensor, air pressure 0-1.45 PSI, 0.2-4.7V output MPXV5010GC7U Used to measure the back pressure in the breathing mask that is created by the PEEP valve. Replaces the part above, and negates the need for the amplifier below DigiKey |
![]() |
$15 |
Signal conditioner, 0-24mV input, 4-20mA output Qidian GLT-B-W1-A14-01-P2 DC Voltage Signal Isolator Module This was a rare find on eBay, Other Op-amp amplifier boards (adafruit) might work and be readily available, but lack the zero and gain adjustments. This is used to convert the signal from the pressure sensor into a signal the PLC can use Ebay |
![]() |
$20 |
Joystick, 2 axis analog with button press --NOT NEEDED--- Adafruit.com |
![]() |
$6 |
10 volt voltage regulator L7810 TO-220 3 pin regulator. Amazon |
![]() |
$1 |
Adult Patient Circuit With Peep valve And Water Trap PT29697001 This will be used to select variables, and modify their values on the PLC HMI screen. Diabetesstore.com |
![]() |
$40 |
Air Cushion Mask, Large Adult 921276 Diabetesstore.com |
![]() |
$5 |
Airlife Adjustable Peep Valves With 22mm I.d. Connection And 22mm Adapter 552K8082 This is a pressure valve used to maintain slight pressure in the lungs after the patient exhales Diabetesstore.com |
![]() |
$10 |
|
|