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

OWFS Device Names

1-wire chips
  • Synopsis:

    Each 1-wire device is uniquely named. The OWFS system allows flexibility in naming scheme to ease integration with other software. One of six naming schemes can be specified on the command line. In addition, each element of the name is available as a file to allow further customization.
  • 1-wire names

    • Length

      All 1-wire devices have a unique address laser-registered into the chip. Dallas Semi guarntees that the address is unique. Although there are theoretically 264 possible addresses, 8 bits are reserved for a check-sum (CRC8) and so are not independent. Also 8 bits correspond to the chip type -- the family code. This leaves 248 -- ~1014 in each family.
    • Hexidecimal

      OWFS, like most 1-wire software, uses hexidecimal notation for chip addresses. This means each byte is  2 hex characters 0123456789ABCDEF -- uppercase.
    • Internal structure

      Family code ID CRC8
      8 bits
      48  bits (unique within family)
      8 bits
      • Family Code
        8 bit (1 byte or 2 Hex characters).  Identifies the type of 1-wire device. See the family code list for the types. Family code 00 is recognized as an error.
      • ID
        The middle 48 bits (6 byes or 12 hex characters). Guaranteed unique within a family. A few types of chips have sequences of IDs reserved for special manufacturing runs, but in general, there is no special characteritics to the ID.
      • CRC
        8 bit (1 byte or 2 hex characters) cyclic redundancy check-sum. It must match the rest of the address and thus provides a check that the address is correct.
        OWFS handles the CRC transparently, checking that it is correct when read from the bus before presenting it to you. The CRC does not have to be included in a OWFS 1-wire device name. If it is included, it must be correct.
  • OWFS formats

    • template for display

      --format f[.]i[[.]c]
      where the elements are family id and crc. Items in [brackets] are optional.
      Note that the format only applies  to displayed 1-wire addresses.  Any of the six formats can be used as input since there is no ambiguity.
      The default display format is f.i
    • examples

      for f in fi f.i fic f.ic fi.c f.i.c ; \
        do echo $f ; \
        umount 1wire ; \
        killall owfs ; \
        /opt/owfs/bin/owfs --format $f -u 1wire ; \
        ls -x 1wire ; \
        echo ; \

      018660BE090000   10D11846000800  DS9490       stats_bus  stats_cache
      stats_directory  stats_read      stats_write  uncached

      01.8660BE090000  10.D11846000800  DS9490       stats_bus  stats_cache
      stats_directory  stats_read       stats_write  uncached

      018660BE0900007E  10D11846000800D5  DS9490       stats_bus  stats_cache
      stats_directory   stats_read        stats_write  uncached

      01.8660BE0900007E  10.D11846000800D5  DS9490       stats_bus  stats_cache
      stats_directory    stats_read         stats_write  uncached

      018660BE090000.7E  10D11846000800.D5  DS9490       stats_bus  stats_cache
      stats_directory    stats_read         stats_write  uncached

      01.8660BE090000.7E  10.D11846000800.D5  DS9490       stats_bus  stats_cache
      stats_directory     stats_read          stats_write  uncached

  • Name-related files

    Parts of the 1-wire name can be extracted using file contents, as well.
    This is a convenience in extracting address components without extensive parsing magic.
    There is a performance cost -- OWFS tests for the chip's existence before returning it's name, even though the contents are computed. This seems to better correspond with expectations.
    • address

      full 64 bit address in hex
    • crc8

      8 bit crc portion of address
    • family

      8 bit family code
    • id

      mid 48 bit portion of address
    • present

      device presence
    • type

      chip name corresponding to family code
    # grep '.' 1wire/01*/*

  • Non-OWFS names

    • ibutton

      ibutton image
      family id crc
      21 2BC5FB000000 89
    • Dallas chip

      The markings on a 1-wire chip has the chip "type" e.g. DS1820, but not the address.
    • Adapters

      None of the adapters DS1410x DS9097x DS9490 or LINK have a 1-wire address themselves. There are versions with an ID-only device internally that can be used for addressing. The adapters don't seem to have that address on their case.
    • AAG Electonica

      AAG devicesBack of TAI-8570
      family id crc

      family id crc
      Most of the AAG devices have the chip address, in the "reverse" order on the case.
    • Springbok

      Springbok devices
      David Lissiuk's devices have addresses in the accompanying spec sheets, but not on the devices themselves.
    • Swart LCD

      Louis Swart's LCD controller behaves as a true 1-wire device, although the 1-wire aspects are emulated by a microprocessor. The address, with family code FF is not on the circuit board. Here is a little script to display the address on the LCD screen:

      for L in 1wire/FF* ; do cat $L/address > $L/screen16 ; done

    • PuceBaboon
      PuceBaboon adapters
      PuceBaboon makes USB adapters and temperature sensors. The Family code of the devices is implied (10 for the device on the left, 01 for the right-hand device), and the number is the ID in reverse order.
      Device labels
      family id crc
      10 243646000800 16
      10 191658000800 64
      01 5DC13C0B0000 2D

    • digitemp

      family id crc
      digitemp uses addresses in family/id/crc format. Equivalent to --format fic or /address file.

© 2003 Paul H. Alfille and The owfs Team
$Id: naming.html,v 1.9 2004/10/14 01:44:10 alfille Exp $