User Manual

Notice the input level is around -16 dB which is a typical value for audio (lower values mean less volume / input level
and higher values up to 0 or more mean very loud input). The audio signal status is a byte that has a few bits to
indicate status, in particular the 3rd bit will be turned on to indicate overmodulation (an easy way to check is if the
value of the signal status is 4 or greater, that indicates bit 3 is on).
Try cranking up the audio source volume and notice the audio level value increases and the overmodulation bit turns
on to indicate the volume is too high (remember a value 4 or greater means the input is overmodulating):
You should aim to keep the input level around -20 to -10 dB and ensure the overmodulation bit isn't set (if it is then the
volume is too high).
RDS - Radio Data System
Finally the RDS features of the Si4713 allow you to transmit data along with the FM audio signal. This is transferred in
special side channels to the main FM broadcast and include data like the name of the station and the currently playing
song. If you've ever seen a car radio that prints the name of a song being played it's probably reading it over an RDS
transmission from the radio station.
You can easily configure and set the RDS transmission of the Si4713 with the configure_rds function. For example:
This call takes the following parameters:
The station ID - This is a 16-bit value that the tuner can use to identify a station. In this case we're sending the
value 0xADAF.
The station name - This is an optional keyword argument that can specify a byte string with the station name to
broadcast. You can only send up to 96 characters with this value.
The buffer value - This is another optional keyword argument that can specify a byte string to broadcast as the
current RDS buffer (typically shown as the song or now playing string on a radio). You're limited to 106
characters with this value.
Once you call configure_rds it will enable the RDS broadcast and configure itself to do so at typical North American
RDS radio broadcast values (i.e. a specific frequency deviation, repeat interval, etc.). After RDS is configured you can
update the station and buffer values by writing to the rds_station and rds_buffer properties respectively. Remember
each is limited to a length of 96 characters and 106 characters respectively:
print('Audio level: {0} dB'.format(si4713.input_level))
print('Audio signal status: 0x{0:02x}'.format(si4713.audio_signal_status))
si4713.configure_rds(0xADAF, b'AdaFruit Radio', b'AdaFruit g0th Radio!')
si4713.rds_station = b'Mosfet Jams'
si4713.rds_buffer = b'Purrfect tunes!'
© Adafruit Industries https://learn.adafruit.com/adafruit-si4713-fm-radio-transmitter-with-rds-rdbs-support Page 23 of 27