Out-of-Band Programming

A project log for KD-C1 Mods

Modifications for the WLN KD-C1 / Retevis RT22 / Zastone ZT-X6

Blaine MurphyBlaine Murphy 01/05/2018 at 02:270 Comments

I recently purchased the tiny WLN KD-C1 radio as a Christmas gift for myself. I bought this particular radio because it was dirt cheap (~$20 on Amazon) and because I want to play with lesser-used bands in my area. Many amateurs that I have encountered in northern WV operate on VHF (2m) frequencies for FM simplex because it has better propagation characteristics than UHF (70cm) where there are lots of mountains and trees. Much of the UHF band around here goes unused making it a perfect place to experiment.

(Yes, the WLN logo is printed backwards)

here are other models by different companies that all look identical except for the front label. AFAIK these are all the same radio inside, but I am not 100% certain. All of these radios use the same Chirp module for programming and have identical code-plug formats.

I reprogrammed the radio with local UHF repeaters and FM simplex channels using Chirp. I was able to hit one of the repeaters near me, but got no response from other hams. Curious to see what else I could do with my new toy I set out to see what range of frequencies it can operate on. The radio's label lists the frequency range of 400MHz to 470MHz, but the source for Chirp's retevis_rt22 module enables programming frequencies from 400MHz to 520MHz. To test if the radio would operate on out-of-spec frequencies I modified Chirp's RT22 module on my box to allow any frequency from 100MHz to 1GHz to be programmed.

The modification of the Chirp module is easy on Arch Linux since Chirp is installed as python source files (.py). First locate the source file for the Retevis RT22. On my computer this is /usr/lib/python2.7/site-packages/chirp/drivers/ but will probably be somewhere else depending on how your distribution installs python programs. After locating the file edit the get_features() method of the RT22Radio class by replacing the linerf.valid_bands = [(400000000, 520000000)] with something like rf.valid_bands = [(100000000, 1000000000)]. This modification will allow you to enter any frequency between 100MHz and 1GHz in Chirp, but does not guarantee that the frequency will actually work for receiving or transmitting.

After modifying the file I created a test codeplug that contained every calling frequency for FM simplex that fit in the expanded test range. I am in the US so this included the following frequencies: 146.520MHz (2m), 223.500MHz (1.25m), 446.000MHz (70cm), and 927.500MHz (33cm). After I programmed the radio I used my RTL-SDR dongle and GQRX to monitor each test frequency as I keyed the radio up.

(The SDR is attached to the back of the laptop lid with Velcro and is currently sporting a Nagoya NA-771R VHF/UHF antenna)

The 2m and 33cm frequencies caused no change on my waterfall, but the 1.25m and 70cm frequencies caused a strong signal to appear. I have not personally tested the radio's ability to receive on the 1.25m band, but after some searching I found a page where VE3PZR has programmed the radio to 1.25m and had luck receiving some stronger signals. VE3PZR's page linked to this thread where he mentions he believes the radio is putting out spurious emissions when transmitting on 1.25m. I would like to test the performance of the radio using a proper spectrum analyzer to see how bad these emissions are.

Using the vanilla radio with out-of-band frequencies is a very bad idea because it may interfere with other parts of the spectrum. Operating out-of-band may also result in poor transmit power, unexpected behavior, and even damage to the transmitter circuitry. I would very much like to take a closer look at the hardware in this radio; it may be possible to make the radio work well on 1.25m.