Mirroring SDR with WFView

Hi I’m new and haven’t found any answers in looking through discussion board.

I have my icom 7100 currently working as a rig controller through wfview on my Macbook. Using a MFJ-1708sdrs, I’m looking to get my waterfall view as well. Is there a way to mirror changes to frequency, etc from wfview to an sdr program such as SDR++, CubicSDR, or any other SDR program that runs on Mac similar to the way I’ve seen Omni Rig working with SDR# and few others on Windows? Step by step tutorials would be super great.

What you can do is run a script which polls one radio and then commands the other.

I have done this between two Icom radios both running with wfview, for a sort of “diversity reception”. However one radio was across the pond in The Netherlands and it honestly was receiving an entirely different world of traffic. I also was able to do it between wfview and GQRX, an open source SDR program. In every case I am communicating via rigctld, which is effectively built-in to wfview, GQRX, and many other ham radio applications.

I don’t know if any prepackaged solutions that would do it though.

Here’s my python code which you may use if it helps:

de W6EL

Yea i’ve tried to use the rigctld sdr++. I’ve started the listner. But get no response.
Screenshot 2024-02-25 at 9.31.37 AM

In WfView I have the following. Is there something else I need to change? Should Virtual serial port have something selected? If so so I’m not sure what to update on the SDR++ side.

Make sure the port numbers are different and then run the python script I linked to. The port numbers you use should match the ones in the script.

That’s a very expensive way to use an SDR with the IC7100. I just added an IF tap to my 7100, and the SDR is connected to it. HDSDR gives me a spectrum view - it has facility to subtract the IF offset of the 7100. I can also click anywhere in the spectrum to control the frequency of the 7100, using OmniRig. It’s all explained on this website:
I am still hoping that someone will be able to add the spectrum into the WFView code so that the whole system looks like a IC-7300. Presently the only option seems to be to mirror the screen of the computer running HDSDR and WFView on the remote machine, but at the moment I don’t see how that can control the 7100 frequency by clicking on the spectrum.

1 Like

Hi Tony,

Integrating RTL-SDR into wfview is on the radar. I have more older radios than I know what to do with and they are all prime targets for a SDR tap. IC-700M, IC-600M, IC-718, IC-706 MKIIG, FT-7B, SGC SG-2000, etc etc. All these radios need an SDR tap, am I right?

The way I have considered doing it is to simply have rtl_tcp running at the computer with the dongle. This creates a TCP/IP server with a very simple protocol. wfview can then connect to rtl_tcp and plot the spectrum and also manipulate the dongle’s center frequency and gain.

With that system, we can leverage existing code in rtl_tcp, which handles the hardware directly, and simply pump the output of that stream into our spectrum. And it already works remotely too.

But before we do this, we gotta finish what we have started with version 2, which has a separate spectrum module – perfect for adding other spectrum sources.

de W6EL

That sounds great, Elliott. Normally, I use the the Airspy R2 SDR for my panadaptor. Airspy provide servers for Windows and Linux which can use several different SDRs including the R2 and the RTL-SDR. Downloadable from here:


@tony1tf I don’t trust in my skills enough to try the IF Tap Panadapter. I would rather just spend the $140 for the sdrs antenna splitter through MFJ.

@eliggett I’m going to try this. So if it works the way I think I understand, if I don’t change anything in your program, I should have the port for WFview be 4533 and the port for SDR++ rigctl server be 7356?

wfview.connect(("", 4533));

#gqrx = socket.socket();
gqrx = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
gqrx.connect(("", 7356));

I updated WFview and SDR++, but I’m getting connection error when run your script. I have mostly a javascript background so I know little to nothing about python except to be able to understand some of the syntax.

Screenshot 2024-02-25 at 4.39.47 PM

Not sure if this helps but this is the port listing

sdrpp     88547   philipwiggins   12u  IPv4 0xff1c32752bf282b1      0t0    TCP (LISTEN)
wfview    88995   philipwiggins   26u  IPv6 0xff1c327065c6e8a1      0t0    TCP *:4533 (LISTEN)

Script says port “7356” but your GUI screenshot shows port “7536”.

The error means it cannot connect. Turn off any firewalls you might have for a moment, and maybe also try a different port number. Anything not in use by something else and larger than 1024 should work. Sometimes Windows will block programs from connecting inwardly.

I’ll also note that once you get this working, you can easily implement an offset tuning if you need to, depending on how your tap works.

de W6EL

Ok. Got it to work after I did home address instead of computer address and updated the port. Is there a way to sync back and forth? It appears that I can set with wfview, which then updates sdr++, but sdr++ doesn’t update wfview. Or is this only 1 way?

Either way thanks for the help this is miles ahead of where I was.

You can sync it either direction you wish. To go both directions you have to be careful not to get it into a vicious cycle.

The commands are the same for both wfview and your SDR program. You just need to read both frequencies in first. Then decide which one has changed and send the changed data to the one that did not change. I’d do the mod for you but I am quite busy right now. If you do it, can you send the code here and I’ll update the script?

I’m really pleased that someone made use of this little script!


de W6EL

I may try experimenting with it. Don’t know python but gives me a reason to learn it.

I’m a little late to the game here but I have a custom plugin for SDR++ that will sync through rigctld with wfview in both directions. Its currently only compiled for Linux but Mac shouldn’t be a big deal. I haven’t gotten around to windows either. It currently only syncs the frequency but I will do the mode shortly. I use the RX IO on the 7610 with an HL2 for receive using this module and it works very well. If you can build it for Mac or get someone to do it I will put it up on Github.


I would definitely give it a shot

I’ll put the source up this weekend.

1 Like

Philip - The source for SDR++ with the sync module I added is at: GitHub - bturbeville/SDRPlusPlus: SDR++ Rig Control Client for WFView and other hamlib compatible rigs. This is a complete fork of GitHub - AlexandreRouma/SDRPlusPlus: Cross-Platform SDR Software with my module added so you can just clone this and build it. The instructions for building on MacOS are in the readme. Let me know if you need help. The module is named WFSync but it will actually work with anything that uses hamlib rigctld.

1 Like

Im running into issue when running brew install libusb fftw glfw airspy airspyhf portaudio hackrf rtl-sdr libbladerf codec2 zstd pip3 install mako according to steps, but havne’t figured out how to resolve. I’ve tried to change brew install, but run into the same issue