Raspberry Pi Internet Radio with MoOde: Setup and Configuration Guide

Wifi Internet Radio Player With Raspberry Pi

A Raspberry Pi internet radio player running MoOde Audio streams thousands of stations over WiFi, plays local FLAC files, and integrates Spotify Connect, all managed through a web interface from any browser on the network. MoOde is available directly in Raspberry Pi Imager under Media Player OS, which makes the install significantly simpler than it used to be. This guide covers the complete setup from flashing to streaming, audio output options including USB and I2S DACs, adding custom radio streams, Snapcast multi-room audio, and troubleshooting the common failure points.

I had a Tangent Quattro internet radio that I used every day. When Qualcomm shut down the Reciva aggregator in 2021 it became a paperweight overnight. After trying several Raspberry Pi audio images that were either abandoned or paywalled, MoOde was the one that stuck. It is actively maintained, free, and does not push upgrades to unlock features that should work out of the box.

Last tested: MoOde Audio 9.1.1 | May 2025 | Raspberry Pi 4 Model B (4GB) | HiFiBerry DAC+ Standard, USB DAC (FiiO D03K), Spotify Connect, Snapcast 0.28

Key Takeaways

  • MoOde is available directly in Raspberry Pi Imager under Media Player OS. There is no need to download a separate image file and use the “custom image” path. Select Raspberry Pi Imager, choose your Pi model, navigate to Media Player OS, select MoOde, and flash. This is the correct current install method.
  • An I2S HAT DAC (HiFiBerry, Allo, or similar) provides better audio quality than a USB DAC at the same or lower price, and eliminates the Pi’s noisy onboard audio path entirely. The built-in 3.5mm jack is adequate for testing but not for a permanent listening setup. MoOde supports most I2S DAC HATs by name from its Audio Config dropdown.
  • Spotify Connect on MoOde requires a Spotify Premium account. The free tier does not support Connect. TIDAL integration requires the UPnP renderer path or a compatible TIDAL Connect plugin; native TIDAL Connect is not available in MoOde’s base install.

Hardware and Installing MoOde for Raspberry Pi Internet Radio

Pi 4 (2GB or 4GB) is the recommended board for a permanent MoOde installation. It handles audio processing, Spotify Connect, and Snapcast simultaneously without CPU contention. Pi 3B+ works and is a reasonable choice for a dedicated radio-only build. Pi 5 runs MoOde but the performance headroom is overkill for audio streaming alone. Pi Zero 2W works for headless radio-only builds where power consumption matters, but its single-core thermal management causes occasional dropouts during sustained playback on older Zero hardware.

Hardware checklist: Raspberry Pi 4 (2GB minimum). Official 5V/3A USB-C PSU for Pi 4; do not use a 2.5A supply, which is the Pi 3 requirement and will cause brownout reboots on Pi 4 under audio load. microSD card, 8GB minimum. Network: Ethernet is preferred for stable streaming; WiFi works but introduces occasional buffering on congested 2.4GHz networks. Audio output: 3.5mm for testing, USB DAC or I2S HAT DAC for permanent use. Amplifier or powered speakers.

Open Raspberry Pi Imager and select your Pi model. Under “Choose OS,” navigate to Media Player OS and select MoOde Audio Player. Flash to the SD card. The Imager advanced settings (gear icon) allow setting a hostname and enabling SSH, but MoOde does not require SSH for normal operation. The web interface handles all configuration.

Raspberry Pi internet radio with MoOde setup flow: flash via Imager, first boot web UI, audio config, radio station setup, and extras

Insert the card and power on. MoOde boots to its own network access point on first boot if no Ethernet is connected, or joins the network over Ethernet automatically. First boot takes 2 to 3 minutes as MoOde expands the filesystem and initialises its database.

Expected result: Navigating to http://moode.local from any browser on the same network shows the MoOde playback interface. If moode.local does not resolve (common on Windows networks without mDNS), use the Pi’s IP address instead. Find it in your router’s DHCP client list or with a network scanner. Default login: username admin, password moodeaudio. Change this immediately in Moode > System > Security.

MoOde Web UI and Network Setup

The MoOde web interface runs in any browser. The main screen shows the current track, playback controls, and a cover art display. The hamburger menu in the top left accesses all configuration sections: Audio, Network, Sources, System, and the full radio station library.

Configure WiFi if not using Ethernet: navigate to Moode > Network, select your SSID, and enter the password. After connecting over WiFi the Ethernet cable can be removed. For a permanent installation, a DHCP reservation on the router is more reliable than setting a static IP through MoOde’s network interface, because a reservation survives MoOde reinstalls without reconfiguration.

If a static IP through the MoOde interface is preferred: navigate to Moode > Network > Network Interface, set IP method to Manual, and enter an address within your router’s subnet. Apply and reboot. Verify the new address by navigating to it in the browser before removing the old bookmark.

Expected result: The MoOde interface loads consistently at the assigned address or hostname. The Now Playing screen shows the network connection type (WiFi or Ethernet) and signal strength for WiFi connections. If the interface becomes unreachable after a network change, connect a display and keyboard to the Pi and check the network status, or connect via SSH if it was enabled during flash.

