An off-the-shelf hobbyist 3D Printer, coupled with an AMBU bag (a readily available standard piece of equipment stocked in all hospitals) could potentially function as a makeshift ventilator until a real ventilator becomes available.
We need to create and test the code to make this possible.
Industry and government are scrambling to rapidly prototype and produce ventilators to meet the actual and anticipated overwhelming demand for ventilators as COVID-19 spreads. There are many wonderful efforts in progress but we currently do not have anywhere near enough ventilators.
I am hopeful that hospitals will receive the ventilators they need before they are forced to triage ventilator use (forced to remove patients from ventilators, resulting in preventable deaths) but I am concerned that a last resort, stop-gap solution may be needed before the supply of ventilators catches up to the overwhelming demand.
Many of the makeshift projects currently in progress are machines that pump a manual resuscitation bag, or an "AMBU bag." See, e.g., MIT E-Vent. An AMBU bag is typically operated manually: by squeezing a semi-rigid plastic bag, the operator forces air into the lungs of the patient. The rigidity of the bag causes it to re-inflate on its own as the patient exhales. It is impractical to manually squeeze an AMBU bag for hours or days, but if a machine could automate that process, that machine would be performing many (though not all) of the functions of a ventilator--until one becomes available.
I am concerned that the AMBU-bag-pumping projects being developed now will not be ready in sufficient quantity to meet the urgent need for ventilators in hospitals around the world.
My key innovation is this: many inexpensive and widely available 3D printers can--OFF THE SHELF, with minimal hardware modifications-- already perform the task of pumping an AMBU bag.
For example, the (~$400) Creality CR-10 printer I own comes stock with a NEMA-17 stepper motor that drives a Z-Axis gantry on a lead screw. Using those components, the 3D printer can move the gantry up and down on command at variable speeds and distances. Based on my initial testing, I believe it can perform this task with sufficient force and with precise enough timing and motion control to repeatedly squeeze and release an AMBU bag under the gantry, according to a program (the inputs of which would be specified by a medical professional).
Any self-pumping AMBU bag system requires the medical professional to provide two key inputs: desired Tidal Volume (amount of air forced into the lungs on each pump) and Breaths Per Minute (frequency of the pumping). On a 3D printer, Tidal Volume can be adjusted by prescribing how far up and down the Z-Axis gantry moves (i.e., how much the bag is squeezed); likewise, the Breaths per Minute can be adjusted by setting the Z-Axis travel speed.
All of these functions can be written in GCODE, the motion control language that the printer is designed to execute. A 3D printer could be loaded with dozens or hundreds of files that represent all conceivable desired combinations of Tidal Volume (e.g., ranging from 250 mL to 750 mL) and Breaths per Minute (e.g., ranging from 5-25). The medical professional can choose which file to execute from the Printer's hardware interface.
We need to create and test those GCODE files and/or make the programs that will produce the GCODE files, given user inputs.
We also need to test and validate their functioning on various models of 3D printers.
Additionally, the firmware running on the 3D printers (typically Marlin, an open source firmware primarily used in 3D printing) must be customized to provide an intuitive UI for medical practitioners, allowing for input of Tidal Volume and Breaths per Minute variables, instead of requiring the user to navigate a menu designed for selecting files to "print."
This project does not propose a replacement for a real ventilator machine. Specifically, it currently lacks key safety components that are included in a real ventilator machine, including having no pressure monitoring or alarms. Preparing a 3D printer to pump an AMBU bag would be a "Plan B" or "Plan C" concept, at best, to be used only at the discretion of an appropriate medical professional, and only if no properly certified ventilator is available for the patient. Unfortunately, in many locations, proper ventilators have already been unavailable when needed. This project is, therefore, worth developing for potential use as a stop-gap system that could save lives while we wait on actual ventilators to be supplied.
Indeed, it is the only theoretical off-the-shelf (pseudo-)ventilator solution of which I am aware that would require no fabrication or sourcing of parts (parts which must be procured through a badly-wounded supply chain) and that would require only software/data input to function as intended.
3D printers are cheap and widely available. Let's put them to use to save lives.
Experts in 3D Printers, Marlin, GCODE: Please contact me about assisting in leading this project.
[DISCLAIMER: I am not a medical professional and this is not medical advice. The concepts expressed herein are theoretical, have not been properly tested, and could result in injury or death. DO NOT ATTEMPT TO USE A 3D PRINTER AS A VENTILATOR OR FOR ANY MEDICAL APPLICATION UNLESS YOU ARE A LICENSED MEDICAL PROFESSIONAL DOING SO AT YOUR OWN RISK AND DISCRETION.]
Built With
- 3dprinter
- gcode
- marlin

Log in or sign up for Devpost to join the conversation.