usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Phase sync multiple x310s

VS
Vladica Sark
Fri, May 19, 2017 11:50 AM

Hi,

I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and 1
PPS from octoclock to the both of them. With tx_waveforms I transmit a
CONST and record the resulting waveforms on a scope. The carrier is 2.45
GHz.

The phase difference between the four available channels jumps for +-45
degrees randomly. Without these jumps, the phase difference would have
probably been constant. This is the same for all of the channels.

Is there a chance to phase sync the two x310s and the four transceivers?

BR,
Vladica

Hi, I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and 1 PPS from octoclock to the both of them. With tx_waveforms I transmit a CONST and record the resulting waveforms on a scope. The carrier is 2.45 GHz. The phase difference between the four available channels jumps for +-45 degrees randomly. Without these jumps, the phase difference would have probably been constant. This is the same for all of the channels. Is there a chance to phase sync the two x310s and the four transceivers? BR, Vladica
JA
Julian Arnold
Fri, May 19, 2017 12:05 PM

Hey Vladica,

I recently ran the same experiment.
Once the LOs are properly locked to the reference, the time is synced to
the reference and you have tune the boards using timed commands at the
same time,
you should be left with a pretty stable output across all 4 TX channels.
There will, of course, be a fixed phase offset between the different
channels.
This offset will also depend on temperature.

Let me know if you have questions regarding the software implementation.

Cheers,

On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote:

Hi,

I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and
1 PPS from octoclock to the both of them. With tx_waveforms I transmit
a CONST and record the resulting waveforms on a scope. The carrier is
2.45 GHz.

The phase difference between the four available channels jumps for
+-45 degrees randomly. Without these jumps, the phase difference would
have probably been constant. This is the same for all of the channels.

Is there a chance to phase sync the two x310s and the four transceivers?

BR,
Vladica


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

--
Julian Arnold, M.Sc.

Institute for Networked Systems
RWTH Aachen University

Kackertstrasse 9
52072 Aachen
Germany

Hey Vladica, I recently ran the same experiment. Once the LOs are properly locked to the reference, the time is synced to the reference and you have tune the boards using timed commands at the same time, you should be left with a pretty stable output across all 4 TX channels. There will, of course, be a fixed phase offset between the different channels. This offset will also depend on temperature. Let me know if you have questions regarding the software implementation. Cheers, On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote: > Hi, > > I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and > 1 PPS from octoclock to the both of them. With tx_waveforms I transmit > a CONST and record the resulting waveforms on a scope. The carrier is > 2.45 GHz. > > The phase difference between the four available channels jumps for > +-45 degrees randomly. Without these jumps, the phase difference would > have probably been constant. This is the same for all of the channels. > > Is there a chance to phase sync the two x310s and the four transceivers? > > BR, > Vladica > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com -- Julian Arnold, M.Sc. Institute for Networked Systems RWTH Aachen University Kackertstrasse 9 52072 Aachen Germany
VS
Vladica Sark
Fri, May 19, 2017 1:09 PM

Hi Julian,

I think that I need to add something like

//we will tune the frontends in 100ms from now
uhd::time_spec_t cmd_time = usrp->get_time_now() + uhd::time_spec_t(0.1);
//sets command time on all devices
//the next commands are all timed
usrp->set_command_time(cmd_time);
//tune channel 0 and channel 1
usrp->set_rx_freq(1.03e9, 0); // Channel 0
usrp->set_rx_freq(1.03e9, 1); // Channel 1
//end timed commands
usrp->clear_command_time();

in the tx_waveforms but for the transmitter.
I would try this on Monday.

Anyway, in my case also the phase looks quite stable on the scope. The
45 degree jumps cannot be easily noticed. I acquire the data and with
post processing I come to these results.

BR,
Vladica

On 19.05.2017 14:05, Julian Arnold wrote:

Hey Vladica,

I recently ran the same experiment.
Once the LOs are properly locked to the reference, the time is synced to
the reference and you have tune the boards using timed commands at the
same time,
you should be left with a pretty stable output across all 4 TX channels.
There will, of course, be a fixed phase offset between the different
channels.
This offset will also depend on temperature.

Let me know if you have questions regarding the software implementation.

Cheers,

On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote:

Hi,

I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and
1 PPS from octoclock to the both of them. With tx_waveforms I transmit
a CONST and record the resulting waveforms on a scope. The carrier is
2.45 GHz.

