This is a reference design and test platform for open source non-invasive bag valve mask ventilators. It features 3D printable parts and uses common off-the-shelf hardware and components.
3D Printable files can be found here and on Thingiverse. Fusion 360 CAD files can be found here and on GrabCAD.
The Open BVM Ventilator is non-invasive and operates in universal mode (spontaneous pressure triggered ventilation with pressure-limited mandatory ventilation). It has been designed to meet all the applicable requirements outlined in the Ventilator for COVID-19 use in Australia document published on the Australian Government, Department of Health, Therapeutic Goods Administration website.
At the time this design was initiated it was assumed that early non-invasive ventilation with supplementary oxygen is beneficial for treating COVID-19 patients.
In order to meet all the requirements in the above document it is assumed that:
The current Open BVM Ventilator design has the following capabilities:
These capabilities have been verified with static tests using a manometer but will require more comprehensive dynamic testing to be considered validated. Some dynamic testing using a water column to simulate pressure and volume has also been undertaken.
The Open BVM Ventilator is comprised of 25 x 3D printed parts and various off-the-shelf hardware, electronic components and fasteners.
A list of all the required hardware, fasteners, electronic components and 3D printed parts can be found in the Bill of Materials.
The firmware features a real time model view controller architecture with custom stepper speed control that supports linear acceleration with rpm adjustment inside position changes.
The firmware can be downloaded, compiled and uploaded to the Arduino Uno board using the Arduino IDE.
The firmware is dependent on the following libraries:
The factory reset function found on the System Page should be selected the first time the system is run to set all the EEPROM control variables to know values.
A control shield for the Arduino Uno can be found at easyeda.com/whpthomas/open-bvm-ventilator-shield. The shield has been designed to allow all the electronic components to be easily connected using either Dupont connectors or by directly soldered wires. The circuit supports use of either the TB6560 or A4988 (or compatible) stepstick driver.
Fully assembled boards can be ordered directly from JLCPCB, PCBWay or other suitable PCB prototyping services using the Gerber files, bill of materials and pick and place files found in the /pcb
folder.
The following digital pins on the Arduino Uno are used in the schematic:
Jumpers are used on the MSJ header to set the microstep resolution. The default configuration is to place a jumper across MS1 and MS2 for 1/8 microstep resolution.
MS1 | MS2 | MS3 | Microstep Resolution |
---|---|---|---|
Low | Low | Low | Full step |
High | Low | Low | 1/2 step |
Low | High | Low | 1/4 step |
High | High | Low | 1/8 step |
High | High | High | 1/16 step |
Switches are used on the TB6560 stepper driver to set the current and microstep resolution.
I recommend configuring the TB6560 with the following settings.
Switch | State | Configuration |
---|---|---|
SW1 | ON | 1.2A |
SW2 | OFF | 1.2A |
SW3 | OFF | 1.2A |
S1 | ON | 1.2A |
S2 | OFF | 50% Stop Current |
S3 | ON | 1/8 steps |
S4 | ON | 1/8 steps |
S5 | OFF | 50% Delay |
S6 | ON | 50% Delay |
Open BVM Ventilator reference designs are intended for educational purposes, ARE NOT CERTIFIED FOR MEDICAL USE, ARE PROVIDED "AS IS" AND "WITH ALL FAULTS". Dr. Henry Thomas DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Dr. Henry Thomas may make changes to reference design specifications and descriptions at any time, without notice.