Sunday, July 26, 2009

iButton Datalogger Programmer Source for Sanguino (Arduino Clone)

Data Logger Programmer source code for Sanguino (Ardunio Clone) tested in Ardunio sketch version 15. The code is a work in progress, but I hope it is far enough along to help others:



iButton Datalogger Programmer with a Sanguino (Arduino Clone)


My background is in mechanical engineering with an interest in computer programming. I wanted to learn microcontroller development and started with the Arduino. It is low cost with an easy to use programming API.

I started learning the Arduino environment with Ladyada's tutorials. I then moved onto my first real project: programmer for Maxim's iButton temperature and humidity dataloggers. The programmer can start and stop datalogging missions and display the current value without removing the devices from the field. I used the Sanguino (arduino clone) since I needed additional memory the ATmega168 did not have. The new ATmega328 should be able to handle it with no issues.

Ibuttons supported: DS18S20, DS1923, DS1920, & DS1921G. I am using DS1994 real time clock to sync time with the dataloggers. Datasheets can be downloaded here. The program also supports the DS18S20 1-wire temperature sensor which I attach via a custom made cable and RJ-11 connector. The ibuttons use the 1-wire interface.

The LCD is a two row Newhaven NHD-0216K3Z-FL_GBW purchased from Fun Gizmos running in I2C mode. Really neat since only 4 wires are required for power and data.

I chose to use a Maxim 6818 IC and hardware interrupts to handle button debounce as a learning opportunity and guarantee that a button press would not be missed while polling for attached devices.

I developed a simple user interface using 3 buttons to allow datalogging mission start / stop and duration to be changed.

Due to other commitments, I have put my microcontroller projects on hold for a while. However, I have received a request for the source code which I will publish and hopefully save others time if they want to use iButtons. (Close up picture)


Jeff Miller