The TinyTemp
Version 1
Description:
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.
Specifications:
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.
Configuration:
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
04:-01.54
... 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.
Technical:
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.