---
name: "ow_temp"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/ow_temp"
---

# ow\_temp(4)

Dallas Semiconductor 1-Wire Temperature sensor

## NAME

**ow\_temp** – Dallas Semiconductor 1-Wire Temperature sensor

## SYNOPSIS

**device** **ow\_temp**

## DESCRIPTION

The **ow\_temp** module supports many of the 1-Wire temperature sensors.

The sensor is read periodically and the results returned via a [sysctl(3)](/sysctl/3.md) as described below.

## HARDWARE

The **ow\_temp** driver supports the following temperature sensors:

| | |
| --- | --- |
| DS1820 | 1-Wire Digital Thermometer |
| DS18S20 | High-Precision 1-Wire Digital Thermometer |
| DS18B20 | Programmable Resolution 1-Wire Digital Thermometer |
| DS1822 | Econo 1-Wire Digital Thermometer |
| DS1825 | Programmable Resolution 1-Wire Digital Thermometer with 4-bit ID |
| MAX31820 | 1-Wire, Parasite-Power, Ambient Temperature Sensor |

The driver supports Family codes 0x10, 0x22, 0x28, and 0x3b.

## SYSCTL

The **ow\_temp** driver reports data via [sysctl(8)](/sysctl/8.md) entries in the device's node in the [sysctl(8)](/sysctl/8.md) tree:

- temperature

  The last temperature read, in milli-Kelvin.

- badcrc

  The number of CRC errors in reading the temperature from the device. Some CRC errors are to be expected. High rates of CRC errors, however, generally indicate a noisy environment, cabling issues, or too many devices on the bus.

- badread

  The number of times a non-CRC error was encountered reading the temperature from the card. This type of error is very rare.

- reading\_interval

  The time, in ticks, between successive reads of the sensor.

- parasite

  This item is non-zero when the device is connected using its parasitic power mode. It can also indicate a wiring error.

Temperatures are reported in milli-Kelvin, even though the absolute accuracy is around 0.2 degrees for the good devices and around 1 degree for cheaper devices. The devices report in steps of 0.0625 degrees. The driver preserves the precision of the device's measurements in its [sysctl(8)](/sysctl/8.md) reports. These devices often have a much higher relative accuracy and repeatability than their absolute accuracy. This makes them well suited for control loops that strive for stability and become possible if the full precision is preserved.

## SEE ALSO

[ow(4)](/ow/4.md), [owc(4)](/owc/4.md), [sysctl(8)](/sysctl/8.md), [owll(9)](/owll/9.md), [own(9)](/own/9.md)

## LEGAL

1-Wire is a registered trademark of Maxim Integrated Products, Inc.

## HISTORY

The **ow\_temp** driver first appeared in FreeBSD 11.0.

## AUTHORS

The **ow\_temp** device driver and this manual page were written by Warner Losh.

## BUGS

The parasitic mode of the devices does not work. It requires support from the [owc(4)](/owc/4.md) driver that is unimplemented.

The ID bits from the *DS1825* are not recognized or reported.

The type of the device is not reported via [sysctl(8)](/sysctl/8.md).

Alarm mode is not supported. It is not possible to set the low and high alarm temperatures.

There is no way to write to the EEPROM.

“Convert Temperature” requests are sent directly to the device. There is no way to use the broadcast ability of the 1-Wire bus to do all the conversions in parallel.

It is not possible to set the precision on those devices that support it.

The time to convert is fixed at 1 second, even though some devices are faster.

There is no character device to supply a stream of readings to a program. Programs interested in the temperature must poll the sysctl to get the temperature.
