1 wire/RTC iButton

Just a quick though:

Maybe the read() returns -1 as an error code and stores it in a byte?