On 2021-08-28 10:33 a.m., Anabel Almodovar wrote:
Hello,

After updating the complete system to the new version of UHD I am experiencing errors with the radio modules of the boards. I have two X310s equipped with two TwinRx each, so I get 8 reception channels. Previously it worked with Ubuntu 16.04 LTS, UHD 3.11 and I have updated the system to a version Ubuntu 20.04, UHD 4.1.0 and GNU Radio 3.9.

When I run GNU Radio with the uhd_fft example I get the following error:

*Generating: '/home/rack_2021/Escritorio/GNU_Radio_ok/uhd_fft.py'*

**

*Executing: /usr/bin/python3 -u /home/rack_2021/Escritorio/GNU_Radio_ok/uhd_fft.py*

**

*[INFO] [UHD] linux; GNU C++ version 9.3.0; Boost_107100; UHD_4.1.0.HEAD-0-gd21735d5*

*[INFO] [X300] X300 initialization sequence...*

*[INFO] [X300] Maximum frame size: 8000 bytes.*

*[INFO] [X300] Maximum frame size: 8000 bytes.*

*[INFO] [X300] Radio 1x clock: 200 MHz*

*[INFO] [MULTI_USRP]     1) catch time transition at pps edge*

*[INFO] [MULTI_USRP]     2) set times next pps (synchronously)*

*Exception in thread Thread-1:*

*Traceback (most recent call last):*

*  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner*

*Exception in thread Thread-2:*

*Traceback (most recent call last):*

*  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner*

*    self.run()*

*  File "/usr/lib/python3.8/threading.py", line 870, in run*

*self._target(*self._args, **self._kwargs)*

*  File "/home/rack_2021/Escritorio/GNU_Radio_ok/uhd_fft.py", line 427, in _current_freq_c_probe*

*        self.run()*

*  File "/usr/lib/python3.8/threading.py", line 870, in run*

*val = self.uhd_usrp_source_0.get_sensor("'lo_locked'")*

*RuntimeError: self._target(*self._args, **self._kwargs)*

*LookupError: Path not found in tree: /blocks/0/Radio#0/dboard/rx_frontends/0/sensors/'lo_locked'*

*  File "/home/rack_2021/Escritorio/GNU_Radio_ok/uhd_fft.py", line 442, in _chan0_lo_locked_probe*

*    val = self.uhd_usrp_source_0.get_sensor("'lo_locked'")*

*RuntimeError: LookupError: Path not found in tree: /blocks/0/Radio#0/dboard/rx_frontends/0/sensors/'lo_locked'*

*[WARNING] [0/Radio#0] Attempting to set tick rate to 0. Skipping.*

*[WARNING] [0/Radio#1] Attempting to set tick rate to 0. Skipping.*

*O[WARNING] [0/Radio#1] Cannot process RX-related async message to invalid chan 1*

*[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1*

*ODgr::log :ERROR: usrp_source0 - In the last 10580 ms, 81 overflows occurred.*

*DOO[WARNING] [0/Radio#1] Cannot process RX-related async message to invalid chan 1*

*[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1*

*Dgr::log :ERROR: usrp_source0 - In the last 6071 ms, 3 overflows occurred.*

*Dgr::log :ERROR: usrp_source0 - In the last 3055 ms, 2 overflows occurred.*

*Traceback (most recent call last):*

*  File "/home/rack_2021/Escritorio/GNU_Radio_ok/uhd_fft.py", line 130, in <lambda>*

*    lambda: self.set_freq_c(eng_notation.str_to_num(str(self._freq_c_line_edit.text()))))*

*  File "/home/rack_2021/Escritorio/GNU_Radio_ok/uhd_fft.py", line 553, in set_freq_c*

*self.uhd_usrp_source_0.set_center_freq(float(self.freq_c), 4)*

*RuntimeError: LookupError: KeyError: Invalid RX channel: 304*

*OO[WARNING] [0/Radio#1] Cannot process RX-related async message to invalid chan 1*

*[WARNING] [0/Radio#0] Cannot process RX-related async message to invalid chan 1*

*gr::log :ERROR: usrp_source0 - In the last 9181 ms, 1 overflows occurred.*

*gr::log :WARN: usrp_source0 - USRP Source Block caught rx error: ERROR_CODE_ALIGNMENT (Multi-channel alignment failed)*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*gr::log :WARN: usrp_source0 - USRP Source Block caught rx error: ERROR_CODE_ALIGNMENT (Multi-channel alignment failed)*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*gr::log :WARN: usrp_source0 - USRP Source Block caught rx error: ERROR_CODE_ALIGNMENT (Multi-channel alignment failed)*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*gr::log :WARN: usrp_source0 - USRP Source Block caught rx error: ERROR_CODE_ALIGNMENT (Multi-channel alignment failed)*

*gr::log :WARN: usrp_source0 - USRP Source Block caught rx error: ERROR_CODE_ALIGNMENT (Multi-channel alignment failed)*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*gr::log :WARN: usrp_source0 - USRP Source Block caught rx error:*
*ERROR_CODE_ALIGNMENT (Multi-channel alignment failed)*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

*[ERROR] [STREAMER] The rx streamer failed to time-align packets.*

When executing the codes that I had for the old version with C++ I get a similar error for high sample rates. Also, with high bandwidths and sample rates, such as 25MHz, I get overflow regardless of the acquisition time. If I compare the messages that I got in the old version of UHD with what I currently get, I can see that before each radio module worked at 100MHz, while now they work at 200MHz.

Before:

*[WARNING] [X300 RADIO] Requesting invalid sampling rate from device: 200 MHz. Actual rate is: 100 MHz.*

After:

*[INFO] [X300] Radio 1x clock: 200 MHz*


 I don't know if this could be a possible cause of the problem and if that is the case, I don't know how I can solve the problem since I tried to change the master clock to a lower one and it gave me an error when trying to change it.

With low sample rates like 2MHz I can perform the acquisition without getting errors, although the number of samples received by the command "rx_stream-> recv (p, max_samps_per_buff, md, timeout)" is not constant in each iteration.

Any suggestions? Thanks in advance.

The fact that it isn't "seeing" the lo_locked sensor is suspicious. Did you update the FPGA firmware on the X310 when you upgraded to UHD 4.1?

Also, at lower sample rates, you'd fully expect that the recv() call will return different numbers of samples.

The TwinRX needs to run with a 100MHz master-clock rate, as I recall.  So you have to let UHD configure the master clock to what's appropriate for TwinRX.

Can you share with us the output of uhd_usrp_probe for your X310s?


_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to