OP25 Update December 25, 2020
=============================
1. Experimental HTTP Live Streaming
These hacks ("OP25-hls hacks") add a new option for audio reception
and playback in OP25; namely, via an HTTP live stream to any remote
client using a standard Web browser. The web server software used
(nginx) is industrial-strength and immediately scalable to dozens or
hundreds of simultaneous remote users with zero added effort. More
than one upstream source (in parallel) can be served simultaneously.
See the file apps/README-hls in the repo for more information.
2. NXDN48/NXDN96 RX and TX
The multi_rx and multi_tx apps have been updated accordingly. The
"filter_type" JSON keyword for NXDN channels should be set to
"nxdn", and the "symbol_rate" keyword should be set to 2400 or 4800
for NXDN48 and NXDN96, respectively. A fair number of trunking and
control packets are also currently decoded, although trunked call
following for NXDN systems is not currently implemented.
I would like to take this opportunity to thank Steve, KB9MWR, whose
contribution greatly accelerated the NXDN effort.
3. Graphical (Plotting) Updates
The constellation plot appearance has been enhanced and a new plot
type "correlation" added. The correlation plot is actually five
separate plots (nxdn 48 and 96, p25, dmr, and ysf) and can be used
to show at a glance which of the five modulation types is in use.
The correlation plot was present in OP25 long ago in scope.py and
is now available in both rx.py and multi_rx.py.
4. UDP Linkage Between OP25 TX and RX
Prior to these additions, a hardware RF transmitter/radio was always
required to utilize the OP25 software TX. The OP25 TX application
supports P25, DMR, YSF, NXDN, and DSTAR, and supports both halfrate
and fullrate xMBE encoding, in real time, via its built-in software
voice encoders. An arbitrary number of channels and modes may be
transmitted simultaneously, within the usual spectrum spacing rules.
The UDP additions allow the TX and RX to be linked. The example
configuration contains two P25 channels, one trunk control channel
and one voice channel. This permits rapid testing with no need to
wait for a chance to receive a transmission. There is a python
utility used to generate the fake P25 control channel data to be
broadcast.
See the file apps/README-example-udp in the repo for more
information.
5. Ubuntu 20.04, Python 3 and GNU Radio 3.8
These are all supported in OP25 but until such time as these
versions become more mainstream the changes are applied via a
patch located in the TLD of the repo.
6. Experimental Online Web Configuration Interface
This is a balky and complex addition and is very experimental. To
invoke, run http.py instead of rx.py or multi_rx.py. These latter
two are invoked automatically in the backend by http.py. Starting
from a "blank" configuration, the details are filled in to a web
form and then saved (to a server-side json config). In theory
with these additions there is no further need for TSV files,
although legacy TSVs can be loaded and then saved as json configs.