The phase difference between the four available channels jumps for
+-45 degrees randomly. Without these jumps, the phase difference would
have probably been constant. This is the same for all of the channels.

Is there a chance to phase sync the two x310s and the four transceivers?

BR,
Vladica


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Hi Julian, I think that I need to add something like //we will tune the frontends in 100ms from now uhd::time_spec_t cmd_time = usrp->get_time_now() + uhd::time_spec_t(0.1); //sets command time on all devices //the next commands are all timed usrp->set_command_time(cmd_time); //tune channel 0 and channel 1 usrp->set_rx_freq(1.03e9, 0); // Channel 0 usrp->set_rx_freq(1.03e9, 1); // Channel 1 //end timed commands usrp->clear_command_time(); in the tx_waveforms but for the transmitter. I would try this on Monday. Anyway, in my case also the phase looks quite stable on the scope. The 45 degree jumps cannot be easily noticed. I acquire the data and with post processing I come to these results. BR, Vladica On 19.05.2017 14:05, Julian Arnold wrote: > Hey Vladica, > > I recently ran the same experiment. > Once the LOs are properly locked to the reference, the time is synced to > the reference and you have tune the boards using timed commands at the > same time, > you should be left with a pretty stable output across all 4 TX channels. > There will, of course, be a fixed phase offset between the different > channels. > This offset will also depend on temperature. > > Let me know if you have questions regarding the software implementation. > > Cheers, > > On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote: >> Hi, >> >> I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and >> 1 PPS from octoclock to the both of them. With tx_waveforms I transmit >> a CONST and record the resulting waveforms on a scope. The carrier is >> 2.45 GHz. >> >> The phase difference between the four available channels jumps for >> +-45 degrees randomly. Without these jumps, the phase difference would >> have probably been constant. This is the same for all of the channels. >> >> Is there a chance to phase sync the two x310s and the four transceivers? >> >> BR, >> Vladica >> >> _______________________________________________ >> USRP-users mailing list >> USRP-users@lists.ettus.com >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >
JA
Julian Arnold
Fri, May 19, 2017 1:35 PM

Hey Vladica,

I think that I need to add something like

I haven't looked at tx_waveforms but here is a snipped from my code:

###############################################

this->usrp->set_clock_source("external"); //applies to all mboards
this->usrp->set_time_source("external"); //applies to all mboards

double tx_freq = 3.700010e9;
double rx_freq = 3.700000e9;

//Set time at next PPS to zero
this->usrp->set_time_unknown_pps(uhd::time_spec_t(0.0));
boost::this_thread::sleep(boost::posix_time::seconds(3));

uhd::time_spec_t cmd_time = usrp->get_time_now() +
    uhd::time_spec_t(0.3);

//sets command time on all devices
//the next commands are all timed
this->usrp->set_command_time(cmd_time);
this->usrp->set_tx_freq(tx_freq, 0);
this->usrp->set_tx_freq(tx_freq, 1);
this->usrp->set_tx_freq(tx_freq, 2);
uhd::tune_result_t freq_is = this->usrp->set_tx_freq(tx_freq, 3);

boost::this_thread::sleep(boost::posix_time::seconds(3));
//end timed commands
this->usrp->clear_command_time();

###############################################

What scope are you using? I was observing phase stability across the 4
channel on an DSO90804A and found it to be basically rock solid and
clearly visible
(As long as the temperature was constant. This meant to wait for
something like 10-30min after startup for the devices to reach final
operating temperature).

Also, which version of UHD are you running?

Cheers,

On 05/19/2017 03:09 PM, Vladica Sark via USRP-users wrote:

Hi Julian,

I think that I need to add something like

//we will tune the frontends in 100ms from now
uhd::time_spec_t cmd_time = usrp->get_time_now() + uhd::time_spec_t(0.1);
//sets command time on all devices
//the next commands are all timed
usrp->set_command_time(cmd_time);
//tune channel 0 and channel 1
usrp->set_rx_freq(1.03e9, 0); // Channel 0
usrp->set_rx_freq(1.03e9, 1); // Channel 1
//end timed commands
usrp->clear_command_time();

in the tx_waveforms but for the transmitter.
I would try this on Monday.

Anyway, in my case also the phase looks quite stable on the scope. The
45 degree jumps cannot be easily noticed. I acquire the data and with
post processing I come to these results.

