Introduction
Disclaimer: This tutorial assumes the user has some understanding of virtualization as well as installing computer software but I'll try to keep it as basic as possible!
Scope
The goal is to provide a control and panadapter interface for the Elecraft K3 and SDRPlay software-defined receiver that provides a link to RumlogNG and your digital mode program of choice in macOS. This guide will not be kept up to date (It took me a year to finish it to begin with!) so if you find this well after it was posted, please treat these instructions as guidance rather than gospel.My "iMac" has the following technical specs:
- Processor: Intel i7-6700k 4.0 GHz
- RAM: 16 GiB DDR4
- Graphics: AMD RX 580
- OS: macOS Catalina 10.15.4
No, this isn't actually a real Mac... This is what's called a hackintosh, an Intel based computer that runs macOS natively - it takes a lot of work and patience to get one set up but that isn't the point of this post. These instructions *should* work for most real macs, I don't think you need as much horsepower as I have but I have not tested on lower end macs so your mileage may vary. If you're interested in more information about hackintoshing and building your own, I encourage you to check out the hackintosh subreddit here:https://www.reddit.com/r/hackintosh/.
Setup
Hardware
We've already discussed the computer hardware.
- Elecraft K3
- The other components you need are a K3 or K3S. These instructions may prove helpful for KX3 and KX2 users but I don't know anything about this kind of setup with audio SDRs like those so I'm not sure what will be applicable or not.
- SDRPlay
- This is the hardware component that connects to the K3 IF output. I assume you already have this.
Software Prerequisites
- RumLogNG
- My favorite choice for logger on macOS. https://dl2rum.de/rumsoft/RUMLog.html
- Windows 7 or newer
- You will need a copy of Windows to run Win4K3. You MUST use Windows 7 or newer. Not only will these instructions not likely work on anything older, but running old operating systems with internet access is extremely risky!
- Oracle VirtualBox
- VirtualBox is a free virtualization software that allows you to install an operating system such as Windows or Linux and run it, in real-time, at the same time as your host OS.
- Win4K3
- Win4K3 is a fully-fledged rig control software for Window that works with K3s, KX3s, and KX2s. It also offers panadapter interface with P3 and outboard software IF based SDRs like the SDRPlay.
- Eterlogic Virtual Serial Ports Emulator (VSPE)
- This is used to split and serve up the K3 serial port so that you can access it in Win4k3 as well as RumLogNG. http://www.eterlogic.com/Products.VSPE.html
Installation
1. Buy/Download Windows
Current Windows install media can be downloaded for free directly from Microsoft. What isn't free is an activation key. You may be able to use an unactivated version of Windows for this forever without any issues. If you'd rather not have a watermark bugging you, you can purchase an OEM license key for a fraction of the cost of a retail license at SCDKEY. These keys are 100% legit and fine to use.
2. Install VirtualBox
VirtualBox allows you to run another OS in parallel with your macOS installation without rebooting. Follow the normal process to install on macOS and/or refer to their instructions.
Once you get VirtualBox installed, open it up and hit the New button. I recommend using the Guided wizard here as it sets many of the things for you by default. Run through the wizard, point it at the .iso you downloaded from Microsoft earlier and it will install Windows to your machine. You should not need a lot of disk space for this (About 20 Gigabytes) but be sure to configure the virtual machine for at least 2GB of RAM or you will have pretty bad performance. I have mine set up with 4GB. There's dozens of guides on how to install Windows in VirtualBox on macOS so please refer to those if you need help here. Here's a good one for starters https://www.howtogeek.com/657464/how-to-install-a-windows-10-virtualbox-vm-on-macos/
3. Install Windows Updates
Once you have Windows booted the first time you'll have to run Windows Update. You'll likely have a bevy of updates and reboots to do at first so do all of these before you move on.
4. Install Guest Addons
You need these to get full use out of your new VM and enable seamless display mode. Refer to the VirtualBox docs here:https://docs.oracle.com/cd/E36500_01/E36502/html/qs-guest-additions.html
5. Install SDRPlay and K3 Drivers
Once you're confident the updates are complete, download and install the divers for the SDRPlay and FTDI drivers for your K3 serial-USB adapter within Windows. Use Internet Explorer to navigate to these sites and download the installers:
- SDRPlay: http://www.sdrplay.com/downloads/ (download the SDRUNO file)
- FTDI drivers: https://www.ftdichip.com/Drivers/VCP.htm
6. Install Win4K3
Install Win4K3 now from within Windows again. It is available here: https://va2fsq.com/purchase/
7. Start Win4K3
Win4K3 will start up and you will have to select the correct COM port for the K3. There should only be 1 listed. Select it and set the correct baud rate (default is 38400 baud). Check the box for SDRplay.
Press save and it should connect to the radio. Once the control window is open, go to the Window menu and hit the SDRplay Panadapter item. This will bring up the panadapter. You will have to find the appropriate global offset for your radio now. Do the following:
Win4K3 will start up and you will have to select the correct COM port for the K3. There should only be 1 listed. Select it and set the correct baud rate (default is 38400 baud). Check the box for SDRplay.
- Tune you radio to WWV in CW mode (10 MHz is usually best for the US)
- Set the radio to FINE tuning so you have 1 Hz tuning.
- Look at the panadapter and tune off of WWV until the signal on the waterfall appears exactly on the center marker. You should be about 6-8 kHz off frequency. The amount off frequency is the global offset.
- Go to the panadapter and hit the Config button in the lower right corner, and set the global offset value you calculated before. It should be a negative number.
- Hit save and tune back to WWV. It should now match the signal reception on your radio and the panadapter should show the signal in the center of the passband.
8. Integrate with RumLogNG
The next step is to set up some COM port routers so that we can send the CAT data to RumLog from your Windows VM to your mac. If we were running Windows natively as our OS of choice, there's a lot of ways to do this but since we need to create a link between the VM and macOS, we have to utilize serial-over-IP. That is, serial over the network. Your Windows VM utilizes a bridged network interface so it appears to your internal network as just another computer that you can address by IP, The piece of software we'll use to accomplish this is called Virtual Serial Ports Emulator (VSPE). Download and install this in Windows again, you may need to reboot. Once rebooted, launch the application and press the Create New Device button (Win4k3 cannot be running):
Select "Splitter" for the device type.
Hit Next and select a virtual serial port number that isn't in use. Select the Data Source Serial Port that corresponds to your K3, then select Settings and set the Speed to 38400 baud. Hit OK, and check Redirect Modem Registers, RTS, and DTR. Press Finish.
Set the Local TCP port to 5555 and select the Source Serial port to be the one you created in the first step and set the baud rate like you did before. Check DTR/RTS depend on connection status.
Hit the green arrow to activate the splitter/server. You should get all OK messages in the status section as shown.
Now go back and open Win4k3. It will probably complain that the port you had configured before is in use. Once the original setup screen comes back up, select your new port (COM1 in the example), hit Connect and Save. You should be back to having control of the radio and panadapter now within Win4k3.
Next thing to do is get the virtual machine's IP address so you can connect to it from RumLog. Go to the start menu and type "cmd" and press return. This will bring up a command line. Here type "ipconfig" and look for the "IPv4 Address" entry:
In this case it is 192.168.2.33. Write this down or remember it (or leave the window open!)
Now you can finally launch RumLogNG. Open the preferences and go to the TX1 tab. You probably already have this set up for your K3. Your serial port won't show now because its in use by the VM. In the top right for Interface, select TCP, then look at the CAT:TCP section of this window. For Host, enter the IP address of your Windows virtual machine we just looked up and for the port use 5555 or whatever you used for your port when we set up the TCP server before. Your window should look something like this when you're done:
Now add another new device, this time select Tcp Server
Set the Local TCP port to 5555 and select the Source Serial port to be the one you created in the first step and set the baud rate like you did before. Check DTR/RTS depend on connection status.
Hit Finish and you should have a screen similar to this:
Now go back and open Win4k3. It will probably complain that the port you had configured before is in use. Once the original setup screen comes back up, select your new port (COM1 in the example), hit Connect and Save. You should be back to having control of the radio and panadapter now within Win4k3.
Next thing to do is get the virtual machine's IP address so you can connect to it from RumLog. Go to the start menu and type "cmd" and press return. This will bring up a command line. Here type "ipconfig" and look for the "IPv4 Address" entry:
In this case it is 192.168.2.33. Write this down or remember it (or leave the window open!)
Now you can finally launch RumLogNG. Open the preferences and go to the TX1 tab. You probably already have this set up for your K3. Your serial port won't show now because its in use by the VM. In the top right for Interface, select TCP, then look at the CAT:TCP section of this window. For Host, enter the IP address of your Windows virtual machine we just looked up and for the port use 5555 or whatever you used for your port when we set up the TCP server before. Your window should look something like this when you're done: