Transmit - Unwanted Carrier [Fixed]

Hi,

I need help with Lime-USB settings I think.

Using the latest firmware and support library as of November 1st 2018, so I’m up-to-date in that respect.

I am now adding transmit support, as soon as I transmit on 145 MHz I see a carrier at the same level as the modulation. If I set the samples to zero (using 32-bit float samples) the carrier is still present. Otherwise the SSB / AM signal is good. How do I get rid of this carrier?

So, maybe this is a default LMS7Parameter, I don’t know. All help appreciated, I’m hoping to make TX support in SDR Console available once this issue is resolved.

3 Likes

@IgnasJ, could you assist?

1 Like

I’m still on SKYPE as sdr-radio.com, thanks.

1 Like

Some more info: when I stop streaming (returned status is 0) the device is still transmitting!

So as well as the unwanted carrier i can’t stop it streaming.

If I remember correctly, streaming functions only control samples processing in the FPGA. When stream is stopped, the chip RF frontend is still active and continues transmitting last sample. So to completely stop transmission you would need to power down the Tx RF frontend.

OK,

All I need to do is get rid of the carrier, so waiting for help from Ignas. If it just sends zeros that’ll be fine.

Hi,
Recent FPGA images should send zeroes when there is no Tx data. To disable Tx channel use LMS_EnableChannel().
Seeing carrier at the same level as modulation could be DC calibration issue, try using LMS_Calibrate().

Hi,

Thanks for the advice on disabling the TX channel.

It’s been calibrated, calibration doesn’t seem to affect the carrier. Even if I just send zeros I still have a carrier. The calibration works, the TX bandwidth is 3.072 MHz.

The transmit signal is good apart from the carrier.

Would it be possible to talk on SKYPE maybe? I’m sdr-radio.com there.

I can show full calibration diagnostics if that would help.

Sorry, but I am busy with other things and don’t have time to talk on Skype.

OK, I’ll prepare a detailed report, it has to be something simple.

1 Like

I have also seen this bug. I assumed it to be from the software I was using (SDRAngel) but I guess it might not be

Ignas,

Here’s diagnostics from my logfile, I call LMS_Calibrate, I have enabled as much internal logging as possible and have shown the value of some LMS7 parameters. Please let me know what more information I can supply.

Calling LMS_Calibrate() sets DC_BYP_TXTSP, it was not set before the call, now it is.

After calling LMS_Calibrate() should I do anything else to apply the result of the calibration? I’ve looked at the samples on Github but see nothing that helps (I think).

