COVID-19 Rapid Manufacture Ventilator BVM Ambubag for £80 OpenVent-Bristol

Introduction: COVID-19 Rapid Manufacture Ventilator BVM Ambubag for £80 OpenVent-Bristol

Please see my latest imporved design here which is closer to meeting the MHRA requirements:

Please share and donate if you can, we are in need of more funding to move to the next stage of development: click here to donate

The USP of this design is how easy and fast it can scale for mass production for the following reasons:

  • Automated production: The production of each part is fully automated (laser cutting), with only 8 different parts
  • Only 6 off-the-shelf components: Very few different components are needed and no exotic parts are needed (not even a motor coupling)
  • Simple mechanism: It uses a super simple mechanism with just an arm mounted to a motor - no complicated mechanisms to go wrong, just one moving part
  • Fast assembly: Complete assembly is possible in around 20 min with one person
  • Adjustable settings: Has full adjustment of breath frequency and pressure/tidal volume and with a small adaption can function within all NHS requirements
  • Low cost

I'm not selling this product, just releasing the design as open source to help others. This design doesn't currently meet the NHS requirements (in link below) and does not have medical product approval which will be needed for treatment. A list of improvements for the next version with the aim of meeting the NHS spec is kept in the GitHub readme (link below), some of those things are here:

  • A 12V battery backup with at least 20 min run time
  • A battery management circuit to automatically switch over to the battery in a power cut (not actually required but would seem sensible)
  • A pressure sensor alarm for sensing failure and a buzzer & LED to create an alarm on failure
  • An LCD screen to show pressure and other values and Settings

GitHub code link:

NHS Rapidly manufactured ventilator system specification:

Problem statement

Ventilation is the only known available treatment for sufferers of COVID-19. Existing ventilation machines in hospitals are complex general purpose machines costing £10s of thousands. The availability of the existing ventilators is no where near enough to meet the predicted required numbers, for example in the UK around 5000 ventilators currently exist within the NHS but it is predicted they will need around 30,000 in just a few weeks. Critically ill patients left without ventilation treatment are in danger of losing their life.

As far as I understand, one effect of the virus as well as damaging the lungs, it also produces a very sticky mucus in the lungs which causes the lungs to collapse and makes it very difficult for the patent to breath of their own accord. Ventilation can be delivered either via intubation or a well sealed mask and delivers continuous positive air pressure into the lungs to keep them inflated at all times. Conscious less ill patents can be aided using a CPAP (Continuous Positive Airway Pressure) ventilation device like a sleep apnea device, this delivers a constant air of the same flow rate and pressure. The more critically ill patients need a machine to breath for them which varies the pressure and flow according to inhale and exhale and relies on maintaining a good seal and a PEEP valve to keep the lungs continually inflated.

An analogy: Imagine inflating a balloon, letting it deflate completely, then re-inflating it, that is like CPAP. If you inflated the balloon, deflated it half way, then re-inflated it, that's more like the treatment needed for the worse sufferers.

The aim is:

1. for a very simple low cost design

2. made using readily available components

3. that can be manufactured quickly and easily in small quantities or on mass at low cost

4. to work reliably and with the lowest risk to the patient (partly to help speed up the medical product approval process, if this project gets that far)


All users of this design and device shall be deemed notified of the warnings stated herein. This device is a simply designed, fast produced ventilator. This device should not be used in place of an existing hospital ventilator. These should only be used as a last resort where a patient has no other alternative due to the lack of availability of existing ventilators. This is not a fully medically certified device and should not be relied upon as such. The device is designed for use by trained medical professionals and should only be used by trained medical professionals; it is not intended for home use.

The designers and manufacturers of this device shall not be held liable for any death or injury that may result from this device.

The designers and manufacturers of this device give no guarantees or warranties as to the efficacy and/or safety of this device.

This design isn't connected with dyson or any other ventilator projects including Dyson CoVent.


This design is based on a hand operated BVM (Bag Valve Mask) or known as ambu bag, which when combined with a PEEP valve will meet most of the NHS requirements for COVID-19 ventilation treatment. My design replaces the hand making this automated.


Credit to the people below for helping to make this all possible:

  • Sam Reilly - Software Certification Engineer
  • Sadie - ITU nurse
  • Tom Breddal
  • Consultant Anesthetist in UK ITU

Step 1: Buy Parts

Totaling around £80 (excluding the medical parts; BVM etc.)

DXFs for laser cutting are stored on GrabCAD in this link:

