Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Svxlink usrp #547

Open
wants to merge 77 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 64 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
127208e
1st version
dl1hrc Apr 22, 2021
55b3ade
Reasonably running version with errors, currently not usable in a mea…
dl1hrc Apr 29, 2021
a697dc3
Added std::array to message packing framework (in AsyncMsg.h) with mu…
dl1hrc Apr 30, 2021
033e0c2
Added new class for USRP stopmessage, Bugfix with audiostream data (b…
dl1hrc May 2, 2021
bf25eed
Added meta Usrp-message (USRP_TYPE_TEXT)
dl1hrc May 3, 2021
bb72918
Added Decimator/Interpolator, changed byteorder for network transmiss…
dl1hrc May 4, 2021
d09f71b
Fixed: Metamessage buf. Handling incoming stream to create (audio-,me…
dl1hrc May 4, 2021
21b25fa
Some adjustments regarding host / network byte order, tnx to Waldek /…
dl1hrc May 5, 2021
d493e2d
Documentation added. Setting option for outgoing/incoming audio. Unus…
dl1hrc May 6, 2021
5d5a6fa
Tcl-event support added, rebuilt UsrpLogic.tcl, Usrp documentation fr…
dl1hrc May 6, 2021
c138847
Removed some default parameter that not used yet
dl1hrc May 6, 2021
1b06a7c
Removed unused variables
dl1hrc May 6, 2021
58d450e
Merge remote-tracking branch 'sm0svx/master' into svxlink-usrp
dl1hrc May 6, 2021
503818a
Added filters for incoming/outgoing audio
dl1hrc May 7, 2021
c54e349
Bugfix: Dmrid was not issued, if 0 then the output is suppressed now
dl1hrc May 8, 2021
660e320
Small change in UsrpLogic.tcl, usrp protocol description added
dl1hrc May 10, 2021
ea067b6
Doc changed, changed TG that is given out
dl1hrc May 10, 2021
9714a20
Intermediate commit for the evaluation of the metadata. Documentation…
dl1hrc May 12, 2021
98e8b62
Changed handling of meta data. Changed USRP_HOST default entry.
dl1hrc May 31, 2021
2191a9c
Fixed: Handling of (Tlv) meta data, mni tnx to Waldek/SP2ONG for supp…
dl1hrc Jul 14, 2021
9470642
merged with master
dl1hrc Aug 16, 2021
c8f3808
Documentation added, take a look into CONFIG.adoc for a short informa…
dl1hrc Aug 24, 2021
b151754
Wrong git link in INSTALL.adoc, tnx to Waldek/SP2ONG
dl1hrc Oct 14, 2021
2b1d538
Fixed another small error in doc (INSTALL.adoc), mni tnx to Waldek/SP…
dl1hrc Oct 16, 2021
40d1e41
Documentation updated, added info regarding required libraries
dl1hrc Nov 16, 2021
b50982b
More data exchange between SvxLink node and SvxRflector, like Tetra e…
dl1hrc Dec 8, 2021
4f49497
Bugfix: wrong path in svxlink.conf.in
dl1hrc Dec 18, 2021
9770209
Update Usrp protocol documentation. Tnx to Waldek/SP2ONG
dl1hrc Jan 4, 2022
93a7a15
Added missing config-params EVENT_HANDLER and JITTER_BUFFER_DELAY in …
dl1hrc Jan 5, 2022
4ba0fce
Merge remote-tracking branch 'sm0svx/master' into svxlink-usrp
dl1hrc Jan 10, 2022
ca06c9b
Merged with upstream
dl1hrc Jan 10, 2022
46140a0
Fixed and merged
dl1hrc Jan 23, 2022
02d609e
Merge remote-tracking branch 'sm0svx/master' into svxlink-usrp
dl1hrc Jan 28, 2022
083bb87
Merged with upstream/master
dl1hrc Mar 18, 2022
a3d92d6
Added AudioClipper and AudioCompressor
dl1hrc Apr 2, 2022
eda0dd6
Merge branch 'svxlink-usrp' of https://github.com/dl1hrc/svxlink into…
dl1hrc Apr 2, 2022
6098965
MErged
dl1hrc Apr 2, 2022
98bd2ef
Removed unnecessary spaces
dl1hrc Apr 2, 2022
a4f59aa
Merge branch 'sm0svx:master' into svxlink-usrp
dl1hrc Apr 4, 2022
2025258
Merged with master
dl1hrc Apr 15, 2022
04b43dc
Merge branch 'sm0svx:master' into svxlink-usrp
dl1hrc May 22, 2022
abb72ab
Merge branch 'sm0svx:master' into svxlink-usrp
dl1hrc Aug 4, 2022
148c2f9
Merge branch 'sm0svx:master' into svxlink-usrp
dl1hrc Aug 20, 2022
da2731a
Parameters of the audio filters changed to improve the quality of DV-…
dl1hrc Sep 30, 2022
255a05a
filter improvement
Oct 7, 2022
ffa09e4
Merge pull request #3 from dl1bz/svxlink-usrp
dl1hrc Oct 7, 2022
5689486
Adapted usrp to the new logic structure to make implementations easier.
dl1hrc Oct 18, 2022
cafb011
Moved usrp files to the new contrib structure
dl1hrc Oct 18, 2022
d78d881
Small typo, tnx to Waldek/SP2ONG
dl1hrc Oct 19, 2022
03b2931
Readme updated
dl1hrc Oct 20, 2022
443976e
Added debug output for USRP_RX_PORT, USRP_TX_PORT and USRP_HOST. Hint…
dl1hrc Oct 24, 2022
e56a8f1
Documentation changed to README.adoc
dl1hrc Nov 6, 2022
8b549d6
Merged
dl1hrc Jan 20, 2023
5f75990
Bugfix in jsonToString method.
dl1hrc Jan 24, 2023
7637f1e
Merge remote-tracking branch 'upstream/master' into svxlink-usrp
dl1hrc Mar 6, 2023
7180d3b
Documentation updated, mni tnx to Waldek/SP2ONG
dl1hrc Mar 12, 2023
c5087cb
Merge remote-tracking branch 'sm0svx/master' into svxlink-usrp
dl1hrc Mar 12, 2023
b479ca0
Merge remote-tracking branch 'sm0svx/master' into svxlink-usrp
dl1hrc Mar 20, 2023
41f8c44
Merge remote-tracking branch 'sm0svx/master' into svxlink-usrp
dl1hrc May 14, 2023
00ded04
Merged
dl1hrc Jul 21, 2023
dd0dda0
Merge remote-tracking branch 'sm0svx/master' into svxlink-usrp
dl1hrc Aug 1, 2023
af87430
Improved implementation for Async::Msg
sm0svx Aug 3, 2023
0c6fd13
Merge branch 'master' into svxlink-usrp
sm0svx Aug 4, 2023
629e171
Remove duplicate dependency after merge
sm0svx Aug 4, 2023
de0be7e
version info changed
dl1hrc Aug 9, 2023
ba58f9f
Merge branch 'sm0svx:master' into svxlink-usrp
dl1hrc Sep 7, 2023
87a1f80
Merge branch 'sm0svx:master' into svxlink-usrp
dl1hrc Oct 23, 2023
b8e97fb
Call/talkerstate forward from EchoLink to Usrp
dl1hrc Feb 11, 2024
d5d3c35
Merge branch 'sm0svx:master' into svxlink-usrp
dl1hrc Feb 11, 2024
0db5d06
Merged with master
dl1hrc Mar 3, 2024
31fe022
Bugfix: Segfault when activating ModuleEchoLink. Reported by Volodymy…
dl1hrc Apr 28, 2024
1b6afb2
Version info updated
dl1hrc Apr 30, 2024
738c129
Bugfix: json get method asInt() has not been handled correctly in Usr…
dl1hrc Apr 30, 2024
0cb7715
Extension transfers more info from EchoLink to UsrpLogic
dl1hrc May 1, 2024
17efaef
Merged with SM0SVX/Master
dl1hrc Jun 13, 2024
52a6aee
Small bugfix (wrong default value to boolgit^Cin method onPublishStat…
dl1hrc Jul 8, 2024
00cc391
Preperation for call/id forward from EchoLink to Usrp
dl1hrc Jul 8, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
211 changes: 211 additions & 0 deletions CONFIG.adoc
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be moved to the UsrpLogic directory

Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
Configuration svxlink-usrp with SvxReflector, Analoge_Bridge and MMDVM_Bridge
=============================================================================

1.) Basic structure

|.-................. SvxLink ......................| |........... MMDVM stuff ..........| |.. freeDMR ..>

|----------| |---------------| |--------------| |-----------| |---------------| |--------------| |-------------|
| Radio | | SimplexLogic | | LogicLinking | | UsrpLogic | | Analog_Bridge | | MMDVM_Bridge | | DMR-Network |
| 2m/70cm |<->| RepeaterLogic |<->| |<->| |<->| |<->| |<->| |
|----------| |---------------| |--------------| |-----------| |---------------| |--------------| |-------------|
| |
| |
|----------| |---------------| |--------------| |---------------|
| Analogue | | SvxReflector- | | Reflector- | | md380- |
| Network |<->| Server |<->| Logic | | emulator |
|----------| |---------------| |--------------| |---------------|


2.) Configuration
2.1.) svxLink.conf
Usually located in /etc/svxlink/svxlink.conf

