Robert,
Perhaps try with the device args set to "time_source=sfp0" rather than just
using the function call that you are using.

BTW, I am also struggling a bit trying to get my WR Switch to work with my
N310, but for different reasons.  Mine is starting OK, but then I get a
warning "Board 0 may not be getting a PPS signal" and then later my program
crashes.  Still debugging though, so problem might just be on my end.
Rob

On Tue, Mar 16, 2021 at 6:02 AM Robert Clancy <[email protected]> wrote:

> Hi Robin,
>
>
> Thanks for thinking about this. I do set the time source- in the python
> script there is a line:
>
>
>  self.uhd_usrp_source_0.set_time_source("sfp0")
>
>
> Robert
>
>
>
> ------------------------------
> *From:* Robin Coxe <[email protected]>
> *Sent:* Monday, March 15, 2021 7:12:35 PM
> *To:* Robert Clancy
> *Cc:* [email protected]
> *Subject:* Re: [USRP-users] WhiteRabbit switch with an N321
>
> Hi Robert.  I think your issue may be that you need to set the time source
> in UHD to sfp0:
>
>
> https://kb.ettus.com/Using_Ethernet-Based_Synchronization_on_the_USRP%E2%84%A2_N3xx_Devices
> (Scroll down to the "System Configuration" section).
>
> -Robin
>
>
> On Mon, Mar 15, 2021 at 11:57 AM Robert Clancy <[email protected]> wrote:
>
>> I am trying to test a White Rabbit switch with an N321 radio but am
>> failing to be able to make a capture.
>>
>>
>> I have Gnuradio 3.8.0 installed and the UHD version is reported as
>> UHD_4.0.0.0-18-g83e878cf
>>
>>
>> This is the response from a probe:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *[INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501;
>> UHD_4.0.0.0-18-g83e878cf [INFO] [MPMD] Initializing 1 device(s) in parallel
>> with args:
>> mgmt_addr=192.168.10.2,type=n3xx,product=n320,serial=31B36CF,claimed=False,addr=192.168.10.2
>> [INFO] [MPM.main] Launching USRP/MPM, version: 4.0.0.0-g90ce6062 [INFO]
>> [MPM.main] Spawning RPC process... [INFO] [MPM.PeriphManager] Device serial
>> number: 31B36CF [INFO] [MPM.Rhodium-0] Enabling LO distribution board
>> [INFO] [MPM.Rhodium-0] Successfully loaded all peripherals! [INFO]
>> [MPM.Rhodium-1] Successfully loaded all peripherals! [INFO]
>> [MPM.PeriphManager] Initialized 2 daughterboard(s). [INFO]
>> [MPM.PeriphManager] No QSFP board detected: Assuming it is disabled in the
>> device tree overlay (e.g., HG, XG images). [INFO] [MPM.PeriphManager]
>> init() called with device args
>> `clock_source=internal,time_source=internal'. [INFO] [MPM.Rhodium-0] init()
>> called with args `clock_source=internal,time_source=internal' [INFO]
>> [MPM.Rhodium-1] init() called with args
>> `clock_source=internal,time_source=internal' [INFO]
>> [MPM.Rhodium-0.init.LMK04828] LMK initialized and locked! [INFO]
>> [MPM.Rhodium-1.init.LMK04828] LMK initialized and locked! [INFO]
>> [MPM.Rhodium-1.DAC37J82] DAC PLL Locked! [INFO] [MPM.Rhodium-1.AD9695] ADC
>> PLL Locked! [INFO] [MPM.Rhodium-1.init] JESD204B Link Initialization &
>> Training Complete [INFO] [MPM.Rhodium-0.DAC37J82] DAC PLL Locked! [INFO]
>> [MPM.Rhodium-0.AD9695] ADC PLL Locked! [INFO] [MPM.Rhodium-0.init] JESD204B
>> Link Initialization & Training Complete [INFO] [MPM.RPCServer] RPC server
>> ready! [INFO] [MPM.RPCServer] Spawning watchdog task... [INFO]
>> [MPM.PeriphManager] init() called with device args
>> `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal'.
>> [INFO] [MPM.Rhodium-0] init() called with args
>> `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal'
>> [INFO] [MPM.Rhodium-1] init() called with args
>> `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal'
>>   _____________________________________________________  / |       Device:
>> N300-Series Device |
>> _____________________________________________________ |    / |   |
>> Mboard: ni-n3xx-31B36CF |   |   dboard_0_pid: 338 |   |   dboard_0_serial:
>> 3192EC4 |   |   dboard_1_pid: 338 |   |   dboard_1_serial: 3192EB9 |   |
>> eeprom_version: 3 |   |   fs_version: 20200914000806 |   |
>> mender_artifact: v4.0.0.0_n3xx |   |   mpm_sw_version: 4.0.0.0-g90ce6062
>> |   |   pid: 16962 |   |   product: n320 |   |   rev: 7 |   |
>> rpc_connection: remote |   |   serial: 31B36CF |   |   type: n3xx |   |
>> MPM Version: 3.0 |   |   FPGA Version: 8.0 |   |   FPGA git hash:
>> be53058.clean |   |    |   |   Time sources:  internal, external, gpsdo,
>> sfp0 |   |   Clock sources: external, internal, gpsdo |   |   Sensors:
>> ref_locked, gps_locked, temp, fan, gps_gpgga, gps_sky, gps_time, gps_tpv
>> |     _____________________________________________________ |    / |
>> |       RFNoC blocks on this device: |   |    |   |   * 0/DDC#0 |   |   *
>> 0/DDC#1 |   |   * 0/DUC#0 |   |   * 0/DUC#1 |   |   * 0/Radio#0 |   |   *
>> 0/Radio#1 |   |   * 0/Replay#0 |
>> _____________________________________________________ |    / |   |
>> Static connections on this device: |   |    |   |   * 0/SEP#0:0==>0/DUC#0:0
>> |   |   * 0/DUC#0:0==>0/Radio#0:0 |   |   * 0/Radio#0:0==>0/DDC#0:0 |   |
>> * 0/DDC#0:0==>0/SEP#0:0 |   |   * 0/SEP#1:0==>0/DUC#1:0 |   |   *
>> 0/DUC#1:0==>0/Radio#1:0 |   |   * 0/Radio#1:0==>0/DDC#1:0 |   |   *
>> 0/DDC#1:0==>0/SEP#1:0 |   |   * 0/SEP#2:0==>0/Replay#0:0 |   |   *
>> 0/Replay#0:0==>0/SEP#2:0 |   |   * 0/SEP#3:0==>0/Replay#0:1 |   |   *
>> 0/Replay#0:1==>0/SEP#3:0 |
>> _____________________________________________________ |    / |   |       TX
>> Dboard: dboard |   |
>> _____________________________________________________ |   |    / |   |
>> |       TX Frontend: 0 |   |   |   Name: Rhodium |   |   |   Antennas:
>> TX/RX, RX2, CAL, TERM |   |   |   Freq range: 1.000 to 6000.000 MHz |   |
>> |   Gain range all: 0.0 to 60.0 step 1.0 dB |   |   |   Bandwidth range:
>> 250000000.0 to 250000000.0 step 0.0 Hz |   |   |   Connection Type: |   |
>> |   Uses LO offset: No |
>> _____________________________________________________ |    / |   |       RX
>> Dboard: dboard |   |
>> _____________________________________________________ |   |    / |   |
>> |       RX Frontend: 0 |   |   |   Name: Rhodium |   |   |   Antennas:
>> TX/RX, CAL, TERM |   |   |   Freq range: 1.000 to 6000.000 MHz |   |   |
>> Gain range all: 0.0 to 60.0 step 1.0 dB |   |   |   Bandwidth range:
>> 250000000.0 to 250000000.0 step 0.0 Hz |   |   |   Connection Type: |   |
>> |   Uses LO offset: No |
>> _____________________________________________________ |    / |   |       TX
>> Dboard: dboard |   |
>> _____________________________________________________ |   |    / |   |
>> |       TX Frontend: 0 |   |   |   Name: Rhodium |   |   |   Antennas:
>> TX/RX, RX2, CAL, TERM |   |   |   Freq range: 1.000 to 6000.000 MHz |   |
>> |   Gain range all: 0.0 to 60.0 step 1.0 dB |   |   |   Bandwidth range:
>> 250000000.0 to 250000000.0 step 0.0 Hz |   |   |   Connection Type: |   |
>> |   Uses LO offset: No |
>> _____________________________________________________ |    / |   |       RX
>> Dboard: dboard |   |
>> _____________________________________________________ |   |    / |   |
>> |       RX Frontend: 0 |   |   |   Name: Rhodium |   |   |   Antennas:
>> TX/RX, CAL, TERM |   |   |   Freq range: 1.000 to 6000.000 MHz |   |   |
>> Gain range all: 0.0 to 60.0 step 1.0 dB |   |   |   Bandwidth range:
>> 250000000.0 to 250000000.0 step 0.0 Hz |   |   |   Connection Type: |   |
>> |   Uses LO offset: No *
>>
>>
>> I am using this firmware:
>>
>> *uhd_image_loader --args type=n3xx,addr=192.168.10.2
>> --fpga-path="/opt/gnuradio/v3.8.0.0/share/uhd/images/usrp_n320_fpga_WX.bit"*
>>
>>
>> [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501;
>> UHD_4.0.0.0-18-g83e878cf
>> [INFO] [MPMD] Initializing 1 device(s) in parallel with args:
>> mgmt_addr=192.168.10.2,type=n3xx,product=n320,serial=31B36CF,claimed=False,skip_init=1
>> [INFO] [MPMD] Claimed device without full initialization.
>> [INFO] [MPMD IMAGE LOADER] Starting update. This may take a while.
>> [INFO] [MPM.PeriphManager] Updating component `fpga'
>> [INFO] [MPM.PeriphManager] Updating component `dts'
>> [INFO] [MPM.RPCServer] Resetting peripheral manager.
>> [INFO] [MPM.PeriphManager] Device serial number: 31B36CF
>> [INFO] [MPM.Rhodium-0] Enabling LO distribution board
>> [INFO] [MPM.Rhodium-0] Successfully loaded all peripherals!
>> [INFO] [MPM.Rhodium-1] Successfully loaded all peripherals!
>> [INFO] [MPM.PeriphManager] Initialized 2 daughterboard(s).
>> [INFO] [MPM.PeriphManager] No QSFP board detected: Assuming it is
>> disabled in the device tree overlay (e.g., HG, XG images).
>> [INFO] [MPM.PeriphManager] init() called with device args
>> `clock_source=internal,time_source=internal'.
>> [INFO] [MPM.Rhodium-0] init() called with args
>> `clock_source=internal,time_source=internal'
>> [INFO] [MPM.Rhodium-1] init() called with args
>> `clock_source=internal,time_source=internal'
>> [INFO] [MPM.Rhodium-0.init.LMK04828] LMK initialized and locked!
>> [INFO] [MPM.Rhodium-1.init.LMK04828] LMK initialized and locked!
>> [INFO] [MPM.Rhodium-1.DAC37J82] DAC PLL Locked!
>> [INFO] [MPM.Rhodium-1.AD9695] ADC PLL Locked!
>> [INFO] [MPM.Rhodium-1.init] JESD204B Link Initialization & Training
>> Complete
>> [INFO] [MPM.Rhodium-0.DAC37J82] DAC PLL Locked!
>> [INFO] [MPMD IMAGE LOADER] Update component function succeeded.
>> [INFO] [MPM.Rhodium-0.AD9695] ADC PLL Locked!
>> [INFO] [MPM.Rhodium-0.init] JESD204B Link Initialization & Training
>> Complete
>>
>>
>>
>>
>>
>> What I think are the relevant parts from a simple script to make a
>> capture:
>>         ##################################################
>>         # Variables
>>         ##################################################
>>         self.samp_rate = samp_rate = 12288000
>>
>>         ##################################################
>>         # Blocks
>>         ##################################################
>>         self.uhd_usrp_source_0 = uhd.usrp_source(
>>             ",".join(("", "")),
>>             uhd.stream_args(
>>                 cpu_format="fc32",
>>                 args='addr=192.168.10.2',
>>                 channels=list(range(0,1)),
>>             ),
>>         )
>>         ## WhiteRabbit addition
>>         #self.uhd_usrp_source_0.set_clock_rate(200000000)
>>         self.uhd_usrp_source_0.set_antenna("TX/RX")
>>         print("Master clock rate set to:
>> ",self.uhd_usrp_source_0.get_clock_rate())
>>         print("Times sources are
>> ",self.uhd_usrp_source_0.get_time_sources(0))
>>         print("Sample rates is
>> ",self.uhd_usrp_source_0.get_samp_rates().stop())
>>         print("Antenna is ",self.uhd_usrp_source_0.get_antenna())
>>         self.uhd_usrp_source_0.set_clock_source("internal")
>>         self.uhd_usrp_source_0.set_time_source("sfp0")
>>         print("Time source is ",self.uhd_usrp_source_0.get_time_source(0))
>>         ###
>>
>>         self.uhd_usrp_source_0.set_center_freq(75000100, 0)
>>         print("Tuned to  ",self.uhd_usrp_source_0.get_center_freq(0))
>>         self.uhd_usrp_source_0.set_gain(0, 0)
>>         self.uhd_usrp_source_0.set_antenna('TX/RX', 0)
>>         self.uhd_usrp_source_0.set_samp_rate(samp_rate)
>>
>> And then the error:
>>
>> [INFO] [UHD] linux; GNU C++ version 7.5.0; Boost_106501;
>> UHD_4.0.0.0-18-g83e878cf
>> [INFO] [MPMD] Initializing 1 device(s) in parallel with args:
>> mgmt_addr=192.168.10.2,type=n3xx,product=n320,serial=31B36CF,claimed=False,addr=192.168.10.2
>> [INFO] [MPM.PeriphManager] init() called with device args
>> `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal'.
>> [INFO] [MPM.Rhodium-0] init() called with args
>> `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal'
>> [INFO] [MPM.Rhodium-1] init() called with args
>> `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=internal'
>> Master clock rate set to:  245760000.0
>> Times sources are  ('internal', 'external', 'gpsdo', 'sfp0')
>> Sample rates is  245760000.0
>> Antenna is  TX/RX
>> [INFO] [MPM.Rhodium-0] Re-initializing daughter board. This may take some
>> time.
>> [INFO] [MPM.Rhodium-0] init() called with args
>> `mgmt_addr=192.168.10.2,product=n320,clock_source=internal,time_source=sfp0,skip_rfic=None,master_clock_rate=245760000.0,ref_clk_freq=25000000.0'
>> [ERROR] [RPC] TDC Failed to reset.
>> Traceback (most recent call last):
>>   File "./TimeDomainDisplay.py", line 212, in <module>
>>     main()
>>   File "./TimeDomainDisplay.py", line 188, in main
>>     tb = top_block_cls()
>>   File "./TimeDomainDisplay.py", line 95, in __init__
>>     self.uhd_usrp_source_0.set_time_source("sfp0")
>>   File
>> "/opt/gnuradio/v3.8.0.0/lib/python3/dist-packages/gnuradio/uhd/uhd_swig.py",
>> line 4577, in set_time_source
>>     return _uhd_swig.usrp_source_sptr_set_time_source(self, source,
>> mboard)
>> RuntimeError: RuntimeError: Error during RPC call to `set_time_source'.
>> Error message: TDC Failed to reset.
>> [INFO] [MPM.Rhodium-0.init.LMK04828] LMK initialized and locked!
>> [ERROR] [MPM.Sync-0] TDC Failed to Reset! Check your clocks! Status: 0x0
>> [ERROR] [MPM.RPCServer] Uncaught exception in method set_time_source :TDC
>> Failed to reset.
>>  Traceback (most recent call last):
>>   File "/usr/lib/python3.7/site-packages/usrp_mpm/rpc_server.py", line
>> 186, in new_claimed_function
>>     return function(*args)
>>   File
>> "/usr/lib/python3.7/site-packages/usrp_mpm/periph_manager/n3xx.py", line
>> 596, in set_time_source
>>     self.set_sync_source(source)
>>   File
>> "/usr/lib/python3.7/site-packages/usrp_mpm/periph_manager/n3xx.py", line
>> 696, in set_sync_source
>>     skip_rfic=args.get('skip_rfic', None)
>>   File
>> "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rhodium.py", line
>> 478, in update_ref_clock_freq
>>     self._reinit(self.master_clock_rate)
>>   File
>> "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rhodium.py", line
>> 438, in _reinit
>>     self.init(args)
>>   File
>> "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rhodium.py", line
>> 341, in init
>>     init_result = RhodiumInitManager(self, self._spi_ifaces).init(args)
>>   File
>> "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rh_init.py", line
>> 344, in init
>>     args)
>>   File
>> "/usr/lib/python3.7/site-packages/usrp_mpm/dboard_manager/rh_init.py", line
>> 100, in _sync_db_clock
>>     target_offset=trace_delay_offset))
>>   File "/usr/lib/python3.7/site-packages/usrp_mpm/cores/tdc_sync.py",
>> line 201, in run
>>     self.configure(force=True)
>>   File "/usr/lib/python3.7/site-packages/usrp_mpm/cores/tdc_sync.py",
>> line 254, in configure
>>     raise RuntimeError("TDC Failed to reset.")
>> RuntimeError: TDC Failed to reset.
>>
>>
>> Can anyone shed any light on what is going on?
>>
>> Has anyone actually got an Ettus radio working with the WX firmware and a
>> White Rabbit switch?
>>
>> FWIW, the WR switch appears happy. I've walked its SNMP tree and all
>> seems well. It is operating in Grandmaster mode with the one N321 hanging
>> off its first port.
>>
>> Robert
>>
>> _______________________________________________
>> USRP-users mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>>
> _______________________________________________
> USRP-users mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>
_______________________________________________
USRP-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to