0% found this document useful (0 votes)
67 views4 pages

Arduino Radio Library - The Library

This Arduino library allows controlling various FM radio chips to build an open source FM radio. It supports chips like the RDA5807M, TEA5767, SI4703, SI4705, and SI473x. The library provides common functions for controlling things like frequency, volume, stereo/mono mode. It is implemented as separate chip-specific libraries that share a common interface. Examples are included to demonstrate different configurations using optional components like LCD displays.

Uploaded by

jovicarad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views4 pages

Arduino Radio Library - The Library

This Arduino library allows controlling various FM radio chips to build an open source FM radio. It supports chips like the RDA5807M, TEA5767, SI4703, SI4705, and SI473x. The library provides common functions for controlling things like frequency, volume, stereo/mono mode. It is implemented as separate chip-specific libraries that share a common interface. Examples are included to demonstrate different configurations using optional components like LCD displays.

Uploaded by

jovicarad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

Arduino Radio Library - The Library

This project is about controlling an FM radio chips by using an Arduino and some optional components like an LCD
display, rotary encoder, a LCD+Keyboard shield and Ethernet Shield to build a standalone radio. It comes with several
examples for different configurations.

Content of this article:


 Part 1: The Arduino Library
 Part 2: The Examples
 Part 3: The Wiring
 Part 4: The Web Radio

The Radio library


The core software part of this project is the Arduino radio library that enables controlling radio chips for receiving FM broadcast
audio signals.
Currently the following chips are supported:
 The RDA5807M from RDA Microelectronics.
 The TEA5767 from NXP.
 The SI4703 from Silicon Labs.
 The SI4705 from Silicon Labs.
 The SI473x from Silicon Labs.

Download the project files:


The source files for this library is maintained on github in the repository https://github.com/mathertel/Radio.
Here you can browse the source code and a DOXYGEN documentation is available at http://mathertel.github.io/Radio.
The direct download link is RadioLibrary.zip

Introduction
This Arduino library implements the software to control some FM radio chips to build the core part of an Open Source FM radio by
using an Arduino board.
In fact it is a collection of multiple libraries and samples because there are several chips and breakout boards available these days
that can be used to receive FM signals and output an audio signal. I provide a very simple sample for every adapted chip that may
help you to start with your setup and some more feature complete sketches that introduce other hardware components like LCD
panels and other IO.
Because most of the chips are made for integration into mobile phones or car radios the chips themselves are really small. If you
don't have the soldering equipment for these chips you should look out for breakout boards, sometimes together with audio
amplifiers for headphones os speakers. The ones I found and listed above
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 (for example SI4705.h+SI4705.cpp) share the same interface (defined by the radio.h+radio.cpp library) so it is
possible to exchange them when not using one of the chip specific functions.
While implementing the first libraries I found several functionalities being useful for all the chips so these are implemented in the
base class too.
However not all chips support the same functionality. For example setting the volume on the TDA chip will not work because this
chip doesn't support it. If you query for the result of setting the columns you will always get the default volume level 15 back.
Other functions are implemented different in different chips. For example the SI4705 chip supports 64 levels of volume while the
RDA only supports 16. To make the libraries compatible the specific implementation normalizes this to the 0 to 15 range. If you like
to use the fine tuning for the specific chip you can use the setVolumeX function instead.

API documentation
The source code of the library is filled with the low level documentation explaining briefly every function. By using the DOXYGEN
tool this information ex extracted into a separate documentation that you can find on github too: http://mathertel.github.io/Radio/html
Choose the chip you have in your setup and see what functions the library supports.
Feature   TEA5767 RDA5807M SI4703 SI4705
RADIO band = FM X X X X
band =
FMWORLD
freq X X X
mono X X X X
stereo Decode stereo signal X X X X
RSSI signal strength 0 - 64 0 - 64
indicator
SNR signal noise ratio 0 – 127
softmute X X X
mute X X X X
Seek
FM Grid 50 kHz
Audio volume Supported number of 0 - 15 0 - 15 0 - 63
volume levels
bassboost Boost bass X - -
frequencies
RDS Data Decode RDS signal - X X X
Errors Provide information on - - X X
RDS signal errors

ChangeLog
 06.04.2015 First published version.
 12.05.2015 stable version with additional documentation.
Continue reading in: Part 2: The Examples
Sitemap
Impressum
License Agreement

Imprint  License  This content is part of the http://www.mathertel.de/ web site.

Ардуино Радио Либрари - Библиотека


Овај пројекат се односи на контролу ФМ радио чипова коришћењем Ардуина и неких опционих компоненти као што
су ЛЦД екран, ротациони енкодер, ЛЦД+тастатурни штит и Етхернет штит за прављење самосталног радија. Долази
са неколико примера за различите конфигурације.

Садржај овог чланка:


 Део 1: Ардуино библиотека
 Део 2: Примери
 Део 3: Ожичење
 Део 4: Веб радио