Other things not listed here that you will need for treating COVID-19 are a PEEP valve with valve ring adapter, a mask extension tube and a soft Velcro mask strap.

A list of improvements for the next version is kept in the GitHub readme, some of those things are below:

  • A 12V battery backup with at least 20 min run time
  • A battery management circuit to automatically switch over to the battery in a power cut
  • A pressure sensor alarm for sensing failure and a buzzer & LED to create an alert
  • An LCD screen to show pressure and other values and settings

Step 2: Laser Cut and Assemble Chassis

DXF files and STEP file of the assembly are stored on GrabCAD in this link:

Laser cut the following part files from 8mm acrylic or ply with the following quantities:

  • Q1x "Back plate.dxf"
  • Q1x "Left side big hole.dxf"
  • Q1x "Base plate.dxf"
  • Q1x "Arduino DJ shield cover V2.dxf"
  • Q1x "right side small hole.dxf"
  • Q4x "arm contact ring 25mm.dxf"
  • Q2x "Base fins"

To assemble you will need:

  • 9x M6x25mm bolts
  • 4x M6x15mm bolts
  • 14x M6 nuts

Watch this video for time-lapse assembly and refer to photos for what it should look like. Apologies for the poor quality and note I was using a older design of motor mount in this video which has been updated, see next step for up to date motor mount method.

Step 3: Mount Motor

As shown in the pictures;

  1. attach 4 cable ties (the beefier the better, I used 8mm wide ties) through the 6 holes in the back plate such that 4 of them sit parallel to each other in the horizontal axis
  2. then pass 2 jubilee clips (I used 25-40mm clips) through the loops in the cable ties and around the motor
  3. Then tighten the clips until it grips the motor nicely, but don't tighten it too much!!! Because it can crush the casing and damage the motor

Step 4: Mount Motor Arm

Attach the motor arm using the M8 nut and bolt. Hold the nut in its 'captive' slot and tighten the bolt up against the flat of the motor shaft with a hex key.

Attach some of the small laser cut circles to the end of the arm with the long M6 bolt and nut to distribute the pressing force on the bag. It is best to use a niloc M6 nut if you have one here. You may also want to add some bubble wrap or fabric around the end of the arm for extra cushioning as it may wear into the bag over extended use.

Step 5: Electronics

  • Connect up the motor to motor port A of the motor driver shield
  • Connect up the 12V power supply to the Vin connections of the motor driver shield (don't be tempted to plug your power supply direct into the Arduino board, it doesn't seem to like this)
  • Connect up your switch in line with the power supply and mount your switch into the 6.35mm hole in the side panel
  • Solder up your DJ shield but take care to only solder the components listed below as pins A0 and D3 are needed by the motor driver
    • The POT on A1
    • The POT on A2
    • The button on D6
    • The button on D2
  • Stack the motor driver shield and the DJ shield on top of the Arduino and secure them in place with the laser cut UI panel using an M6 nut and bolt

See photos for more info.

Step 6: Software

Download the latest version of my Arduino code from GitHub using the following link:

  1. Download "Motor_current_stop_test_V3_dwell_control.ino" and "Analogue_filtering.ino"
  2. Place these 2 files in a folder called "Motor_current_stop_test_V3_dwell_control" in your Arduino sketchbook folder
  3. Then when you double-click to open "Motor_current_stop_test_V3_dwell_control" it will automatically include the other file in another tab of your IDE

You will also need to install the Arduino motor shield rev3 library:

"Motor_current_stop_test.ino" is an old code, do not use.

Upload the code to the board but before you run it for the first time make sure the "max pressure/tidal volume" POT is dialed all the way down (all the way anti clockwise).

Once you run it for the first time be prepared to stop it quickly because you have a 50/50 chance that the motor is spinning in the right direction. If the motor trys to spin the wrong way initially then swap the motor wires around to reverse the polarity, if that doesn't work then gradually increase the current limit by dialing up the "max pressure" POT because bigger motors could be tripping out of the current limit upon startup. I think the current limit range on the POT is from 800mA to 1.2A.

Step 7: Enjoy!

Don't forget to add you PEEP valve and mask extension tube, then test and enjoy!

There is a running list of improvements we are keeping for the next version on the GitHub readme:

