Our project is up on Thingiverse here. It includes some STL files for printing as well as a SketchUp 2017 file with all the parts, an assembled and labeled view, an exploded view, and the parts laid down for 3D printing.
Introduction: Covid-19 has woken up many people to the inadequacies of modern human healthcare. One of the many things lacking appears to be cheap, accessible, mechanical ventilators, especially ones that could be used during surges such as a virus outbreak, an accident, or natural disaster.
Introduction: Covid-19 has woken up many people to the inadequacies of modern human healthcare. One of the many things lacking appears to be cheap, accessible, mechanical ventilators, especially ones that could be used during surges such as a virus outbreak, an accident, or natural disaster.
Many teams are now focused on developing a solution to this problem. Hopefully one (or more) of these teams will produce a solid, opensource design that can be replicated and distributed around the world where and when needed and not just for Covid-19 but for anyone who needs access to ventilators.
Hopefully it is the first of many examples of opening up human healthcare and the technology that drives it.
The design uses a linear actuator driven by a 5V high-torque (25kg-cm) servo, controlled by a locally produced version of the Arduino Uno (Gravitech Lambda), with options to change compression rates and the volume of air delivered during each compression.
It will be fully opensource, with all the 3D printing/laser cutting/electrical/coding files provided along with documentation explaining how to make/assemble the parts as well as operate the final machine.
Why the Automatic Bag Valve Mask?
There are stories where people have allegedly been kept alive for years by using ordinary BVMs.
This story from China tells of a young man, the victim of a car accident, kept alive for at least 5 years using BVMs; one that is manually squeezed by family members who take turns, and another that is hooked up to a crude electro-mechanical device and works automatically when electricity is available.
BVMs are cheap and accessible to both large city centers and rural healthcare providers. You can also order them online and have them shipped to you almost anywhere.
Building a likewise cheap and reliable electrical device with sufficient battery back-up and options to change the rate the BVM is compressed and the volume of air delivered to a patient would add automation to the already remarkable and life-saving qualities of BVMs.
Many of the teams out there working on opensource, low-cost ventilators are also using BVMs as the basis of their project.
Other Specs
Other Specs
Our design was guided by specs provided in a promising design from MIT described in a 2010 paper titled Design and Prototyping of a Low-cost Portable Mechanical Ventilator. It lays out a great case for developing a low-cost portable mechanical ventilator (and warns of the necessity of such a design in the event of a virus outbreak) and even presents the initial results of their prototypes.
Other projects use linear actuators driven by stepper motors or servos. We combined the specs laid out by the 2010 MIT design with some of the linear actuator designs we've seen.
We used servos because they are cheaper, have more torque, and don't require an additional driver in addition to a microcontroller to run.
We also incorporated 20mm PVC piping as a cheap structural support element. The initial results seem to indicate it has lent to a very sturdy design. 20mm PVC pipe is readily available in Thai hardware stores.
Below is the Arduino code we started with just to get the servo going:
We also incorporated 20mm PVC piping as a cheap structural support element. The initial results seem to indicate it has lent to a very sturdy design. 20mm PVC pipe is readily available in Thai hardware stores.
Below is the Arduino code we started with just to get the servo going:
#include <Servo.h> //Servo library Servo servo_test; //initialize a servo object for the connected servo int angle = -70; void setup() { servo_test.attach(9); // attach the signal pin of servo to pin9 of arduino} void loop() { for(angle = -70; angle < 150; angle += 1) // command to move from 0 degrees to 180 degrees { servo_test.write(angle); //command to rotate the servo to the specified angle delay(5); } delay(100); for(angle = 150; angle>=150; angle-=5) // command to move from 180 degrees to 0 degrees { servo_test.write(angle); //command to rotate the servo to the specified angle delay(5); }
delay(700);}
Current Status
Our current prototype is actually a prototype of a prototype. It uses a much weaker servo as a stand-in until our much stronger 25kg-cm servo arrives. We also don't have our BVM yet, so many things will still change.
Once both arrive and we refine the design, we will put up the files on our accounts at Thingiverse and Cults3D. There is also the matter of developing selector knobs for compression rate and volume (along with the appropriate code), as well as refining powering options including adding a powerbank as battery back-up. The powerbank we have on hand works with Arduinos, but some have circuitry that will not work with anything except a phone so always check beforehand!
Another often overlooked feature necessary will be some sort of alarm system in case of a power, mechanical, or electronic failure.
Look for updates on our blog here, on Thingiverse, or Cults3D. If you have questions, comments, or inquires please contact us here.
Look for updates on our blog here, on Thingiverse, or Cults3D. If you have questions, comments, or inquires please contact us here.