usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

New Timed Rx/Tx complex gain feature 4.10

RK
Rob Kossler
Wed, Apr 22, 2026 8:58 PM

Hi,
The change log indicates a new timed complex gain feature.  But, after
looking through the manual, I can't find the relevant API function calls.
Any advice?
Rob

Hi, The change log indicates a new timed complex gain feature. But, after looking through the manual, I can't find the relevant API function calls. Any advice? Rob
BP
Brian Padalino
Wed, Apr 22, 2026 9:22 PM

On Wed, Apr 22, 2026 at 4:59 PM Rob Kossler via USRP-users <
usrp-users@lists.ettus.com> wrote:

Hi,
The change log indicates a new timed complex gain feature.  But, after
looking through the manual, I can't find the relevant API function calls.
Any advice?

On Wed, Apr 22, 2026 at 4:59 PM Rob Kossler via USRP-users < usrp-users@lists.ettus.com> wrote: > Hi, > The change log indicates a new timed complex gain feature. But, after > looking through the manual, I can't find the relevant API function calls. > Any advice? > Seems like maybe it's in a weird place: https://github.com/EttusResearch/uhd/blob/9c1a361ad896f7ce0d9fd2f861ae88a67f2ea929/host/include/uhd/features/complex_gain_iface.hpp#L64 Does that help you out? Brian
RK
Rob Kossler
Wed, Apr 22, 2026 9:31 PM

Yes. Thanks!

On Wed, Apr 22, 2026 at 5:22 PM Brian Padalino bpadalino@gmail.com wrote:

On Wed, Apr 22, 2026 at 4:59 PM Rob Kossler via USRP-users <
usrp-users@lists.ettus.com> wrote:

Hi,
The change log indicates a new timed complex gain feature.  But, after
looking through the manual, I can't find the relevant API function calls.
Any advice?

Yes. Thanks! On Wed, Apr 22, 2026 at 5:22 PM Brian Padalino <bpadalino@gmail.com> wrote: > On Wed, Apr 22, 2026 at 4:59 PM Rob Kossler via USRP-users < > usrp-users@lists.ettus.com> wrote: > >> Hi, >> The change log indicates a new timed complex gain feature. But, after >> looking through the manual, I can't find the relevant API function calls. >> Any advice? >> > > Seems like maybe it's in a weird place: > > > https://github.com/EttusResearch/uhd/blob/9c1a361ad896f7ce0d9fd2f861ae88a67f2ea929/host/include/uhd/features/complex_gain_iface.hpp#L64 > > Does that help you out? > > Brian >
RK
Rob Kossler
Mon, Apr 27, 2026 8:32 PM

So, it turns out that there is a new example program txrx_complex_gain.cpp
https://github.com/EttusResearch/uhd/blob/master/host/examples/txrx_complex_gain.cpp.
This is very helpful for understanding how to implement the complex gain
feature.

However, after reviewing it I'm wondering if there is a bug in the
example.  The example includes a call to "usrp->get_radio_control()" which
returns the radio control sptr for a given "channel".  However,
the implementation of the function (in multi_usrp_rfnoc) returns the radio
control for the RX channel (not the Tx channel).  Perhaps the assumption is
that the radio control is the same for Rx channel N and Tx channel N. But,
I'm wondering if that is a bad assumption.  If the user reorders channels
via subdev spec, isn't it possible for Rx Channel N to correspond to a
different radio control than Tx channel N?  If so, then it seems to me that
the complex gain control example will apply the specified Tx complex gain
to the wrong radio.
Rob

On Wed, Apr 22, 2026 at 5:31 PM Rob Kossler rkossler@nd.edu wrote:

Yes. Thanks!

On Wed, Apr 22, 2026 at 5:22 PM Brian Padalino bpadalino@gmail.com
wrote:

On Wed, Apr 22, 2026 at 4:59 PM Rob Kossler via USRP-users <
usrp-users@lists.ettus.com> wrote:

Hi,
The change log indicates a new timed complex gain feature.  But, after
looking through the manual, I can't find the relevant API function calls.
Any advice?

So, it turns out that there is a new example program txrx_complex_gain.cpp <https://github.com/EttusResearch/uhd/blob/master/host/examples/txrx_complex_gain.cpp>. This is very helpful for understanding how to implement the complex gain feature. However, after reviewing it I'm wondering if there is a bug in the example. The example includes a call to "usrp->get_radio_control()" which returns the radio control sptr for a given "channel". However, the implementation of the function (in multi_usrp_rfnoc) returns the radio control for the RX channel (not the Tx channel). Perhaps the assumption is that the radio control is the same for Rx channel N and Tx channel N. But, I'm wondering if that is a bad assumption. If the user reorders channels via subdev spec, isn't it possible for Rx Channel N to correspond to a different radio control than Tx channel N? If so, then it seems to me that the complex gain control example will apply the specified Tx complex gain to the wrong radio. Rob On Wed, Apr 22, 2026 at 5:31 PM Rob Kossler <rkossler@nd.edu> wrote: > Yes. Thanks! > > On Wed, Apr 22, 2026 at 5:22 PM Brian Padalino <bpadalino@gmail.com> > wrote: > >> On Wed, Apr 22, 2026 at 4:59 PM Rob Kossler via USRP-users < >> usrp-users@lists.ettus.com> wrote: >> >>> Hi, >>> The change log indicates a new timed complex gain feature. But, after >>> looking through the manual, I can't find the relevant API function calls. >>> Any advice? >>> >> >> Seems like maybe it's in a weird place: >> >> >> https://github.com/EttusResearch/uhd/blob/9c1a361ad896f7ce0d9fd2f861ae88a67f2ea929/host/include/uhd/features/complex_gain_iface.hpp#L64 >> >> Does that help you out? >> >> Brian >> >