~  /  musings  /  radio  /  chicago-fm-rds-clock-time-2026

Chicago FM RDS CT (Clock Time) Survey, October 2026

Which Chicago FM stations send RDS clock time, and whether it's right.

2026-10-27 · 1,887 words · ~9 min read · radiofm radiordsrbdsclock timesdrrtl-sdrchicago

Some radios can set their clock from RDS. That only works if the station sends clock time and sends it right. Nobody publishes which Chicago stations do, so I listened to all of them.

What RDS clock time is

Clock time (CT) is RDS group 4A. A station sends one per minute, at the start of the minute. It carries the UTC date and time to the minute, plus a local offset in half hours. The radio adds the offset to get local time, so a station that sends UTC with a zero offset sets your radio five or six hours off. Stations that don't feed the RDS encoder a time source drift.

Results

Four stations send correct clock time: WTMX 101.9, WKQX 101.1, WCFS 105.9 and WAWE 94.3. WAWE lands about 6 seconds after the minute against 1 to 2.5 for the other three, so its clock runs a few seconds late, likely because the encoder sits behind a satellite feed. Fine for a bedside radio.

Three send it wrong. WBEZ 91.5's clock is 7 hours 27 minutes behind UTC and sent with a zero offset, so a radio shows about 2 hours 27 minutes slow. WPNA 103.1 is 21.5 minutes slow. WMBI 90.1 sends the right UTC with a zero offset, so a radio that applies the offset is five hours fast.

One is ambiguous. WSCR 104.3 sends local time labelled as UTC: right on radios that apply the offset as sent, five hours off on radios that convert from UTC themselves.

Every other station with RDS sends no clock time.

To set a clock, use 101.9, 101.1 or 105.9. All three are strong, decode cleanly, and land within about two seconds of the minute. These results are from Central Daylight Time; whether each station follows the switch to standard time on November 1 is untested.

I've reached out to the stations sending wrong clock time and will update this page if I hear back.

Stations that send clock time

MHz Station CT Sends (last read) Radio shows
90.1 WMBI right UTC, wrong offset (2 reads) 15:11 +00:00 5 h fast
91.5 WBEZ wrong (4 reads) 07:15 +00:00 2 h 27 min slow
94.3 WAWE correct (2 reads) 10:26 -05:00 right, 6.4 s after the minute
101.1 WKQX correct (4 reads) 10:10 -05:00 right, 1.1 s after the minute
101.9 WTMX correct (4 reads) 10:12 -05:00 right, 2.2 s after the minute
103.1 WPNA wrong (2 reads) 09:54 -05:00 21.5 min slow
104.3 WSCR local time sent as UTC (4 reads) 10:21 +00:00 right
105.9 WCFS correct (4 reads) 10:25 -05:00 right, 2.5 s after the minute

RDS but no clock time

MHz Station CT RDS signal
88.9 WIIT none, weak signal poor (7%, BLER 91%)
90.9 WDCB none good (99%, BLER 26%)
92.3 WPWX none good (100%, BLER 1%)
93.1 WXRT none good (100%, BLER 0%)
93.5 WVIV none good (96%, BLER 44%)
93.9 WLIT none good (100%, BLER 0%)
94.7 WLS-FM none good (100%, BLER 0%)
95.1 W236CF none good (99%, BLER 19%)
95.5 WCHI none, fair signal fair (71%, BLER 45%)
96.3 WBBM-FM none good (100%, BLER 0%)
97.1 WDRV none good (100%, BLER 0%)
97.5 W248BB none good (100%, BLER 35%)
97.9 WCKL none good (100%, BLER 0%)
98.7 WFMT none good (100%, BLER 0%)
99.5 WUSN none good (100%, BLER 0%)
99.9 WYHI none, fair signal fair (76%, BLER 52%)
100.3 WTBC none good (100%, BLER 1%)
102.7 WVAZ none good (100%, BLER 25%)
103.5 WKSC none good (100%, BLER 0%)
105.1 WOJO none, weak signal poor (10%, BLER 83%)
106.7 WPPN none, weak signal poor (31%, BLER 74%)
107.5 WGCI none good (100%, BLER 0%)
107.9 WLEY none (2 garbled 4A, noise) good (100%, BLER 2%)

RDS identity

MHz Station PS PI PI call
88.9 WIIT - 0x6AAB WIIT
90.1 WMBI scrolling (19 values) 0x747A WMBI
90.9 WDCB scrolling (52 values) 0x5CC9 WDCB
91.5 WBEZ scrolling (13 values) 0x57CD WBEZ
92.3 WPWX scrolling (16 values) 0x7E97 WPWX
93.1 WXRT scrolling (12 values) 0x9331 WXRT
93.5 WVIV LatinoMx 0x8D01 WVIV
93.9 WLIT scrolling (11 values) 0x1297 none
94.3 WAWE Air1 0x56E8 WAWE
94.7 WLS-FM scrolling (10 values) 0x997D WLS
95.1 W236CF scrolling (26 values) 0x93D1 WXXX (mismatch)
95.5 WCHI scrolling (10 values) 0x5AAE WCHI
96.3 WBBM-FM scrolling (8 values) 0x5772 WBBM
97.1 WDRV scrolling (11 values) 0x5E63 WDRV
97.5 W248BB scrolling (16 values) 0xD34A none
97.9 WCKL scrolling (7 values) 0x5AFF WCKL
98.7 WFMT cal WFMT 0x6327 WFMT
99.5 WUSN scrolling (13 values) 0x8B59 WUSN
99.9 WYHI - 0x94C6 WYHI
100.3 WTBC scrolling (4 values) 0x86F0 WTBC
101.1 WKQX scrolling (6 values) 0xA7C7 WKQX
101.9 WTMX scrolling (7 values) 0x8823 WTMX
102.7 WVAZ scrolling (16 values) 0x1C35 none
103.1 WPNA scrolling (14 values) 0x7D96 WPNA
103.5 WKSC scrolling (13 values) 0x17E6 none
104.3 WSCR scrolling (14 values) 0x8475 WSCR
105.1 WOJO QueBuena 0x7A98 WOJO
105.9 WCFS scrolling (10 values) 0x5A84 WCFS
106.7 WPPN Amor 0x7DD7 WPPN
107.5 WGCI 107.5 0x14BC none
107.9 WLEY scrolling (12 values) 0x7234 WLEY

Listed stations with no RDS decoded

MHz Station Format
88.1 WCRX College
88.3 WXAV College
88.5 WHPK College
89.3 WKKC / WNUR Urban contemporary / College
90.7 WRTE Jazz
91.1 W216CL Public radio (WBEZ translator)
91.9 WJCH Religious
92.7 WCPY Ethnic
96.7 WSSR Adult hits
98.3 W252AW Regional Mexican (WRLL translator)
99.1 WZQC-LP College
100.7 W264BF Religious (WHLP translator)
101.5 W268AY Spanish Christian (WCKL-HD4 translator)
102.3 W272DQ Variety (WCKG translator)
103.9 W280EM Regional Mexican (WOJO translator)
105.5 WLPN-LP Variety
106.3 WSRB Urban contemporary
107.1 W236CG Hip-hop (WOJO-HD2 translator, CP)

Runs

Reading the tables

  • Station: the licensed station on that frequency according to radio-locator, cross-checked against Playlist Research and RadioLineup.
  • CT: correct is UTC within a minute and the right offset for Chicago. Right UTC, wrong offset means a radio that applies the offset is hours off. Local time sent as UTC is right on radios that apply the offset and wrong on ones that convert from UTC themselves. None means no clock time in 130 seconds. A "none" on a weak signal is a weaker claim, since a clock time group only counts if it arrives without errors.
  • Radio shows: what a radio that applies the offset as sent ends up displaying.
  • RDS signal: how many of the expected 11.4 groups per second arrived, and the block error rate before correction.
  • PS: the 8-character station name. "Scrolling" means the station pushes song titles through it.
  • PI call: RBDS works a call sign out of the PI code. iHeart and others use PI codes that don't map to their call, so "none" or "mismatch" is a fact about the station, not a wrong ID. Two cases look odd and aren't. WKQX sends 0xA7C7, NRSC-4's zero-nibble form of 0x70C7, which is WKQX. WLS-FM sends 0x997D, the three-letter code for WLS; redsea 1.3.1 misses most three-letter codes (its table is searched as if sorted and isn't), so the survey looks those up itself.
  • Garbled 4A: on a noisy stretch, error correction now and then "repairs" a group into a clock time dated 1901 or 2206. Those are thrown out and counted, never used for a verdict.

Method

  • Receivers: a variety of RTL-SDR dongles and antennas on the Southwest Side, near Midway, listed under the tables. The ADS-B gear isn't built for FM; these stations are strong enough that it doesn't matter much.
  • Decoder: redsea 1.3.1 in RBDS mode, fed 171 kHz MPX from rtl_fm. Receive clock synced by NTP.
  • 12 seconds on every channel from 87.9 to 107.9, then 130 seconds (two minute boundaries) on every channel with RDS. Listed stations that showed no RDS got another 40 seconds.
  • One pass in October, on Central Daylight Time (-05:00). It doesn't show which stations follow the switch to standard time on November 1.
  • To run it in your own market: survey.sh and scan.sh. Every decoded group is in the raw files above, timestamped on receipt.

Claude (Anthropic's AI) ran the scans, wrote the tooling and drafted this page on my equipment.

Changelog

  • 2026-10-27: first survey, two receivers.