Testing External Control with Virtual Serial Port

I am trying to send my remote IC-7610 commands using the External Control Virtual Serial Port using a couple of test methods.
I created a pair of ports using COM0COM:

I configured wfview to attach to COM4. Should I leave rigctl on or must it be turned off? I have not had success either way.

I turned the Transmit Power to minimum, and set the mode to CW, and on a CW frequency in Wfview.

I used two methods to send to COM5. Here is Open Serial Port Monitor method:

And here is another method using a COMMAND script:
: %1 is what to send in CW on an ICOM
:: such as “VVV de NQ5P”
mode COM4 BAUD=115200 PARITY=n DATA=8
mode COM5 BAUD=115200 PARITY=n DATA=8
:: hex 17 is dec 23
set c=23
:: hex FF is dec 255
set e=255
set /p m=%c%%1%%e% <nul >\.\COM5
:: COM5 is connected to COM4 via a virtual NULL Cable

Nothing happened, any ideas why not? (My radio and wfview did not go into transmit; nothing returned to the Serial monitor)

And my 7610 works fine with Wfview, and with WSJT-x using rigctl I have made many many QSOs.

Hi Bob,

I confess, I do not have a windows install to try this with, and the method is a bit different for the other platforms.

rigctl can remain off unless you’re using that feature. From what I can tell, you just need the VSP.

Can you click the Log button in wfview and see if there’s anything interesting going on when you send commands? Perhaps also check the debug box in case we are missing anything. You may also want to lower the polling rate from wfview prior to doing this, just to lower the overall traffic. The polling adjustment is under Settings → User Interface. Just crank it up as high as it goes, and then hit debug and then send your commands.

de W6EL

Also, thank you for the clear screenshots. That’s a nice touch :).

Thank you. I find one picture worth many words. I hope they don’t use too much storage.
Polling is set to 200ms, the max I believe. Good idea.

Nothing was seen with Debug off. Baud rate was set to 115,200 using the mode command.

Serial Port test
With Debug on, this is the debug output but I don’t see anything of interest.
71 56 56 56 20 68 69 20 78 81 53 80 FF is being sent

Script test
With Debug on, this is the debug output but again I didn’t see anything of interest

Are these reasonable Test Tools???

Hi Bob,

If I’m understanding your serial port monitor thing, I think you’re trying to send the command “71 56 56…” etc.

I think you need some more parts of that command. CI-V commands should contain sender and receiver addresses, for example:

fe fe 98 e0 03 fd

Would tell the radio at 0x98 that a controller at address 0xe0 wants to know the current frequency (command code 0x03). Maybe try that command first.

With the IC-7610, the command code is 0x17.

So, a CW “CQ” (43 51) would be:
fe fe 98 e0 17 43 51 ff fd
(assuming I am reading the manual correctly).

de W6EL
Edited to change the CI-V address to 0x98 like your radio

I didn’t know that’s how it worked. Kind of like the old GPIB bus.I thought that a session was established with the login and credentials.

Your suggestion packet worked.

I see it is talking through the Serial Port Monitor, so I’m off to the races. Even though I didn’t get the result I wanted for CW Send, I will figure it out.

Ahh yes it is a little like GPIB. I really like how readable it is personally.

We may build a basic CW window into wfview to send out text this way.

de W6EL

Let me document my test working. It transmits, but I do not have a side tone coming back to my remote station even though I set the level near mid range.

To set side tone level (to 100 on scale of 0 to 255)
FE FE 98 E0 1A 05 02 25 01 00 FD
You will get back OK
fe fe e0 98 fb fd

Send VVV de NQ5P (can send up to 30 chars)
FE FE 98 E0 17 56 56 56 20 68 69 20 78 81 53 80 FD
You will get back OK
fe fe e0 98 fb fd

I think if a long series of characters and you want to terminate you could send this, but it is untested.
To stop sending CW (untested)
FE FE 98 E0 17 FF FD

And if you wanted to send a prosign one shoud use a ^ preceding the two characters.
FE FE 98 E0 17 94 83 75 94 83 75 FD

To set the keying speed to 6 WPM (00 00 is 6 WPM 02 55 is 60 WPM)
FE FE 98 E0 14 0C 00 00 FD

Heres how the Serial Monitor looks testing


