RDS Surveyor is being developed by Christophe Jacquet, a radio ehtusiast.
Run RDS Surveyor 2 now in your browser!
Project links:
Features
Quick list of supported RDS features
- Program identification: PI, PS, PIN, ECC, language code
- Radiotext: RT
- Program type: PTY, PTYN
- Traffic flags: TP/TA
- Various flags: MS, DI, PTYI
- Alternative frequencies: AF
- Program item number: PIN
- Enhanced other networks: EON
- Clock date & time: CT
- Radio paging: RP
- Open data applications: ODA
- generic ODA support, with pluggable support for each ODA
- TMC/Alert-C (traffic information for GPS units)
- RT+ (metadata labelling for Radiotext)
Supported groups
0A | 1A | 2A | 3A | 4A | 5A | 6A | 7A | 8A | 9A | 10A | 11A | 12A | 13A | 14A | 15A* |
0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B | 10B | 11B | 12B | 13B | 14B | 15B |
Key
- implemented (totally or almost totally) and tested
- implemented but not tested
- partially implemented and tested
- not implemented
- not implemented, but not used: to the best of my knowledge, the B-version groups marked as such are to be used for ODA, but to date no registered ODA uses them
Notes:
- B-groups are rare: only 14B in France and Switzerland, and 15B too in Germany. In Spain some stations use 0B and/or 1B.
- Many groups are used for ODA. The only ODAs I have received so far are TMC/Alert-C (many stations, in groups 8A), RT+ (on SWR3, in groups 12A) and RASANT (on SWR1, in groups 11A).
- 15A group is supported although it has always been RBDS-only, and has been deprecated in RBDS since 1998. The reason for this is that I spotted stations in France transmitting 15A groups (4-letter segment of PS).
Synchronization and handling of errors
RDS Surveyor uses syndrome decoding to synchronize with an RDS stream. However, basic syndrome decoding can lead to numerous spurious synchronizations. For this reason, when RDS Surveyor detects a known syndrome, it does not switch to "synchronized" state immediately. It still waits for two additional known syndromes, all consistent with each other (within a given window of time), before doing so. In my experiments, I have found that this method completely eliminates spurious synchronizations.
If a group contains bad blocks, RDS Surveyor does not discard the group altogether: instead, it tries to make the most of available data. For instance, if only blocks 2 and 4 of a group are correct, RDS Surveyor can deduce from block 2 that (for instance) this is a 2A group, conveying Radiotext characters at a given position. Alghough the group normally contains 4 characters in blocks 3 and 4, and blocks 3 is missing, RDS Surveyor can still extract the two characters available in block 4. This dramatically improves information extraction in poor receiving conditions, and makes RDS Surveyor much more efficient than most other alternatives.
Planned features
On the TODO-list:
- Support off-the-shelf FM radio receivers, such as on-key USB receivers. An experimental support for Silicon Labs' USBFMRADIO is well under way. The Linux version has been included since release 0.6. I have it working on Windows too, but only on my own experimental builds. I will be seeking ways to stabilize and distribute it.
- Support all groups, including B versions. For this, I need people from around the world to send me RDS samples. I have already samples with 0B, 1B, 14B and 15B groups, and one with 2B groups (radiotext). However, I would appreciate samples with B-version groups (radiotext).
- Support for additional ODAs, for instance RASANT.
- Improve the GUI.
Maybe one day?
- Implement EWS.
Tentative roadmap to 1.0
- 0.9 — Toolbar for each input method
- 0.10 — Complete TMC/Alert-C support
- 0.11 — Support for the USBFMRADIO (si470x) on Windows
- 0.12 — Overhaul of the GUI
- 0.13 — Code cleanup before the final release
- 1.0 — Stable release