The TinyTemp


Version 1


The TinyTemp is a very compact, inexpensive and power-efficient temperature acquisition system developed at La Silla. In its present version it supports 16 Dallas DS18S20 sensors on a single 3-wire bus, and delivers the information at a rate of one update per second on a standard serial interface. Each sensor comes from the factory programmed with a unique address. The TinyTemp controller communicates with the sensors over a single serial data line, identifying the sensors by their addresses.


Temperature range:             -10 to +85 degrees Celsius at rated accuracy
Resolution:                          1/16th degree Celsius
Accuracy                            0.5 degrees guaranteed, 0.2 degrees typical, no calibration required
Sensor shape:                      TO-92 casing
Amount of sensors:              16, but could be increased to about 100 by software modification
Amount of sensor buses:      1, but can be increased to 16 by adding one connector and one resistor per bus, and modifying the software
Output standard:                  2-line RS-232 compatible
Output parameters:              4800 baud, 8 data bits, 1 stop bit, no parity
Output format:                     Compatible with the QuaT system used at NTT. See sample at end of this document.
Power supply:                      5 Volt, 60mA peak,  provided by wall transformer
Configuration:                      Over serial port, stored in EEROM
Software updating:               Over serial port, no need to open case. Operational software stored in EEROM.
Parts cost:                            Roughly DM 450 for one TinyTemp with power supply and 16 sensors.
                                           Add costs for sensor mounts and wiring.


Connect an RS-232 terminal to the serial port, configured for 4800 baud, 8 data bits, one stop bit, no parity. The TinyTemp serial connector is a DB-9 wired as DCE, so it transmits on pin 2, receives on pin 3, while pin 5 is ground. Use a 3-line cable for this connection, or at least make sure that pin 4 is left unconnected. This pin is used to put the TinyTemp into software load mode, so connecting a signal here may result in erasing the EEROM!

When the TinyTemp is powered up, it displays a short notice inviting the user to press the "s" key (lowercase always) to enter setup mode. If no "s" is sent within 3 seconds, the TinyTemp will enter normal data acquisition mode.

After entering setup mode, the TinyTemp allows to press "x" to exit into data acquisition mode, or  "i" for identifying sensors. In this latter mode, the TinyTemp will ask the user to connect one sensor (only one!) to the bus, and then enter the sensor number. The sensor must be connected as shown in this photo, that is, aligning the TO-92 case with the plastic half cylinder in the LEMO connector. Then the user enters the desired sensor number, from 0 to f in a single hexadecimal digit, and the TinyTemp will then read out the sensor ROM address, program it into EEROM, and let the user know the address read. After this operation, the user can choose between programming another sensor, or starting data acquisition mode.

Output format:

For QuaT compatibility, the format is the following: The TinyTemp sends the sensor number in two digits (01 to 16), followed by a ":", and the temperature value expressed as sign (- or space), two digits for the integer, decimal point, and two digits for the fractional part. This is followed by a carriage return character (13), and the next sensor follows. The last sensor is followed by a CTRL-R character (30) instead of the carriage return. The entire sequence repeats roughly once per second.

This is how the output looks on a typical terminal configured for automatic line feeding:

01: 23.14
02: 19.78
03: 05.59

... and so on until

16: 14.23

followed by a small triangle. Due to the lack of a CR after this, the line for sensor 01 of the next packet will be appended to this line.

If another format is desired by an user, that can easily be implemented, but would no longer be compatible with the NTT.

Sensor bus wiring:

The sensor bus is connected to the LEMO 1-5 connector. Only pins 1, 2 and 3 are used: Pin 1 is +5V, pin 2 is the data line, and pin 3 is
ground. The sensors must be connected in the same order as when looking into the connector: When you can read the sensor lettering, right pin is +5V, middle one is the data line, left one is ground. The bus cable should be unshielded twisted line.


Here is the schematic diagram of the controller. Click on the image for a larger version for printing.  As you can see, the complexity of the circuit is not such as to shock anyone!
Almost everything is done inside the Basic Stamp.

Here is the software that goes into the Basic Stamp, and here is the program you need to modify, compile and/or download it. Here are links to the relevant information about the temperature sensors, and the microcontroller used in this system. If you need to download a program into the TinyTemp, you need a full RS-232 cable (pins 2, 3, 4, 5, 6, 7 are required) and a PC.


Possible improvements:

If necessary, a programmable offset value for each sensor could be included. This would bring the accuracy into the 0.1 degree range after calibration. An option to manually enter sensor addresses could be added. The output format can be adapted to user requirements. Other sensor types, like relative humidity, can be supported. The amount of sensors can be dramatically increased, and the amount of independent sensor buses too.  The TinyTemp can also be built into a bigger box, for those users who don't trust such a little thing!

Any comments, questions, requests and ideas should be addressed to Manfred Mornhinweg.

 [Observing Facilities and Operations]  [La Silla Home Page]  [ESO]  [Index]  [Search]  [Help]  [News]