Close
0%
0%

DP Ventilator

Battle against Covid-19

Similar projects worth following
Our open source contribution to the world in the fight against the invisible corona virus.
You want to build your own ventilator device? No problem, the full project will be available online as a first on hackaday!
"Our ventilators can only be used under supervision of a doctor."
When we have reached our goal and everything is ready, we can start production.
We will keep you informed!

Thank you all for all the likes you giving Us! We will continue to make the best of it, We hope the pandemic will die soon but in the meantime we hope to help as many people as possible to survive and give them there life back all around the globe!

At the end of March 2020, we were thinking about whether we could do something for the world to help in the COVID-19 crisis.  
After some discussion we quickly got to a point where we agreed.  
We believe that a usable ventilator could certainly make a small contribution to the fight against COVID-19.  

Globally, the shortage of ventilation equipment was growing noticeably.  We knew that it would not be an easy task to develop a device that can be used in a medical situation.

Searching for the right mechanical design and concept, a few weeks passed… After a lot of trial and error, some light began to shine at the end of the tunnel.  
Our mechanical concept slowly got better and better, which gave us courage to continue working until we reach our goal.

At the moment we are very close to the point where we can start producing our device.  We are very happy and proud that we have reached the point where we are now.

At this point the cost of the whole project becomes more difficult to bear and additional financial support in the format of crowdfunding would be more than welcome.  


http://dpventilator.com

DP-Ventilator-master.zip

Schematics ventilator V0.10

x-zip-compressed - 24.27 kB - 05/23/2020 at 20:15

Download

VENTILATOR STLs.zip

STL files ventilator V0.10

x-zip-compressed - 1.53 MB - 05/23/2020 at 17:23

Download

Ventilator-V0.10.zip

Step files ventilator V0.10

x-zip-compressed - 12.87 MB - 05/23/2020 at 17:19

Download

DPvent10.zip

Arduino mega software source Ventilator

x-zip-compressed - 74.24 kB - 05/23/2020 at 17:15

Download

DPvent6.HMI

Nextion screen 4.3" advanced source

hmi - 3.67 MB - 05/23/2020 at 15:25

Download

View all 6 files

  • 1 × Arduino Mega 2560
  • 1 × stepdown 36>12V 1A
  • 1 × Power jack female 3.5mm 6A
  • 1 × Tumble switch 6A
  • 1 × Strap 20mm witdh 1mm thick length 740mm

