AM2315 sensor requires a method that seems to be unavailable on BBB, but is on rPI

Going crazy trying to get a AM2315 I2C Hygrometer to work with my BBB. The datasheet Says that I have to wake up the sensor before using it. I have tried writing to it once, then waiting the 800us it wants. I then sent the write command to tell it to send me the 4 bytes required to calculate the temp and RH. Nothing is working right, played with the timing, tried several libs etc.

Out of desperation I searched more and found this explanation of the problem a user had with this sensor and a Raspberry PI.

on page 3 - “The AM2315 device requires a standard SMBus write function to request the data, but then simply writes the data response immediately on the i2c bus. It does not bother waiting for an SMBus formatted read request”

He decided to use a library called quick2wire that is not for the BBB - and he concluded this →

on page 4 - “So, why did the Quick2Wire library work and the SMBus library did not? Simple. The Quick2Wire library has a function that allows a direct read off the i2c bus without sending a command code (i2c.reading(AM2315_addr, no_bytes).”

Any suggestions on how I deal with this? I am working in c++ at the moment, but I will use anything will get it done.

The full article quoted above is here

Thanks in advance.

Unfortunately you might be out of luck. I’m not certain, but that sounds like a problem I had with a HIH6130 temperature sensor. I think the answer was basically you either need to bit-bang an I2C bus or do some kernel hacking to get the I2C bus to act appropriately. I wound up going with a different temperature sensor that worked without any hacking, since I wanted my project to work now, and not 6 months from now.

Here’s a link to the original discussion:

https://groups.google.com/forum/#!topic/beagleboard/lRWF8rADp0Y