FM Transmitter. Use the Raspberry Pi as an FM transmitter. Works on every Raspberry Pi board.
 
 
Go to file
Marcin Kondej 4b9a19e460
Merge pull request #61 from iBug/master
Fix logical error
2017-11-22 04:00:45 +01:00
.gitignore add simple play script 2015-08-07 13:37:14 +08:00
README.md Update README.md 2016-09-08 11:23:07 -07:00
audio_format.h Memory leak fixes 2015-12-16 21:30:58 +01:00
error_reporter.cpp Memory leak fixes 2015-12-16 21:30:58 +01:00
error_reporter.h Memory leak fixes 2015-12-16 21:30:58 +01:00
main.cpp Fixed issue #46 2016-12-19 18:02:24 +01:00
makefile New universal reader 2016-12-07 12:32:47 +01:00
pcm_wave_header.h Memory leak fixes 2015-12-16 21:30:58 +01:00
star_wars.wav
transmitter.cpp Fix logical error 2017-11-20 22:38:04 +08:00
transmitter.h Refactor 2016-12-15 00:55:21 +01:00
wave_reader.cpp Fixed issue #46 2016-12-19 18:02:24 +01:00
wave_reader.h Fixed issue #46 2016-12-19 18:02:24 +01:00

README.md

fm_transmitter

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: http://icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter, 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++
make

Then you can use it by typing:

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

WAVE Files

You can open WAVE (.wav) 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 this command (there is a warning in the terminal like buffer overflow and after a few seconds - the transmitting gets slow and will stop), 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 -

Law

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