Welcome to the new FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
If you are having a problem, please refer to the product documentation or check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.

Announce: experimental CAT/DAX clients for Linux

124

Comments

  • Ray G6UJB
    Ray G6UJB Member ✭✭

    Alan, Looks like something has already bound to udp port 4992 which causes nCAT to exit.

    Check out what's using the port. @Lou KI5FTY suggested this test a few posts back for another ham with similar problem, try....

    sudo netstat -nap|grep 4992

    see what you get, it should give you a clue.

    73 Ray

  • Alan
    Alan Member ✭✭✭✭

    Ray

    Thanks. I am using a Node-Red UDP listener on Port 4992, listening for the VITA49 broadcasts.

    Strange, the UDP listener on port 4992 is not running on the same Linux machine.

    Are there any work arounds?

    Alan. WA9WUD

  • Alan
    Alan Member ✭✭✭✭

    So, if the default is for nCAT to "discover" clients from binding to port 4992 to get the VITA49 packtets, let try another approach.

    Still not working. I tried a "-radio string", thinking nCAT would bind to the radio. Here is the response:

    Next, I tried adding a "-station string". Same result.

    Alan. WA9WUD

  • Ted  VE3TRQ
    Ted VE3TRQ Member ✭✭✭
    edited July 2021

    Drop the word “string” after “-radio” and after “-station”.

  • Alan
    Alan Member ✭✭✭✭

    Thanks, Ted.

    All good now. nCAT and nDAX running and WSJT-X Linux working. All on my NUC i5.

    My Linux journey continues.

    Alan. WA9WUD

  • Alan
    Alan Member ✭✭✭✭

    Now that I have nDAX and nCAT working, I built a Node-Red flow to provide a Dashboard interface. Pushing the buttons will toggle nDAX or nCAT on/off.

    Since the default Flex/Client discovery from nDAX and nCAT will not work (due to conflicting use of the 4992 UDP Flex Discovery Port, I built the Client Discovery function into my flow and the parameters are added to the command by Node-Red. All bound Clients will be shown in the pull down Client Selector:



    Radio IP address and the Directory containing nDAX and nCAT are configured on the flow:

    Information for the Flow, and download, is contained on the Ham Radio Node-Red Group:

    Alan. WA9WUD

  • Alan
    Alan Member ✭✭✭✭

    Where are the instruction form running multiple instances of xDAX and xCAT?

    The read me for xDAX says, "To run multiple nDAX instances, see the scripts directory"

    The read me for xCAT says, "To run multiple nCAT instances, see scripts/multislice_startup.sh"

    Where is the scripts direcory?

    Alan Wa9WUD

  • Ray G6UJB
    Ray G6UJB Member ✭✭

    Alan,

    You should be able to find them under here....

    nCAT: https://github.com/kc2g-flex-tools/nCAT

    nDAX: https://github.com/kc2g-flex-tools/nDAX

    73

    Ray

  • Alan
    Alan Member ✭✭✭✭

    Ray, Thanks. I was able to set up the command for multiple instances.

    Alan

  • Alan
    Alan Member ✭✭✭✭

    Back to multiple instances of nDAX and nCAT.

    Progress -- nCAT is good. I now have two instances of nCAT running and two instances of WSJT-X controlling Slice A and Slice B respectively.

    I need help with nDAX. Here is the string I used:

    /home/alan/Flex/./nDAX -station Maestro -slice A -daxch 1 -source flex.sliceA.rx -sink flex.sliceA.tx -radio 192.168.70.33 & /home/alan/Flex/./nDAX -station Maestro -slice B -daxch 2 -source flex.sliceA.rx -tx=false -radio 192.168.70.33

    And here is a screenshot of the response:

    WSJT-X only sees Slice A rx audio. I do not see Slice B?. Also, I only see the "tx-false" audio?


  • Alan
    Alan Member ✭✭✭✭

    Ok, I found my error, I did not change the second instance source name to "flex.sliceB.rx".

    So...now I see both slice A and slice B rx streams in WSJT-X.

    Last, what should I see for the rx streams? Which tx stream should I use for the second instance of WSJT-X?

    Alan. WA9WUD


  • Alan
    Alan Member ✭✭✭✭

    I decided to use "flex.sliceA.tx, for both instances of WSJT-X. Appears to work just fine, considering there is only one Flex transmitter and that CAT moved the TX slice to the appropriate slice, when I sent a transmission from each WSJT-X instance.

    I think I am all good.

    Alan. WA9WUD

  • k0qei
    k0qei Member
    edited November 2021
    I have been using this set up for a while but i went to change out a hard drive i was having problems with to a new one, reloaded everything, and now when i try connect to the radio with dax it says there is already in use by a process that is no longer running and the CAT wont connect. i have tried to reset the radio already. thank you for the help

    jim@pop-os:~/Downloads$ ./nCAT-linux-amd64 -station Meastro -slice B -listen :4533
    7:25PM INF Waiting for station station=Meastro
    ^C7:26PM INF Exit on SIGINT
    panic: close of closed channel

    goroutine 20 [running]:
    main.(*HamlibServer).Close(...)
    /home/runner/work/nCAT/nCAT/hamlib.go:122
    main.main.func2()
    /home/runner/work/nCAT/nCAT/main.go:164 +0xff
    created by main.main
    /home/runner/work/nCAT/nCAT/main.go:158 +0x5e5
    jim@pop-os:~/Downloads$


    never comes up



    jim@pop-os:~/Downloads$ ./nDAX-linux-amd64 -station Meastro -slice B -daxch 2 -source flex.sliceB.rx -sink flex.sliceB.tx
    7:15PM WRN source flex.sliceB.rx exists but was created by an nDAX process that no longer appears to be running. Will try to unload... module_index=30 pid=2990
    7:15PM WRN sink flex.sliceB.tx exists but was created by an nDAX process that no longer appears to be running. Will try to unload... module_index=31 pid=2990
    7:15PM INF Waiting for station station=Meastro

    then this one crashes
  • arodland
    arodland Member ✭✭

    @k0qei I bet your station is actually named "Maestro", not "Meastro".

  • k0qei
    k0qei Member
    thank you for the second set of eyes works like a charm
    i feel kinda dumb, note to self dont be in a hurry
  • Alan
    Alan Member ✭✭✭✭

    I have been running multiple instances of nDAX and nCAT for several months now.

    Recently, there have been numerous issues. Any ideas to improve my command or troubleshooting is requested.

    • DAX connects to the incorrect Flex DAX channel
    • nCAT connects to instance one, but not instance two
    • TX DAX will not send, but RX DAX receives OK

    I verify all of the xDAX and xCAT instances are running (PID numbers)

    Here are the commands I am using.

    xDAX

    /home/alan/Flex/./nDAX -station NUC-GARAGE -slice A -daxch 1 -source flex.sliceA.rx -sink tx.flex.tx -radio 192.168.70.33 & /home/alan/Flex/./nDAX -station NUC-GARAGE -slice B -daxch 2 -source flex.sliceB.rx -tx=false -radio 192.168.70.33

    xCAT

    /home/alan/Flex/./nCAT -radio 192.168.70.33 -station NUC-GARAGE -slice A -listen :4532 & /home/alan/Flex/./nCAT -radio 192.168.70.33 -station NUC-GARAGE -slice B -listen :4533

    Alan. WA9WUD

  • Alan
    Alan Member ✭✭✭✭

    Here are some screenshots of the terminal and process PID info:


    Alan WA9WUD

  • arodland
    arodland Member ✭✭

    @Alan yes, I'm aware that something is not quite right there, and has been since the beginning. I'll look over it again and see if I can make it work better, but the API documentation on the wiki is pretty rough in this area. Parts of it contradict other parts, some things seem to have two ways to do them, and some of the commands listed don't even work. This is where I wish someone from Flex would just drop by and say "this is how to do it right".

  • Lou KI5FTY
    Lou KI5FTY Member ✭✭

    @arodland File a support ticket. They talk a lot about helping developers with the api. That is probably the right place to start.

  • Alan
    Alan Member ✭✭✭✭

    arodund

    First, thanks for your work to provide us nCAT and nDAX.

    Yes, the Flex WiKI is not up to date, especially for commands to control slice and pan adapters items. The Wiki seems to not be current on the use of "set" numbers, rather than the older "slice numbers", used in v3 of the Flex firmware (multiplex).

    Also, the handle numbers, of slices, are a mixture of hex numbers and hex string types. Perhaps this mixture of handle variable types is tripping up your code.

    For example, not in the wiki: "Set Numbers" are used instead of Slice Numbers, in commands pointed to a slice. Each slice message provides a Slice number and a Slice Letter. Slices are opened in sequence, A,B,C,D. As it opens a slice, each client is assigned a Slice Letter in sequence: A, B, C, D. Slice "set numbers" are then derived from the combination of slice number and slice letter: 0,1,2,3. Use these set numbers in your commands pointed to a particular slice.

    I have done a lot of "Wire Sharking" to figure out the correct command structure.

    Alan

  • I am testing nDAX and nCAT for an APRS experiment. It works very well with Direwolf. However, nDAX crash often. it excits and only get a "Killed" statement. I run it un debug mode but got no more details.

    It is run on a raspberry pi 3b with the vanilla raspi OS.

    Is there any nknown similar issues?


    Thanks,

    73, VE2NMB/VA2PX

  • arodland
    arodland Member ✭✭

    @Martin Bérubé no, I haven't heard anything similar. It sounds like it could be an out-of-memory error, can you check "dmesg" please?

  • Martin Bérubé
    Martin Bérubé Member ✭✭
    edited November 2021

    @arodland Sure! What should I look for?

  • Well. Didn't see much with "dmesg". However, the memory is defenetely drop with time­. I did check with the "free" command.

  • N1SH
    N1SH Member ✭✭

    Using WSJT-X v2.5.3 with nCAT on Ubuntu 21.04 I get the following errors (trace mode):

    ------

    10:11AM TRC cmd=["v"]

    10:11AM TRC response="VFOA\n"

    10:11AM TRC cmd=["m","VFOA"]

    10:11AM WRN Handler returned error error="required max 0 args, got 1" cmd=["m","VFOA"]

    10:11AM TRC response="RPRT 1\n"

    ------

    Everything works fine with WSJT-X v2.3.0 with the same settings.

    Looks like a change in how hamlib in WSJT-X addresses rigctl. Looking through the release notes from WSJT-X, it does look like they have moved to newer versions of hamlib.

    Any thoughts would be appreciated. I don't see anything in this thread about this.

    Stephen, N1SH

  • arodland
    arodland Member ✭✭

    I'm in discussion with hamlib developers about this. The same problem exists with JTDX 2.2.157. I think it's a change in the newest hamlib release but I'm not sure how intentional it is yet (I'm sending back a status that *should* disable that feature).

  • N1SH
    N1SH Member ✭✭

    @arodland Thanks for the follow up. Yes originally found it when someone asked me about decoding JTDX datagrams and I was testing it. (I have a NodeRed node that decodes WSJTX UDP datagrams). It wasn't working, I then re-installed WSJT-X (newest version) and that didn't work either. When I reverted to WSJT-X 2.3 it worked again.

    If it's any help, I built and checked versions of WSJT-X between 2.3 and current 2.5. The problem first appears in 2.4.0

  • arodland
    arodland Member ✭✭

    @N1SH I just cut a release that should fix the problem. It seems that the correct response to the "\chk_vfo" command changed from "CHKVFO 0" to "0" some time back, but the documentation wasn't updated accordingly.

  • N1SH
    N1SH Member ✭✭
    edited December 2021

    @arodland Thanks! I'll git pull, recompile and see if it works.

    [edit] Working swimmingly!

  • PaulB
    PaulB Member ✭✭

    Has anyone put a tutorial how to set it up and install? I have followed what is on the Github and it doesn't run through any install routine, nor does it say where to execute it from, etc.

    Thanks in advance...this will be on a pi.

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.