A Knucker with a view: spectrum and constellation
Posted: Fri Dec 09, 2022 8:57 pm
The Knucker is a fantastic receiver for DVB-T DATV. However, it is a bit of a black box. It either decodes and displays a signal or it doesn’t. If it doesn’t you are in the dark about the reason. Especially because it is also rather sensitive to frequency - a 20 kHz difference in frequency could mean the difference between no decode or perfect decode with lower bandwidths. Frank, DD0CW and I were searching for a method to obtain spectrum information from the Knucker. And a constellation would also be nice, as that would indicate the signal is decodable. After opening up the NIM in the Knucker, Frank found two pads marked IF-n and IF-p, coming from the MxL608 DVB-T tuner chip.
When you see a constellation, decoding in GNUradio is possible. However, that doesn’t mean the Knucker can decode it. That is because the IF filter is probably wider then the signal bandwidth. So the signal you see can be anywhere within that bandwidth, but it needs to be more or less exactly at the right frequency for your Knucker. This is a problem of local oscillators, as it seems that different Knuckers have different exact IF frequencies. The LO of the Knucker starts with a 28 MHz crystal, but for a 436 MHz signal must be synthesized to 441 MHz. So if the 28 MHz is 20 kHz of, at 441MHz it could be 300 kHz off. However, you can try to calibrate your best Knucker receive frequency.
For these tests I used a python program based on the Ryde software, especially CombiTunerExpress (work in progress). That makes it possible to work with a GUI on an RPI4 (RPI400 in my case). One problem remains: with the current software it is impossible to quickly finetune the frequency. After each adjustment, the knucker is initialized again. The whole procedure takes 10 to 30 seconds, way to long for contests for instance. Maybe it is possible to update this software to only change the frequency if all else stays the same? I’ll be glad to help if manpower is a problem. By the way, you can get a similar result without reverting to your soldering iron. Just put a splitter behind the LNB or preamp, connect the Knucker to one branch and an SDR to the other. Then you only have to do the calibration between the Knucker and the SDR and you are in bussiness.
73, Poll PA3BYV
After soldering a 220 pF and a short coax cable to one of those pads we found a 5 MHz IF signal there. The signal is inverted, as it moves down when the transmitted frequency moves up. Routing it through 45 dB of attenuation to an RSP1(A) we were able to get both spectrum and constellation in GNURadio. For the correct constellation we had to swap I/Q in GNURadio. It also decoded perfect in GNURadio.
Based on those results I modified an old RTL-SDR dongle. The traces from the R820T tuner chip to the RTL2832 were cut just before the capacitors C33 and C34. Also the trace coming from the antenne socket to the R820T was cut. A short length of coax connects C34 with the antenne socket, leaving the ESD-diode in place.
With the Knucker IF connected to the RTL-SDR antenne input it was now also possible to get the IF spectrum and constellation in GNURadio. For this low frequency the RTL-SDR needs to be in direct conversion mode. Therefore add direct_samp=1 to the device parameter (rtl=0,direct_samp=1) in osmocom source. If you would have used pin 4 or 5 of the RTL2832, direct_samp must be 2. When you see a constellation, decoding in GNUradio is possible. However, that doesn’t mean the Knucker can decode it. That is because the IF filter is probably wider then the signal bandwidth. So the signal you see can be anywhere within that bandwidth, but it needs to be more or less exactly at the right frequency for your Knucker. This is a problem of local oscillators, as it seems that different Knuckers have different exact IF frequencies. The LO of the Knucker starts with a 28 MHz crystal, but for a 436 MHz signal must be synthesized to 441 MHz. So if the 28 MHz is 20 kHz of, at 441MHz it could be 300 kHz off. However, you can try to calibrate your best Knucker receive frequency.
For these tests I used a python program based on the Ryde software, especially CombiTunerExpress (work in progress). That makes it possible to work with a GUI on an RPI4 (RPI400 in my case). One problem remains: with the current software it is impossible to quickly finetune the frequency. After each adjustment, the knucker is initialized again. The whole procedure takes 10 to 30 seconds, way to long for contests for instance. Maybe it is possible to update this software to only change the frequency if all else stays the same? I’ll be glad to help if manpower is a problem. By the way, you can get a similar result without reverting to your soldering iron. Just put a splitter behind the LNB or preamp, connect the Knucker to one branch and an SDR to the other. Then you only have to do the calibration between the Knucker and the SDR and you are in bussiness.
73, Poll PA3BYV