The 1-Wire protocol, as you know, requires deterministic timing. It is not possible to do deterministic timing on a computing platform like Edison, or even a PC. You might get somewhere close to it using usleep() but your app may get interrupted at any time, thereby messing up your timings.
What you need to do when using a system without deterministic timing of GPIO is attach the sensor using an interface. That interface should use a small micro which DOES have deterministic timing. (ie a Pic, ATTINY, etc).
- OR - Use an existing peripheral on your system which does have deterministic timing, such as a UART.
I wrote a blog-post some years ago on how you can use a UART to do 1-Wire protocol. You should be able to find it here: http://wphost.spider-e.com/?p=231
This message was posted on behalf of Intel Corporation
First, I want to say thanks to SpiderKenny, we really appreciate your help in the community. And Bart, I recommend you to try SpiderKenny’s suggestions, in case you need more information take a look at this thread created by SpiderKenny: https://communities.intel.com/thread/55975
I hope you consider this useful.