BR,
Vladica

On 19.05.2017 14:05, Julian Arnold wrote:

Hey Vladica,

I recently ran the same experiment.
Once the LOs are properly locked to the reference, the time is synced to
the reference and you have tune the boards using timed commands at the
same time,
you should be left with a pretty stable output across all 4 TX channels.
There will, of course, be a fixed phase offset between the different
channels.
This offset will also depend on temperature.

Let me know if you have questions regarding the software implementation.

Cheers,

On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote:

Hi,

I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and
1 PPS from octoclock to the both of them. With tx_waveforms I transmit
a CONST and record the resulting waveforms on a scope. The carrier is
2.45 GHz.

The phase difference between the four available channels jumps for
+-45 degrees randomly. Without these jumps, the phase difference would
have probably been constant. This is the same for all of the channels.

Is there a chance to phase sync the two x310s and the four
transceivers?

BR,
Vladica


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

--
Julian Arnold, M.Sc.

Institute for Networked Systems
RWTH Aachen University

Kackertstrasse 9
52072 Aachen
Germany

Hey Vladica, > I think that I need to add something like I haven't looked at tx_waveforms but here is a snipped from my code: ############################################### this->usrp->set_clock_source("external"); //applies to all mboards this->usrp->set_time_source("external"); //applies to all mboards double tx_freq = 3.700010e9; double rx_freq = 3.700000e9; //Set time at next PPS to zero this->usrp->set_time_unknown_pps(uhd::time_spec_t(0.0)); boost::this_thread::sleep(boost::posix_time::seconds(3)); uhd::time_spec_t cmd_time = usrp->get_time_now() + uhd::time_spec_t(0.3); //sets command time on all devices //the next commands are all timed this->usrp->set_command_time(cmd_time); this->usrp->set_tx_freq(tx_freq, 0); this->usrp->set_tx_freq(tx_freq, 1); this->usrp->set_tx_freq(tx_freq, 2); uhd::tune_result_t freq_is = this->usrp->set_tx_freq(tx_freq, 3); boost::this_thread::sleep(boost::posix_time::seconds(3)); //end timed commands this->usrp->clear_command_time(); ############################################### What scope are you using? I was observing phase stability across the 4 channel on an DSO90804A and found it to be basically rock solid and clearly visible (As long as the temperature was constant. This meant to wait for something like 10-30min after startup for the devices to reach final operating temperature). Also, which version of UHD are you running? Cheers, On 05/19/2017 03:09 PM, Vladica Sark via USRP-users wrote: > Hi Julian, > > I think that I need to add something like > > //we will tune the frontends in 100ms from now > uhd::time_spec_t cmd_time = usrp->get_time_now() + uhd::time_spec_t(0.1); > //sets command time on all devices > //the next commands are all timed > usrp->set_command_time(cmd_time); > //tune channel 0 and channel 1 > usrp->set_rx_freq(1.03e9, 0); // Channel 0 > usrp->set_rx_freq(1.03e9, 1); // Channel 1 > //end timed commands > usrp->clear_command_time(); > > in the tx_waveforms but for the transmitter. > I would try this on Monday. > > Anyway, in my case also the phase looks quite stable on the scope. The > 45 degree jumps cannot be easily noticed. I acquire the data and with > post processing I come to these results. > > BR, > Vladica > > > On 19.05.2017 14:05, Julian Arnold wrote: >> Hey Vladica, >> >> I recently ran the same experiment. >> Once the LOs are properly locked to the reference, the time is synced to >> the reference and you have tune the boards using timed commands at the >> same time, >> you should be left with a pretty stable output across all 4 TX channels. >> There will, of course, be a fixed phase offset between the different >> channels. >> This offset will also depend on temperature. >> >> Let me know if you have questions regarding the software implementation. >> >> Cheers, >> >> On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote: >>> Hi, >>> >>> I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and >>> 1 PPS from octoclock to the both of them. With tx_waveforms I transmit >>> a CONST and record the resulting waveforms on a scope. The carrier is >>> 2.45 GHz. >>> >>> The phase difference between the four available channels jumps for >>> +-45 degrees randomly. Without these jumps, the phase difference would >>> have probably been constant. This is the same for all of the channels. >>> >>> Is there a chance to phase sync the two x310s and the four >>> transceivers? >>> >>> BR, >>> Vladica >>> >>> _______________________________________________ >>> USRP-users mailing list >>> USRP-users@lists.ettus.com >>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com -- Julian Arnold, M.Sc. Institute for Networked Systems RWTH Aachen University Kackertstrasse 9 52072 Aachen Germany
VS
Vladica Sark
Fri, May 19, 2017 3:16 PM