the side tone is not heard if you send cw remotely. Something we identified as needed if
we start sending CW.

Now that I send cw … I do it, being lazy, as follows:

rigctld runs remote connected to the rig with USB.
I skip the security part but it listens to a certain TCP port

the remote end that (also ) runs wfview, has a window where I send the
commands using rigctl, towards the remote host:port

the base command to test first without splitting to rigctld/rigctl:

rigctl -m 3075 -r /dev/IC7851A -C rts_state=OFF -s 115200 b ‘my text’

(to make testing local first).

I scripted a test so that I set a band; send cw, go to next band etc. In the end with
that sweep I can see the current global rbn results and therefore a an idea how the
condx are.

This is just for the time being until cw has been implemented.

“A lot to unpack there”

My system has a remote IC-7610.
I run Wfview locally which has an embedded rigctl, and I was told in no uncertain terms NOT to install rigctl. That said, I do have WSJT-x installed and I see rigctl-wsjt.exe in WSJT-x bin directory. I have no ideal what that executable is.

Should I run this command then?:rigctl command line options seem very terse to me. I read one of the rigctl man pages and
with -l I found 3003.
Wfview is listening on the loopback address;
The baud rate to my 7610 is 115200.
The 98 is the address of my 7610
I have no idea what b is
I would send a different test string

rigctl-wsjt.exe -m 30003 -r -c 98 -C rts_state=OFF -s 115200 b ‘VVV de NQ5P’

My whole computer locked up when this was sent. Cntl-Alt-Del did nothing, required a hard boot.

There are CW programs out there with memories and counters, and some decode CW as well.What would it take to bring them in? Some might want to join the development team and contribute code. but I suspect these SW developers concern is will Wfview really get to Release 3 and support FLEX, Elecraft, and Yaesu radios (with waterfalls) as well as ICOM radios?

(Some potential contributors might want assurance thatl wfview will cost hams nothing for the software, and it and derivatives be fully open source so anyone (e.g. ARRL) can compile and give the sw away? The GNU GPL is so complex - who can understand what it means…)

Hi Bob,

If you want to run CW using Roeland’s method, then you will need to run your own rigctl and connect it to the virtual serial port in wfview. This is because wfview does not have the CW command yet in our own rigctld. wfview’s built-in rigctld is designed for external programs like fldigi or WSJT-x to connect to and issue simple commands like “what frequency is this” and so on. But there are some commands, like CW, that we don’t have yet. You can use any serial port program to connect to the virtual serial port and issue commands directly to the radio, including your own copy of rigctl. Sorry for the confusion – the world we live in, so to speak.

I have no idea about the rigctl-wsjtx.exe programsyou mentioned, as I have not actually used that yet, but someone here can probably answer you. I am tempted to say “do not use them” since we don’t know what it does. Perhaps it is just a compiled version of rigctl distributed with wsjt-x for your convenience, I really do not know. But I do know that wsjt-x can connect to wfview’s own rigctld-compatible server, and that this is how many users do it.

Most any CW program designed to work with an Icom will work via wfview’s virtual serial port. Programs that use the audio to do CW decoding, like fldigi, can use wfview with a loopback audio device, which we detail in our manual.

We definitely welcome any contributions to wfview, and we have had contributions to the source code from several people already. Just like sharing schematics and design files, we can share source code and make something better via collaboration.

FLEX? Yaesu? Sure, I’m all for it! Send the radios :slight_smile: or at least send the code :)!

The GNU/GPL license stipulates most importantly, that any copy of wfview distributed has to include the source code, including derivative works. For example, if someone copies parts of the source code into their application, then their application must also be open source. They can charge for it, but they must provide the source code under the GNU/GPL license.

Some people don’t like the kind of “viral” nature of it, but what it does, is assure that the code stays open and available. And I think that’s important. Especially today. We have too many applications and technologies being distributed without the opportunity to learn and grow. Winlink, D-STAR, C4FM, etc.

It’s vital to ham radio that we roll with technology as it evolves (software and hardware) and, that we keep the ideas out in the open. The ARRL should embrace this. There’s so much they could do in this area.

Ok, well, there you have it, one of my soap boxes :-).

Take care,

de W6EL

I love your reply!