Below is an example configuration for the svxlink.conf file. Only the most important parameters and
configuration sections are given

---
[GLOBAL]
LOGICS=RepeaterLogic,ReflectorLogic,UsrpLogic
LINKS=UsrpLink

[RepeaterLogic]
TYPE=Repeater
RX=Rx1
TX=Tx1
MODULES=ModuleParrot,ModuleTclVoiceMail,ModulePropagationMonitor,ModuleMetarInfo
CALLSIGN=DB0ABC
SHORT_IDENT_INTERVAL=30
LONG_IDENT_INTERVAL=60
EVENT_HANDLER=/usr/share/svxlink/events.tcl
DEFAULT_LANG=de_DE
RGR_SOUND_DELAY=200
TX_CTCSS=SQL_OPEN,ANNOUNCEMENT
FX_GAIN_NORMAL=0
FX_GAIN_LOW=-12
#NO_REPEAT=1
IDLE_TIMEOUT=6
OPEN_ON_DTMF=*
OPEN_ON_SQL=1000
OPEN_SQL_FLANK=OPEN

[UsrpLogic]
TYPE=Usrp
USRP_HOST=127.0.0.1
USRP_TX_PORT=44442 <-------------------------------------------------
USRP_RX_PORT=44441 <---------------------------------------------- |
CALL=DB0ABC | |
DMRID=262123 | |
RPTID= | |
DEFAULT_CC=1 | |
DEFAULT_TG=2629 | |
DEFAULT_TS=2 | |
#PREAMP=3 | |
#FILTER_FROM_USRP=HsBq2/0.01/-18/4000 | |
FILTER_TO_USRP=BpBu1/650-3800 | |
#NET_PREAMP=3 | |
JITTER_BUFFER_DELAY=100 | |
EVENT_HANDLER=/usr/share/svxlink/events.tcl | |
| |
[ReflectorLogic] | |
TYPE=Reflector | |
HOST=10.8.0.1 ---------> to Analogue network, usually a | |
PORT=5302 --------------> SvxReflector server | |
AUTH_KEY="secret" | |
CALLSIGN="DB0ABC | |
#JITTER_BUFFER_DELAY=0 | |
DEFAULT_TG=9 | |
MONITOR_TGS=9 | |
ANNOUNCE_REMOTE_MIN_INTERVAL=300 | |
EVENT_HANDLER=/usr/share/svxlink/events.tcl | |
NODE_INFO_FILE=/etc/svxlink/node_info.json | |
MUTE_FIRST_TX_LOC=0 | |
MUTE_FIRST_TX_REM=0 | |
| |
[UsrpLink] | |
NAME=Usrp | |
CONNECT_LOGICS=RepeaterLogic,UsrpLogic,ReflectorLogic | |
DEFAULT_ACTIVE=1 | |
---EOF | |
| |
| |
2.2.) Analog_Bridge | |
Here we have an example for the Analog_Bridge.ini, | |
usually located in /opt/Analog_Bridge/Analog_Bridge.ini | |
For details regarding the configuration paramaters | |
refer to Analog_Bridge manual page. | |
| |
--- | |
include = dvsm.macro | |
| |
[GENERAL] | |
logLevel = 2 | |
exportMetadata = true | |
transferRootDir = /tmp | |
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv | |
decoderFallBack = true | |
useEmulator = false | |
emulatorAddress = 127.0.0.1:2460 | |
pcmPort = 2222 | |
| |
[USRP] | |
address = 127.0.0.1 | |
txPort = 44441 <-------------------------------------------------- |
rxPort = 44442 <-----------------------------------------------------
usrpAudio = AUDIO_UNITY
usrpGain = 1.10
usrpAGC = -20,10,100
tlvAudio = AUDIO_UNITY
tlvGain = 0.35

