Library for TSIC digital Temperature Sensor Type 206/306 and similar

The Tsic digital Temperature Sensor use the ZACwire™ Communication Protocol™.

There is a similar Protocol (OneWire from Texas Instruments) which is used by the DS18B20 from Maxim for example. This Library won't work for Tscic Sensors!

Manufacturer: IST AG, Hygrosens, ZMD

written by: Rolf Wagner
Date: update 2014.03.09

Temperature-sensor uses 2 Pins, one for VCC and the second for Signal (= ZACwire Protocol). With call of the Function ".....getTemperture();" the Senor will get power measure and will be turned OFF. In that case it uses only energy while measuring. There is another method with Interrupts, measuring at an constant rate, which is not implemented jet.

Here is the Library, put it in the "libraries" Folder
Version 2 from 2014.03.09

Version 2 Improvements

  • Arduino 1.0 and above compatible
  • corrected offset (about +2°C)
  • code run time optimization
  • no freezing of system in case sensor gets unplugged
  • measure strobetime instead of constant waiting time (-> high temperature stable)
  • code cleanup
  • space optimization, now only 239 byte

Note: You should not call getTemperture() in every loop, because it will slow down the program dramatically

Addition: 21.06.2012

There is a cleaned up version of the library available at:

Addition Nick van de Giesen 25.09.10:

If you are using the TSic506 you need a different conversion, which is included in: . This addition also makes use of the higher accuracy of the TSic506, with apologies for the primitive handling of the integer/float conversion.

Addition: Dr. Volker Tries 31.03.2012:

"WProgram.h" is superseded by "Arduino.h" since Arduino 1.0. In order to continue using this TSic code (tsic.h and tsic.cpp) with Arduino 1.0 and therefore avoiding error messages in compiling the tsic files, you have to change the include statement from "WProgram.h" to "Arduino.h" in both, tsic.h and tsic.cpp included in

old, will not work on Arduino 1.0 and newer:

  1. include "WProgram.h"

must be changed to:

  1. include "Arduino.h"

Maybe this information can be passed to the author.