Learning New Things
Over the past week or so, I have been spending a lot of time with rigctl. This started as an investigation of why I was having an issue with tying together a number of applications and slowly unraveled into a deep dive on the workings and potential of rigctl. It has been an enlightening time.
All of this effort to try and simplify workflows and remove frustration led to the place most fear: the man page. And that took me places.
What I Knew
With just a little playing around, I knew that I could control my IC-7300 which was connected to my Mac running rigctld from any computer on my home network. All it took was a quick connection using the IP address of the Mac and rigctl. I did things like probe to see what modes were available and that I could set the frequency from the other room. I even turned it off. OK. Yeah. That’s neat. But what else is there?
What I Learned
There are CAT controls for everything on an IC-7300. Out of curiosity, I dug into the ICOM manual and started looking at all of those wild and weird codes in the back. Lots of hexidecimal this and that. All of which could be dumped into rigctl. I thought a little bit about something that I reach for and that is cumbersome to get to: Keyer Speed.
Look, when I activate a park I sit at 16 wpm because I get all levels of hunters. For some (a non insignificant amount) this might be one of the first times they’ve gotten up the courage to start hitting the key. I’m not in any hurry so 16 wpm works for me and if I have to slow it down to 12 or 10? Sure! Why not? I’m in no hurry (assuming it’s not raining). When I do want to drop the keyer speed, it’s kind of a pain. I have to push a knob then touch the screen and then get it to where I want it. In the field? That’s the life of a portable operator. But in the shack? That’s different. Could I just set the keyer speed from the command line?
Yup!
First I looked up the code (0x14) and sub-code (0x0C) for getting to the keyer found in the far back of the 7300’s manual. Then figured out how to set the value which is 6 wpm to 48 wpm mapped from 000 to 255. I’m gonna go ahead and say that this is one of those times when the spec could have been a little clearer and just shake my head and walk away after a little Trial And Error.
Here’s what it looks like on the command line:
rigctl -m 2 w \0xFE\0xFE\0x94\0xE0\0x14\0x0C\0x0165\0xFD
That breaks down like this:
rigctl -m 2 – We’re pointing rigctl to the network interface for rigctld.
w – this is the switch for sending commands.
0xFE 0xFE – That’s the preamble and is always there.
0x94 – Transceiver’s address (the CIV address in the setup of the rig).
0xE0 – Controller’s address (rigctld).
0x14 – Code for the command.
0x0C – Code for the sub-command (Key Speed).
0x165 – This is the wpm and maps out to 16.
0xFD – End of message. This is always present.
At first, I thought this was pretty neat and I started crafting some messages like this. Then I did that thing I so rarely do with a man page: I kept reading.
Life Gets Easier
Changing keyer speed seems like the kind of things a lot of hams would do regularly, right? Almost like the kind of thing someone might write a piece of software to do. So if you were making a really amazing command line utility you might just come up with an easier way to do it. And there it is:
rigctl -m 2 L KEYSPD 16
That’s it. That’s The Stuff. The L KEYSPD 16 is the magic part. Captial L means set the level while lowercase l means query the level. The command above sets the keyer speed to 16 wpm whereas issuing the same thing with a lowercase l instead would return the value of the current keyer speed.
With a little more digging, I started to find direct routes to some things that are kind of a bit of knob fumbling. There are things like RFPOWER which, well, sets the RF Power output for the rig. The PREAMP can be toggled. CWPITCH? Sure! Does what you think. There are a ton of functions that can be hit without digging out the codes from the manual and that’s amazing. Including being able to send Morse with:
rigctl -m 2 b CQ CQ CQ DE KC8JC KC8JC
As it was pointed out to me on Mastodon, this would be super useful for contests. It’s easier than punching the macro buttons and it gives the operator INFINITE MACROS if done right.
For the past week I’ve been running rigctld and then keeping an interactive session open with rigctl so I can just poke commands at the rig as I’m jumping from this to that. It’s fun to use the command line to bounce around a little when hunting POTA activators, for example. It makes it really, really easy to change modes and frequencies all in one shot.
Not Touching That
There is a whole section on messing around with the waterfall and the scope. I have no idea what I’m doing there most of the time and I don’t (today) have a use case for addressing those functions with this kind of precision. I suppose if I did know what I was doing, it would be pretty sweet. ICOM has gone to great pains to make all of that accessible via CAT so there must be a use case, I just haven’t found it yet.
Well Duh
This application is pretty rich and I don’t know why no one ever mentioned it to me (outside of the scope of other applications). It’s probably why I’m irrationally excited about it. Understanding how to put together a message based on what is in the manual as well as just grabbing things from what’s already baked in has been very eye opening. It’s allowing me to push past the baffling menus and get to the business of playing radio. The power of whipping up a quick script or pushing a quick command into an interactive session is immense.
There is a part of me that wonders if there are a bunch of blind hams out there nodding along because this may provide some kind of accessibility for these very expensive pieces of specialized equipment that are outfitted with often user-hostile interfaces. I hope? For the record, I haven’t thought about that nearly enough. Most of us haven’t I’d bet.
Final
I’m very comfortable at the command line and find that I can certainly type faster than I can push a touch screen or twiddle a knob. I don’t see myself using this much in the field which is a shame. Certainly if I’m doing digital modes or have the tablet out when we’re camping, that might be different. I might even consider it when doing something like OSPOTA when I’m logging as I go. In the shack at home though, this will be a game changer for me.
I hope that this is at least a pointer for operators who might find a use for being able to reach directly from one’s computer into the heart of the rig on any platform.
Thanks for reading along and 73!