Remote SDR V2 – Software Architecture
Remote SDR V2 is a hardware and software set to create a radio transmitter / receiver based on SDR (Software Design Radio) that can be remotely controlled by the web. For an introduction to Remote SDR V2 see here.
Remote SDR V2, runs for the signal processing part on an Orange Pi and since version 2.4 on Raspberry Pi 4. The user interface is displayed in a Web page on a conventional computer (PC, Mac etc.). The technologies used are diverse such as:
- DEBIAN, ARMBIAN or Raspberry PI OS for the system
- Python / GNURADIO for the upstream signal processing part
- HTML / Javascript for downstream signal processing and visualization.
The Receiver
The Orange/Raspberry PI controls the SDR and performs on the I and Q signals supplied by it, a Fourier transform (FFT) to analyse the spectrum on 2048 points around the central reception frequency. In parallel in the SDR reception band (1 or 2 MHz), an audio channel demodulated in AM, NBFM, WBFM or SSB is extracted. The spectrum on 2048 points is sent 5 times per second to the computer in charge of remote viewing in a web page. The audio channel sampled at 10kHz (which is sufficient for voice) is sent to the same computer for analogue broadcast. Signal processing in the Orange Pi is modelled using the very powerful GNU-Radio Companion 3.7 graphical tool which automatically generates C and Python 2 code.
For details on signal processing, read the following post:
https://f1atb.fr/index.php/2020/06/22/remote-ssb-receiver/
The Transmitter
From the web page of the remote computer, we define the transmission frequency, the type and the modulation rate (NBFM, USB, LSB). The microphone signal is sampled at 10 kHz then sent to the Orange Pi in charge of the emission which passes the modulated signal to the SDR.
For details on signal processing, read the following post:
https://f1atb.fr/index.php/2020/06/23/remote-ssb-transmitter/
The Network
The exchange between the Orange Pi (s) and the remote display computer is carried out via the local ethernet , WIFI network or internet. This architecture, with the main part of the processing carried out at the bottom of the antenna, makes it possible to reduce the throughput by approximately 100. The input / output data rate of an SDR is of the order of 10 MB / s. The input / output data rate of the Oranges Pi is less than 100 KB / s. This facilitates transport to the remote computer which does not need any dedicated software installation.
The Remote Computer
The remote computer to control the transceiver only uses a web browser like Chrome or Edge. It does some signal processing in Javascript (filtering and FFT on the audio) and real-time visualization. There is only one constraint, as we use the microphone and do not work in secure https mode, access authorization must be configured in the browser (see the Remote SDR V2 installation procedures).
The Files
All files and folders are located in the Apache server folder / var / www / html. If we use 2 Oranges Pi, the structure is the same and we address one of the Oranges Pi at the address: http: //<orange-pi ip>
3D et build
Folders where the files of the linux penguin 3D modeling of the home page are located.
cgi-bin
Files called by the apache server for dynamic pages such as receiver demodulation selection, transmitter modulation, pin26 test (pin 10 for an orange pi zero 2) of the orange pi one plus (see emission protection).
css
Style files for web pages
JS
Important javascript files like remote_sdr.js which mainly manages reception, remote_TX.js which manages transmission and tools.js which manages the tooling functions of the tools page.
log
Some logs that can be found in the tools page.
PY
All signal processing source and python 2 files. Each modulation type has a corresponding GNU Radio file which is started according to the chosen modulation.
configurationRX.js
You can see its content in the tools page but you have to adapt it with a text editor to your own system configuration and preferences.
configurationTX.js
Preferences for the transmitter to be adapted.
index.html
Home page with the TUX penguin.
remote_sdr.html
Remote SDR main page
start_radio_manager_at_boot.py
File launched at the boot of the orange pi which manages the launch of the various python scripts specific to each modulation. It is called by a cron job. In a terminal do: crontab -e and put the following line at the bottom of the file.
@reboot python3 /var/www/html/start_radio_manager_at_boot.py
tools.html
File giving access to various tools to check the correct functioning.
Post on Remote SDR
- Remote SDR V5 -Raspberry 4B or Orange Pi Image Installation
- Remote SDR v5 – Manual Installation
- Remote SDR v5
- QO-100 Satellite Live
- RTTY
- Troubleshooting
- QO-100 Transceiver
- SSTV
- WSJT-X – FT8
- Omnirig – Remote SDR
- Communication Ports
- Tone generators
- Setting of GPIO outputs
- Band Scanning
- Gains and Dynamics
- Frequencies Management
- Launch of Remote SDR
- CPU Cooling
- Web GUI
- Microphone and signal processing authorization
- Configurations
- Characteristics
- Introduction to Remote SDR
- Remote SDR – Audio Channels
- CW with Remote SDR
- Rotary Knob and Morse Manipulator for Remote SDR
- VHF and UHF NBFM Transceiver
- Remote SDR v4
- Gpredict — Remote SDR
- Remote SDR V4 – Raspberry Pi 4B or Orange Pi Zero 2 image installation
- Remote SDR v4 – Manual Installation
- SA818 – RTL-SDR
- Remote SDR – Examples of realization
- Transmit over QO-100 satellite with a Smartphone
- Remote SDR V2 – Software Architecture
- Remote SDR V1- Purchase
- Remote SDR V1 – Man Machine Interface
- Remote SDR V1 – Signal Processing
- Web Client to GNU Radio
- GNU Radio to Web client
- Remote SSB Transmitter
- Remote SSB Receiver
- GPIO on Orange PI One Plus H6
- TCXO installation on HackRF
- Q0-100 Transceiver with 2 SDR – Remote SDR V1
Recent Comments