0

I recorded all the addresses of most of my ds18b20's with arduino, and they look different when plugged into Beaglebone Black running debian. Is there a way I can translate them to how they look on debian? I can't test them all since most are installed in my prototype..

arduino = '0x28, 0x9D, 0xB6, 0xAB, 0x05, 0x00, 0x00, 0x3E'

debian = '28-000005abb69d'

1 Answers1

1

It's just converting the address.

0x28 is the sensor type (Programmable Digital Thermometer).

0x3E is the 1-Wire check-sum (slightly different than a normal CRC8).

0x9D, 0xB6, 0xAB, 0x05, 0x00, 0x00 is the actual address in big-endian mode.

As a note, the raw address is typically formatted as [CRC][Serial][Family Code], so it's strange that your Arduino is presenting it in a flipped format [Family Code][Serial][CRC], but not flipping the value within the serial attribute.

BayssMekanique
  • 894
  • 1
  • 14
  • 27
  • I don't quite understand check sums. Are they constant? I thought they were individual sensor reading specific... – ihavequestions Feb 05 '16 at 23:02
  • The check-sum on the address is constant, but only because the address is constant. You still need to run a check-sum on the address after reading it to make sure there wasn't an issue with transmission, because in the real world you won't already know the address, so the only way to tell if it was transmitted correctly is to calculate the check-sum. If you include the check-sum value in the check-sum calculation, the value should come out 0. If any other value comes out, then you have an error and you should rerun the operation or search. – BayssMekanique Feb 08 '16 at 14:36