Files
wadamesh/variants
Kaj SchittecatandClaude Opus 5 17ce1ae018 DS3231 real-time clock support on the T-Deck (#378)
jrote1 is fitting a battery-backed DS3231 to the T-Deck's I2C bus so the device
keeps time across a full power-off without needing GPS or Wi-Fi. The RTC adapter
already had the hard parts, refusing an untrustworthy read and revalidating every
write, so this teaches it a third chip rather than adding a second path.

Three things differ from the soldered PCF parts and all three are handled by
normalising into the existing decoder rather than duplicating its rules:

- It lives at 0x68 rather than 0x51. That is also what makes it safe to add: it
  cannot be mistaken for either chip an existing board carries.
- Day-of-week and day-of-month are swapped in its calendar block.
- It reports "my time is not trustworthy" as OSF in a status register instead of
  in bit 7 of seconds, so that bit is folded into the one the decoder already
  refuses on. A module whose backup cell went flat is therefore rejected the
  same way a powered-off M9 is, rather than having its frozen calendar believed.

0x68 is a busy address, so identification requires a positive DS3231 trait
rather than an ACK: its temperature register pair, whose low byte is a quarter
degree in the top two bits and zero elsewhere, with a high byte in a range a
working chip could be at. A module that has never been set by us can also arrive
in 12-hour mode, which is converted rather than decoded as if it were 24-hour.

Transparent when no module is fitted, which is nearly every T-Deck: reads come
from the software clock, writes stop there, and the probe logs that nothing
answered. CAP_HARDWARE_RTC stays 0 for the board, since this is an aftermarket
addition rather than something a T-Deck has, so the cold-boot network time sync
stays on offer for everyone else.

Unverified on hardware: neither of us has the module wired yet. The host tests
for the shared decoder still pass.

Built on all nine S3 envs and both ESP32-P4 targets.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 01:24:59 +02:00
..
2026-08-27 20:37:59 -04:00
2026-09-03 23:08:48 +02:00
2026-09-03 12:52:03 -04:00