¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io

Hamlib/rigctl compatibility?


 

This is a continuation of a previous thread whose subject matter had drifted from its starting point. Essentially, this relates to a problematic update of Quisk running on an RPi P400 with the default rpi 32-bit operating system. The original installation of Quisk and Hamlib from the RPi repository produced workable results, though interaction was appreciably slow. The update of Quisk from PyPi corrected a minor annoyance, but also exposed a more serious hamlib/rigctl problem.

Here, I am responding to this posting from the previous thread:?/g/n2adr-sdr/message/2803??That post suggests Quisk's interaction with hamlib is failing because Quisk emulates hamlib/rigctld, but has not kept up with hamlib evolution. An incompatibility may have crept in, I guess.

To test, I installed Quisk 4.2.20 and Hamlib 4.6~git. Then I did a simple command-line experiment with rigctl communicating with Quisk to first set and then get frequency. In that particular experiment, setting the frequency worked, but the subsequent read-back was wrong. The read-back was off by 5khz.

I then re-installed WSJTX from the RPi respository. WSJTX was unable to maintain correct frequency sync with Quisk. I believe WSJTX attempts to sync up about once per second. If it happens to come up in sync, it quickly wanders off in a seemingly random way.

Attempts to set and get frequency through one of Quisk's virtual serial ports yield similarly erratic results.

It occurs to me the result might be different with a 64-bit OS installation, but doing that experiment is non-trivial with my setup, so I have not yet done it.

Comments?


Mike Black
 

If you want a bit between the commands does it work OK?

Hamlib is simply asking Quisk for current frequency and it SHOULD be waiting for Quisks' set_freq to finish.

So try this and send me the output and I'll look at the timing.??

rigctl -m 10 -vvvvv -Z F 7071000 f >log.txt 2>&1

Mike W9MDB

On Saturday, August 5, 2023 at 11:04:45 AM CDT, ag5gt@... <ag5gt@...> wrote:





This is a continuation of a previous thread whose subject matter had drifted from its starting point. Essentially, this relates to a problematic update of Quisk running on an RPi P400 with the default rpi 32-bit operating system. The original installation of Quisk and Hamlib from the RPi repository produced workable results, though interaction was appreciably slow. The update of Quisk from PyPi corrected a minor annoyance, but also exposed a more serious hamlib/rigctl problem.

Here, I am responding to this posting from the previous thread:?/g/n2adr-sdr/message/2803??That post suggests Quisk's interaction with hamlib is failing because Quisk emulates hamlib/rigctld, but has not kept up with hamlib evolution. An incompatibility may have crept in, I guess.

To test, I installed Quisk 4.2.20 and Hamlib 4.6~git. Then I did a simple command-line experiment with rigctl communicating with Quisk to first set and then get frequency. In that particular experiment, setting the frequency worked, but the subsequent read-back was wrong. The read-back was off by 5khz.

I then re-installed WSJTX from the RPi respository. WSJTX was unable to maintain correct frequency sync with Quisk. I believe WSJTX attempts to sync up about once per second. If it happens to come up in sync, it quickly wanders off in a seemingly random way.

Attempts to set and get frequency through one of Quisk's virtual serial ports yield similarly erratic results.

It occurs to me the result might be different with a 64-bit OS installation, but doing that experiment is non-trivial with my setup, so I have not yet done it.

Comments?


 

On Sat, Aug 5, 2023 at 11:39 AM, Mike Black wrote:
rigctl -m 10 -vvvvv -Z F 7071000 f >log.txt 2>&1
I'm sorry for the slow reply. Life sometimes interferes with ham radio ;-)

The log is attached. FYI, at the time I issued your diagnostic command, quisk was tuned somewhere in the 80 meter band. Your diagnostic read-back may reflect that.

After your diagnostic command, quisk was tuned to 7071000, as would be expected. I followed that with this command line:

? ? ? ? ?rigctl -m 10 f

The response was 7067000 and NOT the 7071000 displayed by quisk.

Bruce ag5gt


 

There is another little factoid that may be relevant. It does not seem to matter how long one waits to enter the read-back command. I waited several minutes and did this again, having left quisk tuned to 707100:

? ? rigctl -m 10 f

The response was still

? ?7067000

There's more than just timing involved. That seems to be systematic corruption of data, independent of timing.


Mike Black
 

?rigctl -m 10 f -vvvvv -Z >log.txt 2>&1

And send me the log.txt file please.

Mike W9MDB




On Friday, August 18, 2023 at 06:53:39 AM CDT, <ag5gt@...> wrote:


There is another little factoid that may be relevant. It does not seem to matter how long one waits to enter the read-back command. I waited several minutes and did this again, having left quisk tuned to 707100:

? ? rigctl -m 10 f

The response was still

? ?7067000

There's more than just timing involved. That seems to be systematic corruption of data, independent of timing.


 

I tested Quisk 4.2.22 with rigctl 4.3.1 on my Ubuntu 64-bit system using rig model 2 and the "F" and "f" commands worked fine. I tried using your model 10 but my rigctl reports that there is no model 10. What is model 10?

There should be no difference between a 64-bit and 32-bit OS, and I doubt that is the problem. What happens if you use rig model 2?

Jim
N2ADR


Mike Black
 

Model 10 does not exist in Hamlib 4.3.1

It's in the latest....


Mike W9MDB




On Friday, August 18, 2023 at 12:09:19 PM CDT, jimahlstrom <jahlstr@...> wrote:


I tested Quisk 4.2.22 with rigctl 4.3.1 on my Ubuntu 64-bit system using rig model 2 and the "F" and "f" commands worked fine. I tried using your model 10 but my rigctl reports that there is no model 10. What is model 10?

There should be no difference between a 64-bit and 32-bit OS, and I doubt that is the problem. What happens if you use rig model 2?

Jim
N2ADR


 

I downloaded Hamlib 4.6~git and built rigctl. I tested rigctl with my Quisk 4.2.22 using model 10. The "F" and "f" commands worked fine. This is still on Ubuntu 64-bit.

I can alter Quisk's Hamlib code if it makes it more convenient for the Hamlib community, but I need a description of what to change. And I have struggled to find documentation.

Jim
N2ADR


Mike Black
 

I need to know what the problem is.....
What's not working?? I'm lost now in this thread.




On Friday, August 18, 2023 at 12:50:23 PM CDT, jimahlstrom <jahlstr@...> wrote:


I downloaded Hamlib 4.6~git and built rigctl. I tested rigctl with my Quisk 4.2.22 using model 10. The "F" and "f" commands worked fine. This is still on Ubuntu 64-bit.

I can alter Quisk's Hamlib code if it makes it more convenient for the Hamlib community, but I need a description of what to change. And I have struggled to find documentation.

Jim
N2ADR


 

Mike,

I'm replying to your message sent before Jim responded. First, your command line didn't work. I'm guessing you meant this, " rigctl -m 10 -vvvvv -Z f >log.txt 2>&1". The log file from that is attached. FYI, the computer and quisk had been shut down after this morning's test. Interestingly, powering up tonight and repeating the sequence produced the identical result: Quisk displays 7071000 and the read-back from rigctl reports 7067000.

Perhaps I should remind everybody this problem shows up on a Raspberry Pi P400 while running the 32 bit version of the Pi OS. Could we have a bug that is hardware or compiler specific?

Bruce ag5gt


Mike Black
 

I can't duplicate the problem here.? I get the actual frequency Quisk shows every time.

So what happens with this....

rigctl -m 10 f F 7071000 f


I get this...

rigctl -m 10 f F 7071000 f
7060000
7071000

Mike

On Saturday, August 19, 2023 at 11:05:39 PM CDT, ag5gt@... <ag5gt@...> wrote:





Mike,

I'm replying to your message sent before Jim responded. First, your command line didn't work. I'm guessing you meant this, " rigctl -m 10 -vvvvv -Z f >log.txt 2>&1". The log file from that is attached. FYI, the computer and quisk had been shut down after this morning's test. Interestingly, powering up tonight and repeating the sequence produced the identical result: Quisk displays 7071000 and the read-back from rigctl reports 7067000.

Perhaps I should remind everybody this problem shows up on a Raspberry Pi P400 while running the 32 bit version of the Pi OS. Could we have a bug that is hardware or compiler specific?

Bruce ag5gt


 

Mike,

