Skip to content
Si4703 based RDS scanner for Raspberry Pi
C Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitattributes
.gitignore
Makefile
README.md
cio.c
cli.c
cli.h
cmd.c
cmd.h
main.c
pi2c.c
pi2c.h
rds.c
rds.h
rpi_pin.c
rpi_pin.h
si4703.c
si4703.h

README.md

RdSpi

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

PL102RT-S V1.5

Installation

Connect PL102RT-S V1.5 breakout to Rpi:

RPi PL102RT-S
SDA SDIO
SCL SCLK
#23 (GP4) RST
GND GND
3.3V Vd

To make communication more stable connect RST pin to a pullup resistor.

If in addition to RDS scanning you want to listen to radio audio then connect whatever amplifier you have to LOUT/ROUT. Adafruit MAX98306 works just fine.

Make RdSpi. It accepts one command at a time:

  • cmd - run in interactive command mode
  • 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 or rdspi tune 95.00 or rdspi tune 95. to tune to 95.00 MHz
  • rds on|off|verbose - sets RDS mode, on/off for RDSPRF, verbose for RDSM
  • rds [gt G] [time T] [log] - scan for RDS messages. Use to gt specify RDS Group Type to scan for, for example 0 for basic tuning and switching information. Use time to specify timeout T in seconds. T = 0 turns off timeout. Use log to scroll output instead on using one-liners.
  • rds - scan for complete RDS PS and Radiotext messages with default 15 seconds timeout
  • volume 0-30 - set audio volume, 0 to mute
  • set register=value - set specified register

It is better to start with reset :) Note that reset requires sudo to write to reset pin, other commands can be used without sudo.

$sudo rdspi reset
$rdspi tune 95.00
$rdspi volume 10
$rdspi set volext=1
$rdspi dump

To disable output use --silent as the last command line parameter:

$sudo rdspi reset --silent
$rdspi tune 9500  --silent

Screenshots

Links

You can’t perform that action at this time.