Has anyone seen this before? onewire / ds18b20 returning nonsense numbers?

esp8266
gplus
(Gordon McLellan) #1

Has anyone seen this before? onewire / ds18b20 returning nonsense numbers? Not talking about the error-state numbers like -127 or 85, but just more or less random temperature numbers.

ESP-12e running at 3.3v, using GPIO5. Using Arduino IDE (1.6.7)

It used to work, but I was screwing around combining OTA update and the deepsleep command (bad combination). I think I corrupted something.

Same code, same ds18b on an ESP-01 works fine (using gpio0 for ow)

(Alexander Ribchansky) #2

Try gpio0 on esp12… Did you ds.begin() ??

(Gordon McLellan) #3

Thanks for the suggestions. I tried gp4 earlier, just tried gp0 now, no difference either way. begin() is the last call in setup(). It was missing, and I hoped it was that simple, but adding it made no difference. Gotta be something I’m missing…

Code is here, hope I’m overlooking something http://pastebin.com/CVqtrgMW

(Alexander Ribchansky) #4

Do you change this #define ONE_WIRE_BUS 0 to select different pin??

(Gordon McLellan) #5

Yes, changed the define and the hardware hookup for pins 5, 4 and 0… no change.

Its like there’s some sort of floating point math error, if thats possible? Here’s some of the readings from the code above

Temperature: 124.62
Temperature: 123.62
Temperature: -118.19
Temperature: -108.00
Temperature: -101.44
Temperature: 124.12
Temperature: -123.31
Temperature: 124.00

(Gordon McLellan) #6

Seems i’ve damaged (corrupted?) the esp-12 module somehow. I hooked up a nodemcu (another esp-12) and loaded the exact same code on it, and it works perfectly. Same connections, etc.

Going to look up how to re-flash the firmware and see if I can recover the faulty module.