Hi Julian,

I am using Teledyne LeCroy HDO9404. I use UHD 3.10.1 which should be stable.

In my case, the signal on the scope also looks nice. Nevertheless, when
I precisely estimate the phase between the separate channels there are
these 45 degrees jumps. The phase offset itself is not a problem, if it
is constant, since it can be corrected.

I would try this with the timed commands to see if it helps, but on Monday.

BR,
Vladica

On 19.05.2017 15:35, Julian Arnold wrote:

Hey Vladica,

I think that I need to add something like

I haven't looked at tx_waveforms but here is a snipped from my code:

###############################################

  this->usrp->set_clock_source("external"); //applies to all mboards
  this->usrp->set_time_source("external"); //applies to all mboards

  double tx_freq = 3.700010e9;
  double rx_freq = 3.700000e9;

  //Set time at next PPS to zero
  this->usrp->set_time_unknown_pps(uhd::time_spec_t(0.0));
  boost::this_thread::sleep(boost::posix_time::seconds(3));

  uhd::time_spec_t cmd_time = usrp->get_time_now() +
      uhd::time_spec_t(0.3);

  //sets command time on all devices
  //the next commands are all timed
  this->usrp->set_command_time(cmd_time);
  this->usrp->set_tx_freq(tx_freq, 0);
  this->usrp->set_tx_freq(tx_freq, 1);
  this->usrp->set_tx_freq(tx_freq, 2);
  uhd::tune_result_t freq_is = this->usrp->set_tx_freq(tx_freq, 3);
 
  boost::this_thread::sleep(boost::posix_time::seconds(3));
  //end timed commands
  this->usrp->clear_command_time();

###############################################

What scope are you using? I was observing phase stability across the 4
channel on an DSO90804A and found it to be basically rock solid and
clearly visible
(As long as the temperature was constant. This meant to wait for
something like 10-30min after startup for the devices to reach final
operating temperature).

Also, which version of UHD are you running?

Cheers,

On 05/19/2017 03:09 PM, Vladica Sark via USRP-users wrote:

Hi Julian,

I think that I need to add something like

//we will tune the frontends in 100ms from now
uhd::time_spec_t cmd_time = usrp->get_time_now() + uhd::time_spec_t(0.1);
//sets command time on all devices
//the next commands are all timed
usrp->set_command_time(cmd_time);
//tune channel 0 and channel 1
usrp->set_rx_freq(1.03e9, 0); // Channel 0
usrp->set_rx_freq(1.03e9, 1); // Channel 1
//end timed commands
usrp->clear_command_time();

in the tx_waveforms but for the transmitter.
I would try this on Monday.

Anyway, in my case also the phase looks quite stable on the scope. The
45 degree jumps cannot be easily noticed. I acquire the data and with
post processing I come to these results.

BR,
Vladica

On 19.05.2017 14:05, Julian Arnold wrote:

Hey Vladica,

I recently ran the same experiment.
Once the LOs are properly locked to the reference, the time is synced to
the reference and you have tune the boards using timed commands at the
same time,
you should be left with a pretty stable output across all 4 TX channels.
There will, of course, be a fixed phase offset between the different
channels.
This offset will also depend on temperature.

Let me know if you have questions regarding the software implementation.

Cheers,

On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote:

Hi,

I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and
1 PPS from octoclock to the both of them. With tx_waveforms I transmit
a CONST and record the resulting waveforms on a scope. The carrier is
2.45 GHz.

The phase difference between the four available channels jumps for
+-45 degrees randomly. Without these jumps, the phase difference would
have probably been constant. This is the same for all of the channels.

Is there a chance to phase sync the two x310s and the four
transceivers?

