Getting up and running with LimeSDR XTRX

Hello.

I am trying to get LimeSDR XTRX working using LimeSuiteNG.
However, although it does recognize the XTRX, it fails the OEM test.
Is this the correct behavior?

$ git clone https://github.com/myriadrf/LimeSuiteNG
$ cd LimeSuiteNG
$ sudo ./install_dependencies.sh
# prevent build errors
$ rm -fr src/examples/legacy
$ vi src/examples/CMakeLists.txt
# Comment out the last line
#add_subdirectory(legacy)
$ cmake -B build && cd build
$ make
$ sudo make install
$ sudo ldconfig
$ reboot
$ cd LimeSuiteNG/build/bin
$ ./limeDevice -f
Found 1 device(s) :
0: LimeSDR XTRX, media=PCIe, addr=/dev/limepcie0, serial=0000000000000000
        Expansion name          : UNSUPPORTED
        Firmware version        : 1
        Gateware version        : 1
        Gateware revision       : 8
        Gateware target board   : LimeSDR XTRX
        Hardware version        : 0
        Protocol version        : 1
        Serial number           : 0
        SPI slave devices       :
                                  FPGA
                                  LMS7002M
        Memory devices          :
                                  EEPROM
                                  FPGA/FLASH
        GPS Lock:
                GPS - Undefined
                Glonass - Undefined
                Galileo - Undefined
                Beidou - Undefined
$ ./limeOEM --test
Board serial number: 0 (0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 )
=== LimeSDR-XTRX OEM Test ===
  === PCIe Reference clock ===
    results: 13253; 14815; 16377
  === PCIe Reference clock - PASSED ===
  === VCTCXO ===
    Count : 2606008 (min); 2606038 (max)
  === VCTCXO - PASSED ===
  === GNSS ===
  === GNSS - PASSED ===
  === LMS7002M ===
    Registers test
    Registers test PASSED
    External Reset line test
      Reg 0x20: Write value 0xFFFD, Read value 0xFFFD
      Reg 0x20: value after reset 0x0FFFF
  === LMS7002M - PASSED ===
  === RF ===
    ->Configure LMS
    ->Init Done
    === TX_2->LNA_L ChA ===
    === TX_2->LNA_L ChA - FAILED (RF FAILED, expected(-8.00 dbFS @ 5.000MHz), got(-46.59 dbFS @30.720MHz)) ===
    === TX_2->LNA_L ChB ===
    === TX_2->LNA_L ChB - FAILED (RF FAILED, expected(-8.00 dbFS @ 5.000MHz), got(-47.99 dbFS @30.720MHz)) ===
    === TX_2->LNA_W ChA ===
    === TX_2->LNA_W ChA - FAILED (RF FAILED, expected(-8.00 dbFS @ 5.000MHz), got(-49.39 dbFS @5.003MHz)) ===
    === TX_2->LNA_W ChB ===
    === TX_2->LNA_W ChB - FAILED (RF FAILED, expected(-8.00 dbFS @ 5.000MHz), got(-48.06 dbFS @30.720MHz)) ===
    === TX_1->LNA_H ChA ===
    === TX_1->LNA_H ChA - FAILED (RF FAILED, expected(-8.00 dbFS @ 5.000MHz), got(-44.88 dbFS @5.003MHz)) ===
    === TX_1->LNA_H ChB ===
    === TX_1->LNA_H ChB - FAILED (RF FAILED, expected(-15.00 dbFS @ 5.000MHz), got(-41.90 dbFS @5.003MHz)) ===
  === RF - FAILED ===
=== LimeSDR-XTRX OEM Test - FAILED ===
OEM TEST FAILED

Hi,
OEM test requires XTRX to have it’s Tx Rx ports connected using external loopback with 20dB attenuator. Without such setup, the test’s RF part will not pass, so your current results are expected.

1 Like

Thank you for your support!

I’ll try it later.

By the way, is it a specification that the LimeSDR XTRX is only recognized the first time it is started up after being plugged into the power supply?
Once I shut it down or restarted it, the LimeSDR XTRX was not recognized by the OS.
To get the LimeSDR XTRX to be recognized by the OS again, I have to unplug the computer and then power it back on.

1 Like

You should check if your board has this component XTRX not found - #11 by ricardas
it’s responsible for device enumeration stability.

2 Likes

Thank you for your quick reply.

It seems like I was suffering from exactly the issue you mentioned.
By shorting R114, the problem was completely resolved.

Before soldering:

After soldering:

I discovered this post and updated the gateware.

However, from looking at other posts, the serial number on my LimeSDR XTRX appears to be a very large number. (18446744073709551615 = 0xffffffffffffffff)
It seems like there is something wrong with the shipment, but for now I will continue working on my goal of getting GNU Radio and srsLTE/Open5GS working…

$ ./limeDevice -f
Found 1 device(s) :
0: LimeSDR XTRX, media=PCIe, addr=/dev/limepcie0, serial=ffffffffffffffff
        Expansion name          : UNSUPPORTED                                                                                                   Firmware version        : 4
        Gateware version        : 1
        Gateware revision       : 19
        Gateware target board   : LimeSDR XTRX
        Hardware version        : 2
        Protocol version        : 1
        Serial number           : 18446744073709551615
        SPI slave devices       :
                                  FPGA
                                  LMS7002M
        Memory devices          :
                                  EEPROM
                                  FPGA/FLASH
                                  FPGA/gold-image
                                  FPGA/user-image
        GPS Lock:
                GPS - Undefined
                Glonass - Undefined
                Galileo - Undefined
                Beidou - Undefined

I’ve tried some basic operations with GNU Radio, but it seems like there’s something wrong…
To be honest, I don’t know what to do.

The very first XTRX gateware did not have ability to permanently store serial number, it was stored in the same FLASH memory along side the gateware. So if gateware was reflashed, depending on the programming method it might have cleared the serial number.
Current gateware has a one time programmable memory area designated for the serial number, so that it woudn’t be lost after reprograming. In your case, the serial number is FFFF… because it’s not have been written in yet.

The sample rate is set to only 32k, there are limits how low it can be, if I remember correctly the minimal sampling rate could be ~250k, try setting it to 10MHz. Or try the example LimeSuiteNG/plugins/gr-limesdr/examples/FM_receiver.grc at develop · myriadrf/LimeSuiteNG · GitHub

I’ve confirmed that I can receive FM radio using the grc you linked to!
Thank you for your generous support so far.

However, the lack of a serial number is a problem when multiple LimeSDRs exist, so would it be possible for you to issue an appropriate serial number to my LimeSDR XTRX?

I believe the serial number scheme is date and a batch counter. @andrewback could possibly help with that, to choose date that wouldn’t clash with manufacturing dates.

I’ve just pushed a branch gr-limesuiteng that will replace the current gr-limesdr plugin. It allows to select XTRX boards there by their dev filenames like “/dev/limepcie0”, “/dev/limepcie1”, or by any text fragment that is in device handles shown by limeDevice cli.

1 Like

I’m afraid not, but suspect that @Zack would know.