HowTo: Raspberry Pi – Send FM signals via GPIO pin

Thanks to a technical trick and a suitable script, you can also use the Raspberry Pi - without any additional hardware (apart from a piece of wire) - to send audio files and even entire texts via FM signal. This turns your RaspberryPi into a small radio station.

How to do that and what you have to consider is described in this article


Safety instructions

I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
https://www.nerdiy.de/sicherheitshinweise/

Affiliate links/advertising links

The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂 


Requirements

Before you start with this article you should have prepared the RaspberryPi so that it is accessible via the network and controllable via SSH.

The following three articles describe what needs to be done to prepare the RaspberryPi:
RaspberryPi – setup for nerdiys!
RaspberryPi – The first configuration!
RaspberryPi – Control the RaspberryPi via SSH

Required tool:
-no-

Required material:

In the following list you will find all the parts you need to implement this article.


Important words first

Sending FM signals (and many others) via unauthorized radio transmitters is not legal in Germany. The method shown below allows you to do exactly that. Please use it responsibly. Above all, make sure that you do not disturb any regular radio stations. The method shown is comparatively powerful and also radiates into other frequency ranges. This means that you can very easily incur the displeasure of your neighbors and thus also the Federal Network Agency.


Connecting/Preparing the Antenna

In principle, you can use any wire you have available as an antenna. Only the length is important. The wire must be approx. 20cm long.

In dem unten aufgeführten Beispiel habe ich einen starren Draht genommen(also keine flexible Litze) und daran dann einen Dupont-Stecker aufgecrimpt. Im Prinzip könnt Ihr aber auch jedes andere „einfache“ dupont Kabel dazu verwenden.

The parts required: 20cm long wire, RaspberryPi and (optional) Dupont connector
Close-up of Dupont plug.
This (Dupont plug) is crimped onto the wire...
...and then plugged into GPIO4 of the RaspberryPi.
Close-up of the attached wire on the GPIO strip of the RaspberryPi.

Log in to the RaspberryPi via SSH

To start, you must first log in to the Rasp Pi with Putty via SSH. How to do this is in the article RaspberryPi - Control the RaspberryPi via SSH described.

After entering your username and password you can enter the first commands.

Update package management

The package management in Linux is a "central place" through which various software packages can be installed. In order for this to work reliably, the lists and sources of the package management should be updated before each installation of new packages.

To start the update of the package management you have to enter the following command.
sudo apt-get update && sudo apt-get upgrade
Depending on how long ago your last update of the package management was, this process can now take a while. The lists that refer to the individual package sources are updated first.
After that, the packages themselves are updated. Since additional memory is occupied, you will be asked again for your consent. You have to confirm this with a "J" and "Enter".
Once the update is complete, you will see a small summary of the duration and scope of the update.

Install the required packages

So that you can now send FM signals via the RaspberryPi, you of course have to install some software. Since you have to compile the source code of the FM transmitter yourself, it is necessary to first install a suitable compiler. This can be done with the following command.

sudo apt-get install make gcc g++

Copy and compile software from the GIT repository

Once you have installed the compiler, it is now time to download the actual program code.

To do this, first create a folder in which you can download the source code files. To do this, enter the following command.
mkdir fmTransmitter
Then switch to the created folder with the following command.
cd fm transmitter
Now you can start downloading the source code files with the following command.
git clone https://github.com/markondej/fm_transmitter.git

Sollte das oben angegebene GitHub Repository aus irgendeinem Grund nicht mehr verfügbar sein könnt Ihr auch auf das „Backup“ im Nerdiy-GitHub zurückgreifen. Ihr findet es hier: https://github.com/Nerdiyde/fm_transmitter

By default, the downloaded files are contained in another folder. Change to this folder with the following command.
cd fm_transmitter
Nachdem Ihr in den Ordner gewechselt habt könnt Ihr den Kompiliervorgang starten in dem Ihr den Befehl „make“ ausführt.
make
The compilation process takes a few seconds depending on your computing power.

Command to send the FM signal

The program for sending FM signals is now prepared.

With the following command you can now play a .wav file at the set frequency.

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

Dabei müsst Ihr „frequency“ noch durch die von euch gewünschte Frequenz und filename durch den Dateinamen Eurer .wav-Datei ersetzen.

For example, the following command sends the test.wav file at 102.0 MHz.

sudo ./fm_transmitter -f 102.0 -r test.wav

Send an endless loop of a music file

If you are in the folder of the copied GIT repository, you can use the following command to play the supplied melody and receive it over 102.0 MHz

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

Send text input via FM signal

The following article also describes how you can send a given text into the airwaves via FM signal.

RaspberryPi – output voice output via FM signal


More information

https://github.com/markondej/fm_transmitter
https://github.com/Nerdiyde/fm_transmitter


Have fun with the project

I hope everything worked as described for you. If not or you have questions or suggestions please let me know in the comments. I will then add this to the article if necessary.
Ideas for new projects are always welcome. 🙂

PS Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you think it's cool that I share the information with you, I would be happy about a small donation to the coffee fund. 🙂

Buy Me a Coffee at ko-fi.com       

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert

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