Topics

ASL Briddge to YSF/FCS #analog_bridge


ve6gcd@...
 

Happy New Year Everyone,

I am trying to bridge ASL directly to YSF/FCS. We are trying to avoid conflict with Brandmeister requirements at the moment which is why we are considering to bridge ASL and FCS directly. During my initial setup it appears Analog_Bridge is rejecting the AMBE72 packets received from YSFGateway. Upon checking the logs, I noticed that the mode keeps being set to "DMR" even if AMBE_MODE has been set to "YSFN". I am currently running Debian Linux on amd64 hardware for this setup.

Geoffrey VE6GCD  


Steve N4IRS
 

Geoffrey,
Can you post your Analog_Bridge.ini so we can start there?

Steve N4IRS

On 12/26/19 2:50 PM, ve6gcd@... wrote:
Happy New Year Everyone,

I am trying to bridge ASL directly to YSF/FCS. We are trying to avoid conflict with Brandmeister requirements at the moment which is why we are considering to bridge ASL and FCS directly. During my initial setup it appears Analog_Bridge is rejecting the AMBE72 packets received from YSFGateway. Upon checking the logs, I noticed that the mode keeps being set to "DMR" even if AMBE_MODE has been set to "YSFN". I am currently running Debian Linux on amd64 hardware for this setup.

Geoffrey VE6GCD  


ve6gcd@...
 

Hi Steve,

Analog_Bridge in my computer was installed using DVSwitch-System-Builder.

Do I need to set anything under the MACROS section (to set the mode)? Anyway, below is the config of my setup.

===================================================================================
; 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 = 1                            ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
; Metadata management
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv   ; DMR ID to callsign lookup data
exportMetadata = true                   ; Export metadata to USRP partner (transcode setups require this)
; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server
; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC)
[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 35103                          ; Transmit TLV frames to partner on this port
rxPort = 35100                          ; Listen for TLV frames from partner on this port
ambeMode = YSFN                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2500                      ; 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 = 3026120                        ; ID to use when transmitting from Analog_Bridge
repeaterID = 302612001                          ; ID of source repeater
txTg = 3026120                                ; 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 (Allstar/Asterisk or another Analog_Bridge)
txPort = 32001                          ; Transmit USRP frames on this port
rxPort = 34001                          ; Listen for USRP frames on this port
usrpAudio = AUDIO_UNITY                 ; Audio to ASL (AUDIO_UNITY, AUDIO_USE_AGC, AUDIO_USE_GAIN)
usrpGain = 1.10                         ; Gain (in db) of the AGC filter
tlvAudio = AUDIO_UNITY                  ; Audio from ASL (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
tlvGain = 0.35                          ; Gain factor of audio from ASL (0.0-1.0)
[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
===================================================================================


Steve N4IRS
 

I really have to update the system builder script.
Here are a few things you should do.
We post the latest code for the DVSwitch programs in github before the make it to the apt repository.
For Analog Bridge the repo is at <https://github.com/DVSwitch/Analog_Bridge>
I suggest you get the executable for your system from the bin directory
There have been some changes to the .ini file take a look at those.
There are newer macro files and a script that will help you control a running system. it is dvswitch.sh

For MMDVM_Bridge the repo is at <https://github.com/DVSwitch/MMDVM_Bridge
Get the updated executable from the bin directory.

If all you are planning to run is YSF, I suggest you turn off the other modes and mode networks in MMDVM_Bridge.ini

Hope this helps,
73, Steve N4IRS

On 12/26/19 5:36 PM, ve6gcd@... wrote:
Hi Steve,

Analog_Bridge in my computer was installed using DVSwitch-System-Builder.

Do I need to set anything under the MACROS section (to set the mode)? Anyway, below is the config of my setup.

===================================================================================
; 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 = 1                            ; Show messages and above 0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error, 6=Fatal
; Metadata management
subscriberFile = /var/lib/dvswitch/subscriber_ids.csv   ; DMR ID to callsign lookup data
exportMetadata = true                   ; Export metadata to USRP partner (transcode setups require this)
; General vocoder setup information
decoderFallBack = true                  ; Allow software AMBE decoding if a hardware decoder is not found
useEmulator = false                     ; Use the MD380 AMBE emulator for AMBE72 (DMR/YSFN/NXDN)
emulatorAddress = 127.0.0.1:2470        ; IP address and port of the md380 server
; Information for xx_Bridge (Where xx is MMDVM, Quantar, HB, IPSC)
[AMBE_AUDIO]
address = 127.0.0.1                     ; IP address of xx_Bridge
txPort = 35103                          ; Transmit TLV frames to partner on this port
rxPort = 35100                          ; Listen for TLV frames from partner on this port
ambeMode = YSFN                          ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2500                      ; 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 = 3026120                        ; ID to use when transmitting from Analog_Bridge
repeaterID = 302612001                          ; ID of source repeater
txTg = 3026120                                ; 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 (Allstar/Asterisk or another Analog_Bridge)
txPort = 32001                          ; Transmit USRP frames on this port
rxPort = 34001                          ; Listen for USRP frames on this port
usrpAudio = AUDIO_UNITY                 ; Audio to ASL (AUDIO_UNITY, AUDIO_USE_AGC, AUDIO_USE_GAIN)
usrpGain = 1.10                         ; Gain (in db) of the AGC filter
tlvAudio = AUDIO_UNITY                  ; Audio from ASL (AUDIO_UNITY, AUDIO_USE_GAIN, AUDIO_BPF)
tlvGain = 0.35                          ; Gain factor of audio from ASL (0.0-1.0)
[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
===================================================================================


ve6gcd@...
 

Hi Steve,

Just one more question before the reinstall, does Analog_Bridge run dvswitch.sh automatically at startup?

73,
Geoffrey VE6GCD


Steve N4IRS
 

No it does not. dvswitch.sh is used to send commands to a running AB. You can run it with ./dvswitch.sh to see the list of available commands. dvswitch.sh can be used in scripts or ASL commands.

Steve

On 12/26/19 5:57 PM, ve6gcd@... wrote:
Hi Steve,

Just one more question before the reinstall, does Analog_Bridge run dvswitch.sh automatically at startup?

73,
Geoffrey VE6GCD


ve6gcd@...
 

Thanks Steve,

Does that mean I can insert a startup macro for the USRP node via rpt.conf so it will run dvswitch.sh in YSF mode?

73,
Geoffrey VE6GCD


Steve N4IRS
 

You CAN, but if you configure Analog_Bridge for YSF that is how it will startup. After that lets say you want to change reflectors, there is where dvswitch.sh would come in. Another example would be if you want to raise or lower the audio level without restarting AB, you could use dvswitch.sh to do it.

 Steve

On 12/26/19 6:56 PM, ve6gcd@... wrote:
Thanks Steve,

Does that mean I can insert a startup macro for the USRP node via rpt.conf so it will run dvswitch.sh in YSF mode?

73,
Geoffrey VE6GCD


ve6gcd@...
 

Hi Steve,

I followed your instructions as soon as I returned to Calgary. YSF packets to/from room FCS00462 are now being vocoded by my AllStarLink node. Thanks and Happy New Year!.

73,
Geoffrey VE6GCD


Tito Lopez
 

I find my self in this situation. just having a brain fart where the file goes or gets replaced. My question is would it affect what is already installed?
Please advise.


Steve N4IRS
 

Stop Analog_Bridge
Stop MMDVM_Bridge
Analog_Bridge usually is in /opt/Analog_Bridge
MMDVM_Bridge is usually in /opt/MMDVM_Bridge

replace the executables from github
restart the services.