Hi, Well...I've been reading the datasheets a couple of time before sending this mail. I must say that it hasn't made me any wiser. My DS18S20 is used with +5, Gnd and signal so it should not be a need for a strong pullup. And as I can read the ROM ID I know it's connected correct. This is my code for reading the temp. In this code I tried with pullup also. As before all chars from DS2480B is read by the interrupt routine. Have I missed something or should have done it some other way? putc(0x39); // pullup dur. 524ms putc(0xC1); // Reset putc(0xE1); // Data mode putc(0x55); // Match ROM putc(0x28); // ROM ID 0 putc(0x53); // ROM ID 1 putc(0x57); // ROM ID 2 putc(0x2C); // ROM ID 3 putc(0x00); // ROM ID 4 putc(0x00); // ROM ID 5 putc(0x00); // ROM ID 6 putc(0xCF); // ROM ID 7 putc(0xE3); // Set command mode putc(0xEF); // Arm pullup putc(0xF1); // Terminate puls putc(0xE1); // Set data mode putc(0x44); // Convert temperature delay_ms(1500); // Allow conversion to finish putc(0xE3); // Command mode putc(0xED); // Disarm pullup putc(0xF1); // Terminate pulse putc(0xC1); // Reset delay_ms(100); // Just a delay before next step putc(0xC1); // Reset putc(0xE1); // Data mode putc(0x55); // Match ROM putc(0x28); // ROM ID 0 putc(0x53); // ROM ID 1 putc(0x57); // ROM ID 2 putc(0x2C); // ROM ID 3 putc(0x00); // ROM ID 4 putc(0x00); // ROM ID 5 putc(0x00); // ROM ID 6 putc(0xCF); // ROM ID 7 putc(0xBE); // Read scratch pad putc(0xFF); // Read byte 0 putc(0xFF); // Read byte 1 putc(0xFF); // Read byte 2 putc(0xFF); // Read byte 3 putc(0xFF); // Read byte 4 putc(0xFF); // Read byte 5 putc(0xFF); // Read byte 6 putc(0xFF); // Read byte 7 putc(0xFF); // Read byte 8 putc(0xE3); // Command mode putc(0xC1); // Reset Well...panick is close... Any help and ideas or corrections is VERY VERY much appreciated. Best regards Johan Fredriksson JPF Consulting -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.