1 wire/RTC iButton

Well, I've added an additional ds.reset and ds.select before I issue the 0x66 - this seems to work better as I'm getting different data back now.

As the contents of the 5 bytes doesn't seem to change, I don't think that the oscillator has been started.

I've had a dig around and can't seem to find an example of how to set the OSC bit on... the datasheet says the following:

WRITE CLOCK [99h]
The Write Clock command is used to set the real-time clock counter and to write the device control byte.
After issuing the command, the bus master writes first the device control byte, which becomes
immediately effective. After this the bus master sends the least significant byte through the most
significant byte to be written to the real time clock counter. The new time data is copied from the
read/write buffer to the real time clock counter and becomes effective as the bus master generates a Reset
Pulse. If the oscillator is intentionally stopped the real time clock counter behaves as a 4-byte nonvolatile
memory.

So, I know I need to issue 0x99... but what next?