I have been using DS3231 RTC modules purchased from the Internet as time sources. The DS3231 has very good accuracy, obsoleting many older RTC chips, and will work at 3.3V or 5V—the I/O pins are 5V tolerant.
One commonly found model looks like this:
The picture is actually many times life size. I should have realised it from the 0.1 inch pitch connector but I was still surprised. That cell is a CR1025 so it's 10 mm across and 2.5 mm thick.
The other commonly found model looks like this:
This model costs a bit more than the first. The differences are:
- It doesn't come with a lithium cell, you have to provide one
- There is a serial EEPROM included
- There are a couple more pins for SQW and 32K outputs
- The A0-A2 jumpers allow you to select a different I2C address from the default for the EEPROM
There is another gotcha with the second type. They included a charging circuit comprising a 1N4148 and a 200Ω resistor. This is explained in this article.
Originally this was intended for charging a LIR2032, a rechargeable version of the CR2032. However these are much more expensive and not justified when a normal CR2032 will power the RTC for years. It seems they never updated the module design to omit this charging circuit.
If you are powering the RTC module from 3.3V you don't have to do anything as the diode will not be forward biased.
If you are powering the RTC module from 5V, it will attempt to charge the CR2032. You can disable this by unsoldering either the diode or the resistor, or cutting the trace to the cell's positive terminal.