I will encourage my friends with an extra Yaesu, Elecraft, or Flex with waterfall to consider loaning it to “The Team”. (Yaesu requires that separate SCU-LAN box. I will also ask about a CIV spec and search for one. I am one of the lucky ones, because I have ICOM radios.

As to the sidetone when operating CW remotely via command, I am asking ICOM to add that to the audio stream. I am thinking it was an oversight on their part and an easy change to the software. Perhaps others will do the same.

Hopefully someone who has written CW decoding and keying software will consider contributing it.

I have now tested early termination of the 17 command to send CW, using the 17 …FD command with 17 FF command (see above posting) It indeed does work. I can see where this might be necessary if an operator makes a mistake and sends the wrong thing, or needs to stop xmitting.

I did chat with ICOM. It appears they might pass on my suggestion to the developers for a firmware change to give us sidetone when xmitting using cw commands remotely. Perhaps others could ask ICOM nicely pretty please!

DerekS: Hi, my name is DerekS. How may I help you?
Robert Johnson: Hi Derek. I sent CW commamds to my 7610 remotely and did not here a sidetone. Is that correct, there is no sidetone when using CW commamds? In case you wondered, this is what I sent with my radio in Break-in: fe fe 98 e0 56 56 56 20 68 69 20 78 81 53 80 ff fd
Robert Johnson: VVV de NQ5P
DerekS: Let me check.
Robert Johnson: It transmitted OK.
Robert Johnson: Oh sorry, I left out the command. 71
Robert Johnson: My typo, fe fe 98 e0 71 56 56…
DerekS: Ok. Checking still…
Robert Johnson: Again there was no sidetone. My typo was just in this chat window, not when I tested. To clarify.
DerekS: Are you keying the radio with a key attached to the radio?
Robert Johnson: no, remotely
DerekS: What are you sending the commands with?
Robert Johnson: i am sending civ commands
Robert Johnson: through the remote control port
DerekS: What is the application sending the commands?
Robert Johnson: Wfview using its Control Port. I have RS-BA1 and have made 8500 FT8 contacts with it, but now I want to add CW to my repertoire.
DerekS: Sidetone will be a function of the application. You won’t hear it on the 7610.
Robert Johnson: It has to come from the 7610, the application is me sending the CW command to the local serial port which gets sent to the 7610 in just a few milliseconds at 115200 baud. How do I know when the 7610 is done sending?
Robert Johnson: sending via keyboard not key
Robert Johnson: Can I show you? Perhaps a zoom call?
DerekS: There wont be sidetone when sending from a computer.
Robert Johnson: Why isn’t there when sending CW commands? The computer only knows it send them and doesn’t know where the ic-7610 is in sending the stream of up to 30 characters.
Robert Johnson: can we zoom?
DerekS: It will show Tx on RSBA1. When Tx goes away on the RSBA1 you will know it is done transmitting.
DerekS: Negative on Zoom.
Robert Johnson: And did it really work right? Was it the right speed?
Robert Johnson: it would be a minor enhancement to the firmware to add it.
Robert Johnson: It would be like I was sitting beside the radio and sending.
DerekS: I can’t comment on that functionality. I think that at least, ultimately you’ll know when it’s done via the RSBA1 screen.
Robert Johnson: can you send his to tose who do firmware updates?
Robert Johnson: i would be happy to test it.
DerekS: I will add it to our update log for both the RSBA1 software and the 7610.
DerekS: Would it be ok if I attached a screen shot of this conversation?
Robert Johnson: Great! Thank you and yes, absolutely. I belive it makes so much sense that the developers will say, “of course”. Aside, I noticed RS-BA1 puts a lock on the ICOM Remote Utility com port so only one app can connect to the remote radio at a time. Any way around that?
DerekS: I’ve heard of that and we don’t have a way around it.
Robert Johnson: and they can contact me anytime and I can demonstrate.
Robert Johnson: i love my 7610!
DerekS: Great radio. Thanks for mentioning!
DerekS: Merry Christmas Robert.
Robert Johnson: I have run 3 applications connected to the 7610 simultaneously using Wfview, so Imcan switch between modes very quickly. fYI.
DerekS: Efficient.
Robert Johnson: Merry Christmas! And 73s
DerekS: Cheers :slight_smile: