SmartSDR v3.8.19 and the SmartSDR v3.8.19 Release Notes | SmartSDR v2.12.1 and the SmartSDR v2.12.1 Release Notes
SmartSDR v1.12.1 and the SmartSDR v1.12.1 Release Notes
Power Genius XL Utility v3.8.8 and the Power Genius XL Release Notes v3.8.8
Tuner Genius XL Utility v1.2.11 and the Tuner Genius XL Release Notes v1.2.11
Antenna Genius Utility v4.1.8
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Announce: experimental CAT/DAX clients for Linux
Comments
-
I’ve been running nCAT and nDAX on KUBUNTU 20.04 for since September with no issues, and I’ve made more than 700 confirmed contacts with FT8.
I’ve successfully got cat control working on fldigi with the set up with Hamlib NET rigctl using similar config to WJSTX.
I’ve not figured out the soured card config tho- I’ve tried PortAudio but don’t see flexdax.rx or flexdax.tx in the capture/playback option drop down like I have in WSJTX. I’ve searched google for PulseAudio - if that is the correct option not sure what to put in the parameter box.
Thanks for any help!
73, Chris - WX7V
0 -
Removing duplicate post- I hit submit twice.
0 -
@Chris WX7V for fldigi, select PulseAudio, leave the "server string" box blank, and hit okay. Then use a mixer app (pavucontrol is one, but you might already have a suitable one hiding behind the volume control button on your taskbar) to set fldigi's playback stream to flexdax.tx and its capture stream to flexdax.rx. PulseAudio should remember the setting so that in the future fldigi will get those devices by default (as long as you start it while nDAX is running).
This is fldigi's issue for not having a UI to select PulseAudio devices, but fortunately it's an easy enough one to work around.
Very glad to hear about your success with wsjtx.
0 -
Thank you - that was easy enough. nCAT and nDAX are solid- the learning curve now is with fldigi and these digital modes.
0 -
I am using a Flex 6700 along with a Raspberry PI 4+
I’m having issues with nDAX TX output to the Flex. At times, it works and I see output in the P/CW level window, just as shown in the windows screenshot. I do see output from the playback audio, I think wsjtx is outputting audio, and PulseAudio is processing it, but the Flex is not seeing it.
I would appreciate any help.
Thanks in advance,
Nick Cloyes – N4CL
PS – I send my compliments to arodland for these fine, stable apps. I’ve had lots of fun using them!
Below is the nDAX startup along with screenshots of wsjtx running in windows and Raspberry PI.
cloyesjn@ubuntu-desktop:~/sambashare$ ./nDAX
9:08PM INF Waiting for station station=Flex
9:08PM WRN Couldn't get realtime error="MakeThreadRealtime: Operation not permitted" thread="udp thread"
9:08PM INF Found Client id=0x6B9D2835 uuid=63762A21-B56D-42CF-A6C4-832706ED0018
9:08PM INF Looking for slice slice_id=A
9:08PM INF Found slice slice_idx=1
9:08PM INF Enabled RX DAX stream stream_id=4000008
9:08PM INF Enabled TX DAX stream stream_id=84000000
9:08PM WRN Couldn't get realtime error="MakeThreadRealtime: Operation not permitted" thread="rx thread"
9:08PM WRN Couldn't get realtime error="MakeThreadRealtime: Operation not permitted" thread="tx thread"
------------------------------------------------------------------------------------------------------------------------------------------------------------
pacmd list-sinks
1 sink(s) available.
* index: 0
name: <auto_null>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: IDLE
suspend cause: (none)
priority: 1000
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 1399.48 ms
max request: 344 KiB
max rewind: 344 KiB
monitor source: 0
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 2000.00 ms; range is 0.50 .. 2000.00 ms
module: 2
properties:
device.description = "Dummy Output"
device.class = "abstract"
device.icon_name = "audio-card"
pacmd list-sink-inputs
1 sink input(s) available.
index: 1
driver: <protocol-native.c>
flags:
state: RUNNING
sink: 1 <flexdax.tx>
volume: mono: 65536 / 100% / 0.00 dB
balance 0.00
muted: no
current latency: 200.00 ms
requested latency: 21.33 ms
sample spec: s16le 1ch 48000Hz
channel map: mono
Mono
resample method: copy
module: 3
client: 3 <QtPulseAudio:777320>
properties:
media.role = "production"
media.name = "QtmPulseStream-777320-281472225262528"
application.name = "QtPulseAudio:777320"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "34"
application.process.id = "777320"
application.process.user = "cloyesjn"
application.process.host = "ubuntu-desktop"
application.process.binary = "wsjtx"
application.language = "en_US.UTF-8"
window.x11.display = ":10.0"
application.process.machine_id = "f0bd04b5fe0d457badf0188180f8c9cb"
application.icon_name = "wsjtx_icon"
Windows
Raspberry PI
0 -
@Nick Cloyes, N4CL next time you run into the problem, try exiting wsjtx, exiting nDAX (^C), restarting nDAX, and restarting wsjtx, without touching any controls in SmartSDR, and see if it works after that. I'm not quite sure what is going on, but possibly something is trying to "steal" nDAX's DAX channel.
You might also try running nDAX with "-daxch 2" and see if that prevents the problem entirely.
1 -
@Nick Cloyes, N4CL another thought, since I see you're using remote desktop — make sure to disable any option in the remote desktop app for forwarding the Pi's audio to your Windows machine, as that might interfere.
0 -
I believe I have found it
I checked mode =Data/Pkt and it started working. Does that make sense? It seems to work like a charm now.
0 -
All, Confirming nCAT and nDAX work with the recent Flexradio upgrade V.3.2.31. The only issue I had was with the upgrade itself - the radio got stuck and I had to remove the DC power source per instructions in the release notes.
1) From Page 4 of the Release Notes for V.3.2.31: "What to do if the firmware updates do not finish after 5 minutes?
On rare occasions, an update may not signal the completion of a firmware update. If five (5) minutes have elapsed without the radio restarting and completing the upgrade, power off the radio by pressing the power button. The radio should restart, and the firmware update should complete normally. Note: It would be rare that a single press on the power button does not shut down the radio. However, if this occurs, remove the DC power cable from the radio to force a hard reset. Wait about 1 minute, restore DC power, wait 2 minutes and depress the power button. The radio will restart and the firmware update should complete successfully"
0 -
I know this is a permissions issue
I'm just not sure where to look next.
Any guidance would be appreciated.
73
pi@SoftEther:~/flex $ ./nDAX
5:11PM FTL pulse.NewClient failed error="dial unix /run/user/1000/pulse/native: connect: connection refused"
Looking deeper
pi@SoftEther:/run/user/1000/pulse $ ls -l
total 4
srw-rw-rw- 1 pi pi 0 Apr 27 17:07 native
-rw------- 1 pi pi 5 Apr 27 17:10 pid
pi@SoftEther:/run/user/1000/pulse $
---------------------------------------
this might have solved it. Still working on it
mv ~/.config/pulse ~/.config/pulse.old pulseaudio --start
0 -
Hi @Mike-VA3MW , that's a weird one. The permissions don't look wrong. Were you able to figure it out? If not, I would be happy to go deeper with you.
0 -
I figured the easied way was to load a HamPI image. Then, Pulse was correctly configured. :)
0 -
@Mike-VA3MW alright! Sorry you ran into trouble, but glad it's behaving now.
0 -
Hey all. Thanks for building these awesome tools! I've got nCAT working, but nDAX is giving me problems. I figured out what the problem is (see below), so I'm posting here in case anyone else is having this issue.
Summary: I'm still running Ubuntu 16.04 on my main laptop (really need to upgrade someday), which uses PulseAudio 8.0, which is too old for nDAX. The solution will almost certainly be to upgrade my laptop to something that uses PulseAudio 12.0 or newer.
@arodland How necessary is the `use_system_clock_for_timing=yes` option when setting up the sink? Can we make that optional?
Details:
The error I'm getting while trying to run nDAX is:
> 4:24PM FTL Create TX pipe failed error="load-module module-pipe-sink: pulseaudio: module initialization failed"
When I run it a second time, I get an additional line:
> 4:24PM WRN source flex.sliceA.rx exists but was created by an nDAX process that no longer appears to be running. Will try to unload... module_index=26 pid=32176
> 4:24PM FTL Create TX pipe failed error="load-module module-pipe-sink: pulseaudio: module initialization failed"
This tells me that it's SUCCEEDING at adding the Receiver loopback interface, but is failing on the transmitter. Being a bit of a programming nerd (though I've never seen a line of Go until now), I looked at the code, and found `createPipeSource()` and `createPipeSink()` functions, to compare the two and see if any difference jumped out at me. There were a few differences, but `use_system_clock_for_timing=yes` stood out as a likely culprit.
Testing my theory, I ran:
> [16:32:33] mark@crossthread:~/src$ pactl load-module module-pipe-sink sink_name=bar file=bar rate=48000 format=float32be channels=1
27
> [16:32:40] mark@crossthread:~/src$ pactl unload-module 27
Ok, so I can load the module by hand without `use_system_clock_for_timing=yes`, then unload the module, and repeat that process. So that's good.
> [16:32:44] mark@crossthread:~/src$ pactl load-module module-pipe-sink sink_name=bar file=bar rate=48000 format=float32be channels=1 use_system_clock_for_timing=yes
> Failure: Module initialization failed
There we are, that's the failure mode. Loading and unloading modules repeatedly, I'm confident this is the parameter that's failing.
A bit of google searching returns: https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/12.0/ which shows `use_system_clock_for_timing=yes` is a new feature in PulseAudio 12.0
> [16:32:47] mark@crossthread:~/src$ pulseaudio --version
> pulseaudio 8.0
Well, ****...
I wish I came here with a solution to this problem, but I think the solution is to upgrade to an OS that isn't 5 years old.0 -
@SmittyHalibut yup. You can also use an older nDAX (the August 17, 2020 release) which uses module-null-sink instead of module-pipe-sink, and so works with older PulseAudio... but it really doesn't work as well, there's a reason why I changed things.
You're not the first to run into this; I'll document the version requirement, and maybe see if I can have the app detect the version of PulseAudio on startup and print a message if it's too old.
0 -
I wanted to thank Smitty for jumping in on this. I will do a shameless plug for Smitty as he is also one of the personalities on the Ham Radio WorkBench every few weeks and that is where I got to meet him.
And, he is a great Ham Radio resource too!
73 Smitty!
1 -
@Mike-VA3MW funny, I just discovered that podcast the other day :)
I've added the version check to nDAX and I will cut a new release with the change sometime soon, which will hopefully reduce confusion.
If anyone here is feeling ambitious, it would be possible to work with older PulseAudio by implementing the read timing in nDAX and leaving out the
use_system_clock_for_timing
option. On paper it's not too hard — read 256 samples every 5.333ms. The question is whether it works out alright to simply use atime.Ticker
to drive the loop, or whether it's necessary to do something a little bit more complicated to maintain the right long-term average in the face of apps opening and closing the device, and maybe Pulse delivering samples in chunks of its own choosing.It doesn't help that I don't really know anything about how the Flex itself deals with the packets it gets, how sensitive it is to the timing, or how much of a buffer it may have (the only thing I do know is that it treats missing packets as silence without any real complaint).
0 -
Just got WSJT-X running with Rocky Linux employing nCAT and nDAX. I had to build WSJT-X for Rocky Linux but nCAT and nDAX are working as released with no changes, thanks 🙂
Have I missed it, but is it possible to statically define the udp port that nDAX will use ?
I'm trying to finalise the firewall rules, but nDAX appears to be binding to a random port number each time it starts which makes setting up static firewall rules awkward.
I can identify and set the necessary port on the fly, manually or with a script but if there is an easier way of handling this (other than disabling the firewall) it would be fantastic.
Thoughts?
Thanks
0 -
@Ray G6UJB not currently. Would you care to file a feature request at https://github.com/kc2g-flex-tools/nDAX/issues/new?labels=enhancement ? By default it chooses a free port so that there's no chance of conflicts when running multiple copies, but I would be okay with making it overrideable.
1 -
@arodland Yeah, a better error message is probably the best "feature request" for this. I really need to get 20.04 installed on this laptop, but I was one of the three people on the planet apparently that liked Unity and I've been hesitant to switch to Gnome Desktop. Having said that, work finally dropped support for 16.04 so I've been forced to upgrade on my work laptop and I've figured out a workable setup, so I really have no excuse not to upgrade on my personal laptop anymore.
@Mike-VA3MW D'aww shucks... *kicks dirt*1 -
> @arodland said:
> @Chris WX7V for fldigi, select PulseAudio, leave the "server string" box blank, and hit okay. Then use a mixer app (pavucontrol is one, but you might already have a suitable one hiding behind the volume control button on your taskbar) to set fldigi's playback stream to flexdax.tx and its capture stream to flexdax.rx. PulseAudio should remember the setting so that in the future fldigi will get those devices by default (as long as you start it while nDAX is running).
> This is fldigi's issue for not having a UI to select PulseAudio devices, but fortunately it's an easy enough one to work around.
> Very glad to hear about your success with wsjtx.
Finally got my laptop upgraded to Ubuntu 20.04 today, and nDAC is loading fine now. :-)
About the quote above, do I understand correctly that I have to select the Flex interfaces as the system defaults? As in, all my system sounds will go to/come from the Flex now?0 -
I got nDAX setup the way I describe above: setting the Flex audio interfaces as my default interfaces.
But I'm still having troubles with nCAT and fldigi. In the Hamlib tab, I select "Hamlib NET rigctl (Stable)", but there's no way to configure it for a network address. It still only lists a "Device" drop down with various /dev/ttyS* interfaces. IIRC, on my 16.04 box, when you selected Hamlib NET rigctl, it replaced the serial port drop down with a text box to enter an IP and port, into which I'd put `127.0.0.1:4532` but this doesn't appear to be happening.
To be clear: if what I describe is still the way this is SUPPOSED to work, then this is a bug in fldigi, not nCAT. I'm just trying to confirm whether _I'M_ doing anything wrong, or if this is the way it's SUPPOSED to work.
Again, thanks for your help.0 -
As expected, it's working a charm in WSJT-X. I'm just having that problem with nCAT in fldigi.0
-
About the quote above, do I understand correctly that I have to select the Flex interfaces as the system defaults? As in, all my system sounds will go to/come from the Flex now?
No, you just want to select it for fldigi's input and output streams. It will remember the setting *for that app* (provided your PulseAudio has "module-stream-restore", which is default on every system I've run into). Setting them as system defaults wouldn't be that great, you'd probably end up transmitting a lot of beeps and stuff :)
But I'm still having troubles with nCAT and fldigi. In the Hamlib tab, I select "Hamlib NET rigctl (Stable)", but there's no way to configure it for a network address. It still only lists a "Device" drop down with various /dev/ttyS* interfaces.
In the new version of fldigi it's a "combo box", you can ignore the dropdown portion and type in your own value.
0 -
I just want to say a big Thankyou very much for the modification you made to nDAX to allow for user selected VITA-49 udp port bind. This is working brilliantly and makes firewall rules super easier to setup thanks.
Thanks also for the excellent utilities, they are working very well under Rocky Linux inside Windows 10 hosted virtual machines. 😁
73
Ray
0 -
@Ray G6UJB Glad to help :)
0 -
0
-
Question
I am running Ubuntu on an NUC Intel based PC (x86-64). Which nDAX and nCAT file should I download?
Alan. WA9WUD
0 -
Update, progress, but still need help.
I loaded the "linux AMD-64" files and both nDAX and nCAT paper to run.
I was able to run and connect WSJT-X t the Flex Audio via nDAX. Good.
It appears that nCAT is running, but running into problems.
Here is a screenshot of my terminal after starting nCAT:
And here is the Radio setting and "Text CAT" response from WSJT-X:
What should I try next to get nCAT working?
Alan. WA9WUD
0
Leave a Comment
Categories
- All Categories
- 289 Community Topics
- 2.1K New Ideas
- 535 The Flea Market
- 7.5K Software
- 6K SmartSDR for Windows
- 146 SmartSDR for Maestro and M models
- 360 SmartSDR for Mac
- 249 SmartSDR for iOS
- 231 SmartSDR CAT
- 172 DAX
- 352 SmartSDR API
- 8.8K Radios and Accessories
- 7K FLEX-6000 Signature Series
- 29 FLEX-8000 Signature Series
- 850 Maestro
- 44 FlexControl
- 847 FLEX Series (Legacy) Radios
- 797 Genius Products
- 417 Power Genius XL Amplifier
- 277 Tuner Genius XL
- 103 Antenna Genius
- 243 Shack Infrastructure
- 166 Networking
- 404 Remote Operation (SmartLink)
- 130 Contesting
- 631 Peripherals & Station Integration
- 125 Amateur Radio Interests
- 870 Third-Party Software