[AMBE_AUDIO]
address = 127.0.0.1
txPort = 31103 <-----------------------------------------------------
rxPort = 31100 <-------------------------------------------------- |
ambeMode = DMR | |
minTxTimeMS = 2500 | |
gatewayDmrId = 262123 | |
repeaterID = 26200123 | |
txTg = 2629 | |
txTs = 2 | |
colorCode = 1 | |
| |
[MACROS] | |
| |
[DV3000] | |
;address = 127.0.0.1 -------------------> To | |
;rxPort = 2460 -------------------------> AMBEServer | |
| |
address = /dev/ttyUSB4 -----------------> To | |
baud = 460800 --------------------------> DV3k-stick | |
serial = true | |
---EOF | |
| |
| |
2.3.) MMDVM_Bridge | |
Usually located in /opt/MMDVM_Bridge/MMDVM_Bridge.ini | |
Here is an example for the MMDVM_Bridge.ini | |
Only the most important parameters and configuration | |
sections are given | |
| |
--- | |
[General] | |
Callsign=DB0ABC | |
Id=262123 | |
Timeout=180 | |
Duplex=1 | |
| |
[Info] | |
RXFrequency=431025000 | |
TXFrequency=438625000 | |
Power=15 | |
Latitude=51.000 | |
Longitude=12.000 | |
Height=123 | |
Location=somewhere | |
Description=FreeDMR_Germany | |
URL=https://svxreflector.org | |
| |
[Log] | |
DisplayLevel=1 | |
FileLevel=2 | |
FilePath=/var/log/mmdvm | |
FileRoot=MMDVM_Bridge | |
| |
[DMR Id Lookup] | |
File=/var/lib/mmdvm/DMRIds.dat | |
Time=24 | |
| |
[DMR] | |
Enable=1 | |
ColorCode=1 | |
EmbeddedLCOnly=1 | |
DumpTAData=0 | |
| |
[DMR Network] | |
Enable=1 | |
Address=svxreflector.org ---------------> To DMR master server | |
Port=62031 -----------------------------> e.g. freeDMR | |
Jitter=360 | |
Local=62032 | |
Password=passw0rd | |
Slot1=0 | |
Slot2=1 | |
Debug=1 | |
---EOF | |
| |
| |
2.4.) DV-Switch | |
Uually located in /opt/MMDVM_Bridge/DVSwitch.ini | |
Example of DVSwitch.ini | |
| |
--- | |
[DMR] | |
address = 127.0.0.1 | |
txPort = 31100 <-------------------------------------------------- |
rxPort = 31103 <-----------------------------------------------------
slot = 2
exportTG = 2629
hangTimerInFrames = 0
talkerAlias = %callsign %location %description
---EOF
7 changes: 5 additions & 2 deletions INSTALL.adoc
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove/move changes to the UsrpLogic subdirectory. The missing dependencies have been committed to master.

Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,14 @@ A common command that exist on many distributions is 'useradd'. The 'daemon'
group usually exist but if not, look for the 'groupadd' command.


