OWFS SF.net project page New OWFS Website! by Paul H Alfille SourceForge.net Logo
OWFS Design

OWFS Features

OWFS Software
Install instructions
Bootable CD
Filesystem (owfs)
Web Server (owhttpd)
Backend Server (owserver)
Perl bindings (owperl)
Python bindings (owpython)
PHP bindings (owphp)
Tcl bindings (owtcl)
Daily Configured Package
CVS -- newest
CVS Statistics
Examples & Usage
1-wire wireless
1-Wire Hardware
OWFS Project
Table of Contents


owserver - Backend server (daemon) for 1-wire control


owserver [-C | -F | -K | -R ] [ -r | - w ] -d serialport | -u | -s [host:]port -p tcp-port
owserver [-C | -F | -K | -R ] [ -r | - w ] [ -f f[.]i[[.]c] ] [ -t timeout ] [ --background | --foreground ] [ --link | --nolink ] [ -P --pid-file filename ] [ --error_print 0|1|2|3 ] [ --error_level 0|1|2|3|9 ] [ --msec_read milliseconds -d serialport | -u | -s [host:]port -p tcp-port
owserver -h
owserver -V --version



1-wire is a wiring protocol and series of devices designed and manufactured by Dallas Semicondictor, Inc. The bus is a low-power low-speed low-connector scheme where the data line can also provide power.

Each device is uniquely unalterably numbered during manufacture. There is a wide variety of devices, including memory, sensors (humidity, temperature, voltage, contact, current), switches, timers, loggers, and more complex devices (like thermocouple sensors) can be built wit hte basic devices. There are also 1-wire devices that have encryption included.

The 1-wire bus is accessed via one of a number of serial, parallel or USB adapters.

OWFS design

OWFS is a suite of programs that fundementally make the 1-wire bus and its devices easily accessible. The underlying priciple is to create a virtual filesystem, with the unique ID being the directory, and the individual properties of the device files.

There is optional data caching to improved performance, but possible confusion over stale data.


owserver (1) is the backend component of the OWFS 1-wire bus control system. owserver (1) arbitrates access to the bus from multiple client processes. The physical bus is usually connected to a serial or USB port, and other processes connect to owserver (1) over network sockets (tcp port). Communication can be local or over a network. Secure tunneling can be implemented using standard techniques.

Frontend clients include a filesystem representation: owfs (1) , and a webserver: owhttpd (1) . Direct language bindings are also available, e.g: owperl (3) . Several instances of each client can be initiated.

Each client can also connect directly to the physical bus, skipping owserver (1) but only one client can connect to the physical bus safely. Simultaneous access is prevented by the operating system for USB ports, but unfortunately not serial ports. The safe way to share access to the 1-wire bus is via owserver (1) with the clients connecting. Note: owserver (1) can connect to another owserver (1) process, though the utility of this technique is limited (perhaps as a readonly buffer?)

owserver (1) is by default multithreaded. Optional data caching is in the server, not clients, so all the clients gain efficiency.

Specific Options


TCP port or IPaddress:port for owserver
Other OWFS programs will access owserver via this address. (e.g. owfs -s IP:port /1wire)

Standard Options

-C --Celsius | -F --Fahrenheit | -K --Kelvin | -R --Rankine

Temperature scale used for data output. Celsius is the default.

-r --readonly

-w --write

Do we allow writing to the 1-wire bus (writing memory, setting switches, limits, PIOs)? The write option is available for symmetry, it’s the default.

-d --device "deviceport"

Sets the serial port. It should have a LINK, DS9097U or DS9097 (passive adapter) attached. The "-d" is implied if two arguments are supplied. (See examples). Also accepted is i2c devices (e.g. /dev/i2c-0)
Note: multiple instances of -d, -u, -s are allowed. Each corresponds to a different 1-wire bus. The result will reflect the logical union of those buses.

-s [host:]port

Connect via tcp (network) to an owserver process that is connected to a physical 1-wire bus. This allows multiple processes to share the same bus. The owserver process can be local, or remote.
Note: multiple instances of -d, -u, -s are allowed. Each corresponds to a different 1-wire bus. The result will reflect the logical union of those buses.

-u --usb

Use the USB adapter (DS9490) as 1-wire bus master. An optional number 1,2,... specifies which adapter to use if more than one is present.
Use all instead of a number (e.g. -uall) to discover and use all DS9490 USB adapters. Note: multiple instances of -d, -u, -s are allowed. Each corresponds to a different 1-wire bus. The result will reflect the logical union of those buses.

Help Options

-h --help

Shows basic summary of options.


Show less common options.

-V --version

Version of this program and related libraries.

Other Options

--background | --foreground

Whether the program releases the console and runs in the .I background after evaluating command line options. background is the default.

--link | --nolink

All serial adapters manufactured by iButtonLink should be used in their ascii mode rather than the (default)DS9097U emulation. This allows some extended features, but interfears with DS2409 (3) hubs.


  1. default mixed destination: stderr foreground / syslog background
  2. syslog only
  3. stderr only
  4. dev/null (supress all).


  1. default errors only
  2. connections/disconnections
  3. all high level calls
  4. data summary for each call
  5. details level
    debugging chaff

    -f --format "f[.]i[[.]c]"

    Display format for the 1-wire devices. Each device has a 8byte address, consisting of:
    family code, 1 byte
    ID number, 6 bytes
    CRC checksum, 1 byte

    Possible formats are f.i (default, 01.A1B2C3D4E5F6), fi fic f.ic f.i.c and fi.c

    All formats are accepted as input, but the output will be in the specified format.

    -P --pid-file "filename"

    Places the PID -- process ID of owfs into the specified filename. Useful for startup scripts control.

    -t --timeout "seconds"

    Set the number of seconds that volitile data (measured values like temperature and voltage) should be cached before requerying the BUS. More stable values will be saved ten times longer (switch settings, memory contents). 10 seconds is the default.


    Milliseconds before read timeout (for serial reads). Some embedded systems, and USB->serial adapters seem to need more than the default 500 msec.


    owserver -p 3001 -d /dev/ttyS0 runs owserver on tcp port 3001 and connects to a physical 1-wire bus on a serial port.

    See Also


    owfs (1) owhttpd (1) owftpd (1) owserver (1)

    Language bindings

    owtcl (3) owperl (3)


    DS1427 (3) DS1904(3) DS1994 (3) DS2404 (3) DS2404S (3) DS2415 (3) DS2417 (3)


    DS2401 (3) DS1990A (3)


    DS1982 (3) DS1985 (3) DS1986 (3) DS1991 (3) DS1992 (3) DS1993 (3) DS1995 (3) DS1996 (3) DS2431 (3) DS2433 (3) DS2502 (3) DS2506 (3) DS2804 (3)


    DS2405 (3) DS2406 (3) DS2408 (3) DS2409 (3) DS2413 (3)


    DS1822 (3) DS18B20 (3) DS18S20 (3) DS1920 (3) DS1921 (3) DS1821 (3)


    DS1922 (3)


    DS2450 (3)


    DS2890 (3)


    DS2436 (3) DS2438 (3) DS2760 (3)


    DS2423 (3)

    LCD Screen

    LCD (3) DS2408 (3)


    DS1977 (3)




    Paul Alfille (palfille@earthlink.net)

    Table of Contents

© 2003-4 Paul H. Alfille and The owfs Team
$Id: owserver.1.html,v 1.10 2006/06/17 22:04:11 alfille Exp $