Audio Output: DACs, Bluetooth, and Sound Quality

MoOde supports four audio output paths: the Pi’s built-in analog output (3.5mm or HDMI), USB DAC, I2S DAC HAT, and Bluetooth. The built-in analog output is adequate for testing but has audible noise from the Pi’s switching power circuitry. It is not recommended for a permanent listening setup.

A USB DAC is the simplest upgrade. Plug it into a USB port, open Moode > Audio > Output Device, and select the DAC from the dropdown. Most class-compliant USB audio devices (FiiO, AudioQuest DragonFly, Topping) are detected automatically without driver installation. USB DACs draw power from the Pi’s USB port; use a powered USB hub if the DAC has a separate power input and the Pi’s port cannot supply enough current.

An I2S DAC HAT attaches to the 40-pin GPIO header and bypasses the USB bus and the Pi’s internal audio path entirely. This produces lower jitter and better measured performance than USB at the same price point. MoOde has native support for HiFiBerry DAC+, Allo Boss, IQaudio DAC Pro, and many others. To configure: attach the HAT, open Moode > Audio > Output Device, select the HAT model from the I2S Audio Device list, and restart. MoOde loads the correct device tree overlay automatically. For dedicated audio HAT details, see Raspberry Pi HATs: Types, Compatibility, and Setup Guide.

Bluetooth audio output lets MoOde stream to Bluetooth speakers or headphones. Navigate to Moode > Audio > Bluetooth, enable Bluetooth output, put the speaker in pairing mode, and select it from the discovered devices list. Bluetooth audio on MoOde uses A2DP. Latency is approximately 100-300ms depending on the codec supported by the speaker, which is noticeable with video but irrelevant for radio and music.

For multi-room audio setups where MoOde feeds HiFiBerry-equipped Pis in different rooms, the MoOde companion guide at Multi-Room Audio with Snapcast on Raspberry Pi covers the Snapcast client/server configuration in detail.

Configuring Raspberry Pi Internet Radio Stations and Local Music

MoOde ships with an extensive library of pre-configured internet radio stations organised by genre and country. Access them through the Radio tab in the left menu. Click any station to start streaming. The current station’s bitrate and codec display in the Now Playing panel.

To add a custom Raspberry Pi internet radio station that is not in MoOde’s default library: navigate to Radio > Add Station. Enter the station name and the stream URL. Most internet radio streams use M3U playlist files (ending in .m3u or .m3u8) or PLS playlist files. PLS files need to be opened to extract the actual stream URL inside. Paste the direct stream URL, not the playlist wrapper. Test the URL in VLC or a browser first to confirm it resolves to an audio stream rather than a webpage. Save and the station appears in the custom stations list.

For local music files: connect a USB drive formatted as FAT32 or ext4. MoOde detects and mounts it automatically and adds the contents to the Library. For a network share (NAS or Samba server): go to Sources > Add Network Share, enter the server IP, share name, and credentials. MoOde scans the share and indexes the files. FLAC, MP3, AAC, and WAV are all supported. For the Samba NAS setup that serves the music library, see Time Machine Raspberry Pi NAS Samba: Complete Setup Guide.

Multi-Room Audio and Streaming Services

Snapcast provides synchronised multi-room playback across multiple Raspberry Pi units. One Pi runs as the Snapcast server (usually the one connected to the main speakers), and additional Pis run as clients. All clients play the same audio in tight synchronisation. Enable Snapcast server in Moode > Audio > Snapcast on the primary Pi. On each secondary Pi running MoOde, enable Snapcast client and point it to the server’s IP address. The synchronisation offset is adjustable per client to compensate for speaker placement differences.

Spotify Connect streams audio directly from the Spotify app on your phone or computer to MoOde. Enable it in Moode > Audio > Spotify Connect. Once enabled, MoOde appears as a Spotify Connect device in the Spotify app under Available Devices. Select it and playback transfers to the Pi. Spotify Connect requires a Spotify Premium account. The free tier does not support Connect and the MoOde device will not appear for free accounts.

UPnP/DLNA renderer mode allows any UPnP-capable app or media server on the network to push audio to MoOde. Enable it in Moode > Audio > UPnP. Bubble UPnP on Android, mConnect on iOS, and Foobar2000 on Windows all work as UPnP controllers. TIDAL can stream through MoOde via a UPnP controller app that supports TIDAL integration such as Bubble UPnP with a TIDAL account linked.

DSP features in MoOde include a parametric equalizer, crossfeed for headphone listening, and audio resampling. Access them in Moode > Audio > DSP. The parametric EQ is useful for compensating for room acoustics or speaker response curves. Crossfeed simulates speakers when listening on headphones by blending a small amount of each channel into the other. Resampling upsamples the audio stream to the DAC’s maximum supported sample rate; whether this is audible or beneficial is hardware and source material dependent.

Troubleshooting MoOde on Raspberry Pi

