Skip to content
No description, website, or topics provided.
C++ C Makefile
Branch: master
Clone or download
markondej Merge pull request #35 from clerie/patch-1
Additional ALSA tools info
Latest commit fa7ebc0 Jun 20, 2016
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore add simple play script Aug 7, 2015 sound-cards and structure text Jun 17, 2016
audio_format.h Memory leak fixes Dec 16, 2015
error_reporter.cpp Memory leak fixes Dec 16, 2015
main.cpp Memory leak fixes Dec 16, 2015
makefile Improve makefile a bit Mar 16, 2016
pcm_wave_header.h Memory leak fixes Dec 16, 2015
star_wars.wav Raspberry Pi 2 support Apr 1, 2015
stdin_reader.cpp Memory leak fixes Dec 16, 2015
stdin_reader.h Memory leak fixes Dec 16, 2015
transmitter.cpp Fixed optimization issue Feb 2, 2016
transmitter.h Memory leak fixes Dec 16, 2015
wave_reader.cpp Memory leak fixes Dec 16, 2015
wave_reader.h Memory leak fixes Dec 16, 2015


Use Raspberry Pi as FM transmitter. Works on any RPi board.

This project uses the general clock output to produce frequency modulated radio communication. It is based on idea originaly posted here:, but does not use DMA controller in order to distribute samples to output (clock generator),so sound quality is worse as in PiFm project and only mono transmition is available but this makes possible to run it on all kind of boards.

How to use it

To compile this project use commands below:

sudo apt-get install make gcc g++

Then you can use it by typing:

sudo ./fm_transmitter [-f frequency] [-r] filename

WAVE Files

You can open WAVE files or read audio data from stdin, i.e.:

sox star_wars.wav -r 22050 -c 1 -b 16 -t wav - | sudo ./fm_transmitter -f 100.6 -

USB sound-card

To use a USB sound-card type this:

arecord -D hw:1,0 -c1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 -

Some devices have problems with the one up (there is a warning in the terminal like buffer overflow after a few seconds - the transmitting is slow and will stopp), then you can use the following:

arecord -D plughw:1,0 -c1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 100.6 -


Please keep in mind that transmitting on certain frequencies without special permissions may be illegal in your country.

New features

  • works on RPi 1, 2 and 3
  • reads mono and stereo files
  • reads data from stdin
  • based on threads
You can’t perform that action at this time.