== Build and install ==
== Build and install SvxLink with Usrp extension ==
SvxLink use the CMake build system. The basic pattern for building using CMake
looks like this:

cd path/to/svxlink/src
git clone https://github.com/dl1hrc/svxlink.git
cd svxlink
git checkout svxlink-usrp
cd src
mkdir build
cd build
cmake ..
Expand Down
60 changes: 60 additions & 0 deletions src/doc/man/svxlink.conf.5
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move to UsrpLogic specific manual page.

Original file line number Diff line number Diff line change
Expand Up @@ -767,6 +767,66 @@ variables as documented for networked receivers and transmitters. For example,
to lighten the encoder CPU load for the Opus encoder, set OPUS_ENC_COMPLEXITY
to something lower than 9.
.
.SS UsrpLogic
.
The UsprLogic is used to connect SvxLink with a digital Hamradio network. The
communication is based on Udp transmission. Some Hamradio applications
are able to accept the protocol (Asterisk, MMDVM).
.TP
.B TYPE
The type for a Usrp Logic is always "Usrp"
.TP
.B CALL
Specify the callsign used at this logic.
.TP
.B USRP_HOST
The hostname of the Usrp server.
.TP
.B USRP_TX_PORT
The Udp port used to send Udp messages to Usrp server
.TP
.B USRP_RX_PORT
The Udp port used to receive Udp messages from the Usrp server.
.TP
.B DMRID
The DMR-ID ssigned to the callsign.
.TP
.B RPTID
The repeater ID. It's not used in most cases.
.TP
.B DEFAULT_TG
The talk group. Default is 0
.TP
.B DEFAULT_CC
The color code. It's not used in most cases, default is 1
.TP
.B DEFAULT_TS
The time slot. It's not used in most cases, default is 1
.TP
.B PREAMP
The signal (internal audio from connected logic) will be amplified/reduced
by the specified number of dB. This processed audio is sent to the usrp server.
.TP
.B NET_PREAMP
The signal received from Usrp network will be amplified/reduced by the
number of dB. This processed audio is sent to connected logics.
.TP
.B NET_LIMITER_THRESH
Set the threshold, in dBFS, for the audio limiter from the net site. The audio
limiter really is a compressor with a very steep compression ratio like 10:1.
The limiter is used to help keeping down the audio level to not overmodulate
the local connected logics.A good value
to start with for this parameter is then -6 but try to lower it further (like
-9 to -12) if it does not affect audio quality negatively.
.TP
.B LOCAL_LIMITER_THRESH
Set the threshold, in dBFS, for the audio limiter from the local site to Usrp
network. The audio limiter really is a compressor with a very steep compression
ratio like 10:1. The limiter is used to help keeping down the audio level to
not overmodulate the remote connected usrp nodes. A good value
to start with for this parameter is then -6 but try to lower it further (like
-9 to -12) if it does not affect audio quality negatively.
.
.SS QSO Recorder Section
.
The QSO recorder is used to record all received audio to files on disk. All
Expand Down
Loading