16:39:23.403: Radio LimeSDR> Read parameters
16:39:23.403: Radio LimeSDR> Param DC_BYP_TXTSP (DC corrector bypass) = 0
16:39:23.403: Radio LimeSDR>       GC_BYP_TXTSP (Gain corrector bypass) = 0
16:39:23.404: Radio LimeSDR>       PH_BYP_TXTSP (Phase corrector bypass) = 0
16:39:23.404: Radio LimeSDR>       GCORRI_TXTSP (corrector value, channel I Unsigned integer) = 2047
16:39:23.404: Radio LimeSDR>       GCORRQ_TXTSP (corrector value, channel Q Unsigned integer) = 2047
16:39:23.404: Radio LimeSDR>       DC_TXAI () = 0
16:39:23.404: Radio LimeSDR>       DC_TXAQ () = 0
16:39:23.404: Radio LimeSDR>       IQCORR_TXTSP (Phase corrector value (tan(Alpha/2)). Integer, 2's complement) = 0
16:39:23.405: Radio LimeSDR>       DCCORRI_TXTSP (DC corrector value, channel I. Integer, 2's complement) = 0
16:39:23.405: Radio LimeSDR>       DCCORRQ_TXTSP (DC corrector value, channel Q. Integer, 2's complement) = 0
16:39:23.405: Radio LimeSDR> -
16:39:23.405: Radio LimeSDR> TX Calibration
16:39:23.405: Radio LimeSDR>   Function .....: LMS_Calibrate()
16:39:23.405: Radio LimeSDR>   Parameters:
16:39:23.405: Radio LimeSDR>     Transmit ...: true
16:39:23.405: Radio LimeSDR>     Channel ....: 0
16:39:23.406: Radio LimeSDR>     Bandwidth ..: 3072000
16:39:23.406: Radio LimeSDR>     Flags ......: 0
16:39:23.406: Radio LimeAPI> ### API Dbg Lvl 4 ### MCU algorithm time: 0 ms
16:39:23.406: Radio LimeAPI> ### API Dbg Lvl 4 ### MCU algorithm time: 0 ms
16:39:23.406: Radio LimeAPI> ### API Dbg Lvl 4 ### MCU algorithm time: 0 ms
16:39:23.500: Radio LimeAPI> ### API Dbg Lvl 4 ### MCU algorithm time: 172 ms
16:39:23.503: Radio LimeAPI> ### API Dbg Lvl 3 ### Tx calibration finished
16:39:23.503: Radio LimeSDR>   Status .......: 0, OK
16:39:23.503: Radio LimeSDR> -
16:39:23.503: Radio LimeSDR> Read parameters
16:39:23.503: Radio LimeSDR> Param DC_BYP_TXTSP (DC corrector bypass) = 1
16:39:23.503: Radio LimeSDR>       GC_BYP_TXTSP (Gain corrector bypass) = 0
16:39:23.503: Radio LimeSDR>       PH_BYP_TXTSP (Phase corrector bypass) = 0
16:39:23.504: Radio LimeSDR>       GCORRI_TXTSP (corrector value, channel I Unsigned integer) = 2047
16:39:23.504: Radio LimeSDR>       GCORRQ_TXTSP (corrector value, channel Q Unsigned integer) = 2035
16:39:23.504: Radio LimeSDR>       DC_TXAI () = 1277
16:39:23.504: Radio LimeSDR>       DC_TXAQ () = 37
16:39:23.504: Radio LimeSDR>       IQCORR_TXTSP (Phase corrector value (tan(Alpha/2)). Integer, 2's complement) = 4091
16:39:23.504: Radio LimeSDR>       DCCORRI_TXTSP (DC corrector value, channel I. Integer, 2's complement) = 0
16:39:23.504: Radio LimeSDR>       DCCORRQ_TXTSP (DC corrector value, channel Q. Integer, 2's complement) = 0
16:39:23.505: Radio LimeSDR> -

That was present in early versions only…

@SimonG4ELI Can you take look how f4exb doing TX ?

Not really,

I don’t know how SDRAngel works having never seen it in action. I’m really looking for the solution to this problem.

I can confirm this annoying bug with small observation: above 30MHz without NCO Local oscillator leakage is close to transmitted signal and very strong (it is possible to use low frequency IF +/-FsampleRate/2 but carrier is still within PA bandwith). Bellow 30MHz carrier stays at 30MHz and TX signal can be easily filtered through LPF.
From what I saw on the net SDRAngel is mostly used bellow 30MHz without unwanted carrier within band.
Hope this will help to resolve this issue.

YT7PWR,

Many thanks for this observation. If it’s not possible to remove this leakage above 30MHz then I’ll stop the TX support as I’m interested in satellites. Fortunately the bladeRF2 is a very viable alternative, so all will not be lost.

Here one of my old version SDRAngel video with test on 430 MHz

I can’t see clearly center of the SDRconsole screen. Is it flat in absence of CW signal or you can see SDR Lime-USB carrier. What is sample rate in SDR angel and in Console?

Hi,

I see a very strong signal (carrier) at the NCO frequency when testing on 145 MHz and 440 MHz. I can’t get rid of it. My TX bandwidth is 3.072 kHz (16 x 192 kHz), I create IQ with a 192 bandwidth and upsample.

Even if my IQ stream is set to zero the carrier is there, unchanged. I think I saw it in a GNURadio screenshot on this forum.

No it is not flat.
Can not remember the sample rate… it is quite old video, summer 2017.

But you can see better in case you open in youtube, put the settings speed on slow
and on the full screen