Newbie in need of a little help (DS18B20)
Newbie in need of a little help (DS18B20)
Hi
I am making my own Centralheating controller and so far everything is starting to play well together and i am starting to finetune it.
Main control is a ESP32 WROOM and my problem is a sensor bus wire to 12 DS18B20 temperature sensors.
Its working perfect for a day or two, then ALL sensors goes blank. Its not enough to reset the esp, but if i disconnect the power for a short time all sensors are back and working perfect.
Any idea what´s happening and possible how to avoid it?
Its pretty crucial to my control that i dont loose readings for too long time.
thanx in advance
I am making my own Centralheating controller and so far everything is starting to play well together and i am starting to finetune it.
Main control is a ESP32 WROOM and my problem is a sensor bus wire to 12 DS18B20 temperature sensors.
Its working perfect for a day or two, then ALL sensors goes blank. Its not enough to reset the esp, but if i disconnect the power for a short time all sensors are back and working perfect.
Any idea what´s happening and possible how to avoid it?
Its pretty crucial to my control that i dont loose readings for too long time.
thanx in advance
Re: Newbie in need of a little help (DS18B20)
HI!
Exactly the same as what I've observed. And I've tried several different sketches with various different ESP32 versions (also ESP8266).
And with sensors connected to one-wire and I2C bus.
Sketch keeps running for a few days then freezes.
Something broken in the ESP Arduino implementation perhaps?
Exactly the same as what I've observed. And I've tried several different sketches with various different ESP32 versions (also ESP8266).
And with sensors connected to one-wire and I2C bus.
Sketch keeps running for a few days then freezes.
Something broken in the ESP Arduino implementation perhaps?
Re: Newbie in need of a little help (DS18B20)
A power supply problem? Are you using parasitic power? Feeding all that sensors from a ESP32 pin?
I use 3 DS18B20 sensors in a project, fed by dedicated power, and they keep running, well forever.
I use 3 DS18B20 sensors in a project, fed by dedicated power, and they keep running, well forever.
Blank means what exactly?... then ALL sensors goes blank.
Re: Newbie in need of a little help (DS18B20)
Hi i am not using parasitic power, but they are powered by the same esp pin. I will try to power from external power.
When it goes blank means virtuino goes blank (out of range maybe), but the esp is reading it as a lower value... all my heating circuits went full open at the time.
I will try the external power thanx
When it goes blank means virtuino goes blank (out of range maybe), but the esp is reading it as a lower value... all my heating circuits went full open at the time.
I will try the external power thanx
Re: Newbie in need of a little help (DS18B20)
rnyqvist:
Yes i have seen a lot of i2c problems on the interweb.
I did consider putting on a i2c io expander and a RTC also on i2c.
I might end up using a thrusty old arduino mega and only use the esp32 as a wifi module.
Some projects as my current one requires reliability.
Yes i have seen a lot of i2c problems on the interweb.
I did consider putting on a i2c io expander and a RTC also on i2c.
I might end up using a thrusty old arduino mega and only use the esp32 as a wifi module.
Some projects as my current one requires reliability.
-
- Posts: 151
- Joined: Thu Jun 15, 2017 4:54 am
- Location: New Zealand
Re: Newbie in need of a little help (DS18B20)
Just in case it's not clear, the DS18B20 is not an I2C device, it's a Maxim "One Wire Bus" device.1979kent wrote:Yes i have seen a lot of i2c problems on the interweb.
I did consider putting on a i2c io expander and a RTC also on i2c.
I might end up using a thrusty old arduino mega and only use the esp32 as a wifi module.
Some projects as my current one requires reliability.
Also, a recent commit to the ESP-IDF master fixes the main I2C error that some people, including myself, were complaining about. I think this was related to some prior fixes in the Arduino code base, so I'd expect it to be fixed there already, or if not, soon.
To the OP, I don't know much about DS18B20 support with ESP32 Arduino, but if you want to try a reliable and proven C implementation for one or more DS18B20 devices on the ESP32, to at least prove your board and the devices work, you could try my example and library:
https://github.com/DavidAntliff/esp32-ds18b20-example
You'll need ESP-IDF v3.0rc1 (v2.1.1 works too, but you'll need to check out the 2.1.1 branch). Just hook up an appropriate resistor and configure the pin to use with 'make menuconfig'. Note that it doesn't officially support parasitic power mode - it's not something I've explicitly tested, although it might work out-of-the-box with a single device.
Re: Newbie in need of a little help (DS18B20)
To be fair, there were some OneWire issues some time ago.
I am using DS18B20 sensors for some of my projects for the last years and the issue mainly was that 'some' transactions went 'bad' as in the checksum was not valid. These transactions ( I had a rate of about 1 in 50 transactions going bad, depending on the particular code ) could be filtered from the stream quite easy.
I did not have any catastrophic ( eg. have to reboot, like the op ) failures, just the occasional weird value with a bad checksum.
These issues were solved initially by stickbreaker in his OneWire repo and are now incorporated in the Arduino OneWire library.
I DID have catastrophic failures during the hardware R&D phase using parasitic power. Using 5 or 6 sensors on a pin would be very unstable.
12 sensors feeding from a ESP32 pin is way too much.
From the DS18B20 datasheet:
All sensors will start start to draw current at the same time from the ESP32 pin.
12 times 1.5 is 18mA which is way too much...
12mA is the maximum current you can pull from a single ESP32 pin, but I would like to stay significantly below that.
I am using DS18B20 sensors for some of my projects for the last years and the issue mainly was that 'some' transactions went 'bad' as in the checksum was not valid. These transactions ( I had a rate of about 1 in 50 transactions going bad, depending on the particular code ) could be filtered from the stream quite easy.
I did not have any catastrophic ( eg. have to reboot, like the op ) failures, just the occasional weird value with a bad checksum.
These issues were solved initially by stickbreaker in his OneWire repo and are now incorporated in the Arduino OneWire library.
I DID have catastrophic failures during the hardware R&D phase using parasitic power. Using 5 or 6 sensors on a pin would be very unstable.
12 sensors feeding from a ESP32 pin is way too much.
From the DS18B20 datasheet:
Assuming this code:...However, when the DS18B20-PAR is performing temperature conversions or copying data from the
scratchpad memory to EEPROM, the operating current can be as high as 1.5 mA.
Code: Select all
ds.reset();
ds.write( 0xCC, 1); /* Skip ROM - All sensors */
ds.write( 0x44, 1); /* start conversion, with parasite power on at the end */
12 times 1.5 is 18mA which is way too much...
12mA is the maximum current you can pull from a single ESP32 pin, but I would like to stay significantly below that.
Re: Newbie in need of a little help (DS18B20)
Hi again
i have been running a seperate psu on the sensors ever sinces suggested and so far so god
I will find a i2c device in my box of "nice to have stuff" to see if its stable with that, because i need some extra io´s and to my knowlegde the easiest way is a i2c expander??
thanx for the responses really helpful!!
i have been running a seperate psu on the sensors ever sinces suggested and so far so god
I will find a i2c device in my box of "nice to have stuff" to see if its stable with that, because i need some extra io´s and to my knowlegde the easiest way is a i2c expander??
thanx for the responses really helpful!!
Re: Newbie in need of a little help (DS18B20)
You can have the sensors do their conversions one at a timeCellie wrote:
All sensors will start start to draw current at the same time from the ESP32 pin.
12 times 1.5 is 18mA which is way too much...
12mA is the maximum current you can pull from a single ESP32 pin, but I would like to stay significantly below that.
Re: Newbie in need of a little help (DS18B20)
Yes, that is of course a possibility.You can have the sensors do their conversions one at a time
I did not mention that as it adds to code complexity and you still need a free pin to feed your sensors.
Who is online
Users browsing this forum: No registered users and 97 guests