iButton Datalogger Programmer Prototype

I finished the base code for my first project: a programmer for low cost iButton data loggers! I ended up using a Sanguino http://sanguino.cc/ since I ran out of flash memory on the base Arduino. I used a Maxim 6818 debounce IC soldered onto a SSOP DIP package adapter to handle button debounce for the user menu. The LCD is from Newhaven running in I2C mode. I am using a DS1994 iButton for a real time clock that will eventually be PCB mounted.

After I finish cleaning up the code, I plan to create a printed circuit board (PCB) and make a usable device for use in the field. Besides learning how to develop microcontrollers, the goal of this project is to avoid carrying a laptop in the field to start / stop / check status on temperature and humidity data loggers.

YouTube demo in high quality mode: http://www.youtube.com/watch?v=0tMmivt0pi0&fmt=18

Let me know if you have any questions…


Very impressive, its nice to see the sanguino being used in real world applications.

There's a debounce library available, did you try that before implementing the 6818?


Thanks. This software library was released after I had started development, so I wrote my own software debounce code. I ran into polling issues with the 1-wire bus. It was possible (though rarely) for a button press to get missed.

I ended up using hardware interrupts to ensure a button press was recognized. I thought I could disable the interrupt after one press and then re-enable after ~20 ms in software. Unfortunately the interrupt would not disable reliably. I did research on hardware debounce and found the Maxim dedicated chips. The IC works great and has options for sending a single interrupt for multiple buttons, etc. It is a small chip which required learning some new skills.

Here is a great tutorial on SMT soldering that I used. Key is liquid flux: http://www.youtube.com/watch?v=3NN7UGWYmBY


I had a request for the source code, so I posted it to http://arduinofun.blogspot.com/

It is a work in progress, but I hope that others can find value until I have a chance to clean it up.