Библиотека радија
Основни софтверски део овог пројекта је Ардуино радио библиотека која омогућава контролу радио чипова за пријем ФМ
емитованих аудио сигнала.
Тренутно су подржани следећи чипови:
 РДА5807М из РДА Мицроелецтроницс.
 ТЕА5767 из НКСП-а.
 СИ4703 из Силицон Лабс.
 СИ4705 из Силицон Лабс.
 СИ473к из Силицон Лабс.

Преузмите датотеке пројекта:


Изворне датотеке за ову библиотеку се одржавају на гитхуб-у у спремишту хттпс ://гитхуб.цом/матхертел/Радио .
Овде можете да прегледате изворни код, а ДОКСИГЕН документација је доступна на хттп: //матхертел.гитхуб.ио/Радио .
Директна веза за преузимање је РадиоЛибрари.зип

Увод
Ова Ардуино библиотека имплементира софтвер за контролу неких ФМ радио чипова за изградњу језгра ФМ радија
отвореног кода помоћу Ардуино плоче.
У ствари, то је колекција више библиотека и узорака јер данас постоји неколико чипова и плоча за разбијање које се могу
користити за примање ФМ сигнала и излаз аудио сигнала. Дајем веома једноставан узорак за сваки прилагођени чип који
вам може помоћи да почнете са вашим подешавањем и још неке садрже комплетне скице које уводе друге хардверске
компоненте као што су ЛЦД панели и други ИО.
Пошто је већина чипова направљена за интеграцију у мобилне телефоне или ауто радио, сами чипови су заиста мали. Ако
немате опрему за лемљење за ове чипове, требало би да пазите на плоче за разбијање, понекад заједно са аудио
појачалима за слушалице или звучнике. Оне које сам пронашао и навео горе
Сви су способни за пријем ФМ радио станица у стерео режиму са европским и америчким подешавањима и могу се
контролисати коришћењем И2Ц магистрале. Међутим, постоје разлике у осетљивости и квалитету и добром пријему РДС
информација са станица.
За сваки од ових чипова имплементирана је посебна библиотека која зна како да комуницира са чипом користећи И2Ц
магистралу и библиотеку жица. Све ове библиотеке деле заједничку базу, радио библиотеку, тако да се сав заједнички код
имплементира само једном.
Све библиотеке (на пример СИ4705.х+СИ4705.цпп) деле исти интерфејс (дефинисан од стране библиотеке
радио.х+радио.цпп) тако да их је могуће размењивати када се не користи једна од функција специфичних за чип.
Док сам имплементирао прве библиотеке, открио сам неколико функционалности које су корисне за све чипове, тако да су и
оне имплементиране у основној класи.
Међутим, не подржавају сви чипови исту функционалност. На пример, подешавање јачине звука на ТДА чипу неће радити
јер га овај чип не подржава. Ако тражите резултат подешавања колона, увек ћете добити подразумевани ниво јачине звука
15 назад.
Остале функције су другачије имплементиране у различитим чиповима. На пример, СИ4705 чип подржава 64 нивоа јачине
звука, док РДА подржава само 16. Да би библиотеке биле компатибилне, специфична имплементација нормализује ово на
опсег од 0 до 15. Ако желите да користите фино подешавање за одређени чип, уместо тога можете користити функцију
сетВолумеКс.
АПИ документација
Изворни код библиотеке је испуњен документацијом ниског нивоа која укратко објашњава сваку функцију. Коришћењем
ДОКСИГЕН алата ове информације су екстраховане у посебну документацију коју можете пронаћи и на гитхуб-у:
хттп: //матхертел.гитхуб.ио/Радио/хтмл
Изаберите чип који имате у свом подешавању и погледајте које функције библиотека подржава.
одлика   ТЕА5767 РДА5807М СИ4703 СИ4705
РАДИО опсег = ФМ Икс Икс Икс Икс
опсег = ФМВОРЛД
фрек Икс Икс Икс
моно Икс Икс Икс Икс
Стерео Декодирајте стерео сигнал Икс Икс Икс Икс
РССИ индикатор јачине сигнала 0 - 64 0 - 64
СНР однос сигналног шума 0 – 127
софтмуте Икс Икс Икс
немо Икс Икс Икс Икс
Сеек
ФМ Грид 50 кХз
Аудио обим Подржани број нивоа јачине звука 0 - 15 0 - 15 0 - 63
бассбоост Појачајте бас фреквенције Икс - -
РДС Подаци Декодирајте РДС сигнал - Икс Икс Икс
Грешке Наведите информације о - - Икс Икс
грешкама РДС сигнала

ЦхангеЛог
 06.04.2015 Прва објављена верзија.
 12.05.2015 стабилна верзија са додатном документацијом.
Наставите са читањем у: Део 2: Примери

You might also like