This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Question on trigger antenna and IQ sampling

Hi all, 

im asking question about triggering my own antenna. there's few questions about it.

1. im using TI boostxl antenna array (3 antenna) , periodic table are as follow antenna_1 : 1100, antenna_2 : 1010 antenna_3 : 1001.

From my understanding i changed : 

static const uint8_t ant_patterns[] = {0xC,0xA,0x9};
/*static const uint8_t ant_patterns[] = { 0x2, 0x0, 0x5, 0x6, 0x1, 0x4,
					0xC, 0x9, 0xE, 0xD, 0x8, 0xA };*/

im not sure if there are any setting that still need to be changed ,when changed to my antenna. pls help me out! 

2. how to increase the number of IQ sample from 45 to 90 ? 

Parents
  • Hello, 

    I do not have any experience with the TI Boostxl antenna, and will need to inquire our AoA team. 

    Will get back to you as soon as possible. 

    Kind regards,
    Øyvind

  • Our AoA team reports that the TI Boostxl Antenna should work with our Direction Finding samples. You may need to trim the switch point to compensate for different delays in the switches. This is described in the nWP036 - Direction Finding

    Kind regards,
    Øyvind

  • Can you provide the full excel sheet with all the reported IQ values including the reference period? And you can confirm that you have used the default example but just changed the configuration to use 2 antennas? You did not change any other setting relating to the pattern generation? Note that when you have 3 antenna values then the reference antenna will be used for the reference, then you will sample 2, 3, 2, 3..... which is why you see the sawtooth signal above (the diff between these is caused by the different length of the RF path caused by the angular difference). The reason you see an underlying sine wave is caused by the fact that you are seeing the sampling of a sine wave. The spacing used (1µs) is according to the Bluetooth specification and is sufficient as input to a angle calculation algorithm.

    The length of the data pattern is determined by the length of the CTE, this has a max value in the Bluetooth spec. The example supports setting this to the max, if that is not enough then you may consider to go for the shorter slot option as that will give you more samples in the same period.

Reply
  • Can you provide the full excel sheet with all the reported IQ values including the reference period? And you can confirm that you have used the default example but just changed the configuration to use 2 antennas? You did not change any other setting relating to the pattern generation? Note that when you have 3 antenna values then the reference antenna will be used for the reference, then you will sample 2, 3, 2, 3..... which is why you see the sawtooth signal above (the diff between these is caused by the different length of the RF path caused by the angular difference). The reason you see an underlying sine wave is caused by the fact that you are seeing the sampling of a sine wave. The spacing used (1µs) is according to the Bluetooth specification and is sufficient as input to a angle calculation algorithm.

    The length of the data pattern is determined by the length of the CTE, this has a max value in the Bluetooth spec. The example supports setting this to the max, if that is not enough then you may consider to go for the shorter slot option as that will give you more samples in the same period.

Children
  • Hi Paka, 

    i only changed 
    ant_patterns[] = { 0x2, 0x0, 0x5, 0x6, 0x1, 0x4,0xC, 0x9, 0xE, 0xD, 0x8, 0xA }; (NORDIC)


    TO my  ant_patterns[] = {0x9,0xA,0xC}; (TI) . Is there anything that i had missed out ? 

    "Note that when you have 3 antenna values then the reference antenna will be used for the reference, then you will sample 2, 3, 2, 3..... which is why you see the sawtooth signal above"

    which is the reference antenna ? 

    so what you meant was, i got three antenna in total and only two are working?

  • if you got a new antenna. which configuration will you change?

  • You changed the table that contains the antenna control signal, that is correct. You changed from a 12 antenna solution to a 3 antenna solution since you have only 3 entries in the table.

    The reference antenna is the first antenna in the array and will be used during the reference period. This is described both in the Product Specification of the device as well as in the nWP036, I hope you have read through these for clarity.

    When you run the default locator code it will generate 45 samples as output, these will be

       Reference antenna: 8 values (in your case 0x09]

       Antenna 1: 1 value (in your case 0x0A)

       Antenna 2: 1 value (in your case 0x0C)

       Antenna 1: 1 value (in your case 0x0A)

       Antenna 2: 1 value (in your case 0x0C)

       +++++ until you have 45 samples.

    You use the data from the reference period to determine the frequency and the phase of the received signal. You then compare the phase of this reference signal with the phase of the measured signals to determine the phase shifts of the antenna 1 and antenna 2 signals. These phase shift values are then used to calculate the angle of the incoming signal.

    You will have to write the code for these parts, they are not part of the SDK as they will be highly depending on the antenna you plan to use. If you change the antenna then you will have to change this code as well.

    If you want to include the reference antenna in the loop that is measured then just add it to the table and it will be part of the output pattern.

    {0x09, 0x0A, 0x0C} gives ref, ref, ref, ref, ref, ref, ref, ref, Ant 1, Ant 2, Ant 1, Ant 2, Ant 1+++++

    while

    {0x09, 0x0A, 0x0C, 0x09} gives ref, ref, ref, ref, ref, ref, ref, ref, Ant 1, Ant 2, ref, Ant 1, Ant 2, ref, Ant 1+++++

  • I use the latest nrf code with nrf52833DK-nrf52833 board. I uses the nordic 12 antenna arrays. It seems that I can only have maximum 12 values in the ant-patterns:

    static const uint8_t ant_patterns[] = { 0x2, 0x0, 0x5, 0x6, 0x1, 0x4,
    					0xC, 0x9, 0xE, 0xD, 0x8, 0xA };
    					
    Got an error if adding more patterns:
    static const uint8_t ant_patterns[] = { 0x2, 0x0, 0x5, 0x6, 0x1, 0x4,
    					0xC, 0x9, 0xE, 0xD, 0x8, 0xA, 0x2};

    When I have 13+ patterns, I got a CTE failed message(-22) from the device, and I cannot receive CTE. It is OK if I keep the number of ant_pattern under 12. So I cannot have the ref ant in the loop as described above? Try to increase the number of antennas to 13 in overlay. It doesn't help.

    PER_ADV_SYNC[0]: [DEVICE]: 1A:36:DC:A3:B0:74 (random), tx_power 127, RSSI -58, CTE AOA, data length 0, data: 
    success. Periodic sync established.
    Enable receiving of CTE...
    failed (err -22)
    Scan disable...Success.

Related