RTC acting strange

My confusion was the datasheet at the top has a picture of a 'typical operating circuit', which has both SDA and SCL with a pullup resistor to Vcc, however further down the datasheet it says only SDA needs the pullup resistor and SCL doesn't say anything about the resistor, only that it should have a pullup voltage of 5.5V?

Possibly worded a little awkward, but 'have a pullup voltage...' means also having a pull-up resistor. The I2C standard dictates that both data and clock signal use external pull-ups as these signals are bidirectional so they cannot rely on one side always providing a valid logic voltage level output. The actual value of the pull-up resistor can depend on things like the speed the bus will be operated on, the number of slave modules wired to the bus, that total length of the bus, etc. But 4.7K ohms is a pretty standard recommendations.

Now to confuse you further (not intended, really) one can sometime get away with wiring a I2C device to an arduino board with no pull-ups at all. That is because the arduino I2C library enables the internal 'weak pull-ups' on the open drain clock and data I2C pins. I've run a 1307 I2C RTC module with several of my arduino board without using external pull-ups and it works fine, however that is not per I2C standards and is not be a recommended practice.

Lefty