This is interesting. I fired up the rpi P400 and quisk, and did what you asked, though quisk was initially at 3903000 rather than 7060000. The response was correct. I then followed that with another query of quisk's frequency. I got the same wrong answer (7067000) as in previous tests. Here's the exact sequence:

rigctl -m 10 f F 7071000 f
3903000
7071000
rigctl -m 10 f
7067000

I am poised to wipe the 32 bit OS and try re-building with 64 (a laborious process), but will hold off, if you need more experimentation with 32 here.

Bruce
?


 

Just for grins, I did a couple more combinations where I set quisk's frequency on its display and then tried a read-back from rigctl . Here's the sequence:

Set quisk to 7072000, then:
rigctl -m 10 f
7071000
rigctl -m 10 f
7071000

There was a consistent read-back error of 1khz in that case.

Then, after I set quisk to 7080000:
rigctl -m 10 f
7088000
rigctl -m 10 f
7088000

Again the read-back error is consistent, once it happens, until the next change at quisk's display. I'm no pro as a programmer, but when I encounter stuff like that, I go looking for a number type conversion problem. That's the sort of thing that can work on one version/revision of a compiler and not on another.
?
?


Mike Black
 

So the next question is what if you keep rigctl runn?

rigctl -m 10

f
F 7071000
f
f
F 7072000
f
f

Does Quisk follow and you get the right answers every time?

One other possiblity

rigctl -m 10 --set-conf=cache_timeout=0 f

See? if that? makes a difference.

Mike W9MDB

On Sunday, August 20, 2023 at 01:24:31 PM CDT, ag5gt@... <ag5gt@...> wrote:





Mike,

This is interesting. I fired up the rpi P400 and quisk, and did what you asked, though quisk was initially at 3903000 rather than 7060000. The response was correct. I then followed that with another query of quisk's frequency. I got the same wrong answer (7067000) as in previous tests. Here's the exact sequence:


rigctl -m 10 f F 7071000 f

3903000

7071000

rigctl -m 10 f

7067000

I am poised to wipe the 32 bit OS and try re-building with 64 (a laborious process), but will hold off, if you need more experimentation with 32 here.

Bruce


 

OK. Starting with quisk at 3903, as with previous tests, here's your first sequence:

~ $ rigctl -m 10
?
Rig command: f
Frequency: 3903000
?
Rig command: F 7071000
?
Rig command: f
Frequency: 7067000
?
Rig command: f
Frequency: 7067000
?
Rig command: F 7072000
?
Rig command: f
Frequency: 7073000
?
Rig command: f
Frequency: 7073000
?
Each read-back has an error, and the error repeats with a follow-up read-back. I then kill rigctl and start again, with your incantation, with quisk still displaying 7072000.

rigctl -m 10 --set-conf=cache_timeout=0 f
7073000

There is the 1K error again. Anything else?






?


Mike Black
 

Yes -- let's try going back and forth to see if the error is consistent with frequency.

And does quisk follow the set frequency correctly?


F 7071000
f
F 7072000
f
F 7071000
f
F 7072000
f


Then...see? how the? error behaves with this.

F 7070000 f
F 7071000 f
F 7072000 f
F 7073000 f
F 7074000 f
F 7075000 f
F 7076000 f
F 7077000 f
F 7078000 f
F 7079000 f
F 7080000 f
F 7081000 f
F 7082000 f
F 7083000 f
F 7084000 f
F 7085000 f
F 7086000 f
F 7087000 f
F 7088000 f
F 7089000 f
F 7090000 f

On Sunday, August 20, 2023 at 06:40:58 PM CDT, ag5gt@... <ag5gt@...> wrote:





OK. Starting with quisk at 3903, as with previous tests, here's your first sequence:


~ $ rigctl -m 10

?

Rig command: f

Frequency: 3903000

?

Rig command: F 7071000

?

Rig command: f

Frequency: 7067000

?

Rig command: f

Frequency: 7067000

?

Rig command: F 7072000

?

Rig command: f

Frequency: 7073000

?

Rig command: f

Frequency: 7073000

?

Each read-back has an error, and the error repeats with a follow-up read-back. I then kill rigctl and start again, with your incantation, with quisk still displaying 7072000.



rigctl -m 10 --set-conf=cache_timeout=0 f

7073000