BR,
Vladica


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Hi Julian, I am using Teledyne LeCroy HDO9404. I use UHD 3.10.1 which should be stable. In my case, the signal on the scope also looks nice. Nevertheless, when I precisely estimate the phase between the separate channels there are these 45 degrees jumps. The phase offset itself is not a problem, if it is constant, since it can be corrected. I would try this with the timed commands to see if it helps, but on Monday. BR, Vladica On 19.05.2017 15:35, Julian Arnold wrote: > Hey Vladica, > >> I think that I need to add something like > I haven't looked at tx_waveforms but here is a snipped from my code: > > ############################################### > > this->usrp->set_clock_source("external"); //applies to all mboards > this->usrp->set_time_source("external"); //applies to all mboards > > double tx_freq = 3.700010e9; > double rx_freq = 3.700000e9; > > //Set time at next PPS to zero > this->usrp->set_time_unknown_pps(uhd::time_spec_t(0.0)); > boost::this_thread::sleep(boost::posix_time::seconds(3)); > > uhd::time_spec_t cmd_time = usrp->get_time_now() + > uhd::time_spec_t(0.3); > > //sets command time on all devices > //the next commands are all timed > this->usrp->set_command_time(cmd_time); > this->usrp->set_tx_freq(tx_freq, 0); > this->usrp->set_tx_freq(tx_freq, 1); > this->usrp->set_tx_freq(tx_freq, 2); > uhd::tune_result_t freq_is = this->usrp->set_tx_freq(tx_freq, 3); > > boost::this_thread::sleep(boost::posix_time::seconds(3)); > //end timed commands > this->usrp->clear_command_time(); > > ############################################### > > What scope are you using? I was observing phase stability across the 4 > channel on an DSO90804A and found it to be basically rock solid and > clearly visible > (As long as the temperature was constant. This meant to wait for > something like 10-30min after startup for the devices to reach final > operating temperature). > > Also, which version of UHD are you running? > > Cheers, > > On 05/19/2017 03:09 PM, Vladica Sark via USRP-users wrote: >> Hi Julian, >> >> I think that I need to add something like >> >> //we will tune the frontends in 100ms from now >> uhd::time_spec_t cmd_time = usrp->get_time_now() + uhd::time_spec_t(0.1); >> //sets command time on all devices >> //the next commands are all timed >> usrp->set_command_time(cmd_time); >> //tune channel 0 and channel 1 >> usrp->set_rx_freq(1.03e9, 0); // Channel 0 >> usrp->set_rx_freq(1.03e9, 1); // Channel 1 >> //end timed commands >> usrp->clear_command_time(); >> >> in the tx_waveforms but for the transmitter. >> I would try this on Monday. >> >> Anyway, in my case also the phase looks quite stable on the scope. The >> 45 degree jumps cannot be easily noticed. I acquire the data and with >> post processing I come to these results. >> >> BR, >> Vladica >> >> >> On 19.05.2017 14:05, Julian Arnold wrote: >>> Hey Vladica, >>> >>> I recently ran the same experiment. >>> Once the LOs are properly locked to the reference, the time is synced to >>> the reference and you have tune the boards using timed commands at the >>> same time, >>> you should be left with a pretty stable output across all 4 TX channels. >>> There will, of course, be a fixed phase offset between the different >>> channels. >>> This offset will also depend on temperature. >>> >>> Let me know if you have questions regarding the software implementation. >>> >>> Cheers, >>> >>> On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote: >>>> Hi, >>>> >>>> I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and >>>> 1 PPS from octoclock to the both of them. With tx_waveforms I transmit >>>> a CONST and record the resulting waveforms on a scope. The carrier is >>>> 2.45 GHz. >>>> >>>> The phase difference between the four available channels jumps for >>>> +-45 degrees randomly. Without these jumps, the phase difference would >>>> have probably been constant. This is the same for all of the channels. >>>> >>>> Is there a chance to phase sync the two x310s and the four >>>> transceivers? >>>> >>>> BR, >>>> Vladica >>>> >>>> _______________________________________________ >>>> USRP-users mailing list >>>> USRP-users@lists.ettus.com >>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>> >> >> _______________________________________________ >> USRP-users mailing list >> USRP-users@lists.ettus.com >> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >
MB
Martin Braun
Thu, Jul 6, 2017 7:29 PM

