DS1921-Thermochron(3) One-Wire File System DS1921-Thermochron(3)

# [NAME](#NAME)

**DS1921** - Thermochron temperature logging iButton.

# [SYNOPSIS](#SYNOPSIS)

Temperature logging iButton.

**21** \[.]XXXXXXXXXXXX\[XX][/[  
**about/\[measuring| resolution| samples| templow| temphigh| version]** |  
**clock/\[date| running| udate]** |  
**histotgram/\[counts\[0-62|ALL]| gap| temperature\[counts\[0-62|ALL]]** |  
**log\[date\[0-2047|ALL]| elements| temperature\[0-2047|ALL]| udate\[0-2047|ALL]]** |  
**memory** |  
**mission/\[date| delay| easystart| frequency| rollover| running| samples| sampling| udate]** |  
**overtemp/\[date\[0-11|ALL]| elements| end\[0-11|ALL]| count\[0-11|ALL]| temperature\[0-11|ALL]| udate\[0-11|ALL]]** |  
**pages/page.\[0-15|ALL]** |  
**temperature** |  
**undertemp/\[date\[0-11|ALL]| elements|end\[0-11|ALL]| count\[0-11|ALL]| temperature\[0-11|ALL]| udate\[0-11|ALL]]** |

See the file man3/standard\_mini.3so.

]]

# [FAMILY CODE](#FAMILY_CODE)

*21*

# [SPECIAL PROPERTIES](#SPECIAL_PROPERTIES)

## [about/measuring](#about/measuring)

*read-only, yes-no*  
Is this *DS1921* currently *measuring* a temperature?

## [about/resolution](#about/resolution)

*read-only, floating point*  
What is the *resolution* of the temperature measurments (in the current temperature scale).

## [about/samples](#about/samples)

*read-only, unsigned integer*  
How many total temperature measurements has this *DS1921* performed?

## [about/temphigh](#about/temphigh)

*read-only, floating point*  
Highest temperature this *DS1921* can measure (in the current temperature scale).

## [about/templow](#about/templow)

*read-only, floating point*  
Lowest temperature this *DS1921* can measure (in the current temperature scale).

## [about/version](#about/version)

*read-only, ascii*  
Specific *version* of this *DS1921.*

## [clock/date](#clock/date)

*read-write, ascii*  
26 character date representation of the internal time stored in this *DS1921.* Increments once per second while *clock/running*  
Setting *date* to a null string will put the current system time.  
Accepted date formats are:  
Sat\[urday] March 12 12:23:59 2001  
Apr\[il] 4 9:34:56 2002  
3/23/04 23:34:57  
current locale setting (your system's format)

## [clock/running](#clock/running)

*read-write, yes-no*  
Whether the internal clock is running. This can be explicitly set, and is automatically started by setting *clock/date* or *clock/udate* or by starting a mission with *mission/easystart* or *mission/frequency*

The main reason to stop the clock is to conserve the internal battery. The clock cannot be stopped during a mission, and the clock is essential for a mission.

## [clock/udate](#clock/udate)

*read-write, unsigned integer*  
A numeric representation of *clock/date*  
The number of seconds in UNIX time (since Jan 1, 1970).

## [histogram/counts.0 ... histogram/counts.62 histogram/counts.ALL](#histogram/counts.0_..._histogram/counts.62_histogram/counts.ALL)

*read-only, unsigned integer*  
The number of samples in the current mission whose temperature fell within the *histogram/temperature* to *histogram/temperature+histogram/gap* range.

## [histogram/elements](#histogram/elements)

*read-only, unsigned integer*  
The number of bins in the histogram. Always 63.

## [histogram/gap](#histogram/gap)

*read-only, floating point*  
The size of the histogram bin. Depends on the Thermochron version ( *about/version* ) and is usually 4 times *about/resolution*

Given in the current temperatature scale.

## [histogram/temperature.0 ... histogram/temperature.62 histogram/temperature.ALL](#histogram/temperature.0_..._histogram/temperature.62_histogram/temperature.ALL)

*read-only, floating point*  
Lower limit of the temperature range for the corresponding histogram bin. In the current temperature scale.

## [log/date.0 ... log/date.2047 log/date.ALL](#log/date.0_..._log/date.2047_log/date.ALL)

*read-only, ascii*  
Date that the corresponding *log/temperature* was taken, in ascii format. (See *clock/date* for more on the format). The number of valid entries is actually *log/elements* since the log may not be full.

*mission/samples* gives the total number of samples that have been taken but there is only room in the log for 2048 entries. Once the log is full, *mission/rollover* determines the Thermochron's behavior.

If *mission/rollover* is false(0), the log will hold the **first** 2048 samples and *log/date.0* will always be the same as *mission/date*

If *mission/rollover* is [true (1)](/man/os/owfs/true.1) then the log will hold the **last** 2048 samples and the entries will be shifted down with each new sample.

Note the *OWFS* code "untwists" the rollover behavior. The data will always be a linear array of earliest to latest.

*ALL* is the all data elements comma separated.

## [log/elements](#log/elements)

*read-only, unsigned integer*  
Number of valid entries in the log. *OWFS* offers the full 2048 values in the log memory, but not that many samples may yet have been taken. *log/elements* will range from 0 to 2048 and always be less than or equal to *mission/samples*

## [log/temperature.0 ... log/temperature.2047 log/temperature.ALL](#log/temperature.0_..._log/temperature.2047_log/temperature.ALL)

*read-write, floating point*  
The temperature readings (in the current temperature scale) that correspond to the *log/date* sample. See *log/date* for details on the indexing scheme and rollover behavior.

## [log/udate.0 ... log/udate.2047 log/udate.ALL](#log/udate.0_..._log/udate.2047_log/udate.ALL)

*read-write, unsigned integer*  
A numeric representation of *log/date*  
The number of seconds in UNIX time (since Jan 1, 1970).

## [memory](#memory)

*read-write, binary*  
User available storage space. 512 bytes. Can also be accessed as 16 pages of 32 bytes with the *pages/page.x* properties.

## [overtemp/count.0 ... overtemp/count.11 overtemp/count.ALL](#overtemp/count.0_..._overtemp/count.11_overtemp/count.ALL)

## [undertemp/count.0 ... undertemp/count.11 undertemp/count.ALL](#undertemp/count.0_..._undertemp/count.11_undertemp/count.ALL)

*read-only, unsigned integer*  
Number of sampling periods that the Thermochron stayed out of range during a mission. Each sampling period is *mission/frequency* minutes long.

## [overtemp/end.0 ... overtemp/end.11 overtemp/end.ALL](#overtemp/end.0_..._overtemp/end.11_overtemp/end.ALL)

## [undertemp/end.0 ... undertemp/end.11 undertemp/end.ALL](#undertemp/end.0_..._undertemp/end.11_undertemp/end.ALL)

*read-only, ascii*  
End of time that the Thermochron went out of range during the current mission. See *clock/date* for format.

Each period can be up to 255 samples in length, and span the time *overtemp/date* to *overtemp/end* ( or *undertemp/date* to *undertemp/end* ).

## [overtemp/date.0 ... overtemp/date.11 overtemp/date.ALL](#overtemp/date.0_..._overtemp/date.11_overtemp/date.ALL)

## [undertemp/date.0 ... undertemp/date.11 undertemp/date.ALL](#undertemp/date.0_..._undertemp/date.11_undertemp/date.ALL)

*read-only, ascii*  
Time that the Thermochron went out of range during the current mission. See *clock/date* for format.

## [overtemp/elements](#overtemp/elements)

## [undertemp/elements](#undertemp/elements)

*read-only, unsigned integer*  
Number of entries (0 to 12) in the *overtemp* or *undertemp* array.

## [overtemp/temperature](#overtemp/temperature)

## [undertemp/temperature](#undertemp/temperature)

*read-write, floating point*  
Temperature limit to trigger alarm and error log. *overtemp/temperature* gives upper limit and *undertemp/temperature* gives lower limit.  
In current temperature scale.

## [overtemp/udate.0 ... overtemp/udate.11 overtemp/udate.ALL](#overtemp/udate.0_..._overtemp/udate.11_overtemp/udate.ALL)

## [undertemp/udate.0 ... undertemp/udate.11 undertemp/udate.ALL](#undertemp/udate.0_..._undertemp/udate.11_undertemp/udate.ALL)

*read-only, unsigned integer*  
A numeric representation of *overtemp/date* or *undertemp/date*  
The number of seconds in UNIX time (since Jan 1, 1970).

## [pages/page.0 ... pages/page.15 pages/page.ALL](#pages/page.0_..._pages/page.15_pages/page.ALL)

*read-write, binary*  
Memory is split into 16 pages of 32 bytes each. User available. The log memory, register banks and histogram data area are all separate from this memory area.  
*ALL* is an aggregate of the pages. Each page is accessed sequentially.

## [temperature](#temperature)

*read-only, floating point*  
Last temperature explicitly requested. Only available when the mission is not in progress. Value returned in in the current temperature scale.

# [STANDARD PROPERTIES](#STANDARD_PROPERTIES)

See the file man3/standard.3so.

# [ALARMS](#ALARMS)

None.

# [DESCRIPTION](#DESCRIPTION)

See the file man3/description.3so.

## [DS1921 Thermochron](#DS1921_Thermochron)

The [**DS1921 (3)**](/man/os/owfs/DS1921.3) is an iButton device with many intriguing functions. Essentially it monitors temperature, giving both a log of readings, and a histogram of temperature ranges. The specification is somewhat complex, but OWFS hides many of the implementation details.

While on a *mission* the [**DS1921 (3)**](/man/os/owfs/DS1921.3) records temperature readings in a 2048-sample log and adds them to a 62-bin histogram.

# [ADDRESSING](#ADDRESSING)

See the file man3/addressing.3so.

# [DATASHEET](#DATASHEET)

http://pdfserv.maxim-ic.com/en/ds/DS2438.pdf  
http://pdfserv.maxim-ic.com/en/an/humsensor.pdf

# [SEE ALSO](#SEE_ALSO)

See the file man3/seealso.3so.

# [AVAILABILITY](#AVAILABILITY)

http://www.owfs.org

# [AUTHOR](#AUTHOR)

Paul Alfille (paul.alfille@gmail.com)

2005 OWFS Manpage

---

Document: Thermachron(3) from owfs 3.2.4-r8 (Chainguard OS)
Source: https://github.com/owfs/owfs
