(1) make sure you're using UHD 4.9. 4.9.0.[01] release is fine; the UHD-4.9
branch has some desirable fixes that will be part of the UHD 4.10 release,
so if you're building from source then go with this branch.

(2) Try first tuning ±1 GHz off of the desired RF Fc and then to the actual
desired RF Fc. Use timed commands for both to be safe; technically I think
the first doesn't have to be.

While the phase alignment (initial phase offset) will still be random, the
phase relationship between any 2 channels should now be repeatable. This
applies to 1,2, .... N X440 USRPs [though if using an OctoClock to
distribute GPSDO signals the channel to channel (C2C) phase coherence and
relationship will be tighter than using multiple OctoClock tiers. There
are, of course, other GPSDO signal distribution systems that have more than
8x replication.]

For the initial offset tune you should see something about "resetting
gearbox"; subsequent (re)tunes may or not show this info.

We will update the language that you note, which applies to UHD 4.8, with
the UHD 4.10 release as, when done correctly, one can attain channel to
channel (C2C) phase coherence and relationship between (re)tunes, UHD
instantiations, and device reboots.

Please try this and let us know how it goes.
---
Michael L Dickens, PhD
Emerson/NI/Ettus SDR RF Principal Application Engineer
Teams: +1-512-683-5305
Cell: +1-512-585-1391
[email protected] <[email protected]>
[email protected]


On Tue, Mar 3, 2026 at 3:55 PM Chris Rogers <[email protected]> wrote:

> The X440 has a clock board (
> https://files.ettus.com/manual/page_usrp_x4xx.html#x4xx_too_clocking)
> which uses the LMK04832 PLL (
> https://www.ti.com/lit/ds/symlink/lmk04832.pdf?ts=1772540151834) to
> actually generate the RFSoC sample clock from the 10 MHz input. This PLL
> output will have a phase ambiguity WRT the 10 MHz input signal because of
> PLL physics, and this is why you see a random relative phase run to run. It
> looks like this chip supports a synchronization input to align output clock
> edges and the X440 technically has a sync input port on the front, but I
> dont know if these inputs are actually connected to each other. It could be
> worth looking into what the X440 Sync In does... last I checked, it didn't
> actually do anything but that was at least a year ago
>
> On Tue, Mar 3, 2026 at 2:37 PM Eugene Grayver <[email protected]>
> wrote:
>
>> I have two X440 w/ X4_200 FPGA image.  I need to get consistent phase
>> between channels on USRP1 and USRP2 across multiple runs.  I must be doing
>> something wrong because I observe consistent phase between channels on any
>> ONE USRP, but not across two.  The phase appears to be random between the
>> two on each run.
>>
>> Here's my setup:
>>
>>    - Common 10 MHz and 1 PPS
>>    -
>>    
>> Addr0=192.168.10.2,second_addr0=192.168.11.2,mgmt_addr0=192.168.1.10,addr1=192.168.15.2,second_addr1=192.168.16.2,mgmt_addr1=192.168.1.20,time_source=external,clock_source=external
>>    - I modified the 'stock' rx_samples_to_file as follows:
>>    - Usrp->set_time_next_pps(uhd::time_spec_t(0.0));
>>       std::this_thread::sleep_for(std::chrono::milliseconds(1000));
>>       - usrp->set_command_time(uhd::time_spec_t(COMMAND_START_S, 0));
>>       // Set the rate, freq, gain, etc
>>       std::this_thread::sleep_for(std::chrono::milliseconds(COMMAND_START_S
>>       * 1000));
>>       usrp->clear_command_time();
>>       - Each streamer is created in a separate thread
>>       -     stream_cmd.stream_now = false;
>>           // Time was reset to zero before thread was created
>>           stream_cmd.time_spec  = uhd::time_spec_t(STREAM_START_S, 0);
>>           rx_stream->issue_stream_cmd(stream_cmd);
>>
>>
>> What am I missing?  I assume commands apply to both USRPs since I create
>> a multi_usrp.  Do I need to explicitly specify the motherboard for some of
>> the commands?
>>
>>
>> Eugene Grayver, Ph.D.
>> Principal Engineer
>> 310-336-1274
>> _______________________________________________
>> 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