Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
Search
How to use Direwolf with multiple clients and multiple radios?
I've been using DW for some time now configured with a single channel and a single radio.? If I want to switch between APRS and WINLINK, I have to quit that application and change my radio frequency.
I would like to build/configure DW to have multiple channels with multiple radios attached, but operate independently.? I don't want APRS beacons to go out all channels and the same for WINLINK sessions. How do I configure DW for such operation? More importantly, how do I tell the client applications to use certain ports? (I'm using DW 1.7b on a RPi 4 with a 7" LCD touch display.? Device 1 is an Alinco RIM-9600 and Device 2 is an Audio Injector Zero) Any assistance would be greatly appreciated! --73 de N1OBU |
The key to connecting to 2 different radios is having 2 different mic (line in) inputs. That means either: ?? a) Stereo mic or line in ?? b) Two sepearte sound cards. With Direwolf 1.7, you cxan assign separate KISS over TCP/IP ports to each audio channel, so it is very easy to connect each application separately. Example: If using 2 separate sound cards, . ??? ADEVICE plughw:2,0 ?? ACHANNELS 1 ??? ADEVICE1 plughw:3,0 ??? ACHANNELS 1 ??? CHANNEL 0 ?? ?MYCALL K0CAL-1 ??? CHANNEL 2 ?? ?MYCALL K0CAL-2 ??? KISSPORT 8001 1 ??? AGWPORT 8011 1 ??? KISSPORT 8002 2 ??? AGWPORT 8012 2 Color coded to match settings with devices. So, APRS could connect to KISS port 8001 or AGW port 8011 (Yellow) ?? and WINLINK to KISS port 8002or AGW port 8012? (Blue) Robert Giuliano
On Sunday, November 14, 2021, 06:15:05 PM EST, Douglas Pervine <douglas.pervine@...> wrote:
I've been using DW for some time now configured with a single channel and a single radio.? If I want to switch between APRS and WINLINK, I have to quit that application and change my radio frequency. I would like to build/configure DW to have multiple channels with multiple radios attached, but operate independently.? I don't want APRS beacons to go out all channels and the same for WINLINK sessions. How do I configure DW for such operation? More importantly, how do I tell the client applications to use certain ports? (I'm using DW 1.7b on a RPi 4 with a 7" LCD touch display.? Device 1 is an Alinco RIM-9600 and Device 2 is an Audio Injector Zero) Any assistance would be greatly appreciated! --73 de N1OBU |
Robert,
? Thanks for the assistance.? When I configure my DW as described, I get this result: (Note:? This is only a test setup. Not on the air yet.) ? Looks like AGWPORT can only listen to and respond to one port/radio. AGWPORT 8000 0 KISSPORT 8001 0
?
AGWPORT 8020 2
KISSPORT 8021 2
?
AGWPORT 8030 3
KISSPORT 8031 3
?
Reading config file both.conf
Audio device for both receive and transmit: plughw:1,0? (channel 0)
Audio device for both receive and transmit: plughw:0,0? (channels 2 & 3)
Channel 0: 1200 baud, AFSK 1200 & 2200 Hz, A+, 44100 sample rate / 3.
Channel 2: 2400 bps, QPSK, PQRS, 44100 sample rate, compatible with MFJ-2400.
Channel 3: 2400 bps, QPSK, PQRS, 44100 sample rate, compatible with MFJ-2400.
Using /dev/hidraw0 GPIO 3 for channel 0 PTT control.
Ready to accept AGW client application 0 on port 8030 ...
Ready to accept KISS TCP client application 0 on port 8001 (radio channel 0) ...
Ready to accept KISS TCP client application 0 on port 8021 (radio channel 2) ...
Ready to accept KISS TCP client application 0 on port 8031 (radio channel 3) ...
? |
So, you have 2 physical sound cards you are using and 3 radios?
Device 0 (ADevice) appears to be plug1,0 and is connected to settings of AChannel 0. Device 1 (ADevice1) appears to be stereo and connected to 2 radios for AChannel2 2 & 3? I wasn't really using AGW, so can't be sure, but I thought I had separate ports for each ADevice.?? My setup had a single channel on each device (neither device was stereo). That particular setup has been reconfigured and at home.? I'll have to set it back up and try it this evening. Rob KB8RCO |
Well, I found a Pi here at work and had a uSD with the needed configuration.
I tried this and it worked as discussed. NOTE:??/g/direwolf/message/4925? ? ?This message says that AGW is only 1 port, but TCP/IP can be split between devices. Rob KB8RCO |
Hello I am new to this group.? I tried this in the beta release 1.7 and when I run Direolf I only see my channel 2 ports?
In short : ADEVICE? plughw:1,0 ACHANNELS 1 ADEVICE1? plughw:4,0
ACHANNELS 1 CHANNEL 0 MYCALL KC3SMW-1 MODEM 300 PTT /dev/ttyUSB0 RTS ;radio soundcard CHANNEL 2
MYCALL KC3SMW-2
MODEM 1200
;signalink AGWPORT 8001 0
KISSPORT 8100 0
?
AGWPORT 8003 2
KISSPORT 8101 2
but I get an output in the terminal of: Reading config file direwolf.conf
Audio device for both receive and transmit: plughw:1,0? (channel 0)
Audio device for both receive and transmit: plughw:4,0? (channel 2)
Channel 0: 300 baud, AFSK 1600 & 1800 Hz, D, 44100 sample rate / 3.
Channel 2: 1200 baud, AFSK 1200 & 2200 Hz, E+, 44100 sample rate.
Note: PTT not configured for channel 2. (Ignore this if using VOX.)
Ready to accept AGW client application 0 on port 8003 ...
Ready to accept KISS TCP client application 0 on port 8101 ...
DId I do something wrong? Thanks? Greg |
The question is what are you seeing your CHANNEL 2 port with?
Since you have defined different KISS and AGW ports for each interface, you need to connect to both 8001 and 8003 (or 8100 and 8101) at the same time, in order to see both channel's data. I suggest testing with only a single AGW and KISS port.? Make sure it is working.? Then (if needed) split the ports. Separate ports (as you have it): AGWPORT 8001 0
KISSPORT 8100 0
?
AGWPORT 8003 2
KISSPORT 8101 2Comment both out, and add (note the channel is missing, so both will be on the same port) AGWPORT 8001
KISSPORT 8100
------- Rob KB8RCO |
¿ªÔÆÌåÓýThe author should confirm, but I don't think Direwolf supports per-channel ports for the AGW and KISS protocol sockets. Both protocols support specifying which channel you want to use natively, so you can multiplex multiple radio channels through
the same socket connection. For example, incoming packets from the second radio/soundcard part of the configuration would be appearing over KISS as "TNC" port 1 in the KISS prefix byte (first would be port 0), and transmissions would be routed to radios the
same way.
I know I had to deal with demultiplexing packets by channel in my YAAC application that supports both AGW and KISS connectivity to Direwolf.
Andrew, KA2DDO
author of YAAC
From: [email protected] <[email protected]> on behalf of Rob Giuliano via groups.io <kb8rco@...>
Sent: Friday, April 7, 2023, 12:56 PM To: [email protected] <[email protected]> Subject: Re: [direwolf] How to use Direwolf with multiple clients and multiple radios? The question is what are you seeing your CHANNEL 2 port with? Since you have defined different KISS and AGW ports for each interface, you need to connect to both 8001 and 8003 (or 8100 and 8101) at the same time, in order to see both channel's data. I suggest testing with only a single AGW and KISS port.? Make sure it is working.? Then (if needed) split the ports. Separate ports (as you have it): AGWPORT 8001 0
KISSPORT 8100 0
?
AGWPORT 8003 2
KISSPORT 8101 2Comment both out, and add (note the channel is missing, so both will be on the same port) AGWPORT 8001
KISSPORT 8100
------- Rob KB8RCO |
Thank you.??
I have tried various things.? It appears that it will only recognize the 2nd set of listed ports,? the first set gets ignored.? It doesn't matter what number they are assigned.? ? ? My ultimate goal is to add an HF radio to my current VHF linBPQ node using 1 RPI and 2 signalinks (or Signalink and digirig).?? |
¿ªÔÆÌåÓýHello Greg, When you say you only see your "channel 2 ports", what do you mean?? Is it because you don't see the specific AGW and KISSTCP ports that correlate to your "channel 2" actually applied to channel 2? I see two things going on here: ?? #1 - You didn't show your entire configuration but your AGWPORT and KISSTCP lines seem to be configured under the ADEVICE1:CHANNEL2 area.? Try moving the first set of AGWPORT and KISSTCP lines to be under ADEVICE0:CHANNEL0 ?? #2 - While maybe it's not a hard bug, I would argue that Direwolf is applying your CHANNEL 2 port numbers to CHANNEL 0 based on how you configured things.? I think this could be handled better. ?? #3 - It's not clear what applications you're trying to interface via KISSTCP or AGW but both protocols support the concept of which "radio port" to use.? This should be supported by your application.? For example, for Outpost Packet Manager for Windows - page 2 ( ), there is the "TNC radio port" field.? The same goes for KISSTCP.? See the source code comments below. ?? #4 - GAP: Looking at the source code, Direwolf AGW doesn't support fixed "channel" assignments like you're trying to configuring things but I don't think it's required.? The Direwolf User Guide should be more clear about this.? All that said, I think Direwolf will do what you want but you just shouldn't try to hardcode the "channels" in the AGW or KISSTCP stanzas of the direwolf.conf file: src/config.c ------------------------------------------------------------------------------------------------------------------------ /* ?* AGWPORT????????????? - Port number for "AGW TCPIP Socket Interface" ?* ?* In version 1.2 we allow 0 to disable listening. ?*/ // FIXME:? complain if extra parameter e.g. port as in KISSPORT? <------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------ /* ?* KISSPORT port [ chan ]?????????????? - Port number for KISS over IP? <----------------------------------------------- ?*/ ??????? // Previously we allowed only a single TCP port for KISS. ??????? // An increasing number of people want to run multiple radios. ??????? // Unfortunately, most applications don't know how to deal with multi-radio TNCs. ??????? // They ignore the channel on receive and always transmit to channel 0. ??????? // Running multiple instances of direwolf is a work-around but this leads to ??????? // more complex configuration and we lose the cross-channel digipeating capability. ??????? // In release 1.7 we add a new feature to assign a single radio channel to a TCP port. ??????? // e.g. ??????? //????? KISSPORT 8001?????????? # default, all channels.? Radio channel = KISS channel. ??????? // ??????? //????? KISSPORT 7000 0???????? # Only radio channel 0 for receive. ??????? //????????????????????????????? # Transmit to radio channel 0, ignoring KISS channel. ??????? // ??????? //????? KISSPORT 7001 1???????? # Only radio channel 1 for receive.? KISS channel set to 0. ??????? //????????????????????????????? # Transmit to radio channel 1, ignoring KISS channel. ------------------------------------------------------------------------------------------------------------------------ --David KI6ZHD |
In V1.7 of Direwolf, you can split the TCP/IP ports per ACHANNEL. Some applications (namely APRSIS32) will receive the multiple "streams", but only transmit on the first.?? (Lynn hasn't implemented the stream tracking for transmit - YET.) I have DEINITELY run 2 separate TCP/IP KISS ports per the designation described. BUT ... if you split them, then they can't be viewed on the same application, unless the application is capable of multiple ports. Robert Giuliano
On Friday, April 7, 2023 at 02:17:37 PM EDT, Greg Cheng <kc3smw@...> wrote:
Thank you.?? I have tried various things.? It appears that it will only recognize the 2nd set of listed ports,? the first set gets ignored.? It doesn't matter what number they are assigned.? ? ? My ultimate goal is to add an HF radio to my current VHF linBPQ node using 1 RPI and 2 signalinks (or Signalink and digirig).?? |
Was that just implemented for TCP KISS?
Or did you just not post the AGW code?
?
As stated in a previous post, I know the TCP KISS works, but as noted from the code, that is specific to receive.
I am pretty sure I had the definitions after all the device declarations (so appears after CHANNEL 2 in config).
So, if the application is listening on KISS port 8100, it will only hear CHANNEL 2. If your application listens on KISS port 8101,? , it will only hear CHANNEL 0. Again, (and since the posted code saya nothing about it) I am not sure this was implemented for AGW, so (in theory) the second statement (CHANNEL 2) should be used. Robert Giuliano |
Thank you all.? I did get it to work with direwolf 1.7 and help from the code's author John.
I commented out the AWGports because I am not using them.?? my conf file is: #HF
ADEVICE? plughw:4,0
?
ACHANNELS 1
#VHF ADEVICE1? plughw:1,0
?
ACHANNELS 1
?
CHANNEL 0
?
MYCALL KC3SMW-7
?
MODEM 300
#MODEM 9600
PTT /dev/serial/by-id/usb-Silicon_Labs_CP2105_Dual_USB_to_UART_Bridge_Controller_0111E470-if01-port0 RTS
?
CHANNEL 2
?
MYCALL KC3SMW-7
MODEM 1200
#signalink ptt
#AGWPORT 8003 2
#AGWPORT 8000 0
?
KISSPORT 8100 0
KISSPORT 8101 2
When I fire up dire wolf it outputs: Dire Wolf DEVELOPMENT version 1.7 A (Apr? 6 2023)
Includes optional support for:? hamlib cm108-ptt
Reading config file /home/chengmania/dev/BETATESTING/direwolf-1.7-dev-A/build/direwolfBeta.conf
Audio device for both receive and transmit: plughw:4,0? (channel 0)
Audio device for both receive and transmit: plughw:1,0? (channel 2)
Channel 0: 300 baud, AFSK 1600 & 1800 Hz, A+, 44100 sample rate / 3.
Channel 2: 1200 baud, AFSK 1200 & 2200 Hz, A+, 44100 sample rate.
Note: PTT not configured for channel 2. (Ignore this if using VOX.)
Ready to accept KISS TCP client application 0 on port 8100 (radio channel 0) ...
Ready to accept KISS TCP client application 0 on port 8101 (radio channel 2) ...
---- These last two lines was what I was looking for.??Then I start linBPQ and direwolf reads: Attached to KISS TCP client application 0 on port 8101 (radio channel 2) ...
Ready to accept KISS TCP client application 1 on port 8101 (radio channel 2) ...
Attached to KISS TCP client application 0 on port 8100 (radio channel 0) ...
Ready to accept KISS TCP client application 1 on port 8100 (radio channel 0) .
---? This tells my both ports on linBPQ are connected to dire wolf.? I don't know how linBPQ will handle simultaneous connections with VHF and HF, but that's for different forum? I was able to beacon on both my VHF radio and my HF radio independently.? ?I heard my vhf signal using a handheld and the HF signal using a websdr. Now I just need to setup some local volunteers to connect to the test node by both VHF and HF.?? After a few more tests on my laptop I will be transferring the of this to my Raspberry Pi4 and will have a working linBPQ node on both VHF and HF.?? Thank you again for everyone's help and suggestions.?? |
to navigate to use esc to dismiss