Working With I2S-Compatible FM Tuners

While the Internet is a great place to get access to any music or audio you can dream of, there’s still a place for broadcast radio. [mit41301] has recently been exploring implementing a simple FM tuner chip in various projects.

The chip in question is the RDA7088, which is designed to require the bare minimum in external components, and is available in a compact SOP16 package. As per the datasheet, it was intended for use in applications like portable radios, PDAs, cell phones, and MP3 players.

[mit41301]’s first attempt involved using the chip as a simple tuner, hooked up to a PIC10F200 for control. Investigation revealed it was capable of outputting digital audio via I2S, while being commanded via I2C. By default, it spits out audio at a low sample rate of 8 kHz, but reconfiguration will jump that up to 44.1 or 48 kHz. Piping that digital I2S stream out to a DAC then delivers analog output that can be fed to an amplifier. The build also got remote control, with the PIC handling decoding IR signals and outputting commands to the radio chip.

Following this success, [mit41301] then went further, hooking up an ESP-01 to the chip to try and get RDS going. If you’re unfamiliar with the Radio Data System, it’s a way for short textual messages to be sent out by FM broadcasters. In addition to the duties carried out by the PIC module, the ESP-01 is also charged with receiving RDS data from the RDA7088, and outputting it to a display.

While using such chips is routine in industry, it’s always great to see a DIY guide to interfacing with specific hardware. If you want to integrate FM radio into your own projects, the RDA7088 is a simple and easy way to do so. We’ve seen similar work before, adding FM radio to the Raspberry Pi.

9 thoughts on “Working With I2S-Compatible FM Tuners

  1. Awesome! Sounds like a project I’d love to investigate! I’d love to have a digitally tuned radio with RDS, and even (if possible) implement PVR functionality. I²S sounds like it might actually work for something like that!

  2. God the YT video has been added to that forsaken YT Kids thing which makes me unable to save it into any of my playlist! God I HATE YT Kids and wish that the inventor of the whole concept keeled over!
    With that being said this is a really neat project.

    1. Don’t blame the uploader, it’s Youtube’s stupid wording (although if you haven’t learned after uploading a few videos then shame on you too).

      “Suitable for kids?”

      Ticking that makes it a kids video, not, as one might expect, make it visible to kids.

      Why not “Intended for kids?” or “Adults only?”. Would make much more sense.

      1. Where did I blame the uploader or even imply that this is their fault? No, I place the full blame on YT, an arrogant subsidiary of a yet even more arrogant corporation. They didn’t have to cripple the whole feature like that, but they did, because they’re bastards.

  3. Since 2009 there are many FM tuners from Silabs, Quintic and RDA capable of I2S output. There are many RDA Microelectronics FM tuner chips both in SOP16 and QFN packages are capable of I2S and RDS. Many members of RDA5802, RDA5807, RDA5820 family supports I2S.

    But RDA7088 is never intended for I2S, RDS or I2C bus compatible as per datasheet.

    So this is kind of pure hardware HACK. This was the main reason to publish in

    Thankyou and Cheers!

  4. I wonder how these compare to a good car radio? Three stage tuner with everything running for full gain DX worthy and yet able to keep those local blasters in their own channel. I will stick with a Pioneer tuner. Somebody please do a shootout with a quality tuner. It shouldn’t be too hard to hack the data line between the panel and the board in said tuner and have control.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.