If you have the option to use uhd_siggen_gui (it's a GNU Radio tool),
that should run through all the right steps to set up synced Tx. Then
you'd know if it's a SW issue.

-- M

On 05/19/2017 08:16 AM, Vladica Sark via USRP-users wrote:

Hi Julian,

I am using Teledyne LeCroy HDO9404. I use UHD 3.10.1 which should be
stable.

In my case, the signal on the scope also looks nice. Nevertheless, when
I precisely estimate the phase between the separate channels there are
these 45 degrees jumps. The phase offset itself is not a problem, if it
is constant, since it can be corrected.

I would try this with the timed commands to see if it helps, but on Monday.

BR,
Vladica

On 19.05.2017 15:35, Julian Arnold wrote:

Hey Vladica,

I think that I need to add something like

I haven't looked at tx_waveforms but here is a snipped from my code:

###############################################

  this->usrp->set_clock_source("external"); //applies to all mboards
  this->usrp->set_time_source("external"); //applies to all mboards

  double tx_freq = 3.700010e9;
  double rx_freq = 3.700000e9;

  //Set time at next PPS to zero
  this->usrp->set_time_unknown_pps(uhd::time_spec_t(0.0));
  boost::this_thread::sleep(boost::posix_time::seconds(3));

  uhd::time_spec_t cmd_time = usrp->get_time_now() +
      uhd::time_spec_t(0.3);

  //sets command time on all devices
  //the next commands are all timed
  this->usrp->set_command_time(cmd_time);
  this->usrp->set_tx_freq(tx_freq, 0);
  this->usrp->set_tx_freq(tx_freq, 1);
  this->usrp->set_tx_freq(tx_freq, 2);
  uhd::tune_result_t freq_is = this->usrp->set_tx_freq(tx_freq, 3);
      boost::this_thread::sleep(boost::posix_time::seconds(3));
  //end timed commands
  this->usrp->clear_command_time();

###############################################

What scope are you using? I was observing phase stability across the 4
channel on an DSO90804A and found it to be basically rock solid and
clearly visible
(As long as the temperature was constant. This meant to wait for
something like 10-30min after startup for the devices to reach final
operating temperature).

Also, which version of UHD are you running?

Cheers,

On 05/19/2017 03:09 PM, Vladica Sark via USRP-users wrote:

Hi Julian,

I think that I need to add something like

//we will tune the frontends in 100ms from now
uhd::time_spec_t cmd_time = usrp->get_time_now() +
uhd::time_spec_t(0.1);
//sets command time on all devices
//the next commands are all timed
usrp->set_command_time(cmd_time);
//tune channel 0 and channel 1
usrp->set_rx_freq(1.03e9, 0); // Channel 0
usrp->set_rx_freq(1.03e9, 1); // Channel 1
//end timed commands
usrp->clear_command_time();

in the tx_waveforms but for the transmitter.
I would try this on Monday.

Anyway, in my case also the phase looks quite stable on the scope. The
45 degree jumps cannot be easily noticed. I acquire the data and with
post processing I come to these results.

BR,
Vladica

On 19.05.2017 14:05, Julian Arnold wrote:

Hey Vladica,

I recently ran the same experiment.
Once the LOs are properly locked to the reference, the time is
synced to
the reference and you have tune the boards using timed commands at the
same time,
you should be left with a pretty stable output across all 4 TX
channels.
There will, of course, be a fixed phase offset between the different
channels.
This offset will also depend on temperature.

Let me know if you have questions regarding the software
implementation.

Cheers,

On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote:

Hi,

I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and
1 PPS from octoclock to the both of them. With tx_waveforms I transmit
a CONST and record the resulting waveforms on a scope. The carrier is
2.45 GHz.

The phase difference between the four available channels jumps for
+-45 degrees randomly. Without these jumps, the phase difference would
have probably been constant. This is the same for all of the channels.

Is there a chance to phase sync the two x310s and the four
transceivers?

BR,
Vladica


USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

If you have the option to use uhd_siggen_gui (it's a GNU Radio tool), that should run through all the right steps to set up synced Tx. Then you'd know if it's a SW issue. -- M On 05/19/2017 08:16 AM, Vladica Sark via USRP-users wrote: > Hi Julian, > > I am using Teledyne LeCroy HDO9404. I use UHD 3.10.1 which should be > stable. > > In my case, the signal on the scope also looks nice. Nevertheless, when > I precisely estimate the phase between the separate channels there are > these 45 degrees jumps. The phase offset itself is not a problem, if it > is constant, since it can be corrected. > > I would try this with the timed commands to see if it helps, but on Monday. > > BR, > Vladica > > > On 19.05.2017 15:35, Julian Arnold wrote: >> Hey Vladica, >> >>> I think that I need to add something like >> I haven't looked at tx_waveforms but here is a snipped from my code: >> >> ############################################### >> >> this->usrp->set_clock_source("external"); //applies to all mboards >> this->usrp->set_time_source("external"); //applies to all mboards >> >> double tx_freq = 3.700010e9; >> double rx_freq = 3.700000e9; >> >> //Set time at next PPS to zero >> this->usrp->set_time_unknown_pps(uhd::time_spec_t(0.0)); >> boost::this_thread::sleep(boost::posix_time::seconds(3)); >> >> uhd::time_spec_t cmd_time = usrp->get_time_now() + >> uhd::time_spec_t(0.3); >> >> //sets command time on all devices >> //the next commands are all timed >> this->usrp->set_command_time(cmd_time); >> this->usrp->set_tx_freq(tx_freq, 0); >> this->usrp->set_tx_freq(tx_freq, 1); >> this->usrp->set_tx_freq(tx_freq, 2); >> uhd::tune_result_t freq_is = this->usrp->set_tx_freq(tx_freq, 3); >> boost::this_thread::sleep(boost::posix_time::seconds(3)); >> //end timed commands >> this->usrp->clear_command_time(); >> >> ############################################### >> >> What scope are you using? I was observing phase stability across the 4 >> channel on an DSO90804A and found it to be basically rock solid and >> clearly visible >> (As long as the temperature was constant. This meant to wait for >> something like 10-30min after startup for the devices to reach final >> operating temperature). >> >> Also, which version of UHD are you running? >> >> Cheers, >> >> On 05/19/2017 03:09 PM, Vladica Sark via USRP-users wrote: >>> Hi Julian, >>> >>> I think that I need to add something like >>> >>> //we will tune the frontends in 100ms from now >>> uhd::time_spec_t cmd_time = usrp->get_time_now() + >>> uhd::time_spec_t(0.1); >>> //sets command time on all devices >>> //the next commands are all timed >>> usrp->set_command_time(cmd_time); >>> //tune channel 0 and channel 1 >>> usrp->set_rx_freq(1.03e9, 0); // Channel 0 >>> usrp->set_rx_freq(1.03e9, 1); // Channel 1 >>> //end timed commands >>> usrp->clear_command_time(); >>> >>> in the tx_waveforms but for the transmitter. >>> I would try this on Monday. >>> >>> Anyway, in my case also the phase looks quite stable on the scope. The >>> 45 degree jumps cannot be easily noticed. I acquire the data and with >>> post processing I come to these results. >>> >>> BR, >>> Vladica >>> >>> >>> On 19.05.2017 14:05, Julian Arnold wrote: >>>> Hey Vladica, >>>> >>>> I recently ran the same experiment. >>>> Once the LOs are properly locked to the reference, the time is >>>> synced to >>>> the reference and you have tune the boards using timed commands at the >>>> same time, >>>> you should be left with a pretty stable output across all 4 TX >>>> channels. >>>> There will, of course, be a fixed phase offset between the different >>>> channels. >>>> This offset will also depend on temperature. >>>> >>>> Let me know if you have questions regarding the software >>>> implementation. >>>> >>>> Cheers, >>>> >>>> On 05/19/2017 01:50 PM, Vladica Sark via USRP-users wrote: >>>>> Hi, >>>>> >>>>> I have two x310s with 2x UBX daughterboards in each. I bring 10MHz and >>>>> 1 PPS from octoclock to the both of them. With tx_waveforms I transmit >>>>> a CONST and record the resulting waveforms on a scope. The carrier is >>>>> 2.45 GHz. >>>>> >>>>> The phase difference between the four available channels jumps for >>>>> +-45 degrees randomly. Without these jumps, the phase difference would >>>>> have probably been constant. This is the same for all of the channels. >>>>> >>>>> Is there a chance to phase sync the two x310s and the four >>>>> transceivers? >>>>> >>>>> BR, >>>>> Vladica >>>>> >>>>> _______________________________________________ >>>>> USRP-users mailing list >>>>> USRP-users@lists.ettus.com >>>>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >>>> >>> >>> _______________________________________________ >>> USRP-users mailing list >>> USRP-users@lists.ettus.com >>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com >> > > _______________________________________________ > USRP-users mailing list > USRP-users@lists.ettus.com > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com