Functional tests

Authors: Bruno Depraetere and Branimir Mrak – Date: 16/04/2020.
The tests were performed on a V1 production machine with
serial number 2. The firmware version used is FW 3.06.


The goal of this test is to verify the functionality of the machine across a wide range of settings.
The MHRA specified 180 cases that contain different settings.
For all of these cases the pressure, oxygen level, temperature and flow rate must remain within specified error margins.

The full MHRA document, describing the functionality requirements for emergency ventilators, can be found on here.


The machine and a Fluke VT900 are connected to the same computer running a MatLab script.
The measurements of the machine are compared against those of the fluke and checked if they are within the allowed tolerance.

The Matlab script is responsible for entering the parameters into the machine,
as well as comparing the values of the machine to those of the Fluke gas analyser.


Since the oxygen circuit is not implemented in V1, the tests were performed at atmospheric oxygen levels and need to be executed again when oxygen
is in place.
For test lungs available the minimum lung resistance was 10 cmH2O, while MHRA specifies tests with a lung resistance of 5 cmH2O. These are marked red on the spreadsheet.

For some tests, the plateau pressure and PEEP pressure are the same. For that reason, the Fluke doesn’t trigger a measurement. The measurements for these test cases are wrong, due to the algorithm the Fluke uses to extract PIP and VT from the full waveform measurement. These cases are marked with ‘bad Fluke’.

The test results can be found on the following link:


All of the test results are within spec according to the parameters defined by the MHRA.

The accuracy of the oxygen circuit is not included in this test and therefore it should be repeated.

Apart from that, the missing tests with a test lung with lung compliance of 5 cmH20 should be added.