RESCUE OF A SoundBridge M1001

Recently I bought an old Roku Soundbridge M1001 from eBay. I like the sound quality, the straight design, the aluminium surface and the old-school display of this web radio. It is matching perfectly with my Technics SL-1300, the Brik-Modules and last but not least my pimped Swedish 70s tee-table.

Roku SoundBridge M1001MIND WORK Technics SL-1300MIND WORK Technics SL-1300 Brik Stereo Moduls

But being build in 2004 the M1001 its hardware and software no longer meet today’s requirements. Because of this, there had been two major problems which I only could fix with a lot of MIND WORK.

First “bug” is the old wireless network standard Wi-Fi 802.11b of the M1001. Fortunately, the radio has a Lan-Port for 10/100mbps Ethernet. Cause of this I bought an Edimax CV-7428NS Media Bridge which can be integrated into my WiFi Mesh with IEEE 802.11b/g/n and up to 300 Mbit/s.

The CV-7428NS has five LAN-Ports to connect “non-wireless” devices to a wireless network. If the M1001 is connected via LAN and then powered up the device recognizes the connection type and boots up in LAN-Mode instead of WiFI-Mode. The installation is simple and the connection works perfectly.

MIND WORK Edimax CV-7428NS Media Bridge

The second problem can´t be fixed so easily. It has the effect that my Soundbrigde more and more is losing the ability to get in contact with radio-streams. It needs a while to identify this as a protocol issue. The Roku can work with a lot of protocols like WEP, WPA, AutoIP, DHCP, TCP, TELNET, HTTP and DRM – but not with HTTPS. And this is the point. Each time a radio station is switching from HTTP to HTTPS my ROKU is losing the capability to “receive” it. Time to put the M1001 into Garbage can? No! Time to call my friend and software developer Winfried Jacobs. I asked him for some MIND WORK to find a way for transforming HTTP into HTTPS requests. And here is what came to his mind while on a bike ride.

Raspberry Pi 1 B from 2013 with Raspberry Pi OS Lite and "Nginx" as WebserverHis solution: a Raspberry Pi 1 B from 2013 with Raspberry Pi OS Lite and “Nginx” as Webserver becoming a “Reverse HTTP Proxy” by coding the Nginx with this config:

location ~ ^/radio/(.*) {
        proxy_pass https://$1;  # uses regular expression from above, inserts postfix (after /radio/) as url
        client_max_body_size 0;  # for streaming content: disables checking of client body size
        proxy_buffering off;  # for streaming content
    }

Now I just have to put “http: //192.168.178.60/radio/” in front of each of the original streaming addresses and my lovely Roku Soundbridge M1001 is unrestricted back to live. That is sustainable for me.

MIND WORK Roku Soundbridge M1001 Technics SL-1300 Brik on tea tableMIND WORK Roku Soundbridge M1001 DISPLAYMIND WORK BRIK Mini Stereo Modules at vintage tea table

Vor kurzem habe ich bei eBay eine alte Roku Soundbridge M1001 gekauft. Ich mag die Klangqualität, das gerade Design, die Aluminiumoberfläche und das Old-School-Display dieses Webradios sehr. Es passt perfekt zu meinem Technics SL-1300, den Brik-Modulen und nicht zuletzt meinem aufgemotzten schwedischen vintage Tee-Tisch. Aber da das M1001 von 2005 ist, erfüllen die verwendete Hard- und Software nicht mehr heutigen Anforderungen. Hieraus resultieren zwei existenzielle Probleme, für die ich einiges an MIND WORK benötigte, um sie zu lösen.

Erster “Fehler” ist der alte WLAN-Standard Wi-Fi 802.11b des M1001. Glücklicherweise verfügt das Radio über einen Lan-Port für 10/100-Mbit/s Ethernet. Aus diesem Grund habe ich eine Edimax CV-7428NS Media Bridge gekauft, die mit IEEE 802.11b / g / n und bis zu 300 Mbit / s in mein WiFi-Netz integriert werden kann. Die Media Bridge verfügt über fünf LAN-Ports, über die “nicht drahtlose” Geräte mit einem drahtlosen Netzwerk verbunden werden können. Wenn das M1001 über LAN verbunden und dann eingeschaltet wird, erkennt es den Verbindungstyp und startet im LAN-Modus anstelle des WiFI-Modus. Die Installation ist einfach und die Verbindung funktioniert einwandfrei.

