An Arduino library to control radio chips like SI4703, SI4703, RDA5807M, TEA5768.

View project on GitHub

The documentation for the Radio libraries can be found at


In the mathertel / Radio repository on you find an Arduino library for implementing an FM receiver using one of the supported radio chips for receiving FM broadcast audio signals.

There are various examples included that show using the library using different hardware setups.

The documentation is still not perfect but the programming is quiet stable right now so you can give it a try.


A more detailed article is availabe at

The documentation for the libraries in DOXYGEN style can be found at

Currently the following chips are supported:

  • The SI4703 from Silicon Labs
  • The SI4705 from Silicon Labs
  • The TEA5767 from NXP
  • The RDA5807 from RDA Microelectronics

They all are capable for receiving FM radio stations in stereo with European and US settings and can be controlled by using the I2C bus. However there are differences in the sensitivity and quality and well on receiving RDS information from the stations.

For each of these chips a specific library is implemented that knows how to communicate with the chip using the I2C bus and the wire library. These libraries all share a common base, the radio library so that all the common code is only implemented once in there:

All the libraries share the same interface (defined by the radio library) so it is possible to exchange them when not using one of the chip specific functions.


Within the Arduino library you can find examples that implement different scenarios to control the radio chips:

  • The basic examples only startup the chips and set a static station and volume.
  • The SerialRadio example needs only an arduino and uses the Serial in- and output to change the settings and report information.
  • The LCDRadio example is similar to SerialRadio but also populates some information to an attached LCD.
  • The LCDKeypadRadio example uses the popular LCDKeypad shield.
  • The WebRadio example is the most advanced radio that runs on an Arduino Mega with an Ethernet Shield and an rotator encoder. You can also control the radio by using a web site that is available on the Arduino.