Sharpfin streaming media server for Reciva radios

18th April 2021, updated 25th August 2021
David at megapico.co.uk

At the end of April 2021 the Reciva internet radio station aggregator is due to close down. This leaves the radios either useless, or dependent on streaming via a media server running on a computer.

Building on the Sharpfin project which gives access to the internal software of the radios it has been possible to create a very tiny format media server that will run on the radio itself. This makes it possible to stream radio stations while also retaining the self-contained radio format. Your favorite stations can be entered via a webpage on the radio and then selected from the radio front panel almost like normal, but going via the Media Player.

Version 1 of the media server will stream radio from MP3 format station feeds (just like the original Reciva radio). It has been tested with streams from 24 to 320 kps.

Installation

  1. Install Sharpfin on the radio using the standard patch server process. I found that patch server 0.5 worked better than the newer 0.7 version (available here or here).
  2. Install the sharpfin-base and sharpfin-www_0.9 packages. These give you a simple web interface on the radio.
  3. Install the Sharpfin Enhance Pack 2.0 through the web interface on the radio. This is described here:
  4. Install the media server (please install version 2 unless you specifically want this older version). 

How to use the media server

Tuning in on the radio - quick start

Quick start - after powering on the radio go to the Media Player, select UPnP servers, and the rest should be obvious.

Tuning in on the radio - details

1
Media player 2
UPnP Server

Select Media player from the radio top level menu

Choose UPnP Servers
3

Browse
                  stations

4

Stations


The Sharpfin media server running on the radio is called "Browse radio"

Choose Stations
5
Browse
                countries 6
Added to
                queue

The folders here are those you have organised through the radio web interface. Some example stations are included.

Select the station you want.

If a station is already playing the new one will be queued up. Click the Fast Forward (>>) button to move to the new station.
6
Connecting.....
Streaming

The radio will connect to your station.
When the station starts playing the duration you've been listening is displayed - the radio will behave like it's playing an everlasting track from the media server.

If you change station the new station will be added to the 'queue' since the radio thinks you are queuing up individual tracks to listen to. Just press the Fast Forward (>>) button to jump to the new station.

You cannot pause and time shift stations. If you pause the station it will pick up in real time when you restart (other than a few seconds of buffered data). 

Managing your stations lists

From the Radio Home page of the Sharpfin web page look for the Station Management entry.

Here you can upload lists of stations and create folders to organise your stations. If you click the name of an existing m3u stations list already on the radio it will download so you can see the format and edit it to contain the stations you want.

The stations listed should be the actual stream addresses, not m3u or pls addresses. If the station you want only lists a pls file just open this in a browser and look inside it to find the real stream address. It is this real stream address that needs to be stored on the radio.

Manage
          stations

Problems

(1) If you change through lots of stations it can get confusing as they are 'queued' by the radio. Use the Fast Forward (>>) button to move to the next in the queue, or clear the whole queue by going back up to the Media Player level and choosing Clear Queue.

Clear queue

(2) If the Wi-Fi drops out you can get an End of Queue message. Press the play button (>) to try restarting the station, or you can go back to the Media Player level and select your station again. If this happens persistently check your radio is reaching the Wi-Fi ok (Configure-> Network Config menu), or most simple is just to power the radio off and on again. 

End of queue

(3) If a station is very slow to load the media player can decide it's not loading and will jump to the next station in the station list. Press Rewind (<<) to try again loading the station you want. If this is a persistent problem for your favorite station you can work around it by adding the station to your stations list twice in succession. That way if the media player decides the station is too slow it will automatically just try the same station again.

(4) If you have multiple radios running on the same wi-fi network and more than one of them is running the media server they may interfere with each other. In this case they can display strange text instead of the stations you expect listed. I had configured the media servers to be self-contained within the radio, but somehow their presence is found by other radios (a consequence of UPNP media servers being designed to advertise themselves across the network!). The immediate solution is to only run one radio at a time on the same WiFi network if using the internal media server. Improving this will be something to look at in the future.

Removal of the Media Server

If you decide to remove the Media Server (e.g. to make space on the radio to try out other options) this can be done using the standard Sharpfin package manager "ipkg".

Background and source files

The internal media server is based on existing open source software adapted for use on the radio.

Cross-compilation for the Arm 920T processor used in the radios is in 2021 quite difficult as this processor and the Linux 2.4 kernel running on the radios is ancient and very different to modern Linux distributions. The original Sharpfin project gives details of how to do it, but it won't work on a modern 64 bit computer. Current compilers available from Arm no longer cover this very old processor. The solution here was to run a Linux distribution of similar vintage to the radios using a virtual machine (Slackware 9.1, released in 2003, running on Virtualbox) and use that to cross-compile the Arm format binary files. With this system the original instructions on cross-compilation can be followed.

Installation has been found to take up 112k of the main storage area of the radio, and needs a little more than this during the installation. This was found to be available ok on the radios tested (see below) and they still had 200-300k spare after installation. The station lists are stored on a separate area to allow them to be updated via the radio web interface. There's space to store in the low 100s of stations - the web interface shows how much space you have left for this.

Testing

The installation and running of the media server has been tested and works on the following radios and service packs:

As with any Sharpfin modifications to the radio the media server comes with no warranty and you proceed at your own risk.