Kai Cho, Year 3
Abstract
CPR is one of the most effective and quickest responses for First Aid. In general, the process is very simple for trained and certified emergency responders or lifeguards. However, under stress or fear, or due to the lack of two trained professionals required by law, the chances of CPR being performed incorrectly is greatly increased, which significantly decreases the chance of survival for the patient in need. In this journal, it is investigated if a circuit can be built to create an autonomous bag valve mask, a piece of equipment recently implemented in the CPR procedure. Then, the capability of the autonomous bag valve mask to act as a substitute for the second lifeguard in CPR procedures is investigated. After testing, the developed autonomous bag valve mask proved to be a better substitute for a second lifeguard in regards to the timing of the procedure, but was inadequate for full compression of the bag valve mask.
Introduction
Cardiopulmonary resuscitation, or CPR, is a lifesaving procedure performed in need of a patient in cardiac arrest. According to St. John Ambulance Canada, “the only effective treatment [for cardiac arrest] is CPR paired with an electric shock from an AED, improving chance of survival by upwards of 75 per cent”(St. John Ambulance, n.d.). This fact, along with the statistics that “over 35,000 Canadians die each year of sudden cardiac arrest”(St. John
Ambulance, n.d.) and “an estimated 40,000 cardiac arrests occur outside of a hospital setting in Canada each year”(Canadian Institutes of Health Research, 2019), highlight the importance of CPR. Within the importance of CPR is the importance of the process of CPR, and the requirements that entail each step.
According to the Red Cross, CPR should be completed in the following steps:

Figure 1: CPR Steps
In Figure 1, CPR is split into two sections. In the first section, the 30 chest compressions are described. In the second section, the 2 breaths step is outlined. The appearance of these instructions may give an impression that the steps of CPR are relatively simple; however, when actually performing CPR, the small details can easily be disregarded or forgotten under pressure, adrenaline or fear. According to an approximate rate of 100 compressions per minute, the 30 compressions in CPR should take around 18 seconds. Furthermore, each breath should last 1 second, and be 2 seconds apart, but the time taken for the breaths and time in between can vary, as long as the entire process is approximately 5 seconds. Ultimately, for five cycles of 30 compressions and 2 breaths, the time taken should be around 2 minutes. These steps can be performed by a single person, and in many real-world scenarios, only one person is available. The single person performing CPR may or may not have previous training in CPR, as well as any additional bystanders who wish to help; with an untrained individual, the CPR steps are most likely to be rough, but some form of CPR, regardless of accuracy, should be attempted. However, in poolside environments, the regulations are different in terms of the capabilities and number of people present. According to the latest “B.C. Guidelines for Pool Operations”, at least two lifeguards* trained in CPR must be supervising a pool, in order to correctly perform CPR on a patient in need (Health Protection Branch, 2021, p. 24). Generally, one lifeguard is responsible for chest compressions, while the other lifeguard performs 2 breaths using a bag valve mask.
*Number of lifeguards subject to change due to factors such as size of pool, swimmer expected/present, etc.
To limit physical contact and for hygienic purposes, ambu bags, or bag valve masks, were introduced during COVID-19 as a substitute for the mouth-to-mouth “2 breaths” step. As seen in Figure 2, the bag valve mask is a manual pump to push air into the patient’s airway. The second lifeguard who is in charge of the 2 breaths for the patient uses the bag valve mask to give the patient air.

Figure 2: Bag Valve Mask
However, it may be the case that only one lifeguard is available to perform CPR, and only having one lifeguard available for CPR often decreases the reliability and performance of CPR for the patient. The absence of another lifeguard may also be furthered due to COVID-19 and the staffing limitations involved. This journal investigates how a circuit may be used as a substitute for the second lifeguard necessary in the CPR procedure for poolside environments in British Columbia.
In order to manufacture an affordable, efficient and portable autonomous bag valve mask, a controlled, conveniently powered, and easy to use circuit was needed. Furthermore, to address the condition that the person performing CPR is not experienced with the procedure, a speaker system was added. The speaker system also imitates the instructional system of an AED, and furthers the device’s ability to substitute a second person for CPR. It is important to note the other studies and devices created in a similar fashion to this project. Upon research, two journals were found. In a journal performed by Carnegie Mellon students, an autonomous bag valve mask device was created to aid emergency responders in assisting a patient with acute respiratory failure, while also regulating pressure and flow of the air to prevent lung damage. The device consisted of mechanical motors and sensors, which was controlled by an Arduino. The second journal presents an autonomous bag valve mask which acts as a ventilator for patients in hospitals, also controlled by an Arduino. Both these works present autonomous bag valve masks controlled by Arduinos. With the inclusion of this journal, all projects focus on different uses of the bag valve mask. This journal focuses on using the bag valve mask as a substitution for a person in a life saving procedure, and is intended to use the bag valve mask without a distinct blow pressure and flow measure. Furthermore, this journal focuses on the use of the bag valve mask without the oxygen tube, and specifically for CPR.
Materials and Methods
As the brain of the circuit, an Arduino Uno was used; the Arduino microcontroller and digital program best suited the needs and requirements of functions for the device. To fit the Arduino’s abilities, two servos were used.
Servo Control

