Hi,
I have read https://www.cqrlog.com/node/3462 and it says:
Most common reasons that come in to my mind are that your script has no exec bit, but if you can run it from command line and it works, then next is your rig is not on phone mode.
Or at least Cqrlog does not know it.Do you have right mode at NewQSO mode, and also TRXControl has red text in some of phone mode buttons?
Start Cqrlog from console:
cqrlog --debug=1
And you should find these lines when you press a F-key:AProcess.Executable: bash Parameters: /home/saku/.config/cqrlog/voice_keyer/voice_keyer.sh
F1
I do *not* see the line that looks like:
AProcess.Executable: bash Parameters: /home/saku/.config/cqrlog/voice_keyer/voice_keyer.sh
and I do not know why.
I am running Debian 12 on x86.
I have built my own cqrlog program using git sources to get more up to date support for hamlib rig control.
I used the build instructions posted in this forum and everything compiled with no issue at all.
The git log says the newest commit I have is:
commit e67487946ebe057cd15562550a15505bd61f5a20
Merge: dcf8956 174dd53
Author: Petr Hlozek
Date: Sun Aug 18 13:32:51 2024 +0200
I am using 'cqrlog --debug=1' which helped me debug the hamlib issue.
Now I do have CW keying working correctly via hamlib, but not voice keying.
I do set the mode to SSB in the New QSO screen and hit the F keys and see nothing different in the debug output.
I also open the memory keys window and hit the keys and see nothing when in SSB mode but they work in CW mode.
I do have ~/.config/cqrlog/voice_keyer/voice_keyer.sh and it is executable.
Feel free to contact me at the email address in my profile or at qrz.com if you want more info.
Thanks,
Dave, N1AI
Ok, I found the problem.
I need to have 'Send rig voice' unchecked to use the voice keyer script instead of sending voice commands via hamlib rigctl.
I found this by searching for 'voice' in the source code then reading the code to figure out that it only uses the script when this box is not checked.
I haven't read Pascal code in a very, very long time but I was able to figure it out.
I must tell you that I first learned to code in Pascal back in 1984. I had a very nice college internship at IBM and worked on compilers, assemblers, linkers and loaders written in Pascal for a product that almost no one knows about that had the Motorola 68000 as its CPU. That internship was a major turning point in my life. It turned me into a confident computer scientist and led to another 40 years of programming, 35 as a professional, the last five in retirement. I'm pretty sure the last time I would have looked at Pascal code would have been 1988 or so.
Thanks for working on such a great program! So many things these days for me are about how life completes the circle, and reading code in Pascal again completes a very big circle!
Regards,
Dave, N1AI
Hi Dave, where is this "send rig voice" option that needs to be unchecked?
Thanks, Mark KV6T
HI Mark!
It exist only in CqrlogAlpha preferences/TRXControl
--
Saku
OH1KH
Thanks Saku,
I built from source and see the option. In my case it seems like I have to leave this option unchecked, as my radio (FX04CR) does not have voice messages built-in.
Mark KV6T
Hi Dave!
Just checked the help files of Cqrlog Alpha and found that "Send rig voice" was missing. I must add it.
Well, Pascal seems to be like bike riding. You can not forget it. Although Lazarus is so far from plain Pascal because of GUI handling is not part of standard Pascal.
My first Pascal contact was a course in technical school 1982. Mainframe computer with 300baud tty (paper printing) terminals and so small user quota that you could not store several programs to it. All must be punched to paper stripe and loaded from that before use.
I remember my VHF contest score counting and log printing program had quite big paper reel to load every time when needed.
Since those days I have used Pascal every now and then along with Basic, Z80 machine code, Perl, Php, C etc. But I must say that playing with Cqrlog has learned a lot more than those school days in "stone age".
--
Saku
OH1KH
Yes, please do update the help pages. I am using them quite a lot to figure out all the features the program has.
I am glad you are enjoying working on cqrlog. I have used it for a few years now just for logging and now I am using it for rig control and sending pre-recorded voice and CW too. All this is working now.
As a teenager in the 1970s, I did a LOT with ham radio. Then I went to college to study electrical engineering, but while there I discovered that computer science was very rewarding so I changed my major. After school, work and family took over so I put my radios away. Now I am retired and have re-entered the hobby. So much is different! I am really enjoying working with ham radio software and software defined radio. All the things I learned in 35 years of professional programming are pretty handy now!
Thanks again!
Regards,
Dave, N1AI
Can someone explain why the sample script uses nc to write to port 6789? I have nothing running at that port. I am running rigctld on 4532 (started by cqrlog) and use Winkeyer USB for CW (not cwdaemon which defaults to running on port 6789)
Thanks, Mark KV6T
The following command did the trick for me. Note the space between the T and the 1.
echo 'T 1' | nc 127.0.0.1 4532
I still cannot seem to get audio fed into the radio. I have tried unsuccessfully to figure out the correct value of AUDIODEV.
I still cannot seem to get audio fed into the radio. I have tried unsuccessfully to figure out the correct value of AUDIODEV.
There is no easy way to help with out knowing a lot more about how your radio will accept audio input. In turn this means we have to know if you are using a physical sound card with physical audio cables, or not. We would also need to know which sound system your Linux distribution is using. In most cases these days this is PulseAudio, but there are other sound systems out there with different reasons why you would want to use them.
In my case I am not using a sound card, I using the Linux equivalent what most people know of as "virtual audio cables" on Windows. I am using PulseAudio sinks since my Linux distro uses PulseAudio. These sinks take the sound being generated by cqrlog and present it to a SDR application that controls my radio. The SDR application's documentation told me how to set up these sinks and how to configure the SDR application to use these sinks. To be more specific, I'm using the Hermes Lite II software defined radio with either the quisk or the pihpsdr applications to control the radio. In both cases these applications had documentation on how to provide audio input to them. This is almost always provided since using applications like wsjtx need to do the same thing.
You may be doing something similar to me, or something totally different. One different thing you may be doing is just using a sound card, or the PC's built in speaker and mic jacks, to talk to a more traditional radio via real (not virtual) audio cables. If that's the case it is a matter of learning what name Linux gave to the device your radio is attached to.
One command that may shed some light is:
$ sudo pactl list sinks short
Its output should tell us if PulseAudio is in use, and if so, what sinks it knows about.
Another one is:
$ sudo cat /proc/asound/cards
That gives us a list of the sound cards known by ALSA, another Linux sound system.
Similar info comes from:
$ aplay -l | grep card
Which is asking the audio play command to tell us which cards it knows about.
Hopefully this gives some clues on how to set AUDIODEV.
Note that AUDIODEV is only in the help pages. The current source code version of voice_keyer.sh no longer uses it.
I have attached my current version of voice_keyer.sh. It is based on the one in the source, but has some changes. In particular since I know I am using PulseAudio I can use the 'paplay' program to send audio to the device. This works well for me. Also I had to rename it as voice_keyer_sh.txt since this forum only allows upload of .txt files.
File: