# Open Source EMERGENCY Based Ventilator -sensor integration

**URL:** <https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406>\
**Category:** XOD Programming Questions\
**Created:** [September 5, 2020, 10:06pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406 "2020-09-05T22:06:07Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 5, 2020, 10:06pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/1 "2020-09-05T22:06:07Z")

</div>

Dear developer and friends in this wonderful forum

Thanks a lot for great efforts helping us with XOD nodes special thanks to [wayland](https://forum.xod.io/u/wayland)  
As i mention in my previous post we are developing fast prototype of (Open Source EMERGENCY Ventilator) based on XOD IDE  
Now we having hard times trying to build nod for the i2c flow sensor (SFM3300)  
Here is some information and library

 ![00559.MTS_snapshot_00.01.600](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/1/1797b58981e37f2bc85ab0d6739d6318bbc61589.jpeg)  

> **[Sensirion\_Mass\_Flow\_Meters\_SFM3300\_Datasheet.pdf](https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/5_Mass_Flow_Meters/Datasheets/Sensirion_Mass_Flow_Meters_SFM3300_Datasheet.pdf)**
>
> 441.94 KB

Sensor Datasheet: [https://www.sensirion.com/fileadmin/user\_upload/customers/sensirion/Dokumente/5\_Mass\_Flow\_Meters/Datasheets/Sensirion\_Mass\_Flow\_Meters\_SFM3300\_Datasheet.pdf](https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/5_Mass_Flow_Meters/Datasheets/Sensirion_Mass_Flow_Meters_SFM3300_Datasheet.pdf)

Similar project

> **[Nabilphysics/SensirionSFM3300FlowMeterOLED](https://github.com/Nabilphysics/SensirionSFM3300FlowMeterOLED)**
>
> This is a Flow meter using arduino, Sensirion SFM3300 Flow Sensor and SSD1306 OLED Display. https://www.cruxbd.com and https://www.nabilbd.com - Nabilphysics/SensirionSFM3300FlowMeterOLED

I’m not expert in c++ I need help to warp the c++ library and create i2c nod for (SFM3300) sensor

thanks a lot and we appreciate your help to help us combating covid 19 in Africa

 ![DSC00052](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/7/760e78fec685cd9787abffe791458eb905beffec.png)

 ![DSC00062](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/8/89c57478148b31eb312afa70625223c1ab6098b0.png)

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 5, 2020, 10:42pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/2 "2020-09-05T22:42:30Z")

</div>

my progress so far i m confused with 12c component

 ![Untitled-1](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/7/7902a1615bd69979717a8647b362adac812f221b.png)  
[sfm3300.xodball](https://forum.xod.io/uploads/short-url/dUWQJ7RjnlwCis0diSb0TxCqpNT.xodball) (5.3 KB)

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [September 6, 2020, 9:56pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/3 "2020-09-06T21:56:26Z")

</div>

I’ve created a very basic node for the SFM3300 and similar devices (SFM3200 and SFM3400):  
[https://xod.io/libs/wayland/sfm3x00-flow-meter/](https://xod.io/libs/wayland/sfm3x00-flow-meter/)

However, I don’t have the hardware and so testing has been limited to checking that the example patch compiles.

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 9, 2020, 3:57am UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/4 "2020-09-09T03:57:49Z")

</div>

Dear wayland  
I send you all my respect and appreciation for helping us accomplish this work  
the sensor working properly

 ![WhatsApp Image 2020-09-09 at 05.41.57](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/9/96bb374949f617ee686115daff0973af5ae60604.jpeg)

do you have any ideas for soft reset and temperature readings from the sensor ?  
pleas see the original cod here with the offset value and and other parameters

[https://github.com/Nabilphysics/SensirionSFM3300FlowMeterOLED/commit/22ade899dda2a9a2f6de5495e65bfe9d9720907a](https://github.com/Nabilphysics/SensirionSFM3300FlowMeterOLED/commit/22ade899dda2a9a2f6de5495e65bfe9d9720907a)

 ![WhatsApp Image 2020-09-09 at 05.23.10](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/0/0c08735f5086f85595376df19ba70b273fc2c3f9.jpeg)  
float flow = ((float(result) - sensirion3300Offset) / scaleFactor)- flowErrorSLM;  
Serial.println(flow);

long int sensirion3300Offset = 32768; // Offset for Sensirion 3300 Flow Sensor  
float scaleFactor = 120.0; //For Air  
const float flowErrorSLM = 0.3;  
reference

> <https://github.com/Nabilphysics/SensirionSFM3300FlowMeterOLED/commit/22ade899dda2a9a2f6de5495e65bfe9d9720907a>

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 11, 2020, 10:04pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/5 "2020-09-11T22:04:02Z")

</div>

> [@fantasydoom](#):
>
> Dear wayland

did you receive my last replay ?  
thanks a lot for your help

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [September 11, 2020, 10:20pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/6 "2020-09-11T22:20:20Z")

</div>

Sorry it’s taken me a while to reply. The Arduino library I’ve wrapped doesn’t have methods for reading temperature or performing a soft reset. I’ll see if I can add these over the weekend. If I remember correctly, the device outputs its own temperature, which is not necessarily the same as the temperature of the gas flowing through it.

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 11, 2020, 11:33pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/7 "2020-09-11T23:33:53Z")

</div>

I am very grateful to you for the time you put into helping us with this project

can you please see this links

> <https://github.com/Nabilphysics/SensirionSFM3300FlowMeterOLED/commit/22ade899dda2a9a2f6de5495e65bfe9d9720907a>

  
its complete code for Arduino including temperature and equation process and sensor offset  
thanks a lot

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [September 12, 2020, 10:50pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/8 "2020-09-12T22:50:00Z")

</div>

I’ve just published an updated library (version 0.0.3) that may be able to perform soft reset and temperature measurements. As before, the only testing I’ve been able to do is check that the example patches compile.

Please try each of the example patches and let me know the results. I’ve labelled the temperature output as **T\_raw** , because I’m not sure what units we’re expecting. It’s important to note that the temperature of the sensor does not necessarily reflect the temperature of the gas flowing through the sensor (see [https://www.sensirion.com/fileadmin/user\_upload/customers/sensirion/Dokumente/5\_Mass\_Flow\_Meters/Sensirion\_Mass\_Flow\_Meters\_Application\_Note\_SFM3xxx.pdf](https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/5_Mass_Flow_Meters/Sensirion_Mass_Flow_Meters_Application_Note_SFM3xxx.pdf)).

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [September 12, 2020, 10:55pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/9 "2020-09-12T22:55:42Z")

</div>

I saw that some of the nodes were missing descriptions. Corrected in version 0.0.4.

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 12, 2020, 11:16pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/10 "2020-09-12T23:16:50Z")

</div>

WOOOW  
i cant Waite to test it and sharing results …god bless you wayland

 ![WhatsApp Image 2020-09-13 at 01.08.47](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/4/40c9e82c4c5e6e06237ee4f1e1551f74558467c3.jpeg)

I wish you all the best…you are a wonderful person  
thanks for XOD community and developers for creating this powerful IDE

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 13, 2020, 12:40am UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/11 "2020-09-13T00:40:39Z")

</div>

Dear wayland  
i have a question because something is not clear to me …do i need to process the out put (slm) with this equation ?

 ![WhatsApp Image 2020-09-09 at 05.23.10](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/0/0c08735f5086f85595376df19ba70b273fc2c3f9.jpeg)

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [September 13, 2020, 10:38am UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/12 "2020-09-13T10:38:34Z")

</div>

This conversion is performed by the underlying Arduino library ([https://github.com/PubInv/SFM3X00](https://github.com/PubInv/SFM3X00)).

If you want to see the details, take a look at this file:

> <https://github.com/PubInv/SFM3X00/blob/master/SFM3X00.cpp>

You will see that the offset and scale factor are read from the device using the methods **requestOffset** and **requestScaleFactor** respectively. The method **readFlow** calculates flow rate in slm using the formula you posted. I’ve created a new node **request-offset-scale-factor** which will report the offset and scale factor. If you want to check these values, run **example-read-offset-scale** in the debugger.

I noticed a warning in the compiler output related to one of the methods in the underlying Arduino library. I don’t know if this was a critical problem, but I’ve forked the Arduino library and fixed the problem ([https://github.com/WaylandM/MTW-SFM3X00](https://github.com/WaylandM/MTW-SFM3X00)).

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 13, 2020, 4:43pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/13 "2020-09-13T16:43:32Z")

</div>

thanks a lot for explanation …i will test the device and share results  
regards

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 18, 2020, 12:56am UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/14 "2020-09-18T00:56:53Z")

</div>

dear waylantd  
after testing all the examples i m getting this error

 ![WhatsApp Image 2020-09-18 at 02.44.28](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/d/dc933acf6bd13e9bf4df7502a573976effe81a2c.jpeg)  
 ![WhatsApp Image 2020-09-18 at 02.45.41](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/d/d4971755c9ab769c8152e110d13c3c85de07af06.jpeg)

 ![WhatsApp Image 2020-09-18 at 02.46.43](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/b/b1f3f9be296b21770f08880e823235f1845f5a45.jpeg)

thamks alot for your efforts

regards  
M.AaL

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 18, 2020, 12:58am UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/15 "2020-09-18T00:58:27Z")

</div>

[quote=“wayland, post:12, topic:4406”]

> **[WaylandM/MTW-SFM3X00](https://github.com/WaylandM/MTW-SFM3X00)**
>
> Lightweight Arduino library for Sensirion flow meters. - WaylandM/MTW-SFM3X00

  
[/quote]after instaling the [https://github.com/WaylandM/MTW-SFM3X00](https://github.com/WaylandM/MTW-SFM3X00)

---

<div class="post-metadata">

**Author:** ![gweimer](https://avatars.discourse-cdn.com/v4/letter/g/a9adbd/32.png) [@gweimer](https://forum.xod.io/u/gweimer)\
**Post date:** [September 18, 2020, 2:04am UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/16 "2020-09-18T02:04:48Z")

</div>

You need to scroll back in the compiler window to see what the actual compiler error is.

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [September 18, 2020, 8:30am UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/17 "2020-09-18T08:30:52Z")

</div>

Hi M.AaL,

Which board are you using? The code compiles for the Arduino Uno on my macbook. Are you running the latest version of the XOD IDE? Please let me know the details of the compiler error.

Thanks

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 18, 2020, 11:01am UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/18 "2020-09-18T11:01:59Z")

</div>

i m using Arduino DUE with ver 0.34

already show print screen is there other details to show compiler error please tell haw to

thanks a lot

---

<div class="post-metadata">

**Author:** ![wayland](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/wayland/32/1590_2.png) [@wayland](https://forum.xod.io/u/wayland)\
**Post date:** [September 18, 2020, 1:21pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/19 "2020-09-18T13:21:54Z")

</div>

You’ll need to upgrade to the latest version of the XOD IDE (0.35.1). I’ve used the new C++ syntax for clarity and brevity, but this is only supported in version 0.35.0 onwards. I’ve checked that the code will compile for the Due, but I don’t have a Due for testing.

For future reference, to see the full compiler output you have to scroll up (as mentioned by @gweimer). The screenshot you posted shows us only the last part of the compiler output telling us there was an error. The specific problem would have been highlighted earlier in the compiler output.

---

<div class="post-metadata">

**Author:** ![fantasydoom](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.xod.io/fantasydoom/32/3729_2.png) [@fantasydoom](https://forum.xod.io/u/fantasydoom)\
**Post date:** [September 18, 2020, 8:36pm UTC](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406/20 "2020-09-18T20:36:03Z")

</div>

thanks [wayland](https://forum.xod.io/u/wayland)[gweimer](https://forum.xod.io/u/gweimer)  
for the unlimited support

its works properly after update to the last ver

 ![1](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/f/fa8b6811c610483e953a84cea806518d613e156f.jpeg)  
 ![2](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/3/3398560433d574009f450076953ff1795189dc80.jpeg)  
i will keep you update about the development  
as i m new to xod can you help me with ideas to implement flow charts like this code sample and picture  
 ![WhatsApp Image 2020-09-18 at 22.31.38](https://canada1.discourse-cdn.com/flex027/uploads/xod/original/2X/5/5f592ebd49e8a8bbb109158251327156b19dadec.jpeg)  
i m still not familiar with if conditions and other basic code parameters  
any guide material or suggestion to read or study will be appreciated  
also i found library for pid controller i need to use it to control motor over pwm

[Next page](https://forum.xod.io/t/open-source-emergency-based-ventilator-sensor-integration/4406.md?page=2)