Figure 3: Arduino Servo Control Circuit Schematic
The two servos used were of high torque; therefore, each servo was rated 6 to 8.4 volts. Because the Arduino is only capable of supplying a max of 5 volts, an external power supply of 6 volts was used. The 6 volt cell battery cell was wired to each servo’s power and ground, and each signal pin was wired to the Arduino’s digital power modulator, which acts as the signal.
Prototype 1
The first prototype used the main build of the circuit, with 30x1x1 cm wooden dowels attached to each servo, screwed in. The servos used were rated at 60 kilogram-centimeters (kg-cm) of torque. In order to ensure the right torque rated servo was purchased, a bag valve mask from a local community center was tested by using 2 kilogram weights as a simulation of servo performance. The bag valve mask was compressed with a 2 kilogram weight on each side, so a load arm of 30 centimeters would maintain 2 kilograms of force.

Figure 4: Prototype 1 Arduino Code
In this Arduino code for the first prototype, the goal was to prioritize the simultaneous servo movement, in order to maximize the force applied on the bag and to ensure the bag would not be unevenly compressed. Because the servos were connected by two different signal pins, a function where the servos would rotate in steps, or increments, was needed. For a loop of two times, the servos would rotate by 5 degrees with a 50 millisecond delay in between each rotation, displaying what appears to be a smooth rotation. Each full rotation to 45 degrees was coded to last 1 second, and a 2 second delay was put in between each compression of the inflated bag. Then, the final 18 second delay for the user to complete 30 chest compressions completed the loop of the code.
Prototype 2
The second prototype was altered with the knowledge that a load arm would not produce the function desired. In order to achieve the proper bag valve mask compression, a string tightening method was used, where nylon twine was wrapped around the inflated bag and the ends were attached directly to the rotating arm of the servo, without an extended load arm. This would increase the strength of the servos, therefore compressing the inflated bag to the desired depth. Furthermore, elastics were placed around the inflated bag to overcome the initial extra force of the elasticity and hardness of the ductile PVC material.
Arduino Code

Figure 5: Prototype 2 Arduino Code
For the second prototype, the priority was to supply enough torque to pull the strings on either end to “choke” the inflated bag. The simultaneous servo rotation function was removed,and the servos were just coded to rotate 45 degrees, where the servos were switched so that the rotation was outward instead of inward. The same time delays were implemented from the first prototype coding.
Prototype 3
The third prototype revisited the concept of the first prototype with the load arms compressing the inflated bag. The inflated bag was best compressed when applying pressure to single points of the inflated bag, and a load arm was best suited for this. Lengths of the load arm were varied, then tested to determine the length that compressed the inflated bag to the right depth and at the right speed.
Arduino Code

Figure 6: Prototype 3 Arduino Code
For the third prototype, the same code was used from the second prototype, with a few changes. The degree of rotation was changed to 90 degrees for both servos, to deliver a more complete compression. Furthermore, the delays were adjusted to better fit the ideal delays in the CPR procedure and the added time for the mechanical movement recorded from testing.
Instructional Speaker System
In order to further the ability to substitute for a second lifeguard, an instructional speaker system was added to the circuit. To create this, a recording module capable of capturing a recording and playing the output to a speaker was needed. An ISD-1820 voice recording module, capable of recording a maximum of 20 seconds, was soldered to a breadboard pin attachment, which was then wired in the layout of Figure 4. A loudspeaker was then wired through a soldering hole connector to the ISD-1820 module.
Arduino Code

Figure 7: ISD-1820 Module Arduino Code
By replacing the “Trigger Play” pushbutton (which connects to the ISD-1820 and the power source) with a direct connection from the ISD-1820 to the digital pwm pin on the Arduino, the playback can be controlled. In this code, the digital pwm pin where the ISD-1820 is connected is recognized as an output, and in the loop of the code, the ISD-1820 is told to play after the two chest compressions. The delay for the chest compressions was then implemented, with inclusion of the time for the ISD-1820 to play.
Script:
1 *Sound*
2 “Continue the 30 Chest Compressions for CPR. A sound will signify you when 2 breaths from
the bag valve mask will start. Then, repeat 30 Chest Compressions.
Time Delay
Restart Audio

