         // "count remain" gives full 12 bit resolution
         raw = (raw & 0xFFF0) + 12 - data[6];
       }
-      celsius = (float)raw * 0.0625;
+      *celsius = (float)raw * 0.0625;
       break;
     case 0:
       // at lower res, the low bits are undefined, so let's zero them

      if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
      if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
      // default is 12 bit resolution, 750 ms conversion time
      celsius = (float)raw * 0.0625;
      break;

    case 2:
      data[1] = (data[1] >> 3) & 0x1f;
      if (data[2] > 127) {
        celsius = (float)data[2] - ((float)data[1] * .03125);
      }else{
        celsius = (float)data[2] + ((float)data[1] * .03125);
      }
  }

  fahrenheitTemp = calcFahrenheitFromCelsius(celsius);//celsius * 1.8 + 32.0;
  Serial.print("Temp: ");
  Serial.print(celsius);
  Serial.print(" C, ");
  Serial.print(fahrenheitTemp);
  Serial.println(" F");

  // you could also communicate with other devices if you like but you would need
  // to already know their address to select them.

  delay(msConversionDelayInterval);     // maybe 750ms is enough, maybe not, wait 1 sec for conversion

  // we might do a ds.depower() (parasite) here, but the reset will take care of it.

