2wcom manufacture a range of RDS encoders. These can be controlled via serial commands to set RDS RadioText dynamically, via automation systems or external scripts. This can be used to display time-specific data such as song and show information.

Update September 2017: I’ve build MetaRadio to make it easy to interface your playout system with any RDS Encoder.

This article shows you the main serial commands used to manipulate this functionality. I’ve also provided sample Python code which implements these commands.

2wcom RDS Encoder Serial Commands

These commands are valid for the 2wcom C02DSP, C03DSP,  and C04DSP models of RDS Encoders.

Connections to the system can be made via RS232. All commands are in ASCII. A new line or carriage return signifies the end of a command. To try it out, use PuTTY on Windows.

Information contained here is based on the information found in the official manual.

TITLE Sets the title for the currently playing song
e.g. “TITLE=This is Living”
ARTIST Sets the artist for the currently playing song
e.g. “ARTIST=Young and Free”
DURATION Sets the duration for which the current dynamic data is valid, before reverting back to standard values.There are three possible formats:
Syntax 1: “DURATION=00:01:30” (hours/minutes/seconds)
Syntax 2: “DURATION=01:30” (minutes/seconds)
Syntax 3: “DURATION=90” (seconds only)
STRINGn Sets the value for one of three possible text strings
e.g. “STRING1=You‟re listening to”, “STRING2= by “, and “STRING3= on Hitz Radio”
FORMAT_RT Sets the format of the dynamic RadioText
e.g. “FORMAT_RT=STRING1+TITLE+STRING2+ARTIST+STRING3” will turn into: “You’re listening to All over my head by Gene Davies on Hitz Radio’
FORMAT_DYNPS Sets the format of the dynamic Scrolling PS
will turn into: “You’re listening to All over my head by Gene Davies on Hitz Radio”
AUTO_RT Enable/Disable automatic dynamic RT generation when one of the FORMAT_RT components change
“AUTO_RT=Y” to enable or “AUTO_RT=N” to disable
AUTO_DYNPS Enable/Disable automatic dynamic Scrolling PS generation when one of the FORMAT_DYNPS components change
“AUTO_DYNPS=Y” to enable or “AUTO_DYNPS=N” to disable
DYNPS Sets the value of the dynamic Scrolling PS data (up to 160 characters). Already existing separate text for Scrolling PS will be overwritten.
e.g. “DYNPS=Hitz Station is now offering free music downloads”
DYNRT Sets the value of the dynamic RadioText data, up to 64 characters are possible. Already existing dynamic data will be overwritten.
e.g. “DYNRT=Hitz Station is now offering free music downloads”

2wcom Example RDS Commands

Here is an example command set to set the RDS RadioText data to a song and have it automatically clear after 120 seconds:

STRING1=Now: \n
STRING2= by \n
TITLE=This is Living\n
ARTIST=Young and Free\n

The title and artist are set at the end so all other settings are ready before the RadioText is displayed. When the song finishes (expiry set via DURATION command), it will go back to the default text (usually set in the 2wcom software).

2wcom RDS Commands via Python

The same commands can be implemented with the following Python function:

import serial

def updateRDS(comPort, title, artist, duration):
  serialConnection = serial.Serial(comPort)
  serialConnection.write("DURATION=" + str(int(duration)) + "\n")
  serialConnection.write("STRING1=Now: \n")
  serialConnection.write("STRING2= by \n")
  serialConnection.write("TITLE=" + str(title) + "\n")
  serialConnection.write("ARTIST=" + str(artist) + "\n")



Get the Broadcast Technology Newsletter

Sign up for the email newsletter about media and technology. Sent irregularly. No spam.

I'm Anthony Eden, and I'm a IT Professional, Broadcast Technician, Software Developer, and Solutions Engineer. I've been working in broadcast media since 2008, and developing software and websites for just as long. Right now, I provide freelance services through Media Realm - in particular, to the media and not-for-profit industries.

Follow Anthony on Twitter: @anthony_eden