Is there a Linux radio standard? Is there a Linux radio standard? linux linux

Is there a Linux radio standard?


Radio support in linux

It sounds like you are creating a new hardware radio device? You'll probably need to build a driver for this device. Some help getting started can be found here, here, and here. If your device is not new, it may already have a driver in the Video4Linux2 project.

It looks like there are some RDS related projects based on the saa6588 kernel module currently.

According to this page, these cards are currently have a SAA6588 chipset:

  • Terratec Cinergy 600
  • KNC ONE TV-Station RDS
  • KNC One TV-Station DVR
  • TYPHOON TV TUNER CARD RDS
  • Sundtek MediaTV Pro (supported by the manufacturer)
  • Sundtek USB FM Radio (FM Transmitter/Receiver, supported by the manufacturer)

RDS specific information

I'd recommend to check out some of the projects related to Video4Linux2 (v4l2), there is an RDS decoding library. This library runs in userspace, so the RDS decoding work can be done there for you:

According to V4L2 specifications, raw data from RDS decoders is read from the radio device. Data consists of blocks where each block is 3 bytes long. All decoding has to be done in user space.

RDS API

Here is a complete API reference for Video4Linux2. Here is an article series to get acquainted with it.

The particular section for the RDS API is here. This page provides information about how to get an update about whether RDS data is available:

Whether an RDS signal is present can be detected by looking at the rxsubchans field of struct v4l2_tuner: the V4L2_TUNER_SUB_RDS will be set if RDS data was detected.

SDR RDS decoder DSP in Gnu Radio Companion

Although it's not an official API I found one last small project that might be worth looking into:

Here are some more radio related projects worth looking into.


It may be worth looking into whether the GENIVI consortium (http://www.genivi.org/) has a standard application for this yet. They're developing standards of this sort specifically for automotive "infotainment" purposes, and this seems like it would fall within their area of standardization.

Unfortunately, they don't seem to publish their stuff publicly, so you may need to ask around or send them an email directly.


How about GNU Radio? They have hardware support for lots of software defined radio components, and a data flow easily connected via GUI with their "GNU Radio Companion" (GRC).

They use Python and C++ APIs that can be accessed for your UI layer. There are a number of examples to be found online.