HMC6352

Looks like Wire wants the address in 7-bit form - so the 0x42 from the datasheet turns into 0x21, then Wire sets the R/W bit itself depending on what you ask it to do. Further back on this thread the scope pictures should have made this obvious, but I didn't get it. The working example for the DS1307 used an address of 0x68, yet the 1307 datasheet said the address is 0xd0 - hmmm!

The way it works is the most significant 7 bits are the device address, and the LS bit is 0 for write and 1 for read. Once I saw the signals on the scope it became obvious.

I haven't wired up the 24LC256 yet, but I think the address Wire wants would be 0x50. I need to wire mine up again - ran out of breadboards. We'll get it running - no worries. Hopefully I'll have something tomorrow.

The 70 ms delay before the i2c read only needs to be 7 ms. I made it 70 ms so I could punch a button on my scope to catch the second i2c transaction.

Having a scope turns this from frustrating into great fun!