There is the 1K error again. Anything else?


 

With the first set, quisk does correctly follow the F command. There are errors on read-back. Here's the sequence:

~ $ rigctl -m 10
?
Rig command: F 7071000
?
Rig command: f
Frequency: 7067000
?
Rig command: F 7072000
?
Rig command: f
Frequency: 7073000
?
Rig command: F 7071000
?
Rig command: f
Frequency: 7070000
?
Rig command: F 7072000
?
Rig command: f
Frequency: 7073000

For the second sequence, quisk follows the F command correctly and the f (read-back) is consistently correct, too! Here is that sequence:
?
~ $ rigctl -m 10
?
Rig command: F 7070000 f
?
Rig command:?
Rig command: Frequency: 7070000
?
Rig command: F 7071000 f
?
Rig command:?
Rig command: Frequency: 7071000
?
Rig command: F 7072000 f
?
Rig command:?
Rig command: Frequency: 7072000
?
Rig command: F 7073000 f
?
Rig command:?
Rig command: Frequency: 7073000
?
Rig command: F 7074000 f
?
Rig command:?
Rig command: Frequency: 7074000
?
Rig command: F 7075000 f
?
Rig command:?
Rig command: Frequency: 7075000
?
Rig command: F 7076000 f
?
Rig command:?
Rig command: Frequency: 7076000
?
Rig command: F 7077000 f
?
Rig command:?
Rig command: Frequency: 7077000
?
Rig command: F 7078000 f
?
Rig command:?
Rig command: Frequency: 7078000
?
Rig command: F 7079000 f
?
Rig command:?
Rig command: Frequency: 7079000
?
Rig command: F 7080000 f
?
Rig command:?
Rig command: Frequency: 7080000
?
Rig command: F 7081000 f
?
Rig command:?
Rig command: Frequency: 7081000
?
Rig command: F 7082000 f
?
Rig command:?
Rig command: Frequency: 7082000
?
Rig command: F 7083000 f
?
Rig command:?
Rig command: Frequency: 7083000
?
Rig command: F 7084000 f
?
Rig command:?
Rig command: Frequency: 7084000
?
Rig command: F 7085000 f
?
Rig command:?
Rig command: Frequency: 7085000
?
Rig command: F 7086000 f
?
Rig command:?
Rig command: Frequency: 7086000
?
Rig command: F 7087000 f
?
Rig command:?
Rig command: Frequency: 7087000
?
Rig command: F 7088000 f
?
Rig command:?
Rig command: Frequency: 7088000
?
Rig command: F 7089000 f
?
Rig command:?
Rig command: Frequency: 7089000
?
Rig command: F 7090000 f
?
Rig command:?
Rig command: Frequency: 7090000


Next, I tried something a little different. I used your F xxxxxxxx f commands, but followed each with two more f commands. Quisk started at 7090000 where the last test left it. Then Quisk correctly followed the F commands, as before. The most immediate read-back (f) was also correct, as before. However, responses to the second and third f commands were wrong and identical, though quisk remained tuned according to the most recent F command. I got bored, so did not run your whole list, but jumped around a bit. Errors could be plus or minus 1K, 10.5K or 20K. Here is the whole sequence:

rigctl -m 10
?
Rig command: f
Frequency: 7091000
?
Rig command: F 7070000 f
?
Rig command:?
Rig command: Frequency: 7070000
?
Rig command: f
Frequency: 7050000
?
Rig command: f
Frequency: 7050000
?
Rig command: f
Frequency: 7050000
?
Rig command: F 7071000 f
?
Rig command:?
Rig command: Frequency: 7071000
?
Rig command: f
Frequency: 7072000
?
Rig command: F 7072000 f
?
Rig command:?
Rig command: Frequency: 7072000
?
Rig command: f
Frequency: 7073000
?
Rig command: f
Frequency: 7073000
?
Rig command: F 7073000 f
?
Rig command:?
Rig command: Frequency: 7073000
?
Rig command: f
Frequency: 7074000
?
Rig command: f
Frequency: 7074000
?
Rig command: F 7074000 f
?
Rig command:?
Rig command: Frequency: 7074000
?
Rig command: f
Frequency: 7075000
?
Rig command: f
Frequency: 7075000
?
Rig command: F 7075000 f
?
Rig command:?
Rig command: Frequency: 7075000
?
Rig command: f
Frequency: 7076000
?
Rig command: f
Frequency: 7076000
?
Rig command: F 7090000 f
?
Rig command:?
Rig command: Frequency: 7090000
?
Rig command: f
Frequency: 7105000
?
Rig command: f
Frequency: 7105000
?
Rig command: F 7089000 f
?
Rig command:?
Rig command: Frequency: 7089000
?
Rig command: f
Frequency: 7088000
?
Rig command: f
Frequency: 7088000
?
Rig command: F 7088000 f
?
Rig command:?
Rig command: Frequency: 7088000
?
Rig command: f
Frequency: 7087000
?
Rig command: f
Frequency: 7087000
?
Rig command: F 7087000 f
?
Rig command:?
Rig command: Frequency: 7087000
?
Rig command: f
Frequency: 7086000
?
Rig command: f
Frequency: 7086000

