osmo-trx-lms: low tx output power level
According to https://discourse.myriadrf.org/t/limesdr-s-maximum-transmitting-power-at-different-frequencies/1649 I would expect something like 3-5dBm maximum output power at 1.8 GHz.
Hoewever, when running at ARFCN 871, and even when manually patching
LMS_SetNormalizedGain(m_lms_dev, LMS_CH_TX, chan, 1.0); into the osmo-trx-lms source code, I'm not seeing more than -3.8 dB coming out of the TX1_1 port of the device. Where does that 6..8 dB difference come from?
Tested also with 900MHZ, seems the output power and rx gain using osmo-trx-lms is less compare using osmo-trx-uhd.
I dont have the spectum analyzer here, but testing many times and compare using phone to camp and call with osmo-trx-uhd has produce more power than osmo-trx-lms, so automatically using UHD increase range coverage.
Have the same issue with LimeSDR mini connected via USB3 to my host machine. LimeSDR mini producing only -12dBm RF power tuned and transmitting my GSM network on 935.0 MHz.
When I used LimeSuite to transmit CW on max possible power setting, I got 13.2 dBm on 935 MHz.
I tried also to play with some config parameters of osmo-bts, like
user-gain Inform BTS about additional, user-provided gain or attenuation at TRX output
power-ramp Power-Ramp settingsMaximum initial power
but these parameters doesn't change anything.
- Status changed from New to In Progress
- Assignee set to pespin
- % Done changed from 0 to 50
the output level is expected to be rather low (-5 dBm?). Lower levels were likely a result of using only 30% of the full 16bit sample scale (see #3341).
One remaining difficulty is to know which port (BAND1/BAND2) is ideal for a given transimt frequency. It seems that the LimeSDR-mini vs. LimeSDR-USB have inverted recommendations about which ports shall be used for which frequency. We've asked lime to provide a related table, so we can then in software at least print a warning if a user selects a sub-optimal combination.
- Assignee changed from pespin to roh
#7 Updated by roh about 2 months ago
- File limesdr_mini_1_phase_lms1810git_extclock40.gif limesdr_mini_1_phase_lms1810git_extclock40.gif added
- File limesdr_mini_1_env_lms1810git_extclock40.gif limesdr_mini_1_env_lms1810git_extclock40.gif added
- File limesdr_mini_871_env_lms1810git_extclock40.gif limesdr_mini_871_env_lms1810git_extclock40.gif added
- File limesdr_mini_871_phase_lms1810git_extclock40.gif limesdr_mini_871_phase_lms1810git_extclock40.gif added
i generated these (very good looking) pictures by using a limesdr mini V1.2 modded for external clock and feeding a 40MHz sinewave with 5.2dBm as reference, locked to the 10MHz generator of the 4406.
thus all frequency or phase errors should be rooted in the lime domain.
the only patch used so far was to make osmo-trx-lms use 40 instead of 10MHz.
usb connection to testsystem (apu2) is usb2 (better stability)
phy 0 instance 0 osmotrx ip local 127.0.0.1 osmotrx ip remote 127.0.0.1 bts 0 band 900 ipa unit-id 1801 0 oml remote-ip 127.0.0.1 gsmtap-sapi ccch gsmtap-sapi pdtch trx 0 phy 0 instance 0
trx bind-ip 127.0.0.1 remote-ip 127.0.0.1 base-port 5700 egprs disable tx-sps 4 rx-sps 4 clock-ref external rt-prio 18 chan 0 tx-path BAND1 rx-path LNAW
output of osmo-trx-lms: (only once, since the output is the same for 900/1800)
... Fri Jan 25 20:30:36 2019 DLMS <0003> LMSDevice.cpp:102 [tid=140567255682880] Selected TX path: Band 2 Fri Jan 25 20:30:36 2019 DLMS <0003> LMSDevice.cpp:102 [tid=140567255682880] Selected RX path: LNAW ... Fri Jan 25 20:30:40 2019 DDEV <0002> LMSDevice.cpp:386 [tid=140567255922432] chan 0: Setting TX gain to 36.5 dB Fri Jan 25 20:30:40 2019 DDEV <0002> LMSDevice.cpp:401 [tid=140567255922432] chan 0: Setting RX gain to 36.5 dB ... Fri Jan 25 20:30:41 2019 DDEV <0002> LMSDevice.cpp:386 [tid=140567255922432] chan 0: Setting TX gain to 73 dB ...
note: band2 is selected even if the config says band1 (setting is ignored)
current default settings from head generate about 11.5dBm output power on gsm900 and -3.5dBm on gsm1800
gsm1800 with those settings generates in a lot phase noise, which FAILs those measurements.
test with a limited output power, to get the 1800MHz band to work properly (apply https://gerrit.osmocom.org/#/c/osmo-trx/+/12008/) (12006/12007 are merged already)
#8 Updated by roh about 2 months ago
https://gerrit.osmocom.org/#/c/osmo-trx/+/12008/ does not help this further, since it only changes the default value set initially from 36.5 dB to 64.0 dB which is overwritten a few seconds later by a setTxGain call for maximum (which is still hardcoded in LMSDevice::maxTxGain).
the same result can be reached by using this osmo-bts-trx.cfg
phy 0 instance 0 osmotrx tx-attenuation 9
anyhow.. reducing the tx-gain does only make the rf envelope worse to the level that it hardly keeps passing. is this really a hardware gain, and not some sw-scaling?
phase noise is not changing visibly.
since it seems that limesdr mini and limesdr have different default gains? (not completely sure, just assuming) we would need some kind of hw-detection in this code if we want to config them differently.
#9 Updated by roh about 2 months ago
- File limesdr_usb_871_env_lms1810git_extclock10.gif limesdr_usb_871_env_lms1810git_extclock10.gif added
- File limesdr_usb_871_env_lms1810git_extclock10_tx-att_9.gif limesdr_usb_871_env_lms1810git_extclock10_tx-att_9.gif added
- File limesdr_usb_871_env_lms1810git_extclock40.gif limesdr_usb_871_env_lms1810git_extclock40.gif added
- File limesdr_usb_871_env_lms1810git_extclock40_tx-att_9.gif limesdr_usb_871_env_lms1810git_extclock40_tx-att_9.gif added
- File limesdr_usb_871_phase_lms1810git_extclock10.gif limesdr_usb_871_phase_lms1810git_extclock10.gif added
- File limesdr_usb_871_phase_lms1810git_extclock10_tx-att_9.gif limesdr_usb_871_phase_lms1810git_extclock10_tx-att_9.gif added
- File limesdr_usb_871_phase_lms1810git_extclock40.gif limesdr_usb_871_phase_lms1810git_extclock40.gif added
- File limesdr_usb_871_phase_lms1810git_extclock40_tx-att_9.gif limesdr_usb_871_phase_lms1810git_extclock40_tx-att_9.gif added
i have replicated some of these tests on a limesdr usb now. it seems it makes a minor difference if the device is fed with 10MHz or 40MHz from the same clockgenerator (E4433b external clocked by a E4406 via 10MHz bnc cable from reference out to reference in)
i get a bit worse results with 40MHz clock than with 10MHz, but since its the same generator and i can see no harmonics or similar distortion, so i am unsure where this phase noise is coming from.. PASS is not 'solid' but flappy.