-
Notifications
You must be signed in to change notification settings - Fork 447
SDRangel server
Starting with version 4 (v4.0.0) it is a fully implemented feature with support of nearly all plugins:
- Channel Rx: AM, BFM, DSD, NFM, SSB, WFM demodulators and UDP sink.
- Channel Tx: AM, ATV, NFM, SSB, WFM modulators and UDP source.
- Sample sources: Airspy, AirspyHF, BladeRF, FCDPro, FCDPro+, File source, HackRF, LimeSDR, Perseus, PlutoSDR, RTL-SDR, SDRPlay, Test source (that's all of them)
- Sample sinks: BladeRF, File sink, HackRF, LimeSDR, PlutoSDR, (that's all of them also)
The most graphical plugins: Channel analyzer and ATV related demods are not part of the deal but they are also very unlikely to be useful in a server. However for DATV support could be added in the future with a proper implementation of TS communication.
It is implemented as a new binary sdrangelsrv
that is similar to sdrangel
but does not fire up a GUI. This server mode binary has therefore no dependency on Qt Widgets nor OpenGL. Since it has no GUI its control is left entirely up to the web REST API interface. It also uses a different set of plugins with their GUI parts removed. These are placed in the lib/pluginssrv
directory.
The main motivations are:
- open to third party development for custom detached GUI implementation thanks to the REST API.
- be able to run SDRangel on hardware without graphics (server).
- be used in sophisticated remote transponders or repeaters in a headless server configuration.
- possibility to use Docker technology to host SDRangel server instances in a distributed environment.
This is distributed only in Linux packages. A Docker image exists for ARM 64 bit devices (see next).
Most users will want to run the server variant on ARM based SBCs like the Raspberry Pi. It is recommended to use armv8 class devices with 4 A53 cores or better clocked at 1.2 GHz or more. It is recommended to use a armv8 (aka aarch64) O/S. It has been successfully tested on the following devices:
- Raspberry Pi 3B with Ubuntu Server 20.04.
- Raspberry Pi 4 with 4 GB RAM using Ubuntu Server 20.04. Maybe units with less RAM can be used but this was not tested.
- Rock64 with Arch Linux
- Pine A64 with Arch Linux
- RockPro64 with the provided Ubuntu 18.04 minimalist
armv8 images are available (thus for ARM 64 bit based devices) at Docker Hub:
- Server: https://hub.docker.com/r/f4exb06/sdrangelsrv/tags Note that you have to tag the server image as
sdrangel/server16:latest
to be able to run it using therun.sh
script in compose folder with default options (see next). - Web client: https://hub.docker.com/r/f4exb06/sdrangelcli/tags Note that you have to tag the client image as
sdrangelcli:latest
to be able to run it using therun.sh
script in compose folder with default options (see next).
You can also build your image after cloning the SDRangel Docker Github repository: https://github.com/f4exb/sdrangel-docker following instructions from the different readme's
To start the server and the client you may use the run.sh
script available in the compose
folder: https://github.com/f4exb/sdrangel-docker/tree/master/compose With default options you can launch the server and client with the command: ./run.sh -f server16 -c sdrangel
Supervisor is a Python package that makes it very easy to manage processes using a simple web interface. Docker way is preferred but this section is kept in case Docker cannot be used for some good reason. "I don't like Docker" and variants are not good reasons.
You can use any program that can make HTTP requests like a Python script with the request
package.
- The scriptsapi folder contain some scripts for common use cases. In particular the
configure.py
script is useful to automate SDRangel instance configuration. - You may also check some other examples of API based scripts here
You can also use the SDRangelcli web browser based UI.
- Home
- Quick start
- Quick start legacy (v6)
- Hardware requirements
- High DPI displays
- Compile in Linux
- Compile in Windows
- Compile in MacOS
- History and major releases
- Audio related
- Plugins
- Advanced
- Server and API