There was arbitrary jumping around in that last sequence, but consistencies emerged. Quisk always responded correctly to an F. The response to the first f immediately after the F (on the same command line) was always also correct. Responses to subsequent f commands (on new lines) were wrong and unchanging with repetition.

These interactive command line experiments are interesting because of what works and what doesn't. However, unlike the interactive command line stuff, I seem to recall quisk did not necessarily respond correctly to set frequency commands from wsjtx via udp nor to a cat command sent through a virtual serial port. I also recall response times being highly variable by cat, whereas rigctl interactive command lines execute without perceptible delay. One bug could have cascading consequences, but to a person ignorant of the code construction of hamlib or quisk, it also seems there could be multiple issues.

Do you have any more 32 bit experiments for me, or is it time to try the 64 bit OS?


Mike Black
 

One thing I forgot to ask...what version of Quisk are you running?

Mike W9MDB




On Monday, August 21, 2023 at 02:34:25 PM CDT, ag5gt@... <ag5gt@...> wrote:


With the first set, quisk does correctly follow the F command. There are errors on read-back. Here's the sequence:

~ $ rigctl -m 10
?
Rig command: F 7071000
?
Rig command: f
Frequency: 7067000
?
Rig command: F 7072000
?
Rig command: f
Frequency: 7073000
?
Rig command: F 7071000
?
Rig command: f
Frequency: 7070000
?
Rig command: F 7072000
?
Rig command: f
Frequency: 7073000

For the second sequence, quisk follows the F command correctly and the f (read-back) is consistently correct, too! Here is that sequence:
?
~ $ rigctl -m 10
?
Rig command: F 7070000 f
?
Rig command:?
Rig command: Frequency: 7070000
?
Rig command: F 7071000 f
?
Rig command:?
Rig command: Frequency: 7071000
?
Rig command: F 7072000 f
?
Rig command:?
Rig command: Frequency: 7072000
?
Rig command: F 7073000 f
?
Rig command:?
Rig command: Frequency: 7073000
?
Rig command: F 7074000 f
?
Rig command:?
Rig command: Frequency: 7074000
?
Rig command: F 7075000 f
?
Rig command:?
Rig command: Frequency: 7075000
?
Rig command: F 7076000 f
?
Rig command:?
Rig command: Frequency: 7076000
?
Rig command: F 7077000 f
?
Rig command:?
Rig command: Frequency: 7077000
?
Rig command: F 7078000 f
?
Rig command:?
Rig command: Frequency: 7078000
?
Rig command: F 7079000 f
?
Rig command:?
Rig command: Frequency: 7079000
?
Rig command: F 7080000 f
?
Rig command:?
Rig command: Frequency: 7080000
?
Rig command: F 7081000 f
?
Rig command:?
Rig command: Frequency: 7081000
?
Rig command: F 7082000 f
?
Rig command:?
Rig command: Frequency: 7082000
?
Rig command: F 7083000 f
?
Rig command:?
Rig command: Frequency: 7083000
?
Rig command: F 7084000 f
?
Rig command:?
Rig command: Frequency: 7084000
?
Rig command: F 7085000 f
?
Rig command:?
Rig command: Frequency: 7085000
?
Rig command: F 7086000 f
?
Rig command:?
Rig command: Frequency: 7086000
?
Rig command: F 7087000 f
?
Rig command:?
Rig command: Frequency: 7087000
?
Rig command: F 7088000 f
?
Rig command:?
Rig command: Frequency: 7088000
?
Rig command: F 7089000 f
?
Rig command:?
Rig command: Frequency: 7089000
?
Rig command: F 7090000 f
?
Rig command:?
Rig command: Frequency: 7090000


