public:radio:2025:allstar_nodes_built
This is an old revision of the document!
Table of Contents
Allstar : The Nodes
VHF Gateway
Platform | Raspberry Pi 2 Model B Rev 1.1 |
Interface | CM108 Soundcard - modified |
Radio | FT-1500M @ 5W |
Frequency | 144.900MHz |
Allstar Node | 481480 |
Echolink | GM4SLV-L : 886089 |
Dashboard | http://gm4slv.plus.com:42110/ |
The initial node, described here → gm4slv_allstar_2025 got too cumbersome after adding DMR Bridging, along with handling Echolink.
[el0] call = GM4SLV-L ; Change this! pwd = XXXXXX ; Change this! name = John ; Change this! qth = Allstar 481480 ; Change this! email = gm4slv@gm4slv.plus.com ; Change this! node = 886089 ; Change this! ; Data for EchoLink Status Page lat = 60.2883 ; Latitude in decimal degrees lon = -001.42533 ; Longitude in decimal degrees freq = 144.900 ; not mandatory Frequency in MHz tone = 0 ; not mandatory CTCSS Tone (0 for none) power = 2 ; 0=0W, 1=1W, 2=4W, 3=9W, 4=16W, 5=25W, 6=36W, 7=49W, 8=64W, 9=81W (Power in Watts) height = 0 ; 0=10 1=20 2=40 3=80 4=160 5=320 6=640 7=1280 8=2560 9=5120 (AMSL in Feet) gain = 0 ; Gain in db (0-9) dir = 0 ; 0=omni 1=45deg 2=90deg 3=135deg 4=180deg 5=225deg 6=270deg 7=315deg 8=360deg (Direction) maxstns = 5 ; Max Stations rtcptimeout = 10 recfile = /tmp/echolink_recorded.gsm ; astnode = 481480 ; Change this! context = radio-secure ; Default in code is echolink-in ; Max 3 servers server1 = server1.echolink.org server2 = server2.echolink.org server3 = server3.echolink.org ; To deny w6xxx you would add the statement: deny = w6xxx ; To prohibit computer-based connections you would write: permit = *-* ; To allow access to only a select group of callsigns: permit = w6abc,w6def,... ; permit ; comma delimited list of callsign, type (-r) ; deny ; Remote text commands thru netcat: ; o.conip <IPaddress> (request a connect) ; o.dconip <IPaddress> (request a disconnect) ; o.rec (turn on/off recording) ; ipaddr ; port #includeifexists custom/echolink.conf </code > ++++ I decided, since I had a few spare Raspberry Pi boards doing nothing much, to split the DMR Bridging to a separate node. I removed the DVSwitch bridging from the VHF Gateway node and changed its node ID to ''481480'' (NNX) ===== DMR Bridging Node ===== |Platform | Raspberry Pi 3 Model B Rev 1.2 | |Allstar Node | [[http://stats.allstarlink.org/stats/481481 | 481481]] | |Dashboard| http://gm4slv.plus.com:42111/| This one is for running DVSwitch to bridge to (at the moment) TGIF TG23544<color red>29</color> (my so-called //ID Talkgroup// ) I added the DVSwitch software, in the same way described here [[gm4slv_allstar_2025|]] and decided to bridge to ''TGIF'' instead of Brandmeister. I also decided to use the ''md380_emu'' emulator for the AMBE transcoding. ==== MMDVM_Bridge.ini ==== ++++ /opt/MMDVM_Bridge/MMDVM_Bridge.ini | <code ini> [General] Callsign=GM4SLV Id=235442999 Timeout=180 Duplex=0 [Info] RXFrequency=144900000 TXFrequency=144900000 Power=1 Latitude=60.2885 Longitude=-1.4215 Height=0 Location=GM4SLV Bridge1 Description=MMDVM_Bridge URL=https://gm4slv.org.uk [Log] # Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal DisplayLevel=1 FileLevel=2 FilePath=/var/log/mmdvm FileRoot=MMDVM_Bridge [DMR Id Lookup] File=/var/lib/mmdvm/DMRIds.dat Time=24 [NXDN Id Lookup] File=/var/lib/mmdvm/NXDN.csv Time=24 [Modem] Port=/dev/null RSSIMappingFile=/dev/null Trace=0 Debug=0 [D-Star] Enable=0 Module=B [DMR] Enable=1 ColorCode=1 EmbeddedLCOnly=1 DumpTAData=0 [System Fusion] Enable=0 [P25] Enable=0 NAC=293 [NXDN] Enable=0 RAN=1 Id=12345 [D-Star Network] Enable=0 GatewayAddress=127.0.0.1 GatewayPort=20010 LocalPort=20011 Debug=0 [DMR Network] Enable=1 Address=tgif.network Port=62031 ;Jitter=360 Jitter=750 Local=62032 Password=XXXXXXXXXXXXXXXXXXXXx # for DMR+ see https://github.com/DVSwitch/MMDVM_Bridge/blob/master/DOC/DMRplus_startup_options.md # for XLX the syntax is: Options=XLX:4009 # Options= Slot1=0 Slot2=1 Debug=0 [System Fusion Network] Enable=0 LocalAddress=0 LocalPort=3200 GatewayAddress=127.0.0.1 GatewayPort=4200 Debug=0 [P25 Network] Enable=0 GatewayAddress=127.0.0.1 GatewayPort=42020 LocalPort=32010 Debug=0 [NXDN Network] Enable=0 #LocalAddress=127.0.0.1 Debug=0 LocalPort=14021 GatewayAddress=127.0.0.1 GatewayPort=14020
Analog_Bridge.ini
/opt/Analog_Bridge/Analog_Bridge.ini
; Analog_Bridge configuration file. ; This file should be placed in either /etc or it can be ; supplied as a path on the Analog_Bridge command line. ; The best way to think of this file is that there are two main sections, the USRP (analog audio) and ; AMBE_AUDIO (compressed audio). Analog_Bridge will take everything sent to the USRP port and ; encode it for transmission on the AMBE_AUDIO port. The encoder will use the format defined in ambeMode. ; As you might expect, the reverse direction is defined too. ; Analog_Bridge supports include files. More on this later... include = dvsm.macro ; include = asl.macro ; General Section describes settings for Analog_Bridge itself. [GENERAL] logLevel = 2 ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal ; Metadata management exportMetadata = true ; Export metadata to USRP partner (transcode setups require this) transferRootDir = /tmp ; Export database files to USRP partner subscriberFile = /var/lib/dvswitch/subscriber_ids.csv ; DMR ID to callsign lookup data ; General vocoder setup information decoderFallBack = true ; Allow software AMBE decoding if a hardware decoder is not found useEmulator = true ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN) emulatorAddress = 127.0.0.1:2470 ; IP address and port of the md380 server pcmPort = 2222 ; UDP port to send to the WebProxy ; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC) [AMBE_AUDIO] address = 127.0.0.1 ; IP address of xx_Bridge txPort = 31103 ; Transmit TLV frames to partner on this port rxPort = 31100 ; Listen for TLV frames from partner on this port ambeMode = DMR ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format) minTxTimeMS = 2500 ; Analog -> Digital Minimum time in MS for hang delay (0-10000) ; The metadata below is used when ASL is the source since it does not have any concept of digital modes gatewayDmrId = 2354429 ; ID to use when transmitting from Analog_Bridge 7 digit ID repeaterID = 235442999 ; ID of source repeater 7 digit ID plus 2 digit SSID txTg = 2354429 ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge txTs = 2 ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge colorCode = 1 ; Color Code to assign DMR frames ; Information for USRP channel driver. This interface uses PCM to transfer audio information ; There are two typical configurations, ASL and Transcode. ASL (AllstarLink) is for analog clients connected ; to a digital network. Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, ; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture. ; When using ASL, this matches the rpt.conf ASL file with a setting like: ; rxchannel = usrp/127.0.0.1:34001:32001 ; When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover). Launch ; each instance with its own ini file. [USRP] address = 127.0.0.1 ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge) txPort = 31001 ; Transmit USRP frames on this port rxPort = 34001 ; Listen for USRP frames on this port usrpAudio = AUDIO_USE_GAIN ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC) usrpGain = 5.0 ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY) usrpAGC = -20,10,100 ; Set the agc threshold (db), slope (db) and decay (ms) tlvAudio = AUDIO_USE_GAIN ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF) tlvGain = 1.0 ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY) [MACROS] ; Where the macros are ; xxxx=yyyy ; xxxx is the dial string to match ; yyyy is the command line to execute ; xxxx must be preceded by a * ; xxxx can be any string (alphanumeric) ; yyyy is the command to execute ; yyyy will replace xxxx in the dial string ; arguments follow the macro name with a # delimiter ; For example using macro "5678" above would look like: ; *5678#9876 ; Which would invoke: ; echo 9876 ; Information for DV3000 hardware decoder ; There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware) ; Use top server and port if using AMBEServer ; Use bottom server/port and serial = true if using the DV3000u (thumbdv) ; Did you run AMBETest4.py before using this? [DV3000] address = 127.0.0.1 ; IP address of AMBEServer rxPort = 2460 ; Port of AMBEServer ; address = /dev/ttyUSB0 ; Device of DV3000U on this machine ; baud = 460800 ; Baud rate of the dongle (230400 or 460800) ; serial = true ; Use serial=true for direct connect or serial=false for AMBEServer
Test Node
Platform | Raspberry Pi 2 Model B Rev 1.1 |
Allstar Node | 481482 |
Dashboard | http://gm4slv.plus.com:42112/ |
This one is to use for tests and experiments….
Experiment 1
Friday 6th June 2025
Make a 2nd DMR Bridge to monitor DVSPh TG733 “MilNet”
- Made a new private node
1398
- Connect
481482
to internal private1398
- Set up DVSwitch MMDVM_Bridge & Analog_Bridge
- MMDVM set to use Hotspot ID
235442998
- Options=StartRef=4000;RelinkTime=0;UserLink=0;TS1_1=733;
- Connected MMDVM_Bridge to DVS_Ph F server - linked to TG733
- Main VHF Gateway Node
481481
connected to Test Node481482
in “Monitor” mode.
Experiment 2
Saturday 7th June 2025
Change this DMR bridge to TGIF TG2354435
This is the ID Talkgroup for my 2nd DMR ID
- MMDVM_Bridge set to connect to TGIF, using my alternative DMR ID, as hotspot
235443598
- this requires the correct User Security passphrase for
2354435
- Also confirmed operation with MMDVM_Bridge connecting as normal
235442998
(my “usual” DMR ID with SSID=98) - Analog_Bridge set to use TG2354435
MMDVM_Bridge.ini
/opt/MMDVM_Bridge/MMDVM_Bridge.ini
[General] Callsign=GM4SLV Id=235443598 Timeout=180 Duplex=0 [Info] RXFrequency=144900000 TXFrequency=144900000 Power=1 Latitude=60.2885 Longitude=-1.425 Height=0 Location="GM4SLV Bridge2" Description=MMDVM_Bridge URL=https://gm4slv.org.uk [Log] # Logging levels, 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal DisplayLevel=1 FileLevel=2 FilePath=/var/log/mmdvm FileRoot=MMDVM_Bridge [DMR Id Lookup] File=/var/lib/mmdvm/DMRIds.dat Time=24 [NXDN Id Lookup] File=/var/lib/mmdvm/NXDN.csv Time=24 [Modem] Port=/dev/null RSSIMappingFile=/dev/null Trace=0 Debug=0 [D-Star] Enable=0 Module=B [DMR] Enable=1 ColorCode=1 EmbeddedLCOnly=1 DumpTAData=0 [System Fusion] Enable=0 [P25] Enable=0 NAC=293 [NXDN] Enable=0 RAN=1 Id=12345 [D-Star Network] Enable=0 GatewayAddress=127.0.0.1 GatewayPort=20010 LocalPort=20011 Debug=0 [DMR Network] Enable=1 ; TGIF Address=tgif.network Port=62031 ;TGIF Password for 2354435 Password=XXXXXXXXXXXX ; TGIF Password for 2354429 ;Password=XXXXXXXXXXXX ; Brandmeister ;Address=2341.master.brandmeister.network ;Password=XXXXXXXXXX ;Port=62031 Jitter=750 Local=62032 ; FOR DVS_Ph F ;Address=78.129.135.43 ;Port=55555 ;Password=PASSWORD ;Options=StartRef=4000;RelinkTime=0;UserLink=0;TS1_1=733; Slot1=0 Slot2=1 Debug=0 [System Fusion Network] Enable=0 LocalAddress=0 LocalPort=3200 GatewayAddress=127.0.0.1 GatewayPort=4200 Debug=0 [P25 Network] Enable=0 GatewayAddress=127.0.0.1 GatewayPort=42020 LocalPort=32010 Debug=0 [NXDN Network] Enable=0 #LocalAddress=127.0.0.1 Debug=0 LocalPort=14021 GatewayAddress=127.0.0.1 GatewayPort=14020
Analog_Bridge.ini
/opt/Analog_Bridge/Analog_Bridge.ini
; Analog_Bridge configuration file. ; This file should be placed in either /etc or it can be ; supplied as a path on the Analog_Bridge command line. ; The best way to think of this file is that there are two main sections, the USRP (analog audio) and ; AMBE_AUDIO (compressed audio). Analog_Bridge will take everything sent to the USRP port and ; encode it for transmission on the AMBE_AUDIO port. The encoder will use the format defined in ambeMode. ; As you might expect, the reverse direction is defined too. ; Analog_Bridge supports include files. More on this later... include = dvsm.macro ; include = asl.macro ; General Section describes settings for Analog_Bridge itself. [GENERAL] logLevel = 2 ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal ; Metadata management exportMetadata = true ; Export metadata to USRP partner (transcode setups require this) transferRootDir = /tmp ; Export database files to USRP partner subscriberFile = /var/lib/dvswitch/subscriber_ids.csv ; DMR ID to callsign lookup data ; General vocoder setup information decoderFallBack = true ; Allow software AMBE decoding if a hardware decoder is not found useEmulator = true ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN) emulatorAddress = 127.0.0.1:2470 ; IP address and port of the md380 server pcmPort = 2222 ; UDP port to send to the WebProxy ; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC) [AMBE_AUDIO] address = 127.0.0.1 ; IP address of xx_Bridge txPort = 31103 ; Transmit TLV frames to partner on this port rxPort = 31100 ; Listen for TLV frames from partner on this port ambeMode = DMR ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format) minTxTimeMS = 2500 ; Analog -> Digital Minimum time in MS for hang delay (0-10000) ; The metadata below is used when ASL is the source since it does not have any concept of digital modes gatewayDmrId = 2354435 ; ID to use when transmitting from Analog_Bridge 7 digit ID repeaterID = 235443598 ; ID of source repeater 7 digit ID plus 2 digit SSID txTg = 2354435 ; TG to use for all frames sent from Analog_Bridge -> xx_Bridge txTs = 2 ; Slot to use for frames sent from Analog_Bridge -> xx_Bridge colorCode = 1 ; Color Code to assign DMR frames ; Information for USRP channel driver. This interface uses PCM to transfer audio information ; There are two typical configurations, ASL and Transcode. ASL (AllstarLink) is for analog clients connected ; to a digital network. Transcode is when Analog_Bridge actually points its PCM interfaces back at itself, ; causing a TLV <-- (pcm <--> pcm) --> TLV type of architecture. ; When using ASL, this matches the rpt.conf ASL file with a setting like: ; rxchannel = usrp/127.0.0.1:34001:32001 ; When Transcoding, make two ini files and set txPort equal to the other instance rxPort (crossover). Launch ; each instance with its own ini file. [USRP] address = 127.0.0.1 ; IP address of USRP partner (Analog_Reflector, Allstar/Asterisk or another Analog_Bridge) txPort = 31001 ; Transmit USRP frames on this port rxPort = 34001 ; Listen for USRP frames on this port usrpAudio = AUDIO_USE_GAIN ; Digital -> Analog (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_USE_AGC) usrpGain = 5.0 ; Gain factor when usrpAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY) usrpAGC = -20,10,100 ; Set the agc threshold (db), slope (db) and decay (ms) tlvAudio = AUDIO_USE_GAIN ; Analog -> Digital (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF) tlvGain = 1.0 ; Gain factor when tlvAudio = AUDIO_USE_GAIN (0.0 to 5.0) (1.0 = AUDIO_UNITY) [MACROS] ; Where the macros are ; xxxx=yyyy ; xxxx is the dial string to match ; yyyy is the command line to execute ; xxxx must be preceded by a * ; xxxx can be any string (alphanumeric) ; yyyy is the command to execute ; yyyy will replace xxxx in the dial string ; arguments follow the macro name with a # delimiter ; For example using macro "5678" above would look like: ; *5678#9876 ; Which would invoke: ; echo 9876 ; Information for DV3000 hardware decoder ; There are two configuration modes: IP (AMBEServer) and serial (direct connect hardware) ; Use top server and port if using AMBEServer ; Use bottom server/port and serial = true if using the DV3000u (thumbdv) ; Did you run AMBETest4.py before using this? [DV3000] address = 127.0.0.1 ; IP address of AMBEServer rxPort = 2460 ; Port of AMBEServer ; address = /dev/ttyUSB0 ; Device of DV3000U on this machine ; baud = 460800 ; Baud rate of the dongle (230400 or 460800) ; serial = true ; Use serial=true for direct connect or serial=false for AMBEServer
— John Pumford-Green 08/06/25 18:44 BST
Further Information
public/radio/2025/allstar_nodes_built.1749463189.txt.gz · Last modified: by john