Be the First to Share


    • Fabric Challenge

      Fabric Challenge
    • Meatless Challenge

      Meatless Challenge
    • First Time Author Contest

      First Time Author Contest



    Question 1 year ago on Step 7

    Hi, can I use 12v DC 20RPM motor and arduino , TB6612fng? I am not seeing enough torque


    Question 1 year ago

    can you please post the program for this project as a single file as it is difficult to sort out from different files.


    2 years ago

    Hi Darren,
    how are you? Great work
    Also I'm having an issue compiling the code. I get ' - 490 'int setMotor1Speed(int M1speed)' was not declared in this scope. Does it have to do with the library?

    Captura de Pantalla 2020-06-17 a la(s) 8.57.23 p. m..png
    Darren Lewis
    Darren Lewis

    Reply 2 years ago

    Thanks EWB, had a quick look on your GitHub list but I couldn’t see my design


    Reply 2 years ago

    Hi Darren,

    Congratulations on your swift and proactive response to the Coronavirus crisis that is gripping the world. I work with the Technology Exchange Lab ( and I have followed your progress with great interest. We are a nonprofit based in Boston and host a database of sustainable, cost-effective technology that can change the lives of people living in poverty.

    The new COVID-dedicated section of TEL's website collates and curates up-to-date information on products, prototypes, and design specifications of ventilators and other equipment. The data are, as always, free to all, in a user-friendly yet information-packed format and we have been in contact with Robert at Public Invention (from the above comment) to coordinate efforts as much as possible. As a new initiative that meets our criteria your ventilator project has it's own dedicated entry on our site:

    I have looked through your published specs and cannot find the answers to the following questions. Any additional information that you can supply will assist other projects around the world who hope to work quickly and efficiently to solve the ventilator shortage problem.

    * Is this a Volume Control Ventilation, (VCV), Pressure Control Ventilation, (PCV), or Pressure Regulated Volume Control (PRVC) device?
    * What is the plateau pressure range?
    * What are the I/E ratio settings?
    * What is the Tidal Volume Range?
    * What is the respiratory rate range?
    * How long can it run without interruption?

    The solution page for your project on our site has an update form, please feel free to add any updates there or contact me directly.

    I look forward to hearing from you soon,

    Éadaoin Ilten
    Operations Manager

    Darren Lewis
    Darren Lewis

    Reply 2 years ago

    Hi thanks for you message, my latest design publications should answer most of your questions.This design gets us closer to meeting the MHRA requirements. The Pressure, I/E, volume and frequency are restricted to what we believe to be safe maximums but if you replicated my prototype it should be straight forward to extend these if you wished although some combinations of those settings may not be possible due to physicals restrictions

    I'm very grateful for your post on your website, but would it be possible to update to update it with my latest design for me please?

    It runs PVC, PVRC is possible with a small software change, I think BIPAP/assistive mode may be possible as well but I haven't tried this yet.

    It has run for at least 12hrs during testing without problems. I haven't been able to life test it more than this unfortunately.


    Question 2 years ago

    Est ce que c'est possible de partager avec nous les démarches pour installée les améliorations de la prochaine version et le code d’écran LCD.
    • Une batterie de secours 12V avec au moins 20 minutes d'autonomie
    • Un circuit de gestion de batterie pour basculer automatiquement sur la batterie en cas de coupure de courant
    • Une alarme de capteur de pression pour détecter une défaillance et un buzzer et une LED pour créer une alerte
    • Un écran LCD pour afficher la pression et d'autres valeurs et paramètres
    Darren Lewis
    Darren Lewis

    Answer 2 years ago

    Hi, if I’ve translated your French correctly, I am currently working on these and will share on instructables once completed. Thanks Darren


    2 years ago

    Hi Darren
    Have you connected ambu to the test lung yet? I think torque motor is not enough


    2 years ago

    Hi Darren and team,
    Excellent work coming up with this simple, practical and innovative design. Thanks for sharing. I am very keen on trying this out.
    Have you been successful in getting a hospital to use this? Seems like a very valuable resource during this COVID crisis.


    2 years ago

    Nice job, you should think about adding a display for show all the info:bpm, mode and pressure etc...
    Good luck


    2 years ago

    Excellent travail, merci d'avoir partagé votre design et le code pour adapter l'affichage écran LCD.
    merci d'avance


    Question 2 years ago

    Hi Darren,

    Great project. I'm trying to replicate should the need arise for low cost ventilators in South Africa due to COVID-19.

    I've managed to get an arduino uno, L298P Shield and Motor but I'm unable to source the DJ Shield.

    I have got hold of an LCD Display Shield instead which I'm hoping to use for the flow rate and pressure configuration.

    Do you have any recommendations how I could adjust your code to suite the display instead of the DJ Shield?

    Also I'm having an issue compiling the code. I get 'getM1CurrentMilliamps() ' was not declared in this scope. Does it have to do with the library?