<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>shadowe1ite - pi</title>
    <subtitle>Welcome to my website — this is the place where I share all my work, experiments, notes, and random things I’m building or breaking along the way.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://hacker.is-a.dev/tags/pi/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://hacker.is-a.dev"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-02-18T22:23:00+05:30</updated>
    <id>https://hacker.is-a.dev/tags/pi/atom.xml</id>
    <entry xml:lang="en">
        <title>How I Hijacked FM Radio Using a Raspberry Pi Zero</title>
        <published>2026-02-18T00:00:00+00:00</published>
        <updated>2026-02-18T22:23:00+05:30</updated>
        
        <author>
          <name>
            shadowe1ite
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://hacker.is-a.dev/blog/how-i-hacked-my-radio-using-a-rasberry-pi-zero/"/>
        <id>https://hacker.is-a.dev/blog/how-i-hacked-my-radio-using-a-rasberry-pi-zero/</id>
        
        <content type="html" xml:base="https://hacker.is-a.dev/blog/how-i-hacked-my-radio-using-a-rasberry-pi-zero/">&lt;iframe
	class=&quot;youtube-embed&quot;
	src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;JtpU2fvGfCg &quot;
	allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot;
	referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;
&lt;&#x2F;iframe&gt;
&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;&#x2F;h2&gt;
&lt;p&gt;This guide shows how to set up &lt;strong&gt;PiFmAdv&lt;&#x2F;strong&gt; on a Raspberry Pi and broadcast FM radio using GPIO.&lt;&#x2F;p&gt;
&lt;blockquote class=&quot;markdown-alert-caution&quot;&gt;
&lt;p&gt;FM broadcasting may be illegal or regulated in your country.
This demonstration is for educational and experimental purposes only.
Keep transmission power low, range short, and avoid interfering with licensed stations.
You are responsible for complying with local laws and regulations.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;requirements&quot;&gt;Requirements&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Raspberry Pi: Zero, or Zero 2
&lt;em&gt;(used here: Raspberry Pi Zero 2 W)&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Jumper wire &lt;em&gt;(one is enough for the antenna)&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;li&gt;PC&#x2F;Laptop with any GNU&#x2F;Linux OS &lt;em&gt;(I use Arch, btw)&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;li&gt;USB adapter and microphone &lt;em&gt;(optional, for mic input)&lt;&#x2F;em&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;setup-pifmadv&quot;&gt;Setup PiFmAdv&lt;&#x2F;h2&gt;
&lt;p&gt;First, install &lt;strong&gt;Raspberry Pi OS&lt;&#x2F;strong&gt; on your Pi.
This guide skips OS installation—there are plenty of guides available.&lt;&#x2F;p&gt;
&lt;p&gt;Access your Raspberry Pi terminal.
Here, SSH is used.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;install-dependencies&quot;&gt;Install dependencies&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; apt update&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -y&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; apt install git libsndfile1-dev libsoxr-dev&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -y&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;build-pifmadv&quot;&gt;Build PiFmAdv&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;git&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; clone https:&#x2F;&#x2F;github.com&#x2F;Miegl&#x2F;PiFmAdv.git&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt;cd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; PiFmAdv&#x2F;src&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;make&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; clean&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;make&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;install-locally&quot;&gt;Install locally&lt;&#x2F;h3&gt;
&lt;p&gt;Rename and copy the binary to a local bin directory for easy access:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -p&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; ~&#x2F;.local&#x2F;bin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;cp&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; pi_fm_adv ~&#x2F;.local&#x2F;bin&#x2F;pifm&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Add it to your &lt;code&gt;PATH&lt;&#x2F;code&gt; (based on your shell):&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F97583;&quot;&gt;export&lt;&#x2F;span&gt;&lt;span&gt; PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F97583;&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;$PATH&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt;:&lt;&#x2F;span&gt;&lt;span&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt;&#x2F;.local&#x2F;bin&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Reload your shell or source the file.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;antenna-setup&quot;&gt;Antenna Setup&lt;&#x2F;h2&gt;
&lt;p&gt;Connect a jumper wire to &lt;strong&gt;GPIO4&lt;&#x2F;strong&gt; on the Raspberry Pi.
This wire acts as the FM antenna.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;hacker.is-a.dev&#x2F;blog&#x2F;how-i-hacked-my-radio-using-a-rasberry-pi-zero&#x2F;20260220-133528.webp&quot; alt=&quot;GPIO4 on Raspberry Pi Zero 2 W&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;bws428.github.io&#x2F;assets&#x2F;images&#x2F;pi-zero-w-gpio-pinout.png&quot; alt=&quot;Raspberry Pi Zero W GPIO Pinout&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Use the pin diagram above to identify the correct pin.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;broadcasting-radio-signals&quot;&gt;Broadcasting radio signals&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;using-an-audio-file&quot;&gt;using an audio file&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; pifm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -f 103.2 --ps&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; &amp;quot;DawnFM&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; --rt&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; &amp;quot;SongName&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -a&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; &amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;$HOME&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt;&#x2F;Music&#x2F;song.wav&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;using-a-microphone&quot;&gt;Using a microphone&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;Connect your microphone (USB dongle or USB mic).&lt;&#x2F;li&gt;
&lt;li&gt;Find the microphone device ID:&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;arecord&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -l&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;You’ll see something like:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;card 1: USB [USB Audio], device 0: USB Audio [USB Audio]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;That means:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;card = 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;device = 0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;So the mic ID becomes:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;plughw:1,0&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Test the mic (important):&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;arecord&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -D&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; plughw:1,0&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -f&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; S16_LE&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -r 22050&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; test.wav&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;aplay&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; test.wav&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;If you hear your voice, the mic is set correctly.&lt;&#x2F;p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;Broadcast live audio:&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;arecord&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -d 0 -c 1 -f&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; S16_LE&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -r 22050 -t&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; wav&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -D&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; plughw:1,0 -&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F97583;&quot;&gt; |&lt;&#x2F;span&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; pifm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -f 103.2 --ps&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; &amp;quot;DawnFM&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; --rt&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; &amp;quot;Live Broadcast&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -a&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; -&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Replace &lt;code&gt;plughw:1,0&lt;&#x2F;code&gt; with your mic’s actual card and device numbers.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;broadcasting-mpd-music-over-fm&quot;&gt;Broadcasting MPD Music over FM&lt;&#x2F;h2&gt;
&lt;p&gt;This part is for when your music is playing on &lt;strong&gt;another computer&lt;&#x2F;strong&gt; and you want the Raspberry Pi to rebroadcast it over FM.&lt;&#x2F;p&gt;
&lt;p&gt;MPD runs on your main machine, exposes an audio stream over HTTP, and the Pi simply listens to that stream and transmits it using PiFmAdv.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;mpd-configuration&quot;&gt;MPD configuration&lt;&#x2F;h3&gt;
&lt;p&gt;Add this block to your &lt;code&gt;mpd.conf&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;music_directory &amp;quot;~&#x2F;Music&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;auto_update &amp;quot;yes&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;bind_to_address &amp;quot;any&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;port &amp;quot;6600&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;restore_paused &amp;quot;yes&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;audio_output {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    type &amp;quot;httpd&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    name &amp;quot;Radio Stream&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    encoder &amp;quot;flac&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    port &amp;quot;5555&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    bind_to_address &amp;quot;0.0.0.0&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    always_on &amp;quot;yes&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    mixer_type &amp;quot;software&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    tags &amp;quot;yes&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    format &amp;quot;44100:16:2&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This tells MPD to:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;keep playing even with no listeners&lt;&#x2F;li&gt;
&lt;li&gt;expose a live audio stream on port &lt;code&gt;5555&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;include track metadata&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Restart MPD after editing:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;systemctl&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; --user&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; restart mpd&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;streaming-mpd-into-pifmadv&quot;&gt;Streaming MPD into PiFmAdv&lt;&#x2F;h3&gt;
&lt;p&gt;Now use your favorite music mpd client to play music here i am using euphonica&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;hacker.is-a.dev&#x2F;blog&#x2F;how-i-hacked-my-radio-using-a-rasberry-pi-zero&#x2F;20260220-152000.webp&quot; alt=&quot;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;On the Raspberry Pi, connect to the MPD stream and broadcast it:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #E1E4E8; background-color: #24292E;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt;ffmpeg&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -re \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt;  -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 2 \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt;  -i&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; http:&#x2F;&#x2F;192.168.1.75:5555&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt;  -ac 2 -ar 44100 -f&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; wav -&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; \&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F97583;&quot;&gt;|&lt;&#x2F;span&gt;&lt;span style=&quot;color: #B392F0;&quot;&gt; sudo&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; pifm&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -f 103.2 --ps&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; &amp;quot;DawnFM&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; --rt&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; &amp;quot;Stereo Stream&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #79B8FF;&quot;&gt; -a&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9ECBFF;&quot;&gt; -&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;What’s happening here, in plain terms:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;MPD sends audio over your network&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;ffmpeg&lt;&#x2F;code&gt; keeps the stream smooth and converts it to WAV&lt;&#x2F;li&gt;
&lt;li&gt;PiFmAdv pushes it out over FM&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;As long as MPD is playing, your radio is live.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
