SDK 4.2 OneWire Source Code

Hello everyone.

I have checked on Codeplex but was unable to find the FindAllDevices method of the OneWire class on codeplex. I would like to be sure that FindAllDevices wait enough before returning results. In my onewire network sometimes I have devices that are not responding and this could be a reason.

@ leforban - Check
\Framework\Core\Native_Hardware\Native_OneWire\Core_Native_Hardware_OneWire.cs

It is there

Ok thanks I was not reading at the good place.

According to the srce code the method is blocking.
While there’s next device on the network it fills the array. There’s no timeout. So the troubles I am facing is probably due to a bad network (long stubs…)

@ leforban

Use a onewire master chip like the ds2484, its much more reliable.

With the strong pull up and pull down the communication on the bus is much better.

Two late for adding such a chip. i2c is not routed on the board. Can you quantify the much more reliability of such device compared to GHI modules?

@ leforban - Software I2C on other pins, perhaps?

No I’am sorry, I havn’t made any statistic.

But the GHI Onewire Module is spimply a pullup of 4.7k on the dataline.

So if you have long wires you have more capacity then on short ones. So if you have a large network you need a strong pulldown and pullup, so that the edges can change fast.

In my setup I have 11 ds18b20 sensors, the length of the wires differ from 1 meter to 50meters.

Without the master I had problem’s, as you descriped the FindAllDevices Method doesn’t worked. Sometimes I got the wrong data, crc error and so on.

With the DS2484 ow master, it worked without any problem. Also I hadn’t to add a 100-150ohm resistance in series of each sensor.

INTERESTING!!! Maybe for the next board release

Yeah, you should test it, you get the DS2484 from dallas as sample for free.