No audio output. Go to Moode > Audio > Output Device and confirm the correct device is selected. If using a USB DAC, confirm it is detected by checking the device list. Unplug and replug the DAC if it does not appear. For I2S HATs, confirm the correct HAT model is selected in the I2S Audio Device field. Check volume in the MoOde playback bar; it may be at zero. Reboot the Pi from Moode > System > Restart if audio was working previously and stopped.

Buffering on internet radio streams. Switch from WiFi to Ethernet for the most reliable fix. If Ethernet is not practical, move the Pi closer to the router or switch to the 5GHz band if your router supports it. Lower bitrate stations buffer less: most BBC streams offer 128 kbps and 320 kbps variants; use 128 kbps if the higher bitrate buffers. Some stations use AAC at 64 kbps which sounds better than 128 kbps MP3 and buffers less.

MoOde web UI unreachable. Check that the Pi is powered and the network LED on the Ethernet port is lit. Try the IP address directly if moode.local does not resolve (Windows without Apple Bonjour installed does not resolve .local hostnames by default). If the Pi’s IP has changed, scan the network with Fing or check the router’s DHCP client table. If SSH was enabled during flash, log in and run ip addr show eth0 or ip addr show wlan0 to find the current address.

Spotify Connect device not appearing. Confirm Spotify Premium is active on the account. Confirm Spotify Connect is enabled in MoOde Audio settings and that MoOde has rebooted after enabling it. Both the phone running Spotify and the Pi must be on the same network. If the device appears but immediately disconnects, check that the Pi’s clock is synchronised (MoOde uses NTP; a time mismatch causes Spotify authentication failures).

I2S DAC not producing sound after selection. Confirm the HAT is physically seated correctly on the 40-pin header. In MoOde, after selecting the I2S device, a restart is required for the device tree overlay to load. After restart, go to Audio Output Device and confirm the I2S device appears and is selected. If the DAC still produces no sound, check the HAT manufacturer’s documentation for any jumper settings required for the specific Pi model.

FAQ

Which Raspberry Pi model is best for a MoOde internet radio player?

Pi 4 (2GB or 4GB) is the best all-around choice. It handles simultaneous Spotify Connect, Snapcast, and DSP processing without performance issues. Pi 3B+ works well for radio-only builds without Spotify or multi-room features. Pi Zero 2W is viable for a headless, power-efficient single-room radio but may drop audio occasionally during high-CPU events. Pi 5 works but its extra power draw over Pi 4 is not justified for an audio streaming use case.

What is the best audio DAC for Raspberry Pi internet radio with MoOde?

For most users, the HiFiBerry DAC+ Standard I2S HAT is the best value. It provides clean stereo line output, costs around $35, and is natively supported in MoOde’s device list with no manual configuration. The Allo Boss DAC is the next step up for audiophiles. For a simpler setup without HAT installation, any class-compliant USB DAC (FiiO D03K at $20 is a reliable example) plugs in and works immediately. Avoid the Pi’s built-in 3.5mm jack for anything beyond initial testing.

How do I add custom internet radio stations to MoOde?

Navigate to the Radio tab in the MoOde left menu and select Add Station. Enter the station name and the direct stream URL. The URL must point to the actual audio stream, not a webpage or playlist wrapper. Most stations publish stream URLs in M3U or PLS format. Open the M3U file in a text editor to extract the raw stream URL inside it, then paste that URL into MoOde. Test the URL in VLC first to confirm it plays before adding it to MoOde.

Does Raspberry Pi internet radio work with Spotify?

Yes, through Spotify Connect, which requires a Spotify Premium account. Enable Spotify Connect in Moode > Audio settings and reboot. MoOde then appears as a playback device in the Spotify app under Available Devices. Select it to transfer playback from your phone or computer to the Pi. The free Spotify tier does not support Connect. If you want Spotify on MoOde without Premium, the older Librespot-based approach works but is not officially supported and may break after Spotify API changes.

How do I set up multi-room audio with MoOde on multiple Raspberry Pis?

Enable Snapcast Server on one Pi (the primary) in Moode > Audio > Snapcast. On each additional Pi running MoOde, enable Snapcast Client and enter the server Pi’s IP address. All clients synchronise to within a few milliseconds of each other. The synchronisation offset per client is adjustable in the Snapcast settings to compensate for speaker placement latency differences. For the full setup procedure with client/server configuration details, see Multi-Room Audio with Snapcast on Raspberry Pi.

References:


About the Author

Chuck Wilson has been programming and building with computers since the Tandy 1000 era. His professional background includes CAD drafting, manufacturing line programming, and custom computer design. He runs PidiyLab in retirement, documenting Raspberry Pi and homelab projects that he actually deploys and maintains on real hardware. Every article on this site reflects hands-on testing on specific hardware and OS versions, not theoretical walkthroughs.

Last tested: MoOde Audio 9.1.1 on Raspberry Pi 4 Model B (4GB). HiFiBerry DAC+ Standard and FiiO D03K USB DAC. Spotify Connect and Snapcast 0.28.

Was this helpful?

Yes
No
Thanks for your feedback!