I got a batch of DS18B20 one-wire temperature sensors from another supplier that seem to convert 12 bits of temperature much more quickly than previously… Your write up for your product SEN-00245 says “This is the latest DS18B20 1-Wire digital temperature sensor from Maxim IC” What is that dated? Do you know if they’ve issued a faster design? They only give max time conversions not typical in the specs…
Hi RSanger.
The description for those was written when we first posted this product in 2007 and at the time it was “the latest” we had.
I don’t believe the manufacturer has changed the part at all since then, but there is another manufacturer making a replacement for the DS18B20 called the [MAX31820. Don’t know if it’s any ‘faster’ than the DS18B20 or not, you’d need to check the data sheet or test them to see how fast they respond.
How fast do you need to make a measurement? if speed is important, an [analog or [I2C sensor might be better for you, but you’re limited in how many you can connect and how long the wire can be that they connect too.](https://www.sparkfun.com/products/13314)](Temperature Sensor - TMP36 - SEN-10988 - SparkFun Electronics)](https://www.sparkfun.com/products/14049)
RSanger,
A few years ago, I wrote some code to label (yes, there’s a 2-char internal label field) and time the DS18B20’s. You can find it here: https://github.com/hdtodd/DS18
I use the DS18B20’s on my Uno-based weather probe, one “IN” and one “OU” (inside and outside temps). They’re probably 3 years old by now.
My DS18B20’s are currently connected to my Uno for data collection, not to my SAMD21’s for testing, but if you want to try out my programs for 9-, 10-, 11-, and 12-bit sample read time on your new probes, I’ll go check mine when I can disrupt them and tell you what my times are.
David
I had a convenient breaking point as my weather station WiFi dongle died, so I ran my DS18B20 characterization.
This is running on an Arduino Uno connected to a Pi-2B, though the timing probably doesn’t depend on the speed of either device.
Timings depend on number of bits in the conversion, so I do 9-,10-, 11-, and 12-bit conversions.
Libraries used are identified in the program header:
// OneWire DS18S20, DS18B20, DS1822 Temperature Example
//
// http://www.pjrc.com/teensy/td_libs_OneWire.html
//
// The DallasTemperature library can do all this work for you!
// http://milesburton.com/Dallas_Temperatu … ol_Library
The program runs in a continual scan of the OneWire buss to find DS18B20’s and time them. Here’s one scan.
NEXT SCAN
ROM = 28 98 8D 5C 06 00 00 32 Chip = DS18B20
Sensor ID: ‘IN’ Data = 40 01 49 4E 1F FF 10 10 DD CRC=DD Conv delay loop 71 Conv time(ms) = 78 Temperature = 20.00C = 68.00F
Sensor ID: ‘IN’ Data = 44 01 49 4E 3F FF 0C 10 19 CRC=19 Conv delay loop 141 Conv time(ms) = 153 Temperature = 20.25C = 68.45F
Sensor ID: ‘IN’ Data = 46 01 49 4E 5F FF 0A 10 A5 CRC=A5 Conv delay loop 280 Conv time(ms) = 302 Temperature = 20.37C = 68.68F
Sensor ID: ‘IN’ Data = 45 01 49 4E 7F FF 0B 10 D4 CRC=D4 Conv delay loop 560 Conv time(ms) = 603 Temperature = 20.31C = 68.56F
ROM = 28 03 AC 5C 06 00 00 4E Chip = DS18B20
Sensor ID: ‘OU’ Data = 58 00 4F 55 1F FF 08 10 BA CRC=BA Conv delay loop 70 Conv time(ms) = 75 Temperature = 5.50C = 41.90F
Sensor ID: ‘OU’ Data = 58 00 4F 55 3F FF 08 10 CA CRC=CA Conv delay loop 140 Conv time(ms) = 150 Temperature = 5.50C = 41.90F
Sensor ID: ‘OU’ Data = 5A 00 4F 55 5F FF 06 10 00 CRC=00 Conv delay loop 278 Conv time(ms) = 300 Temperature = 5.63C = 42.13F
Sensor ID: ‘OU’ Data = 59 00 4F 55 7F FF 07 10 71 CRC=71 Conv delay loop 556 Conv time(ms) = 599 Temperature = 5.56C = 42.01F