Next, I tried something a little different. I used your F xxxxxxxx f commands, but followed each with two more f commands. Quisk started at 7090000 where the last test left it. Then Quisk correctly followed the F commands, as before. The most immediate read-back (f) was also correct, as before. However, responses to the second and third f commands were wrong and identical, though quisk remained tuned according to the most recent F command. I got bored, so did not run your whole list, but jumped around a bit. Errors could be plus or minus 1K, 10.5K or 20K. Here is the whole sequence:

rigctl -m 10
?
Rig command: f
Frequency: 7091000
?
Rig command: F 7070000 f
?
Rig command:?
Rig command: Frequency: 7070000
?
Rig command: f
Frequency: 7050000
?
Rig command: f
Frequency: 7050000
?
Rig command: f
Frequency: 7050000
?
Rig command: F 7071000 f
?
Rig command:?
Rig command: Frequency: 7071000
?
Rig command: f
Frequency: 7072000
?
Rig command: F 7072000 f
?
Rig command:?
Rig command: Frequency: 7072000
?
Rig command: f
Frequency: 7073000
?
Rig command: f
Frequency: 7073000
?
Rig command: F 7073000 f
?
Rig command:?
Rig command: Frequency: 7073000
?
Rig command: f
Frequency: 7074000
?
Rig command: f
Frequency: 7074000
?
Rig command: F 7074000 f
?
Rig command:?
Rig command: Frequency: 7074000
?
Rig command: f
Frequency: 7075000
?
Rig command: f
Frequency: 7075000
?
Rig command: F 7075000 f
?
Rig command:?
Rig command: Frequency: 7075000
?
Rig command: f
Frequency: 7076000
?
Rig command: f
Frequency: 7076000
?
Rig command: F 7090000 f
?
Rig command:?
Rig command: Frequency: 7090000
?
Rig command: f
Frequency: 7105000
?
Rig command: f
Frequency: 7105000
?
Rig command: F 7089000 f
?
Rig command:?
Rig command: Frequency: 7089000
?
Rig command: f
Frequency: 7088000
?
Rig command: f
Frequency: 7088000
?
Rig command: F 7088000 f
?
Rig command:?
Rig command: Frequency: 7088000
?
Rig command: f
Frequency: 7087000
?
Rig command: f
Frequency: 7087000
?
Rig command: F 7087000 f
?
Rig command:?
Rig command: Frequency: 7087000
?
Rig command: f
Frequency: 7086000
?
Rig command: f
Frequency: 7086000

There was arbitrary jumping around in that last sequence, but consistencies emerged. Quisk always responded correctly to an F. The response to the first f immediately after the F (on the same command line) was always also correct. Responses to subsequent f commands (on new lines) were wrong and unchanging with repetition.

These interactive command line experiments are interesting because of what works and what doesn't. However, unlike the interactive command line stuff, I seem to recall quisk did not necessarily respond correctly to set frequency commands from wsjtx via udp nor to a cat command sent through a virtual serial port. I also recall response times being highly variable by cat, whereas rigctl interactive command lines execute without perceptible delay. One bug could have cascading consequences, but to a person ignorant of the code construction of hamlib or quisk, it also seems there could be multiple issues.

Do you have any more 32 bit experiments for me, or is it time to try the 64 bit OS?


 

I set up my 32-bit raspberry pi and downloaded and built the Hamlib 4.6~git. The F and f commands worked perfectly. So I don't think the problem is the 32-bit OS.

Here are some things to try. Make sure you do not have split Rx/Tx. The F command is really the Rx frequency. The I command is the Tx frequency. So test with the "I" and "i" commands and see what happens. Also, make sure you are not using multiple receivers.

I would still like to know if rig 2 works. You are using rig 10. Try rig 2.

Jim
N2ADR


 

Also, please check under "Remote" that the Hamlib port is 4532 and the host is localhost.

Jim
N2ADR