Saturday, 20 September 2014

Si4703S-B16 based RDS scanner

Si4703 based RDS scanner for Raspberry Pi using Si4703S-B16 breakout board PL102RT-S V1.5

Make RdSpi. It accepts one command at a time:

  • reset - resets and powers up Si4703, dumps register map while resetting
  • power on|down - powers Si4703 up or down
  • dump - dumps Si4703 register
  • spacing kHz - sets 200, 100, or 50 kHz spacing
  • scan (mode) - scans for radio stations, mode can be specified 1-5, see AN230, Table 23. Summary of Seek Settings
  • spectrum - scans full FM band and prints RSSI
  • seek up|down - seeks to the next/prev station
  • tune freq - tunes to specified FM frequency, for example rdspi tune 9500 to tune to 95.00 MHz
  • rds on|off|verbose - sets RDS mode, on/off for RDSPRF, verbose for RDSM
  • rds gt - RDS Group Type to scan for, for example 0 for basic tuning and switching information
  • rds - scan for complete RDS PS and Radiotext messages with 15 seconds timeout
  • volume 0-15 - set audio volume, 0 to mute
  • set register=value - set specified register
It is better to start with reset :)

rdspi dump

rdspi scan
rdspi spectrum
rdspi rds


  1. Dear Andrey. I am delighted with your RDS decoder using the Raspberry and the Si4703 receiver. Can you help me to receive the 5A Group? I don't know how to add this new group into your code. Thanks a lot. NELSON.

    1. Hi Nelson,

      I will need to revive this project and connect all bits and pieces together. After that it should not take long to add any new groups.
      Regards, Andrey

  2. Dear Andrey. I would be glad to support your efforts, your project is fantastic indeed, probably the best I saw around. Please, consider to help me getting the raw bytes from group 5A and let me know how can I support your job accordingly. Cheers. NELSON

  3. Dear Andrey. If you have PayPal account I can deposit some Donation to cover your time and expenses in case you want to help me with the upgrade of your code to add support for the Transparent Data group 5A. Let me know. nejemia at gmail dot com.

    1. Hi Nelson,

      Thanks for the offer :) The only help I will need from you - to make sure that 5A is parsed correctly. Looks like none of local stations use 5A, so I can add it only theoretically. Probably I would have some time to look at it coming weekend.

    2. Dear Andrey. I am so glad you will help me ! I do have an RDS encoder which generates all the Groups. I can run my tests easily, and I am 100% confident your code will do fantastic even theoretically !!! Just send me the code for testing when ready and will run tests and give you my feedbacks. Thanks a million !!!!

    3. I've added 5A group parser to the code. Try new version from the github.

  4. Dear Andrey... Compiled, tested, WORKED first attempt. I do have 5A Group Transparent Data available now. FANTASTIC WORK !- Let me know if you want to participate in my new challenge - a D.A.R.C encoder to transmit High Speed in the 76Khz subcarrier. Again, THANKS A MILLION !!!!!!