Das zweite Problem kann nicht so einfach behoben werden. Ich hatte den Effekt, dass meine Soundbrigde immer mehr die Fähigkeit verliert, mit Radiostreams in Kontakt zu treten. Es dauert eine Weile, um dies als Protokollproblem zu identifizieren. Das Roku kann mit vielen Protokollen wie WEP, WPA, AutoIP, DHCP, TCP, TELNET, HTTP und DRM arbeiten – jedoch nicht mit HTTPS. Und das ist der Punkt. Jedes Mal, wenn ein Radiosender von HTTP zu HTTPS wechselt, verliert meine ROKU die Fähigkeit, ihn zu “empfangen”. Zeit, den M1001 in den Mülleimer zu werfen? Nein! Zeit, meinen Freund und Softwareentwickler Winfried Jacobs anzurufen. Ich bat ihn, mit etwas MIND WORK einen Weg zu finden, HTTP in HTTPS-Anfragen umzuwandeln.  Und hier ist seine Lösung (danke dafür), die ihm während einer Radfahrt eingefallen ist: ein Raspberry Pi 1 B aus dem Jahr 2013 mit Raspberry Pi OS Lite und “Nginx” als Webserver, der durch Codierung des Nginx mit folgender Config zu einem “Reverse HTTP Proxy” wurde:

location ~ ^/radio/(.*) {
        proxy_pass https://$1;  # uses regular expression from above, inserts postfix (after /radio/) as url
        client_max_body_size 0;  # for streaming content: disables checking of client body size
        proxy_buffering off;  # for streaming content
    }

Jetzt muss ich nur noch jeder der ursprünglichen Streaming-Adressen  “http: //192.168.178.60/radio/” vorwegstellen und meine schöne Roku Soundbridge M1001 ist wieder uneingeschränkt verfügbar.  Das nenne ich nachhaltig.

 

8 comments

  • Hello,
    Very happy to find this page. I have a Soundbridge that has played it’s last streaming station due to everything moving to https. I’ve been working on using nginx on a pi3 as a reverse proxy but keep running into various errors. Would you be willing to share your entire nginx config with me please?
    Thank you.

    Liked by 1 person

    • Hi Paul, Nice to hear, that you will rescue your SoundBridge too. I thought the code for nginx in my post but I will ask my coder if there is something more you have to deal with.

      Like

  • Paul here again, got it working! Your config bits work perfectly, had some basic nginx config missing. The other missing piece was decoding the correct url’s for the streams. Right clicking on a streaming web page and using „inspect element“ lets me find the URL, then I can use VLC to test it before putting it in the soundbridge. Thanks again for this page and documentation.

    Liked by 1 person

  • Hallöchen,

    klingt gut! Ich hab zu dem HTTPS aber noch das Problem, das Radiosender wie z.B. “Radio Arabella” aus München nicht mehr empfangbar sind mit der Soundbridge. Verbindung wird hergestellt, aber Stream bricht sofort wieder ab, Neuverbindung, kurzer Ton, Abbruch usw.! Dafür vielleicht auch eine Idee? Stream-URL wäre http://live.radioarabella.de/stream
    Soundbridges sind auch heute noch uptodate! Ich hab (jetzt muss ich echt überlegen) 4 aktiv in Gebrauch und 2 als Reserve.

    Like

    • Hi, ich werde die Adresse die Tage mal bei meiner Soundbridge prüfen und meine mich zu erinnern, dass ich das Problem auch mal hatte. Aber seit dem ich nicht mehr direkt über das Wlan der Soundbridge sondern über den Umweg Lan zu Mediabridge gehe, das Problem nicht mehr aufgetaucht ist. Wenn ich die Adresse geprüft habe, melde ich mich nochmal. Grüsse #Martin

      Like

  • Hallo,

    die Idee ist super und ließ sich auch leicht umsetzen. Mein Problem ist, dass in allen Playlists, zu denen ich die Links habe, Weiterleitungen zum eigentlichen Stream stehen. Und diese Weiterleitungen enthalten wieder https.

    Beispiel:
    https://stream.absolutradio.de/lq/mp3/Fritzbox.m3u hab ich im Preset konfiguriert als
    http://192.168.1.30:81/radio/stream.absolutradio.de/lq/mp3/Fritzbox.m3u
    Lade ich mir das m3u direkt herunter, steht dort https://sec-absolut.hoerradar.de/absolutradio-mp3-128?sABC=60o899sn%230%236n924132s76317r57235r93rss45n4ps%23&=&amsparams=playerid:;skey:1622710778 drin. Und dieser https-Stream wird natürlich nicht umgesetzt. Das äußert sich in der Anzeige von “Wiederhole Verbindung zu Server …” in der Soundbridge bzw. zu immer gleichen Logeinträgen in /var/log/nginx/access.log:
    192.168.1.18 – – [03/Jun/2021:10:29:36 +0200] “GET /radio/www.di.fm/vocaltrance HTTP/1.0” 200 28697 “-” “Roku SoundBridge/3.0”

    Hier meine Config:
    server {
    listen 81;

    location ~ ^/radio/(.*) {
    resolver 8.8.8.8;
    proxy_pass https://$1; # uses regular expression from above, inserts postfix (after /radio/) as url
    client_max_body_size 0; # for streaming content: disables checking of client body size
    proxy_buffering off; # for streaming content
    proxy_ssl_server_name on;
    }
    }

    VG
    Stephan

    Like

Submit a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

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