Updated 28 April 2020
This code is provided for reference use only. Our goal is to help others understand the function of our Version 3 prototype system, with regards to: delivering tidal volumes, breaths per minute and I:E ratios; visible and audible alarm functions; and the display operation. Assist control, to detect patient breathing, is implemented, but is still a work in progress. (Synchronizing with a human is non-trivial.) These features are only a baseline and others will likely wish to add more safeties and features. Our code is specific to an Arduino Mega, RoboClaw and DC motor. Our code is NOT approved by any regulatory body to operate a medical device.
Caution: Any group working to develop ventilation or other medical device must conduct significant hardware and software validation and testing to identify and mitigate fault conditions. This is essential to ensure patient safety.
Access the code from GitHub
Version 3.1 – Hardware
Version 3.1 is shown below.
Source files for mechanical design:
Two design tools that will allow you to explore different gear configurations and select appropriate motors:
- Gear Stress Estimator Spreadsheet – This is designed to calculate the maximum bending stress experienced by gear teeth. This should be compared to stress – fatigue curves for a given candidate material.
- Gear Torque and Speed Estimator Spreadsheet – Purpose: This outputs the torque and speed required by the driven arm and the pinion. The radial load from the pinion on the gearbox shaft is also calculated. The speed and torque results should help you select and appropriate motor, based on comparing these to a given motor’s curves.
Source files for circuit diagram:
More details are available in Past Designs.
Version 002 (T-Slot Aluminium)
Version 002 (welded)
Note: The shafts on the gear-driven fingers need to be keyed. This detail is missing from the CAD below. We’re in the process of updating our designs; an improved model will be shared here soon.