Does not work as is for ESP8266
Hi,
I spent some time on your library this weekend. I was using it for some time with my moteinos (and without any problem).
But I saw that it does not seem to work as is on any of my ESP8266 (Wemos, Nodemcu v1.0, bare ESP12) all working at 80MHz. I found out that there was two problems :
- Missing delay between begin and end transmission on the constructor (https://github.com/LowPowerLab/SI7021/blob/master/SI7021.cpp#L42). This one was the worst to find and it completely killed your lib.
- I also had to use a higher delay here
The higher delay is strange as the datasheet (page 5) mention a worst case conversion time of 12ms. I've used 85ms everywhere and it worked fine but I guess it can be lowered.
I'll probably do a PR about that, once I'm sure that my sensor is working fine for a full week.
Another modification I made was to add CRC check of RH and Temp (Page 17 of the datasheet). Are you also interested by that (as a PR) ?
Thanks a lot for your work (and also for the moteinos)
Hi, thanks for the suggestions. If you submit a PR for the timings I can merge those. Also, I would expect these to be wrapped in ESP8266 preprocessor checks, so they won't influence AVRs. The CRC check should be a separate PR if you'd like to submit that also. Thanks again!
I'll do the timings PR as soon as I'm sure it's rock solid, so next weekend hopefully (don't worry they will be properly enclosed like there).
About the CRC, for the last year I had 3 moteinos with SI7021 doing temperature / humidity reading every 15 minutes (so more than 200 000 CRC checks) and I never had a single error on normal conditions (I had some CRC problems when the battery was really low but then even using RF was dodgy). So I don't know if that's really usefull but I kept it just in case (tm).
Thanks, RE the CRC, i never heard of a problem from anyone so I'm not very concerned with that.