Figure 8: ISD-1820 Module Circuit Schematic
Mechanical Structure and Design
Once the circuitry was completed, a structure was crafted to hold the devices. A box, constructed out of plywood, was built from the blueprint of Figure 5. Two holes, fitted exactly to the nozzle of the bag valve mask, were drilled with a hole saw on both ends of the box. The front hole allows the bag valve mask nozzle to sit out of the box, while the opposite hole allows the oxygen tube to be fed through, if needed. The back section of the box allows the circuit to sit spaced out and away from the bag valve mask. A 2.25 inch hole was also drilled with a hole saw for the speaker to sit, allowing maximum volume of the audio output. Furthermore, two plywood beams were placed on the side of the bag valve mask, allowing the servos to be attached and compress the bag with equidistance.

Figure 9: Mechanical Structure Blueprint
Data
Table 1: Bag from Bag Valve Mask Compression

In order to determine the optimal length of the load arm for the servos, varying arms with decreasing increments of 5 centimeters were tested using the coding and build of Prototype 3. Force applied was simply calculated by maintaining the 60 kg-cm rating. Videos were taken of
the servos compressing the bag, and analyzed using the program “Logger Pro”, which contains the built-in function to measure distances and movements with reference to a measurement scale in a video; this allowed compression depth to be accurately measured. It is important to note that the compression depth of the inflated bag varied each trial, and that the measurements were simply taken as an initial way to determine the best length of the load arm rather than definitive values.
Table 2: Lifeguard, Bystander, Prototype Tests

Six test subjects were gathered, three of whom are certified in up to date CPR, and three of whom were randomly chosen and were not certified in CPR. Tests using the third prototype for this journal were tested along with the subjects. The inflated bag had a total diameter of 14.69 centimeters, and expanding on the point made in Table 1, the compression depth varied for the prototype each trial.
Data Analysis
Percent Error
One effective test to determine effectiveness of the prototype for substitution is percent error, calculated as:

where VA is equal to the “actual value”, or the value experimentally found, and VE is equal to the“expected value”, or the value which is accepted or ideal. By comparing the data for the time taken for 2 breaths and the time in between each compression using percent error, it can be seen which subject group produced the most effective results compared to the ideal time taken.

Figure 10: Percent error of time taken for two breaths
In Figure 10, it can be seen that overall the bystander subjects had the greatest percent error, then the subjects trained in CPR, and then the prototype. With an expected or ideal value of 5 seconds for the time taken for 2 breaths, the prototype had the smallest percent error of 0.2%.

Figure 11: Percent error of time in between each compression
In Figure 11, the trend of decreasing percent error from the bystander subjects to the subjects trained in CPR, and then the prototype remains consistent from Figure 6. The smallest percent error of 1.8% was produced by the prototype, where 2 seconds was the expected or ideal value.
Standard Deviation
As a way to determine reliability, the standard deviation was calculated for the time taken for 2 breaths and the time between each compression for each subject.

Figure 12: Standard Deviation in time taken for 2 breaths

Figure 13: Standard Deviation of time in between each compression
For both Figure 12 and Figure 13, the trend remained consistent; the bystander subjects had the greatest standard deviation, the subjects trained in CPR had the second greatest standard deviation, and the prototype had the lowest standard deviation.
Compression Depth Comparison
To visually see which subject group met the ideal compression depth for the bag valve mask, a comparison bar graph was made.

Figure 14: Depth of bag valve mask compression comparison
In Figure 14, it can be seen that at least one side met the ideal compression depth from all the subjects trained in CPR and bystander subjects. With the Prototype 3 Tests, no compressions met the ideal compression depth.
Evaluation
Prototype 1
Prototype 1 did not produce the results intended. Upon testing, the bag was only compressed 2 centimeters in on each side. This was due to the error in coding; one of the priorities for the servos were to have them rotate simultaneously, and in order to do so with Arduino, incremental millisecond-long rotations were coded into the servos movement. Although
these increments were 50 milliseconds each, the small delays caused the servo to lose force when in contact with the inflated bag from the bag valve mask. When the constant “incrementTime” in the code was decreased to a smaller time, the servos could not complete a full rotation. Along with the limited force due to coding, the load arms of the servos appeared to be too long, as the bag was barely being compressed.
Prototype 2
With Prototype 2, the servos were not able to move and stayed in a stall position when turned on. Although initially seeming easier for the servo motors, the choking of the inflated bag required more initial torque, and assistance from the elastic bands hindered the bag valve mask’s ability to compress symmetrically.
Prototype 3
Ultimately, the third prototype functioned the best because of the optimal length of the load arm and the Arduino coding used. With the optimal length of the load arm found through testing, the bag valve mask was compressed by a total average of 2.807 centimeters. The load arm was optimal most likely due to the contact points of the load arm; if the load arm is too long, the entire arm would come into contact with the bag, spreading the force applied across different points. However, by placing the servos in a position to where the load arms apply force to a single point on the side of the bag valve mask, the compression was maximized. Seen in Figures 10 and 11, Prototype 3 is able to meet the time for the entire process and the delay in between each compression to an almost exact point. Seen in Figures 12 and 13, Prototype 3 is also reliable and consistent, producing a very low standard deviation. However, as seen in Figure 14, Prototype 3 does not match the other subject groups in meeting the ideal compression depth of the bag valve mask. However, it is important to note that Figure 14 also shows the reliability of compression depth; for all three tests, the compression depth on both sides was maintained to approximately the same depth.


Figure 15, 15.1: Prototype 3 in Mechanical Structure
Limitations
The primary limitation to this journal was the strength of the servos; from Figure 14, it can be seen that the bag valve mask did not compress to the ideal compression depth. Although presumed to be sufficient, the torque of the servo motors could not simulate the manual force of compression of a human. Furthermore, it may be possible that another configuration for the
servos could result in a more efficient and stronger use of the servos. This being said, another limitation was the limitation of the prerequisite knowledge for this topic, and the possible lack of skill in more complex electrical, mechanical, and coding builds. Although not heavily impeding, two underlying limitations that are important to note were the budget for the journal, and the COVID delays involved for the shipment of parts.
Improvements
Addressing the strength of the servos, higher torque servos could be used instead, as well as a different and stronger load arm. The load arm would still need to maintain its light mass, but perhaps have a modified ending to press deeper into the bag valve mask. The use of DC servo motors of high torque should also be investigated. Furthermore, an improvement that would first need testing to be deemed as an improvement is the use of a compression system other than servos. In other journals similar to this, a piston-like compression plate system was used for the bag valve mask, which is an effective alternative to servos. In terms of the mechanical structure built, it was realized that the airway of the patient must be kept open for the two breaths step to properly undergo. Therefore, a head strap or a holder for the patient’s head could be implemented, although more research on the impacts of an open airway during CPR is needed. Decreasing the size of the mechanical structure should also be attempted, in order to improve efficiency and accessibility. To fully conclude if an autonomous bag valve mask can substitute a second person for CPR, more data gathering and tests should be performed. More trials, as well as more subjects, should be gathered and recorded. The running time of the battery should also be tested at different modes (on, running, stall). Flow rate and pressure can also be compared between the three subject groups, but no ideal values for the two measures have been officially stated, and is therefore not necessary.
Potential Applications
While the primary goal of the journal was to investigate the device’s ability to substitute a second lifeguard in poolside CPR procedures, this device also has the potential to substitute an emergency responder using a bag valve mask alongside an automated chest compression device. Furthermore, with adaptations, the device in this journal also may have the potential to both act as a ventilator and an oxygen provider as in the two previously mentioned works; however, both works appear to have found the most efficient method for their specific functions.
Conclusion
As explored in this journal, the autonomous bag valve mask was successfully operated by a relatively inexpensive, replicable, and reliable circuit. The entire device cost approximately $200 CAD with the inclusion of the bag valve mask. Through testing the circuit code, servo compression, and effectiveness/reliability against other subject groups, it was discovered that the third prototype was lacking the strength to compress the bag valve mask to the ideal depth, With the limitations and improvements considered, more research and development will have to be made in order to substitute a second lifeguard in the CPR process.
Works Cited
Canadian Institutes of Health Research. (2019, February 1). Research program intended to help Canadians survive sudden cardiac arrest expands to all 10 Canadian provinces. Canadian Institutes of Health Research. Retrieved March 23, 2022, from https://cihr-irsc.gc.ca/e/50090.html
Hannah Clausi, Godinez, J., Kenny, C., Li, M. X., & Roblin, N. (n.d.). An Autonomous, Low-Cost Bag Valve Mask for Emergency Responders [Image; PDF]. https://www.cmu.edu/bme/Academics/undergraduate-programs/Resources/design/2021-design-pojects/3p-an-autonomous,-low-cost-bag-valve-mask.pdf
Health Protection Branch. (2021). Minimum Staff Requirements. In British Columbia Ministry of Health (Author), Government of British Columbia (Interim Version 3 ed., p. 24) [PDF]. https://www2.gov.bc.ca/assets/gov/environment/air-land-water/water/documents/pool_operations_guidelines_oct_2021_v3_interim.pdf
RepRapable Automated Open Source Bag Valve Mask-Based Ventilator. (n.d.). http://dx.doi.org/10.20944/preprints202006.0318.v1
St. John Ambulance. (n.d.). November is CPR Month. Retrieved March 22, 2022, from https://www.sja.ca/en/initiatives/november-is-cpr-month
Leave a Reply