Integrate Old SONOS Devices Into AirPlay

This How To helps Integrate Old SONOS Devices Into AirPlay (e.g. Play:1, Play:3 or PlayBar). Step by step you will be guided to make your older SONOS environment AirPlay ready.

 

Integrate Old SONOS Devices Into AirPlay

Integrate Old SONOS Devices Into AirPlay

 

Index of Integrate Old SONOS Devices Into AirPlay

Background of Integrate Old SONOS Devices Into AirPlay

Older Sonos devices, such as

  • Play:1 
  • Play:3, or
  • PlayBar 

are not ready for AirPlay. There are several options to deal with this situation, including

  • Buy new AirPlay ready SONOS devices
  • Accept you are unable to use Play:1, Play:3 or PlayBar with AirPlay
  • Take action and make them ready for AirPlay

I clearly prefer the 3rd option. To do so, I leverage on a cheap Raspberry 3B+. This because it’s easy to maintain, simple to setup and it is cheap to buy it. Furthermore, its far cheaper than buying new SONOS devices and I can use this Raspberry also for other sorts of automation and making my life easier.

How To Integrate Old SONOS Devices Into AirPlay

We are not the only one’s that want to get running old Play:1, Play:3 and PlayBar with AirPlay. There is a community (and we should be very thankful to it) that developed a nice app that enabled using the old SONOS environment with AirPlay. This How To explains how to get this app running on a Raspberry. For this we go thru three phases:

  1. Setup the Raspberry
  2. Install AirConnect (airupnp) 
  3. Phase Three: Run AirConnect As A Service

Phase One: Install the Raspberry

  1. Download the latest Raspberry Pi Imager
    Raspberry Pi Imager v1.7.3

    Raspberry Pi Imager v1.7.3

     

  2. Install the Raspberry Pi Imager or update your existing Raspberry Pi Imager by the in step 1 downloaded Raspberry Pi Imager
  3. Start the newly installed Raspberry Pi Imager / the updated Raspberry Pi Imager
  4. Choose the OS. In the case of this How To I have selected 
    – Raspberry Pi OS (other)
    – Raspberry Pi OS Lite (32-bit) – A port of Debian Bullseye with no desktop environment
  5. Select the storage device you like to install the Raspberry Pi OS image. Typically a SD Card.
  6. Consider to configure headless SSH before you write the Image. If you do this, you will be able to access the Raspberry Pi without a screen, but securely by SSH. For an easy How To check out this How To Setup Raspberry 3B For Headless SSH
  7. If you run Raspberry (like I do) without a monitor and manage it only remotely by SSH, then you can give Raspberry some additional Memory that is reserved for the GPU. This basically means, we now reduce the 64 MB RAM allocated for the GPU (needed for the graphical user interface) and make it available to the rest of the Raspberry. Run the below command:
    sudo raspi-config

    – Select “4. Performance Options”
    – Select “P2 GPU Memory”
    – Change the “64” to “16”
    – Enter, Finish and Restart
  8. After the Restart, login to your Raspberry leveraging on SSH because we need it for the following second phase. 

Phase Two: Install AirConnect (airupnp) 

After we have successfully setup the Raspberry Pi, we now go to install AirConnect. AirConnect is the app that allows to make available SONOS Play:1, Play:3 and PlayBar in Apple AirPlay.

Let’s download the app. First of all, connect to your Raspberry Pi by SSH. Following this, you execute the below commands:

sudo mkdir /opt/AirConnect
cd /opt/AirConnect
sudo wget https://raw.githubusercontent.com/philippe44/AirConnect/master/bin/aircast-linux-arm
sudo chmod +x aircast-linux-arm

Let’s try now, if this is working. Run the below command:

./aircast-linux-arm

This should give you something that looks like this:

pi@raspberrypi:/opt/AirConnect $ ./aircast-linux-arm 
[17:56:28.783847] main:884 Starting aircast version: v1.0.13 (Dec 10 2022 @ 11:14:04)
[17:56:28.784297] main:891 no config file, using defaults
[17:56:28.785007] Start:662 Binding to 192.168.2.150

Test whether this is working by for example opening Spotify. Within Spotify send the select song or playlist to your preferred SONOS device. If ti works, well done! If it does not work, then it maybe helps to switch off the SONOS device and start it new. At least in my case, I always had to go thru switch off and switch on again the SONOS device.

Phase Three: Run AirConnect As A Service

After we made the above work, you simply press Ctrl+C to quit AirConnect. Lets make AirConnect now being rund as a service on Raspberry, so we have not to care about this in the future anymore.

First we create the service file and open it to edit. To do so, run:

cd /etc/systemd/system
sudo touch airupnp.service
sudo nano airupnp.service

After the above, you should have an opened file to be edited. In this opened file (airupnp.service) you enter the below content:

[Unit]  
Description=AirUPnP bridge  
After=network-online.target  
Wants=network-online.target  

[Service]  
ExecStart=/opt/AirConnect/aircast-linux-arm -l 1000:2000 -Z -x /var/lib/airconnect/airupnp.xml   
Restart=on-failure  
RestartSec=30  

[Install]  
WantedBy=multi-user.target

Press CTRL+C and save the file to exit.

Finally, we get the service added to be run continuously. In the first step we enable the service, in the second step we start it.

sudo systemctl enable airupnp.service
sudo service airupnp start

If you restart your Raspberry Pi now (e.g. sudo restart) then the service should be running automatically after restart. To find out whether its running, you can fire the below command:

sudo service airupnp status

This should provide you with something like the below. Key is that it says “Active: active (running)”

pi@raspberrypi:/etc/systemd/system $ sudo service airupnp status
● airupnp.service - AirUPnP bridge
     Loaded: loaded (/etc/systemd/system/airupnp.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2023-01-07 18:23:10 GMT; 1min 0s ago
   Main PID: 19952 (aircast-linux-a)
      Tasks: 4 (limit: 1715)
        CPU: 83ms
     CGroup: /system.slice/airupnp.service
             └─19952 /opt/AirConnect/aircast-linux-arm -l 1000:2000 -Z -x /var/lib/airconnect/airupnp.xml

Jan 07 18:23:10 raspberrypi systemd[1]: Started AirUPnP bridge.
Jan 07 18:23:10 raspberrypi aircast-linux-arm[19952]: [18:23:10.817580] main:884 Starting aircast version: v1.0.13 (Dec 10 2022 @ 11:14:04)
Jan 07 18:23:10 raspberrypi aircast-linux-arm[19952]: [18:23:10.817848] main:891 no config file, using defaults
Jan 07 18:23:10 raspberrypi aircast-linux-arm[19952]: [18:23:10.818264] Start:662 Binding to 192.168.2.150

That’s it! Enjoy listening to your sound!

Additional Information

For the official project website for AirConnect, also containing many other options for other operating systems click here. To learn more about SONOS, click here for the official SONOS website. For Apple AirPlay click here.

Follow me

It would be amazing if you follow myHowTo.blog. To follow leverage on

  • Click to follow me on Twitter
  • Bookmark this page and comeback from time to time

Help and Comments

I am really looking forward for you to contact me if for example you found a better option or other idea then in this how to. Also, please touch base if you found an error or anything not working or if you have something that you would love to be added to this how to. Simply click this link to touch base with me.

Linking and Recommending the HowTo or the myhowto.blog

I would love to see you are recommending this how to or link it to your website. Also, I would love if you link or recommend the whole myhowto.blog. Please feel free to do so! In case you like to touch base regarding this topic with me, then simply click this link. I look forward!