In mid November I sold my Kenwood TS-590 to finance the purchase of an Elecraft KX3 and become a full time QRP operator. One of the advantages of the KX3 is SDR I/Q output, which can be used to drive a panadapter. After some fidling around, I have a configuration that works with the popular NaP3 software and thought I would share the highlights in hope of saving you some effort. This is by no means an exhaustive setup and configuration guide for NaP3, but it should be enough to get you started. Remember you can click on the images to enlarge them.
For this example I have used the integrated sound card in my PC and have not yet put a ground loop isolator inline which are both opportunities for improvement.
We begin by manipulating the input sound card port configuration as shown above. This will vary somewhat from sound card to sound card, but we want to be sure that we are capturing two channels and that the sampling rate is set at the maximum your card supports, which may take some experimentation and is not necessarily the highest sampling rate shown in the drop down.
Here on the setup tab of the NaP3 configuration, we need to select the sound card input we are using and where we would like NaP3 to output decoded audio. Once again we have the option to manipulate the sampling rate, which as you can see is 48k for my sound card. In addition, we need to select “Elecraft K3” for the Rig Type and specify our CAT parameters. I began this adventure trying to use the “Elecraft KX3” Rig Type, but I found it to not work very well.
Here is the “fun” part, at least it was for me until I started banging my head on the desk. Be sure to set your “Global Offset” to 0 and select “Swap I/Q Channels”. The “IF Frequency Offsets” is where you will have to spend some time playing. The method I used was to tune to WWV in CW mode on the KX3 and determine the differential between the frequency displayed on the KX3 and the panadapter display. I then set the offset to compensate. To configure the offset for USB and LSB modes, I reduced the offset by the amount equal to my CW sidetone. This should get you pretty close, but may still require a little tweaking. Feel free to try my numbers, but I am unsure if they are valid from KX3 to KX3.
If you determine some other method to set the offsets, please let me know as this is the most time consuming portion of the configuration.
When it is all over, this is similar to what you will end up with, a nice broad view of the spectrum centered on your rigs current frequency!
If you have been following my adventures, specifically with the Etherkit OpenBeacon, you will know that I was investigating a method of triggering WSPR transmissions without leaving it attached to a computer. My requirements were that it be Arduino based, since I am learning about that as well, and have a very stable time source as necessitated by WSPR.
The available options for stable time sources in the Arduino time library include NTP, RTC, and GPS sources, I decided to go a different direction!
While investigating time sources I ran across the WWVBClock Project on Github and thought WWVB would make an interesting time source for this project. The first step was to find a receiver, which are far less common from online shops than I expected, but I was able to find one at my local Wal-Mart in the form of a self setting alarm clock for the reasonable cost of $10.
As soon as I got home I opened it up to ensure that the module was not integrated into the main PCB as that would be of little use and to my delight it was a separate unit as shown below. It is the module on the left hand side of the larger PCB and the antenna is located at the top. A pair of cutters and one minute later, I had a WWVB receiver module.
Locating a datasheet for the module proved a little challenging, but I was able to locate the datasheet for IC used on the module, which is located here.
Having all of the necessary information, it was time to start playing. I breadboarded all of the components as show in the schematic and started hacking apart the code from the WWVB Clock Project.
My initial plan was to use the WWVB receiver and the Arduino time library to set the internal clock with hopes that it would keep accurate time when a WWVB signal wasn’t available. This proved to be a lost cause as it was 4 seconds behind after 90 minutes without a WWVB signal, far beyond the 2 seconds of accuracy required by WSPR.
The second, and current implementation, only transmits when a WWVB signal is available to guarantee accurate timing. The code by default will transmit at 4 minute intervals, but this value is configurable by manipulating the triggerInterval variable. During normal operations the code displays, via the serial port, each time an output signal is sent, enabling you to not only track transmissions, but also the availability of the WWVB signal in your area.
Here are the spots as reported on WSPR for the last 24 hours all of which have been triggered by this project.
This project has been a lot of fun and works quite well! A WWVB signal is consistently available here in Central Arkansas, in the Central time zone, from about 7PM through the 10AM, honestly much more than I expected. The code for the project is available on Github, so feel free to use it and experiment!