This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

how to enable LE_CODED in NCS1.8.0 periodic_adv ?

Hello,

NCS1.8.0 Windows10 X64,

periodic_adv had set BT_LE_ADV_OPT_CODED   and   BT_GAP_ADV_FAST_INT_MIN_2 /* 100 ms   */

periodic_sync scan info "Prim: LE 1M, Secn: LE Coded, Interval: 0x03c0 (1200 ms)"

question:

1. why it still  Prim: LE 1M?

2. why the Interval is 1200ms?

thanks 

Best regards,

yuyou

Parents Reply Children
  • Hello,

    when i set CONFIG_BT_CTLR_PHY_CODED=y, periodic_sync can't recv anything,

    even periodic_adv  it's set 'CONFIG_BT_USER_PHY_UPDATE=y' or not.

    even periodic_sync  it's set 'CONFIG_BT_CTLR_PHY_CODED=y' or not.

       

     even it's set 'CONFIG_BT_USER_PHY_UPDATE=y' or not.

    periodic_adv  source code and serial logs as follow:

    /*
     * Copyright (c) 2020 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: Apache-2.0
     */
    
    #include <bluetooth/bluetooth.h>
    #include "common/log.h"
    
    static uint8_t mfg_data[9] = { 0xff, 0xff, 0x00 };
    static struct bt_le_ext_adv_cb cb;//call back
    
    static const struct bt_data ad[] = {
    	BT_DATA(BT_DATA_MANUFACTURER_DATA, mfg_data, 9 ),
    };
    
    void sent(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_sent_info *info)
    {
            printk("Sent Data...");
            //mfg_data[2]++;
            //int err = bt_le_per_adv_set_data(adv, ad, ARRAY_SIZE(ad));
            //if (err) {
            //      printk("Failed (err %d)\n", err);
            //      return;
            //}
    }
    
    void main(void)
    {
    	struct bt_le_ext_adv *adv;
            cb.sent=sent;//call back
    	int err;
    
    	printk("Starting Periodic Advertising Demo\n");
    
    	/* Initialize the Bluetooth Subsystem */
    	err = bt_enable(NULL);
    	if (err) {
    		printk("Bluetooth init failed (err %d)\n", err);
    		return;
    	}
     
            /** Non-connectable extended advertising with @ref BT_LE_ADV_OPT_USE_NAME BT_LE_ADV_OPT_CODED */
           #define BT_LE_EXT_ADV_NCONN_NAME_CODED  BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
    						 BT_LE_ADV_OPT_USE_NAME | BT_LE_ADV_OPT_USE_TX_POWER | \
                                                     BT_LE_ADV_OPT_CODED, \
    						 BT_GAP_ADV_FAST_INT_MIN_2, \
    						 BT_GAP_ADV_FAST_INT_MAX_2, \
    						 NULL)   //Peer address, set to NULL for undirected advertising
    	/* Create a non-connectable non-scannable unDIRECTED advertising set */
    	err = bt_le_ext_adv_create(BT_LE_EXT_ADV_NCONN_NAME_CODED, &cb, &adv);
    	if (err) {
    		printk("Failed to create advertising set (err %d)\n", err);
    		return;
    	}
    
            #define BT_LE_PER_ADV_P BT_LE_PER_ADV_PARAM(BT_GAP_PER_ADV_FAST_INT_MIN_1, \
    						  BT_GAP_PER_ADV_FAST_INT_MIN_1, \
    						  BT_LE_PER_ADV_OPT_USE_TX_POWER)
    	/* Set periodic advertising parameters */
    	err = bt_le_per_adv_set_param(adv, BT_LE_PER_ADV_P);
    	if (err) {
    		printk("Failed to set periodic advertising parameters"
    		       " (err %d)\n", err);
    		return;
    	}
    
    	/* Enable Periodic Advertising */
    	err = bt_le_per_adv_start(adv);
    	if (err) {
    		printk("Failed to enable periodic advertising (err %d)\n", err);
    		return;
    	}
    
    	/* Start extended advertising */
    	err = bt_le_ext_adv_start(adv, BT_LE_EXT_ADV_START_DEFAULT);
    	if (err) {
    		printk("Failed to start extended advertising (err %d)\n", err);
    		return;
    	}
    
            for(int i=0;i<sizeof(mfg_data);i++){mfg_data[i]=0;}
    	while (true) {
    		k_sleep(K_SECONDS(1));
    
    		mfg_data[2]++;
    
    		printk("Set Periodic Advertising Data...");
    		err = bt_le_per_adv_set_data(adv, ad, ARRAY_SIZE(ad));
    		if (err) {
    			printk("Failed (err %d)\n", err);
    			return;
    		}
    		printk("done.\n");
    	}
    }
    

    even it's set 'CONFIG_BT_USER_PHY_UPDATE=y' or not.

     *** Booting Zephyr OS build v2.7.0-ncs1  ***
    Starting Periodic Advertising Demo
    [00:00:00.262,908] <inf> bt_hci_core: HSet Periodic Advertising Data...done.
    W Platform: Nordic Semiconductor (0x0002)
    [00:00:00.262,908] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
    [00:00:00.262,939] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 2.7 Build 0
    [00:00:00.263,519] <inf> bt_hci_core: Identity: F7:42:24:3A:91:18 (random)
    [00:00:00.263,519] <inf> bt_hci_core: HCI: version 5.3 (0x0c) revision 0x0000, manufacturer 0x05f1
    [00:00:00.263,519] <inf> bt_hci_core: LMP: version 5.3 (0x0c) subver 0xffff
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.

         

    periodic_sync  source code and logs as follow:

    /*
     * Copyright (c) 2020 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: Apache-2.0
     */
    
    #include <device.h>
    #include <devicetree.h>
    #include <drivers/gpio.h>
    #include <bluetooth/bluetooth.h>
    
    #define TIMEOUT_SYNC_CREATE K_SECONDS(10)
    #define NAME_LEN            30
    
    static bool         per_adv_found;
    static bt_addr_le_t per_addr;
    static uint8_t      per_sid;
    
    static K_SEM_DEFINE(sem_per_adv, 0, 1);
    static K_SEM_DEFINE(sem_per_sync, 0, 1);
    static K_SEM_DEFINE(sem_per_sync_lost, 0, 1);
    
    /* The devicetree node identifier for the "led0" alias. */
    #define LED0_NODE DT_ALIAS(led0)
    
    #if DT_NODE_HAS_STATUS(LED0_NODE, okay)
    #define HAS_LED     1
    static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
    #define BLINK_ONOFF K_MSEC(500)
    
    static struct k_work_delayable blink_work;
    static bool                  led_is_on;
    
    static void blink_timeout(struct k_work *work)
    {
    	led_is_on = !led_is_on;
    	gpio_pin_set(led.port, led.pin, (int)led_is_on);
    
    	k_work_schedule(&blink_work, BLINK_ONOFF);
    }
    #endif
    
    static bool data_cb(struct bt_data *data, void *user_data)
    {
    	char *name = user_data;
    	uint8_t len;
    
    	switch (data->type) {
    	case BT_DATA_NAME_SHORTENED:
    	case BT_DATA_NAME_COMPLETE:
    		len = MIN(data->data_len, NAME_LEN - 1);
    		memcpy(name, data->data, len);
    		name[len] = '\0';
    		return false;
    	default:
    		return true;
    	}
    }
    
    static const char *phy2str(uint8_t phy)
    {
    	switch (phy) {
    	case 0: return "No packets";
    	case BT_GAP_LE_PHY_1M: return "LE 1M";
    	case BT_GAP_LE_PHY_2M: return "LE 2M";
    	case BT_GAP_LE_PHY_CODED: return "LE Coded";
    	default: return "Unknown";
    	}
    }
    
    static void scan_recv(const struct bt_le_scan_recv_info *info,
    		      struct net_buf_simple *buf)
    {
    	char le_addr[BT_ADDR_LE_STR_LEN];
    	char name[NAME_LEN];
    
    	(void)memset(name, 0, sizeof(name));
    
    	bt_data_parse(buf, data_cb, name);
    
    	bt_addr_le_to_str(info->addr, le_addr, sizeof(le_addr));
    	if(strcmp(name,"PerAdv")==0)
            printk("[DEVICE]: %s, AD evt type %u, Tx Pwr: %i, RSSI %i %s "
    	       "C:%u S:%u D:%u SR:%u E:%u Prim: %s, Secn: %s, "
    	       "Interval: 0x%04x (%u ms), SID: %u\n",
    	       le_addr, info->adv_type, info->tx_power, info->rssi, name,
    	       (info->adv_props & BT_GAP_ADV_PROP_CONNECTABLE) != 0,
    	       (info->adv_props & BT_GAP_ADV_PROP_SCANNABLE) != 0,
    	       (info->adv_props & BT_GAP_ADV_PROP_DIRECTED) != 0,
    	       (info->adv_props & BT_GAP_ADV_PROP_SCAN_RESPONSE) != 0,
    	       (info->adv_props & BT_GAP_ADV_PROP_EXT_ADV) != 0,
    	       phy2str(info->primary_phy), phy2str(info->secondary_phy),
    	       info->interval, info->interval * 5 / 4, info->sid);
    
    	if (!per_adv_found && info->interval) {
    		per_adv_found = true;
    
    		per_sid = info->sid;
    		bt_addr_le_copy(&per_addr, info->addr);
    
    		k_sem_give(&sem_per_adv);
    	}
    }
    
    static struct bt_le_scan_cb scan_callbacks = {
    	.recv = scan_recv,
    };
    
    static void sync_cb(struct bt_le_per_adv_sync *sync,
    		    struct bt_le_per_adv_sync_synced_info *info)
    {
    	char le_addr[BT_ADDR_LE_STR_LEN];
    
    	bt_addr_le_to_str(info->addr, le_addr, sizeof(le_addr));
    
    	printk("PER_ADV_SYNC[%u]: [DEVICE]: %s synced, "
    	       "Interval 0x%04x (%u ms), PHY %s\n",
    	       bt_le_per_adv_sync_get_index(sync), le_addr,
    	       info->interval, info->interval * 5 / 4, phy2str(info->phy));
    
    	k_sem_give(&sem_per_sync);
    }
    
    static void term_cb(struct bt_le_per_adv_sync *sync,
    		    const struct bt_le_per_adv_sync_term_info *info)
    {
    	char le_addr[BT_ADDR_LE_STR_LEN];
    
    	bt_addr_le_to_str(info->addr, le_addr, sizeof(le_addr));
    
    	printk("PER_ADV_SYNC[%u]: [DEVICE]: %s sync terminated\n",
    	       bt_le_per_adv_sync_get_index(sync), le_addr);
    
    	k_sem_give(&sem_per_sync_lost);
    }
    
    static void recv_cb(struct bt_le_per_adv_sync *sync,
    		    const struct bt_le_per_adv_sync_recv_info *info,
    		    struct net_buf_simple *buf)
    {
    	char le_addr[BT_ADDR_LE_STR_LEN];
    	char data_str[129];
    
    	bt_addr_le_to_str(info->addr, le_addr, sizeof(le_addr));
    	bin2hex(buf->data, buf->len, data_str, sizeof(data_str));
    
    	printk("PER_ADV_SYNC[%u]: [DEVICE]: %s, tx_power %i, "
    	       "RSSI %i, CTE %u, data length %u, data: %s\n",
    	       bt_le_per_adv_sync_get_index(sync), le_addr, info->tx_power,
    	       info->rssi, info->cte_type, buf->len, data_str);
    }
    
    static struct bt_le_per_adv_sync_cb sync_callbacks = {
    	.synced = sync_cb,
    	.term = term_cb,
    	.recv = recv_cb
    };
    
    void main(void)
    {
    	struct bt_le_per_adv_sync_param sync_create_param;
    	struct bt_le_per_adv_sync *sync;
    	int err;
    
    	printk("Starting Periodic Advertising Synchronization Demo\n");
    
    #if defined(HAS_LED)
    	printk("Checking LED device...");
    	if (!device_is_ready(led.port)) {
    		printk("failed.\n");
    		return;
    	}
    	printk("done.\n");
    
    	printk("Configuring GPIO pin...");
    	err = gpio_pin_configure_dt(&led, GPIO_OUTPUT_ACTIVE);
    	if (err) {
    		printk("failed.\n");
    		return;
    	}
    	printk("done.\n");
    
    	k_work_init_delayable(&blink_work, blink_timeout);
    #endif /* HAS_LED */
    
    	/* Initialize the Bluetooth Subsystem */
    	err = bt_enable(NULL);
    	if (err) {
    		printk("Bluetooth init failed (err %d)\n", err);
    		return;
    	}
    
    	printk("Scan callbacks register...");
    	bt_le_scan_cb_register(&scan_callbacks);
    	printk("success.\n");
    
    	printk("Periodic Advertising callbacks register...");
    	bt_le_per_adv_sync_cb_register(&sync_callbacks);
    	printk("Success.\n");
    
    	printk("Start scanning...");
    	err = bt_le_scan_start(BT_LE_SCAN_ACTIVE, NULL);
    	if (err) {
    		printk("failed (err %d)\n", err);
    		return;
    	}
    	printk("success.\n");
    
    	do {
    #if defined(HAS_LED)
    		struct k_work_sync work_sync;
    
    		printk("Start blinking LED...\n");
    		led_is_on = false;
    		gpio_pin_set(led.port, led.pin, (int)led_is_on);
    		k_work_schedule(&blink_work, BLINK_ONOFF);
    #endif /* HAS_LED */
    
    		printk("Waiting for periodic advertising...\n");
    		per_adv_found = false;
    		err = k_sem_take(&sem_per_adv, K_FOREVER);
    		if (err) {
    			printk("failed (err %d)\n", err);
    			return;
    		}
    		printk("Found periodic advertising.\n");
    
    		printk("Creating Periodic Advertising Sync...");
    		bt_addr_le_copy(&sync_create_param.addr, &per_addr);
    		sync_create_param.options = 0;
    		sync_create_param.sid = per_sid;
    		sync_create_param.skip = 0;
    		sync_create_param.timeout = 0xa;
    		err = bt_le_per_adv_sync_create(&sync_create_param, &sync);
    		if (err) {
    			printk("failed (err %d)\n", err);
    			return;
    		}
    		printk("success.\n");
    
    		printk("Waiting for periodic sync...\n");
    		err = k_sem_take(&sem_per_sync, TIMEOUT_SYNC_CREATE);
    		if (err) {
    			printk("failed (err %d)\n", err);
    
    			printk("Deleting Periodic Advertising Sync...");
    			err = bt_le_per_adv_sync_delete(sync);
    			if (err) {
    				printk("failed (err %d)\n", err);
    				return;
    			}
    			continue;
    		}
    		printk("Periodic sync established.\n");
    
    #if defined(HAS_LED)
    		printk("Stop blinking LED.\n");
    		k_work_cancel_delayable_sync(&blink_work, &work_sync);
    
    		/* Keep LED on */
    		led_is_on = true;
    		gpio_pin_set(led.port, led.pin, (int)led_is_on);
    #endif /* HAS_LED */
    
    		printk("Waiting for periodic sync lost...\n");
    		err = k_sem_take(&sem_per_sync_lost, K_FOREVER);
    		if (err) {
    			printk("failed (err %d)\n", err);
    			return;
    		}
    		printk("Periodic sync lost.\n");
    	} while (true);
    }
    

    even it's set 'CONFIG_BT_CTLR_PHY_CODED=y' or not.

     *** Booting Zephyr OS build v2.7.0-ncs1  ***
    Starting Periodic Advertising Synchronization Demo
    Checking LED device...done.
    Configuring GPIO pin...done.
    Scan callbacks register...success.
    Periodic Advertising callbacks register...Success.
    Start scanning...success.
    Start blinking LED...
    Waiting for periodic advertising...
    [00:00:00.266,204] <inf> bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
    [00:00:00.266,204] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
    [00:00:00.266,204] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 2.7 Build 0
    [00:00:00.266,784] <inf> bt_hci_core: Identity: E6:DA:F5:21:3E:EE (random)
    [00:00:00.266,784] <inf> bt_hci_core: HCI: version 5.3 (0x0c) revision 0x0000, manufacturer 0x05f1
    [00:00:00.266,784] <inf> bt_hci_core: LMP: version 5.3 (0x0c) subver 0xffff
    

         

    Best regards,

    yuyou

  • Hi is the following function missing bt_le_ext_adv_set_data 

  • Hello,

    i add bt_le_ext_adv_set_data at line 74,

    but the periodic_sync  log show the same;

    "Prim: LE 1M, Secn: LE Coded, Interval: 0x03c0 (1200 ms)"

      

    periodic_adv source code and serial log,

    /*
     * Copyright (c) 2020 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: Apache-2.0
     */
    
    #include <bluetooth/bluetooth.h>
    #include "common/log.h"
    
    static uint8_t mfg_data[9] = { 0xff, 0xff, 0x00 };
    static struct bt_le_ext_adv_cb cb;//call back
    
    static const struct bt_data ad[] = {
    	BT_DATA(BT_DATA_MANUFACTURER_DATA, mfg_data, 9 ),
    };
    static const struct bt_data sd[] = {
    	BT_DATA(BT_DATA_MANUFACTURER_DATA, mfg_data, 9 ),
    };
    
    void sent(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_sent_info *info)
    {
            printk("Sent Data...");
    }
    void connected(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_connected_info *info)
    {
          printk("connected...");
    }
    void scanned(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_scanned_info *info)
    {
          printk("scanned...");
    }
    
    void main(void)
    {
    	struct bt_le_ext_adv *adv;
            cb.sent=sent;//call back
            cb.connected=connected;//call back
            cb.scanned=scanned;//call back
    	int err;
    
    	printk("Starting Periodic Advertising Demo\n");
    
    	/* Initialize the Bluetooth Subsystem */
    	err = bt_enable(NULL);
    	if (err) {
    		printk("Bluetooth init failed (err %d)\n", err);
    		return;
    	}
     
            /** Non-connectable extended advertising with @ref BT_LE_ADV_OPT_USE_NAME BT_LE_ADV_OPT_CODED */
           #define BT_LE_EXT_ADV_NCONN_NAME_CODED  BT_LE_ADV_PARAM(BT_LE_ADV_OPT_EXT_ADV | \
    						 BT_LE_ADV_OPT_USE_NAME | BT_LE_ADV_OPT_USE_TX_POWER | \
                                                     BT_LE_ADV_OPT_CODED, \
    						 BT_GAP_ADV_FAST_INT_MIN_1, \
    						 BT_GAP_ADV_FAST_INT_MAX_1, \
    						 NULL)   //Peer address, set to NULL for undirected advertising
    	/* Create a non-connectable non-scannable unDIRECTED advertising set */
    	err = bt_le_ext_adv_create(BT_LE_EXT_ADV_NCONN_NAME_CODED, &cb, &adv);
    	if (err) {
    		printk("Failed to create advertising set (err %d)\n", err);
    		return;
    	}
    
            #define BT_LE_PER_ADV_P   BT_LE_PER_ADV_PARAM(BT_GAP_PER_ADV_FAST_INT_MIN_1, \
    						  BT_GAP_PER_ADV_FAST_INT_MIN_1, \
    						  BT_LE_PER_ADV_OPT_USE_TX_POWER)
    	/* Set periodic advertising parameters */
    	err = bt_le_per_adv_set_param(adv,BT_LE_PER_ADV_DEFAULT);
    	if (err) {
    		printk("Failed to set periodic advertising parameters"
    		       " (err %d)\n", err);
    		return;
    	}
            err = bt_le_ext_adv_set_data(adv,ad, ARRAY_SIZE(ad),sd, ARRAY_SIZE(sd) );
    
    	/* Enable Periodic Advertising */
    	err = bt_le_per_adv_start(adv);
    	if (err) {
    		printk("Failed to enable periodic advertising (err %d)\n", err);
    		return;
    	}
    
    	/* Start extended advertising */
    	err = bt_le_ext_adv_start(adv, BT_LE_EXT_ADV_START_DEFAULT);
    	if (err) {
    		printk("Failed to start extended advertising (err %d)\n", err);
    		return;
    	}
    
            for(int i=0;i<sizeof(mfg_data);i++){mfg_data[i]=0;}
    	while (true) {
    		k_sleep(K_SECONDS(1));
    
    		mfg_data[2]++;
    
    		printk("Set Periodic Advertising Data...");
    		err = bt_le_per_adv_set_data(adv, ad, ARRAY_SIZE(ad));
    		if (err) {
    			printk("Failed (err %d)\n", err);
    			return;
    		}
    		printk("done.\n");
    	}
    }
    

     *** Booting Zephyr OS build v2.7.0-ncs1  ***
    Starting Periodic Advertising Demo
    [00:00:00.262,756] <inf> bt_hci_coreSet Periodic Advertising Data...done.
    : HW Platform: Nordic Semiconductor (0x0002)
    [00:00:00.262,756] <inf> bt_hci_core: HW Variant: nRF52x (0x0002)
    [00:00:00.262,786] <inf> bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 2.7 Build 0
    [00:00:00.263,366] <inf> bt_hci_core: Identity: F7:42:24:3A:91:18 (random)
    [00:00:00.263,366] <inf> bt_hci_core: HCI: version 5.3 (0x0c) revision 0x0000, manufacturer 0x05f1
    [00:00:00.263,366] <inf> bt_hci_core: LMP: version 5.3 (0x0c) subver 0xffff
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.
    Set Periodic Advertising Data...done.

      

    periodic_sync  serial log

    [DEVICE]: 0D:7E:90:95:48:AB (random), AD evt type 5, Tx Pwr: 0, RSSI -25 PerAdv C:0 S:0 D:0 SR:0 E:1 Prim: LE 1M, Secn: LE Coded, Interval: 0x03c0 (1200 ms), SID: 0
    Found periodic advertising.
    Creating Periodic Advertising Sync...success.
    Waiting for periodic sync...
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random) synced, Interval 0x03c0 (1200 ms), PHY LE Coded
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff000001000000000000
    Periodic sync established.
    Stop blinking LED.
    Waiting for periodic sync lost...
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff000002000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff000003000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff000005000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff000007000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff000008000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff000009000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff00000a000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff00000b000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff00000d000000000000
    PER_ADV_SYNC[0]: [DEVICE]: 0D:7E:90:95:48:AB (random), tx_power 127, RSSI -127, CTE 0, data length 11, data: 0aff00000e000000000000
    

       

    Best regards,

    yuyou

  • Check the error status when using bt_le_ext_adv_set_data 

  • The reason I'm asking is that I have an error which I didn't have prior to SDK V1.8 which causes the advert to fail.

Related