Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Clock sync using RDS

Clock sync using RDS

From: Bertrik Sikken <bertrik_at_sikken.nl>
Date: Sun, 12 Feb 2012 16:19:43 +0100

Hi all,

In the past week, I have started to look at the possibility of using
RDS to synchronise the clock of a DAP. Of course this is only possible
with a DAP having an RDS-capable FM chip (gigabeat s, sansa clip zip,
sansa fuze+).

RDS sends a CT (clock-time) message once a minute, containing the
current time with one minute resolution:
* date as modified julian date (which is basically UTC date with
  an offset)
* hours and minutes
* local time offset (in units of a half hour)

What I've seen so far is that all-but-one of the strong FM transmitters
in my area (netherlands, at UTC +1:00 right now) transmit a correct
UTC time (including a correct local time offset of +1:00). One FM
transmitter sends local time with a local time offset of +0:00.
So the *local* time is actually correct for all stations I tried.

My proposal is:

** tuner driver side **
Upon reception of an RDS CT message, the RDS code performs basic
checks on the RDS CT packet, like range of hours (0-23) minutes
(0-59) and date (later than 2012-1-1). It then calculates local
time by summing UTC time and offset.
The reception of RDS time is advertised as an RDS event.
The radio API gets a new property to retrieve the RDS time
(in seconds since 1970-1-1 0:00 in local time).

** radio code side **
When the radio code sees that an RDS time was received, the RDS
time is stored along with a timestamp taken from the RTC.
The radio menu gets a new menu, "Sync to RDS time" (or similar).
When the user selects this menu, he/she is presented with a new time,
calculated from the latest received RDS time and the stored RTC
timestamp, and the user can check/confirm before actually updating
the RTC.

Some considerations:
* UTC vs local time? Since the raw RDS time + offset is apparently
  wrong for some stations, but local time is OK, I propose to send
  local time over the tuner api.
* Should we put the synchronisation in some time&date menu, or in
  the fm radio menu?
* Should RDS clock sync be automatic or manual? I propose manual
  because I don't trust RDS time to be accurate everytime
  (because of bad fm reception for example).

Any ideas for changes/improvements on this proposal?

With kind regards,
Bertrik Sikken
Received on 2012-02-12


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa