iButtons & 1-Wire

This is an old page saved for posterity. It is no longer updated.

Working in the security business & being interested in home automation I have come across the Dallas
iButtons in numerous applications over the years, the basic iButton contains just a unique serial number but other models contain  various amounts of EPROM, EEPROM, NVRAM, clocks, temperature sensors, addressable switches, microcontrollers, and Java virtual machines. Plenty of scope for more interesting projects.

I use a DS9097U-009 Active serial port adapter and two DS1920 temperature sensors in my home
automation system
already but I’ve also got a DS9097E Passive serial adapter, a DS1996L 64 kbit Memory iButton and a DS1921L Thermocron iButton to play with.

Future plans include using some of the addressable switches such as the DS2405 or DS2406. These devices can be used as an input or can drive a relay for control purposes, plenty of uses in my home automation system there. I’m also working on a system to store my GPG pass phrase in the iButton so I can use it to sign or encrypt mail.

iButton components are available in the UK from RS Components, Farnell and Taylec. The 1-Wire weather station is available from Tech Supplies.

Dalsemi have some Guidelines for Reliable 1-Wire Networks online and there are several iButton
related discussion groups

Some Linux software for 1-wire devices:

OWFS and OWHTTPD OWFS (One Wire Filesystem) allows easy control of the 1-Wire bus under Linux. The bus can either be viewed in a Web browser (OWHTTPD) or as files (OWFS). Supports both DS9097U & DS9097E interfaces.

mibfm File transfer utility that supports the active serial interfaces.

iBLab a C++ library for accessing the iButtons.

Perl Module Supports the active serial interaces (DS2480 based, such as DS9097U or DS1411).

DigiTemp A simple to use program for reading values from 1-wire devices. Its main use is for reading temperature sensors, but it also reads counters, and understands the 1-wire hubs with devices on different branches of the network. DigiTemp now supports the following 1-wire temperature sensors: DS18S20 (and DS1820), DS18B20, DS1822, the DS2438 Smart Battery Monitor, DS2422 and DS2423 Counters, DS2409 MicroLAN Coupler (used in 1-wire hubs), and the AAG TAI-8540 humidity sensor.

iB-IDE is a complete development environment for Java iButton

You can get a linux version of iB-IDE here. You may require the Java Comm for Linux

Dalsemi 1-Wire Public Domain Kit (Open Source)

Source & Documentation

Makefiles/projects and executables for Linux – using userial library (X86): GNU C build (818K)

Example Applications:

  • ibsha – DS1963S SHA iButton monetary demo. Initializes both the dedicated co-processor DS1963S and the user iButton. Performs fully authenticated secure money debits.
  • tagging – utilities to create and read 1-Wire TAGs 1-Wire sensor application(s) that utilize the 1-Wire TAG
  • atodtst – finds and display the value for channels A,B,C,D on the DS2450 Quad A/D Converter
  • counter – reads the DS2423 counter value of the associated memory page
  • coupler – tests the DS2409 commands and searches for the DS2409 and the devices on the branch of the DS2409
  • mweather – 1-Wire Weather Station example, supports both versions of the Weather Station
  • swtlpop – performs various operations on the DS2406 Dual Addressable Switch
  • swtsngl – turns the DS2405 switch on & off and reads the on/off status
  • temp – finds and displays the temperature measurement for the DS1920/DS1820
  • thermo – DS1921 Thermochron download and mission example application
  • tstfind – loop to find all 1-Wire devices on Net
Last modified: 21 July 2012