About ADI_ADRV9001_INIT_LO_RETUNE when calling adi_adrv9001_cals_InitCals_Run() function for Rerun Initial Calibration.


Our customer using adrv9003 in there product. And they are in development phase now.

They change TX1 carrier frequency in three pattern. They know that they should rerun initial calibration because they will change TX1 carrier frequency more than 100MHz range.

They expect that you can provide a solution that only TX1 initial calibration is done and RX1 remains in RF ENABLED state.

[Use case]

step 1: default setting of LO1 for TX1, LO2 for RX1 and RX2

step 2: RF ENABLED state

step 3 : Change LO1 more than 100MHz range

step 4 : For rerunning initial calibration, call adi_adrv9001_cals_InitCals_Run() with ADI_ADRV9001_INIT_LO_RETUNE parameter


[1] Is the use case of our customer correct ? 

[2] ADI_ADRV9001_INIT_LO_RETUNE was defined as 0x000B902B, includes RX and TX calibrations. After calling adi_adrv9001_cals_InitCals_Run() with ADI_ADRV9001_INIT_LO_RETUNE parameter, TX1 and RX1 will both go to CALIBRATED state. Is our understanding correct ?

[3]In this use case, do you have any method to rerun TX1 calibration only and let RX1 remains in RF ENABLED state ?

[4] Using SDK 0.17.0, the customer tested and measured the time of step 4 which running adi_adrv9001_cals_InitCals_Run() with ADI_ADRV9001_INIT_LO_RETUNE parameter.. It takes 1.6 seconds. Could you please let me know how to shorten the time ? If the time is short enough, so the customer think that there is no problem even RX1 will go to CALIBRATED state.

[5] The customer uses three LO1s and the distance of the LO1s are more than 100 MHz each other. They think that they can run initial calibrations of the three LO1 at first and save the related parameters. And when they change LO1 they can use the parameters they have saved but do not need to run initial calibration. Is this a feasible way? If yes, could you please tell us exactly how?

Best regards,


  • +1
    •  Analog Employees 
    on Nov 17, 2021 1:41 PM

    Hello H.Kashima,

    I understand now, knowing more about your application puts your previous questions into context.

    The feature you're looking for here is Fast Frequency Hopping. When in Frequency Hopping mode, the device runs all of the initial calibrations needed for each operating frequency at initialization, saving the results from each calibration to be used at a later point. This would completely bypass the need to call any initial calibration API mid operation, instead all you would have to do is interact with the Automated TDD state machine. 

    We have a video tutorial available on YouTube for Automated TDD: https://www.youtube.com/watch?v=huufF5c_hOY 

    We are preparing to release a fairly substantial update to the User Interface for Fast Frequency Hopping in TES v0.19, so it would be beneficial if your customer became acquainted with the operations of Frequency Hopping now by reading the User Guide sections carefully and experimenting with the current implementation using our default Hop Tables and premade TDD State Machines.

    Just to answer your questions also:

    1. As I mentioned, use Fast Frequency Hopping
    2. When you call Init_Calibrations(...) ALL initial calibrations must be run again. This includes all of your Rx calibrations as well as your Tx calibrations. The Rx calibrations will be run first, as detailed in the User Guide
    3. Tx1 Calibrations utilize the Rx1 signal chain to analyze the performance of the Tx signal chain. These calibrations cannot be run without Rx1. However as I have mentioned, when you use Fast Frequency Hopping this won't be an issue any longer.
    4. Again, Fast Frequency Hopping solves this issue by storing the calibration results for each frequency of operation and reusing them when needed.
    5. See my answer to Q4

    This should move your customer along nicely! Do let me know if you have more questions!

    Best Regards,

  • Hello Oisin,

    Thank you very much for your replies.

    I understood that Fast Frequency Hopping may be the answer for our customer. 

    Could you please let know when you will release TES 0.19 ?

    Best regards,


  • 0
    •  Analog Employees 
    on Nov 24, 2021 3:08 PM in reply to HYKS

    Hello H.Kashima,

    TES releases are on a regular 2 month interval. TES v0.18 released less than a month ago, so I would expect TES v0.19 to be released around January 2022. I will return here when TES v0.19 is released and inform you.

    Best Regards,