View all 15 components

  • Nextion screen stable running communication

    dannyvandenheuvel06/01/2020 at 04:00 0 comments


    The Nextion HMI screens, everybody know them, excellent hmi interface with all the graphical source on the display side, so less resources on the arduino side. But one of the biggest problems, a decent communication in bought directions.

    I did a whole research finding a decent communication but didn't find it, I wanted a simple communication without any of the libraries from Nextion.

    Continuously writte data to the screen and getting data from the screen, easy expandable.
     #define NXTSerial Serial2          // Serial port to connect with Nextion panel
    

     Set serial port to use with the arduino board


      void NxtOpenSerial()
      {
       //This is for serial Nextion display.
       NXTSerial.begin(19200);
      }
    

    To open the serial communication with the HMI display.

     void InitNxtData(String dev, String data)
      {
        memset(NxtMsg, 0, sizeof NxtMsg);  
        sprintf(NxtMsg, "%s=%s%c%c%c", dev.c_str(),data.c_str(),0xff,0xff,0xff);
      }
    

     To add data to write something to the screen (first data)

      void Add_NxtData(String dev, String data)
      {
        sprintf(NxtMsg, "%s%s=%s%c%c%c", NxtMsg,dev.c_str(),data.c_str(),0xff,0xff,0xff);
      }
    

    Add next data as long as needed (to repeat).

      void SendNxtData()
      {
        NXTSerial.print(NxtMsg);
      }
    

    Send all the data.

    To write to the HMI dispay, use it this way;

      void Nxt_Write()
      {
        InitNxtData("P1.val",NxtMessage);
        Add_NxtData("P2.val",NxtMessage);
        ...
        Add_NxtData("P3.val",NxtMessage);      
        Add_NxtData("P4.val",NxtMessage);      
        Add_NxtData("P5.val",NxtMessage);
        Add_NxtData("P6.val",NxtMessage);     
        ...
        SendNxtData();
     }
    

    Example: Write 6 parameters to the Nextion screen.

    repeat this routine on every 50ms and send only data when it changes to shorten your data transfer.
    Because you send just one line of data it stays very responsive.

        if (old_P1!=P1) {
        sprintf(NxtMessage, "%u", P1);
        Add_NxtData("P1.val",NxtMessage);      
        old_P1 = P1;
        }
    

     This way you only add the data when there was a change in data.

    On the other hand we wanted to read data from the nextion screen.

     void Nxt_Poll()
      {
        // READE DATA FROM PANEL
        delayMicroseconds(10); // 10 usec delay 
        if (NXTSerial.available())
         {
             byte inc;
            inc = (char)NXTSerial.read();
            if ((inc >= 0xF0 && inc <= 0xFE) && !NxtSetStart) // <START MESSAGE>
              {
                NxtBufCnt = 0;
                NxtSetStart=true;
              }
            if(NxtSetStart)
              {
                NxtBuf[NxtBufCnt++] = inc;
                if (inc == 0x0A) // <END MESSAGE>
                  {
                    NxtSetStart=false;  
                    ... 

    Listen to the port if data is available, if so read char start message between (0xF0>0xFE)
    If found read and store next character until character 0x0A has been read. This is the end of the message.
    As you can see it is a very simple communication but it works very good.

    Now lets check some data and do something with it.

                    CheckNxtHex(0xF0,NXTparam);       // Read parameter data from 0xF0  
                    
                    CheckNxtHex(0xF1,NXTstart);       // Read parameter data fron 0xF1 and do something 
                    if (NXTstart==1 && !NXTstartFlag)  {ee.active=!ee.active;NXTstartFlag=true;} // Toggle button (start/stop)
                    if (NXTstart==0)                   {NXTstartFlag=false;} 
    

     and close communication

                    NxtBufCnt = 0;
    
                 }
              }      
          }
        else
          {
            // WRITE DATA TO PANEL
            Nxt_Write();
          }
      }
    

     I hope this explains a litle how I made a good  and fast working  communication with the nextion display.

    .     

  • From Arduino to Atmel Studio 7

    dannyvandenheuvel05/29/2020 at 10:32 0 comments

    I am transferring all source from Arduino to Atmel Studio 7, many more possibilities to debug and stabilizing the software.
    On mega 2560 I use JTAG connection with Atmel debugger hardware.
    Connections are,
    6 = reset pin (Do not know if it is needed)
    4=5VDC pin
    10=GND pin

    1=A4 pin
    5=A5 pin
    3=A6 pin
    9=A7 pin

    https://www.avrfreaks.net/forum/atmel-ice-and-arduino-atmega-2560-board

    first plug Atmel debugger in SPI (6pin connector) and select FUSE to JTAG, then power of and make selection as above.

    Warning! if you do this changes boot loader will not work anymore, you still can fix this again with Atmel studio.
    So when debugging mega board you have to do these changes.
    If you want to fix boot loader again you have to download hex boot loader file from Arduino site and have to burn it
    with de SPI connector from within Atmel Studio software.

    The reason to work with Atmel Studio, medical equipment needs to be undertaken that software is bullet proof , so debugging is very important, also some of the libraries needed to be fix with some small glitches.

  • We needed to move controlled

    dannyvandenheuvel05/24/2020 at 10:09 0 comments

    To move controlled in both directions Up and Down we used springs, this way we are fully guiding the press system on the amu-bag.

    We take the cover of the box and made some things on it.

    Every piece has been made to easily be removable. The motor Knob can be used when the machine is powered off to clamping the abu-bag between the two squeezers.

    The spring system can be easily removed

  • Making of the mechanical strap system

    dannyvandenheuvel05/24/2020 at 09:49 0 comments

    The mechanical table exists out of a strap belt, the whole mechanics has to be build into the enclosure on a easy way to get removed or inserted.

    Th

    It's been build around a very strong stepper motor Nema 34 with 4.5Nm torck. The driver must be very silent so we needed to work in micro steps with enough power. After several tests with different motors this was the best result. It also needed to be double shafted because we wanted to work with a motor that we manually wanted to move to bring in the ambu-bag.
    The standard strap belt we used has a width of 20 mm and the thickness about 1 mm. You can find it in your local warehouse. Take the nylon one and if you cut it always use a burner to melt the ends.

     Here you see how it is brought into the enclosure.

    It is very compact and fits perfectly!

  • It all started with a empty box

    dannyvandenheuvel05/24/2020 at 09:10 0 comments

    This was one of my first questions, how I going to build it? Everything started with this enclosure.

    This must make place for the electronics

    The first 3D printed pieces where the front with its electronic components.

    And this is the result

  • Ventilators in testfase

    dannyvandenheuvel05/23/2020 at 15:32 0 comments

    Our first examples in testfase!

View all 6 project logs

  • 1
    Step 1

    You need at least a 3D printer with a volume of 210mm x210mm , I printed everything with the prusa MK3 printers, they are perfect!

View all instructions

Enjoy this project?

Share

Discussions

karinalanduydt wrote 05/26/2020 at 20:04 point

fantastic project!

  Are you sure? yes | no

dannyvandenheuvel wrote 05/25/2020 at 08:35 point

For the moment I am rewriting the arduino software to C++ into atmel studio 7 for more stability and debugging options.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates