Introduction: Xhale Ventilator

Spring Grand Challenge


COVID-19 is caused by a corona-virus called SARS-CoV-2. It is thought to spread from person to person, mainly through respiratory droplets produced when an infected person coughs or sneezes. Spread is more likely when people are in close contact with one another (within about 6 feet) by touching a surface or object that has the virus on it and then touching their own mouth, nose, or possibly their eyes.

COVID Virus makes it hard for the patient to breath and it constantly gets worse, until the afflicted person can no longer breathe by themselves. The current solution is to attach the patients to a mechanical ventilator, which is running hospitals dry as patients are flooding in.

Due to these reasons, we are opting to direct our efforts toward modifying existing manufacturing plans and improving these low-cost ventilator designs to better accommodate real patients. We are making this open-sourced because we can all have an impact and help in this cause.


Our goal is to create low cost open-source ventilators and send them to a city across the border to Mexico. This city is Mexicali, Baja California, Mexico, which has about a million inhabitants. The city has about 20 ventilators and 200 ventilators across the entire state. They are in desperate need of equipment and our team wants to help by sending them ventilators. Mexicali, Baja California.


Currently, low-cost ventilators are being produced in an effort to assist with the COVID-19 effort, but cannot be employed for a number of reasons. As one of our senior project due to this widely spread of the virus, we have decided to base our device off of the MIT ventilator called "MIT E-Vent" to help people from around the world, specially people in Mexico.

The design requirements for the ventilator are:

1. Variable from 6 to 40 breaths per minute

2. Volume of air into lungs between 200 - 800 mL based on weight of patient

3. Inhale/Exhale time ratio of 1:2

4. Maximum airway pressure of 40 cm H2O at all times

5. Failure conditions notifies user by alarm


Materials (These materials were all easily found in Amazon):

The essential components for a low cos ventilator are included:

1. BVM (Bag valve mouth)

2. 12V DC Power Supply

3. 2 Channel Relay

4. Arduino

5. 12 V Linear Actuator. The one used in this instrutable was a SOVIK. Model: S100-100-12-10. Input Voltage: 12 V DC. Stroke 100 mm. Full Load: 10 Kgs. Speed: 25 mm/s. (You can buy any linear actuator as long as it has a speed of 25mm/s or faster).

6. Male to Male Cables

7. 12 V power connectors

8. Small Cross Screwdriver

9. Wire Stripper Pliers (if needed)

Step 1: Setting Up the Hardware


First, you must connect the the 2-channel relay to the Arduino to power it. Relays are switches that open and close circuits. You can control each relay or channel one at a time and for separate actions. You can think of a relay like a railroad switch. You need two channels because one extends the actuator and the other retracts it. The Arduino is a micro-controller and it connects to the side in the relay that only has 4 contacts or openings. (The relay has a side with four and another with six contacts).

In order to insert the cables you must use a small cross screw driver. Unfasten the screw, insert the metal part of the cable inside the small opening, and fasten the screw making sure that the cable does not slip out. You will connect a red male to male cable into the DC+ in the relay and into the 5V in the Arduino. Connect a black cable into the DC- of the relay and into the ground of the Arduino. (The cables do not have to be a specific color, but it is easier to use red and black to distinguish between power and ground).

Then, you connect a cable into IN1 in the relay and the other end into pin 6 of the Arduino. Finally, you connect a cable into IN2 in the relay and the other end into pin 7 of the Arduino. You can choose any pins as long as you refer to them in the code later on.


We will use the +12V DC power supply for the linear actuator motor. You will connect the power source to the 12V cable connector and then into the relay. The connector has a side that fits into the power supply and a side with a red and black cables. We will be connecting the cables to the side of the relay with 6 contacts or openings. First you will connect the red cable to both the NO2 and NO1, and the black cable to both NC2 and NC2 (Openings 1,3, for power and 4,6 for ground.) You can connect one cable into the first opening, and use a separate cable to bring the current into the second opening as shown in the images. You must do this double connection because you need to power and ground both of the channels. If the cables need to be cut or stripped for a better connection you can use the wire strip cutters). Don't forget to tighten the screws and make sure the cables don't slip out. This could affect the contact between the cable and relay and affect the connection.


Finally, the two middle contacts are used to connect the linear actuator. The linear actuator will have two cables, and you must insert them into COM2 and COM1 (Opening 2 and 5 from left to right). The order of the cables of the linear actuator do not matter because they will controlled with the relay.


Place the linear actuator with the moving section pointed at the bag. Place inside a box of your choice.

Step 2: Writing the Code

In order to control the linear actuator using the Arduino you must download the Arduino IDE here:

Arduino uses C++, if you would like to learn more please see this tutorial

After you download you can use the code below:

//Label your variables and write down the pins you are using (in this case 6 and 7)

const int channel1 = 6; //Arduino pin that triggers relay #1

const int channel2 = 7; //Arduino pin that triggers relay #2

void setup() {

//Set pinMode to OUTPUT for the two relay pins

pinMode(channel1, OUTPUT);

pinMode(channel2, OUTPUT); }

//Extend and retract the actuator

void extendActuator() {

digitalWrite(channel1, HIGH);

digitalWrite(channel2, LOW); }

void retractActuator() {

digitalWrite(channel1, LOW);

digitalWrite(channel2, HIGH); }

//Time how long the actuator retracts and extends

void loop() {




delay(4000); }

Step 3: Test Your Ventilator and Improve It

Testing Time!!

Connect the 12V power source to an outlet, connect the USB of the Arduino into a computer. In the Arduino IDE press verify and then upload (The check mark and the arrow icons on the top left). Watch the actuator move and the ventilator work. You may change the time that the actuator takes to extend and retract by changing the delay in the code.

In the future, to improve the ventilator we must add a pressure sensor to ensure that the right amount of pressure is being used and that the patient is not hurt. Please look out for more Instructables. Make a change in the world. Thank you.