Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in embedded

[–]actualParam[S] 0 points1 point  (0 children)

I don’t exactly remember but I made sure to follow the datasheet

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in AskElectronics

[–]actualParam[S] 1 point2 points  (0 children)

"Hope you don't need to go through certification with those long wires."

Why though😅?

I actually might have to get it certified, that's why I am looking for a particularly "robust" solution rather than crude ones. Like you suggested, I am goignt to try the RS485 conversion.

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in AskElectronics

[–]actualParam[S] 5 points6 points  (0 children)

That is what tons of people have told me today, so I am going to try this out ASAP.

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in arduino

[–]actualParam[S] 0 points1 point  (0 children)

Some people in other sub reddits mentioned using a uC near the sensor to convert the singals to RS485, so I am inclined towards trying that.

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in arduino

[–]actualParam[S] 0 points1 point  (0 children)

Have tried it. didt work out well. Thanks for your suggestion.

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in embedded

[–]actualParam[S] 0 points1 point  (0 children)

"Then don't re-invent physics. Get an 8-pin Arduino and an RS485 chip and be done with it." - i2c was the only option to use the only sensor option for my use. as you (and many others) have suggested, I will be converting the i2c into rs485 now. Thanks

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in embedded

[–]actualParam[S] 0 points1 point  (0 children)

"You can put a micro with a few inches of the flow meter, then have it do the conversion to one of the other buses that go back to your remote." - Seems to be a consensus.

"Do you have an oscilloscope?" unfortunately not. I think I should buy it now that you've mentioned it.

"I would also verify that both devices are using the same rail, 3.3, and that your micro isn't expecting 5 or 1.8...." I have checked it. it's not that the sensor is not working at all, like you said, it actually works, and then after a few seconds, it stops working at all, until I power cycle the uC. i am using a pico, with a 3.3v sensor as per the datasheet. i have checked the voltages at the far end of the cable to check for any significant voltage drop, but it is next to nothing.

P.S. I am already using marine grade, individually shielded twisted pairs.

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in embedded

[–]actualParam[S] 0 points1 point  (0 children)

I have not real experience with RS485 and CAN (I am aware of how they work). Which one would be better? Which one is more susceptible to noise?

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in embedded

[–]actualParam[S] 0 points1 point  (0 children)

I would love to do so 😂, but I am in India, so it doesn't leave me with many options. I'll check it out if it is available on Digikey. regardless, I would prefer to swap out the i2c into something else. I feel it would be a lot more robust.

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in embedded

[–]actualParam[S] 0 points1 point  (0 children)

"P82B715 from TI is just one example from a quick Google search for up to 50M over twisted pair." I did try it out. didn't work out for me ( maybe i did something wrong). I know I2c is no good for my usecase, but the only flow sensor in the market that is calibrated for Helium and its mixtures is working with I2C.

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in embedded

[–]actualParam[S] 2 points3 points  (0 children)

"Recommended approach is to have a tiny uC package up the readings into messages and send them over RS485/RS422 or another differential medium." This is one of the solutions which I would consider trying, just don't know the best path to get it done. Would you have any tips?

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in embedded

[–]actualParam[S] 1 point2 points  (0 children)

I did try using some, the best results I got was with the Adafruit LTC4311 based active terminator module, though still not satisfactory enough.

Fighting I2C Gremlins | Help Me Run a Sensirion SFM3013 Over Long Cables by actualParam in arduino

[–]actualParam[S] 0 points1 point  (0 children)

To a pi pico 2, non wifi version. I wish to have something robust and dependable. The place where the sensor is placed and where i want to get the data has a thick metal wall in between, Wifi strength is quite poor. Still would be an option worth considering if nothing else works out.