<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ANT+ with NCS BLE scanning</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/114352/ant-with-ncs-ble-scanning</link><description>Hello, 
 I&amp;#39;m currently working on NCS2.6.0 and ANT sdk v1.3.0, 
 I would like to know is it possible to do BLE scanning(without connection) and ANT+ heart rate searching at the same time? 
 
 Now I&amp;#39;m able to scan BLE manufacturer data and ANT+ heart rate</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 04 Sep 2024 08:34:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/114352/ant-with-ncs-ble-scanning" /><item><title>RE: ANT+ with NCS BLE scanning</title><link>https://devzone.nordicsemi.com/thread/501100?ContentTypeID=1</link><pubDate>Wed, 04 Sep 2024 08:34:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dd3fd107-ba55-4127-9589-bb27f2ce5808</guid><dc:creator>ekidsalan123</dc:creator><description>&lt;p&gt;Okay, thanks for your help!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ANT+ with NCS BLE scanning</title><link>https://devzone.nordicsemi.com/thread/501092?ContentTypeID=1</link><pubDate>Wed, 04 Sep 2024 08:11:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:22817245-fa34-4f88-bd9d-1297e4602392</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;They will be interleaved, since the channels are not the same between BLE and ANT, they can not occur simultaneously. So I am not suprised if the scan/search results are halved for each of them no.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ANT+ with NCS BLE scanning</title><link>https://devzone.nordicsemi.com/thread/501049?ContentTypeID=1</link><pubDate>Wed, 04 Sep 2024 00:48:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:53badacc-f34e-4802-9d9c-cf491b772f6f</guid><dc:creator>ekidsalan123</dc:creator><description>&lt;p&gt;Thanks for your help,&amp;nbsp;&lt;span&gt;Kenneth.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;As you said, adding following code could disable timeout settings.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;const ant_search_config_t m_search_config =
    {
        .channel_number        = 0,
        .low_priority_timeout  = ANT_LOW_PRIORITY_TIMEOUT_DISABLE,
        .high_priority_timeout = ANT_HIGH_PRIORITY_SEARCH_DISABLE,
        .search_sharing_cycles = ANT_SEARCH_SHARING_CYCLES_DISABLE,
        .search_priority       = ANT_SEARCH_PRIORITY_DEFAULT,
        .waveform              = ANT_WAVEFORM_DEFAULT,
    };
    
    err = ant_search_init(&amp;amp;m_search_config);
	if (err) {
		LOG_ERR(&amp;quot;ant_search_init() failed: 0x%X&amp;quot;, err);
		return err;
	}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I can now perform both BLE scanning and ANT+ searching, but I&amp;#39;m confused: is it normal for the scanning and searching to be slower than when they were combined previously?&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ANT+ with NCS BLE scanning</title><link>https://devzone.nordicsemi.com/thread/500901?ContentTypeID=1</link><pubDate>Tue, 03 Sep 2024 08:55:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:426b1e28-e777-4e49-89d2-b73e2ffd593f</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user="ekidsalan123"]but I think ANT+ searching stopped few seconds after BLE scanning started to catch my target advertisment data.[/quote]
&lt;p&gt;Be aware that there are both low priority and high priority ANT search options, and some will time out after a few seconds by default:&lt;br /&gt;&lt;a href="https://www.thisisant.com/resources/an11-ant-channel-search-and-background-scanning-channel/"&gt;https://www.thisisant.com/resources/an11-ant-channel-search-and-background-scanning-channel/&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The above application note is a bit old, but it explain the difference between the two. You can control the search priority by calling&amp;nbsp;ant_search_init(&amp;amp;m_search_config).&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ANT+ with NCS BLE scanning</title><link>https://devzone.nordicsemi.com/thread/500853?ContentTypeID=1</link><pubDate>Tue, 03 Sep 2024 00:50:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9160ea42-3146-4409-a406-3849432d2eab</guid><dc:creator>ekidsalan123</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;span&gt;Kenneth,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thanks for your reply.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I tested my code with&amp;nbsp;scan window = 100ms and BLE scan interval = 200ms, but I think ANT+ searching stopped few seconds after BLE scanning started to catch my target advertisment data.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Do you have any idea about it?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here&amp;#39;s my steps of testing:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1.Start nRF52 and enable RTT log&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2.Turn on ANT+ device A&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3.Turn on ANT+ device B and BLE device&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;4.Turn off BLE device&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;My ANT+ device A never turn off, but the nRF52 device stop at [00:00:40.470,886], and never searching again&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here&amp;#39;s the main.c code, I&amp;#39;m going to test on nRF52840 first and later move for nRF52832:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;/*
 * Copyright (c) 2019 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief Sample echo app for CDC ACM class
 *
 * Sample app for USB CDC ACM class driver. The received data is echoed back
 * to the serial port.
 */

#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;zephyr/device.h&amp;gt;
#include &amp;lt;zephyr/drivers/uart.h&amp;gt;
#include &amp;lt;zephyr/kernel.h&amp;gt;
#include &amp;lt;zephyr/sys/ring_buffer.h&amp;gt;

#include &amp;lt;errno.h&amp;gt;
#include &amp;lt;zephyr/devicetree.h&amp;gt;
#include &amp;lt;zephyr/sys/byteorder.h&amp;gt;
#include &amp;lt;zephyr/sys/printk.h&amp;gt;

#include &amp;lt;zephyr/bluetooth/bluetooth.h&amp;gt;
#include &amp;lt;zephyr/bluetooth/hci.h&amp;gt;
#include &amp;lt;zephyr/bluetooth/conn.h&amp;gt;
#include &amp;lt;zephyr/bluetooth/uuid.h&amp;gt;
#include &amp;lt;zephyr/bluetooth/gatt.h&amp;gt;

#include &amp;lt;bluetooth/gatt_dm.h&amp;gt;
#include &amp;lt;bluetooth/scan.h&amp;gt;

#include &amp;lt;zephyr/settings/settings.h&amp;gt;

#include &amp;lt;zephyr/kernel.h&amp;gt;
#include &amp;lt;zephyr/drivers/gpio.h&amp;gt;

#include &amp;lt;zephyr/usb/usb_device.h&amp;gt;
#include &amp;lt;zephyr/usb/usbd.h&amp;gt;
#include &amp;lt;zephyr/logging/log.h&amp;gt;

#define ENABLE_ANT_PLUS
#ifdef ENABLE_ANT_PLUS
#include &amp;lt;ant_parameters.h&amp;gt;
#include &amp;lt;ant_state_indicator.h&amp;gt;
#include &amp;lt;ant_key_manager.h&amp;gt;
#include &amp;lt;ant_profiles/hrm/ant_hrm.h&amp;gt;
#include &amp;quot;ant_interface.h&amp;quot;
#endif

LOG_MODULE_REGISTER(cdc_acm_echo, LOG_LEVEL_INF);

const struct device *dev;

static void gpio_output_voltage_setup_3v3(void)
{
	
	if ((NRF_UICR-&amp;gt;REGOUT0 &amp;amp; UICR_REGOUT0_VOUT_Msk) !=
		(UICR_REGOUT0_VOUT_3V3 &amp;lt;&amp;lt; UICR_REGOUT0_VOUT_Pos))
	{
		NRF_NVMC-&amp;gt;CONFIG = NVMC_CONFIG_WEN_Wen;
		while (NRF_NVMC-&amp;gt;READY == NVMC_READY_READY_Busy)
		{
		}

		NRF_UICR-&amp;gt;REGOUT0 = (NRF_UICR-&amp;gt;REGOUT0 &amp;amp; ~((uint32_t)UICR_REGOUT0_VOUT_Msk)) |
							(UICR_REGOUT0_VOUT_3V3 &amp;lt;&amp;lt; UICR_REGOUT0_VOUT_Pos);

		NRF_NVMC-&amp;gt;CONFIG = NVMC_CONFIG_WEN_Ren;
		while (NRF_NVMC-&amp;gt;READY == NVMC_READY_READY_Busy)
		{
		}

		
		NVIC_SystemReset();
	}
}

#endif
#define LED0_NODE DT_ALIAS(led0)
static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(LED0_NODE, gpios);

#define RING_BUF_SIZE 1024
uint8_t ring_buffer[RING_BUF_SIZE];

struct ring_buf ringbuf;

static bool rx_throttled;

static void interrupt_handler(const struct device *dev, void *user_data)
{
	ARG_UNUSED(user_data);

	while (uart_irq_update(dev) &amp;amp;&amp;amp; uart_irq_is_pending(dev))
	{
		if (!rx_throttled &amp;amp;&amp;amp; uart_irq_rx_ready(dev))
		{
			int recv_len, rb_len;
			uint8_t buffer[64];
			size_t len = MIN(ring_buf_space_get(&amp;amp;ringbuf),
							 sizeof(buffer));

			if (len == 0)
			{
				/* Throttle because ring buffer is full */
				uart_irq_rx_disable(dev);
				rx_throttled = true;
				continue;
			}

			recv_len = uart_fifo_read(dev, buffer, len);
			if (recv_len &amp;lt; 0)
			{
				LOG_ERR(&amp;quot;Failed to read UART FIFO&amp;quot;);
				recv_len = 0;
			};

			rb_len = ring_buf_put(&amp;amp;ringbuf, buffer, recv_len);
			if (rb_len &amp;lt; recv_len)
			{
				LOG_ERR(&amp;quot;Drop %u bytes&amp;quot;, recv_len - rb_len);
			}

			LOG_DBG(&amp;quot;tty fifo -&amp;gt; ringbuf %d bytes&amp;quot;, rb_len);
			if (rb_len)
			{
				uart_irq_tx_enable(dev);
			}
		}

		if (uart_irq_tx_ready(dev))
		{
			uint8_t buffer[64];
			int rb_len, send_len;

			rb_len = ring_buf_get(&amp;amp;ringbuf, buffer, sizeof(buffer));
			if (!rb_len)
			{
				LOG_DBG(&amp;quot;Ring buffer empty, disable TX IRQ&amp;quot;);
				uart_irq_tx_disable(dev);
				continue;
			}

			if (rx_throttled)
			{
				uart_irq_rx_enable(dev);
				rx_throttled = false;
			}

			send_len = uart_fifo_fill(dev, buffer, rb_len);
			if (send_len &amp;lt; rb_len)
			{
				LOG_ERR(&amp;quot;Drop %d bytes&amp;quot;, rb_len - send_len);
			}

			LOG_DBG(&amp;quot;ringbuf -&amp;gt; tty fifo %d bytes&amp;quot;, send_len);
		}
	}
}

static void scan_cb(const bt_addr_le_t *addr, int8_t rssi, uint8_t adv_type,
					struct net_buf_simple *buf)
{
}

static void ant_hrm_evt_handler(ant_hrm_profile_t *p_profile, ant_hrm_evt_t event);

HRM_DISP_CHANNEL_CONFIG_DEF(hrm, CONFIG_HRM_RX_CHANNEL_NUM, CONFIG_HRM_RX_CHAN_ID_TRANS_TYPE,
							CONFIG_HRM_RX_CHAN_ID_DEV_NUM, CONFIG_HRM_RX_NETWORK_NUM,
							HRM_MSG_PERIOD_4Hz);

static ant_hrm_profile_t hrm;

static void ant_hrm_evt_handler(ant_hrm_profile_t *p_profile, ant_hrm_evt_t event)
{
	switch (event)
	{
	case ANT_HRM_PAGE_0_UPDATED:
		/* fall through */
	case ANT_HRM_PAGE_1_UPDATED:
		/* fall through */
	case ANT_HRM_PAGE_2_UPDATED:
		/* fall through */
	case ANT_HRM_PAGE_3_UPDATED:
		/* fall through */
	case ANT_HRM_PAGE_4_UPDATED:
		LOG_INF(&amp;quot;Page was updated&amp;quot;);
		break;
	default:
		break;
	}
}

static int utils_setup(void)
{
	int err = ant_state_indicator_init(hrm.channel_number, HRM_DISP_CHANNEL_TYPE);
	if (err)
	{
		LOG_ERR(&amp;quot;ant_state_indicator_init failed: %d&amp;quot;, err);
		return err;
	}

	return err;
}

static void ant_evt_handler(ant_evt_t *p_ant_evt)
{
	// ant_hrm_disp_evt_handler(p_ant_evt, &amp;amp;hrm);
	int ret;
	char data[128];
	int data_len = 0;

	if (p_ant_evt-&amp;gt;event == EVENT_RX)
	{
		
		ANT_MESSAGE *p_ant_message = (ANT_MESSAGE *)&amp;amp;p_ant_evt-&amp;gt;message;
		uint16_t device_id = (uint16_t)(p_ant_message-&amp;gt;ANT_MESSAGE_aucExtData[0] |
										((uint16_t)p_ant_message-&amp;gt;ANT_MESSAGE_aucExtData[1] &amp;lt;&amp;lt; 8));
		
		uint8_t rssi = p_ant_message-&amp;gt;ANT_MESSAGE_aucExtData[5];
		
		uint8_t current_heart_rate = hrm.HRM_PROFILE_computed_heart_rate;
		
		printk(&amp;quot;-----------------Received Device ID: %d, RSSI: %d, HeartRate: %d\n&amp;quot;, device_id, rssi, current_heart_rate);
		data_len = snprintf(data, sizeof(data), &amp;quot;(HRM,%d,[%d])&amp;quot;, device_id, current_heart_rate);

#ifdef CONFIG_BOARD_NRF52DK_NRF52832
		uart_data_send(uart, data, data_len);
		ret = gpio_pin_toggle_dt(&amp;amp;led);
		if (ret &amp;lt; 0)
		{
			return 0;
		}
#elif defined(CONFIG_BOARD_NRF52840DK_NRF52840)
		int bytes_written = uart_fifo_fill(dev, data, data_len);
		if (bytes_written &amp;lt; data_len)
		{
			LOG_INF(&amp;quot;Error during UART transmission&amp;quot;);
		}
		else
		{
			LOG_INF(&amp;quot;Sent %d bytes over UART&amp;quot;, bytes_written);
			ret = gpio_pin_toggle_dt(&amp;amp;led);
			if (ret &amp;lt; 0)
			{
				return 0;
			}
		}
#endif
	}
}

static int profile_setup(void)
{
	int err = ant_hrm_disp_init(&amp;amp;hrm, HRM_DISP_CHANNEL_CONFIG(hrm), ant_hrm_evt_handler);
	if (err)
	{
		LOG_ERR(&amp;quot;ant_hrm_disp_init failed: %d&amp;quot;, err);
		return err;
	}

	err = ant_hrm_disp_open(&amp;amp;hrm);
	if (err)
	{
		LOG_ERR(&amp;quot;ant_hrm_disp_open failed: %d&amp;quot;, err);
		return err;
	}
	ant_state_indicator_channel_opened();
	return err;
}

int ant_stack_setup(void)
{
	int err = ant_init();
	if (err)
	{
		LOG_ERR(&amp;quot;ant_init failed: %d&amp;quot;, err);
		return err;
	}
	LOG_INF(&amp;quot;ANT Version %s&amp;quot;, ANT_VERSION_STRING);

	err = ant_cb_register(&amp;amp;ant_evt_handler);
	if (err)
	{
		LOG_ERR(&amp;quot;ant_cb_register failed: %d&amp;quot;, err);
		return err;
	}

	err = ant_plus_key_set(CONFIG_HRM_RX_NETWORK_NUM);
	if (err)
	{
		LOG_ERR(&amp;quot;ant_plus_key_set failed: %d&amp;quot;, err);
	}
	return err;
}

static int start_scan(void) {
  uint8_t channel_number = 0;  

  ant_channel_config_t channel_config = {
    .channel_number = channel_number,
    .channel_type = CHANNEL_TYPE_SLAVE_RX_ONLY, 
    .ext_assign = EXT_PARAM_ALWAYS_SEARCH,  
    .rf_freq = 57,  
    .transmission_type = 0, 
    .device_type = 120,  
    .device_number = 0, 
    .channel_period = 8070, 
    .network_number = CONFIG_HRM_RX_NETWORK_NUM
  };

  int err = ant_channel_init(&amp;amp;channel_config);
  if (err) {
    LOG_ERR(&amp;quot;ant_channel_init failed: %d&amp;quot;, err);
    return err;
  }

  err = ant_channel_open(channel_number);
  if (err) {
    LOG_ERR(&amp;quot;ant_channel_open failed: %d&amp;quot;, err);
    return err;
  }

  LOG_INF(&amp;quot;ANT+ scanning started on channel %d&amp;quot;, channel_number);

  return 0;
}

int main(void)
{

	uint32_t baudrate, dtr = 0U;
	int ret;
	int err;
#ifdef CONFIG_BOARD_NRF52840DK_NRF52840
	gpio_output_voltage_setup_3v3();
#endif

	if (!gpio_is_ready_dt(&amp;amp;led))
	{
		return 0;
	}

	ret = gpio_pin_configure_dt(&amp;amp;led, GPIO_OUTPUT | GPIO_ACTIVE_LOW);
	if (ret &amp;lt; 0)
	{
		return 0;
	}

	gpio_pin_set_dt(&amp;amp;led, 1);
#ifdef CONFIG_BOARD_NRF52DK_NRF52832

	UART_INIT();

#elif defined(CONFIG_BOARD_NRF52840DK_NRF52840)
	dev = DEVICE_DT_GET_ONE(zephyr_cdc_acm_uart);
	if (!device_is_ready(dev))
	{
		LOG_ERR(&amp;quot;CDC ACM device not ready&amp;quot;);
		return 0;
	}

#if defined(CONFIG_USB_DEVICE_STACK_NEXT)
	ret = enable_usb_device_next();
#else
	ret = usb_enable(NULL);
#endif

	if (ret != 0)
	{
		LOG_ERR(&amp;quot;Failed to enable USB&amp;quot;);
		return 0;
	}

	ring_buf_init(&amp;amp;ringbuf, sizeof(ring_buffer), ring_buffer);

	LOG_INF(&amp;quot;Wait for DTR&amp;quot;);

	/* They are optional, we use them to test the interrupt endpoint */
	ret = uart_line_ctrl_set(dev, UART_LINE_CTRL_DCD, 1);
	if (ret)
	{
		LOG_WRN(&amp;quot;Failed to set DCD, ret code %d&amp;quot;, ret);
	}

	ret = uart_line_ctrl_set(dev, UART_LINE_CTRL_DSR, 1);
	if (ret)
	{
		LOG_WRN(&amp;quot;Failed to set DSR, ret code %d&amp;quot;, ret);
	}

	/* Wait 100ms for the host to do all settings */
	k_msleep(100);

	ret = uart_line_ctrl_get(dev, UART_LINE_CTRL_BAUD_RATE, &amp;amp;baudrate);
	if (ret)
	{
		LOG_WRN(&amp;quot;Failed to get baudrate, ret code %d&amp;quot;, ret);
	}
	else
	{
		LOG_INF(&amp;quot;Baudrate detected: %d&amp;quot;, baudrate);
	}

	uart_irq_callback_set(dev, interrupt_handler);

	/* Enable rx interrupts */
	uart_irq_rx_enable(dev);
#endif

#ifdef ENABLE_ANT_PLUS
	err = ant_stack_setup();
	if (err)
	{
		goto ERROR_EXIT;
	}

	err = start_scan();
	if (err) {
		goto ERROR_EXIT;
	}
#endif

	ret = bt_enable(NULL);
	if (ret)
	{
		printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, ret);
		return;
	}

	if (IS_ENABLED(CONFIG_SETTINGS))
	{
		settings_load();
	}

	printk(&amp;quot;Bluetooth initialized\n&amp;quot;);

	struct bt_le_scan_param scan_param = {
		.type = BT_LE_SCAN_TYPE_ACTIVE,
		.options = BT_LE_SCAN_OPT_NONE,
		.interval = 0x0140,
		.window = 0x00A0,
	};

	ret = bt_le_scan_start(&amp;amp;scan_param, scan_cb);
	if (ret)
	{
		printk(&amp;quot;Starting scanning failed (err %d)\n&amp;quot;, ret);
		return;
	}

	printk(&amp;quot;Scanning successfully started\n&amp;quot;);
	return 0;

#ifdef ENABLE_ANT_PLUS
ERROR_EXIT:
	ant_state_indicator_fatal_error();
	k_oops();
#endif

	return 0;
}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Here&amp;#39;s my RTT log:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;*** Booting nRF Connect SDK v3.5.99-ncs1 ***
[00:00:00.002,288] &amp;lt;inf&amp;gt; cdc_acm_echo: Wait for DTR
[00:00:00.381,988] &amp;lt;inf&amp;gt; cdc_acm_echo: Baudrate detected: 115200
[00:00:00.382,141] &amp;lt;inf&amp;gt; cdc_acm_echo: ANT Version 1.03.00
[00:00:00.382,446] &amp;lt;inf&amp;gt; cdc_acm_echo: ANT+ scanning started on channel 0
[00:00:00.382,598] &amp;lt;inf&amp;gt; bt_sdc_hci_driver: SoftDevice Controller build revision: 
                                            36 f0 e5 0e 87 68 48 fb  02 fd 9f 82 cc 32 e5 7b |6....hH. .....2.{
                                            91 b1 5c ed                                      |..\.             
[00:00:00.386,322] &amp;lt;inf&amp;gt; bt_hci_core: HW Platform: Nordic Semiconductor (0x0002)
[00:00:00.386,352] &amp;lt;inf&amp;gt; bt_hci_core: HW Variant: nRF52x (0x0002)
[00:00:00.386,383] &amp;lt;inf&amp;gt; bt_hci_core: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
[00:00:00.387,817] &amp;lt;inf&amp;gt; bt_hci_core: Identity: C6:98:B6:50:D1:ED (random)eceived Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:01.321,105] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:01.321,136] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:04.522,583] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:04.522,583] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:05.015,075] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:05.015,106] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:07.724,029] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:07.724,060] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:11.418,029] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:11.418,029] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:14.619,506] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:14.619,506] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:17.820,953] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:17.820,953] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:18.313,476] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:18.313,476] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 13105, RSSI: 0, HeartRate: 0
[00:00:21.514,953] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:21.514,953] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 38858, RSSI: 0, HeartRate: 0
[00:00:21.890,380] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:21.890,411] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 38858, RSSI: 0, HeartRate: 0
[00:00:22.383,178] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:22.383,178] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 38858, RSSI: 0, HeartRate: 0
[00:00:25.584,625] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:25.584,625] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 38858, RSSI: 0, HeartRate: 0
[00:00:28.786,041] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:28.786,071] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
-----------------Received Device ID: 38858, RSSI: 0, HeartRate: 0
[00:00:29.278,320] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 15 bytes
[00:00:29.278,320] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -44
Manufacturer Data: 00 00 00 00 37 48 
[00:00:30.456,665] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:30.456,695] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -45
Manufacturer Data: 00 00 00 00 37 48 
[00:00:31.450,164] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:31.450,195] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -46
Manufacturer Data: 00 00 00 00 37 48 
[00:00:32.459,899] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:32.459,930] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -44
Manufacturer Data: 00 00 00 00 37 48 
[00:00:33.459,808] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:33.459,838] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -44
Manufacturer Data: 00 00 00 00 37 48 
[00:00:35.463,592] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:35.463,623] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -44
Manufacturer Data: 00 00 00 00 37 48 
[00:00:36.471,710] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:36.471,740] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -45
Manufacturer Data: 00 00 00 00 37 48 
[00:00:37.471,466] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:37.471,496] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -44
Manufacturer Data: 00 00 00 00 37 48 
[00:00:38.466,064] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:38.466,094] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -43
Manufacturer Data: 00 00 00 00 37 48 
[00:00:39.473,724] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:39.473,754] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission
Filtered Device Found: E8:89:51:C1:E9:E8 (random), Name: HW851-0235466, RSSI: -44
Manufacturer Data: 00 00 00 00 37 48 
[00:00:40.470,855] &amp;lt;wrn&amp;gt; usb_cdc_acm: Device not configured or suspended, drop 31 bytes
[00:00:40.470,886] &amp;lt;inf&amp;gt; cdc_acm_echo: Error during UART transmission&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ANT+ with NCS BLE scanning</title><link>https://devzone.nordicsemi.com/thread/500800?ContentTypeID=1</link><pubDate>Mon, 02 Sep 2024 13:41:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c0809613-99af-4e35-9129-d289dd28b061</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;They will need to be duty cycled in some way.&lt;/p&gt;
&lt;p&gt;I would likely have looked at the ANT background scanning example:&lt;br /&gt;\ant\samples\ant_background_scanning\&lt;/p&gt;
&lt;p&gt;Then at the same time ensure that the BLE scanning have reasonable scanning window and interval that still allow ANT background scanning to occur. So if you for instance set BLE scan window = 100ms and BLE scan interval = 200ms, I would expect it would allow both ANT scanning and BLE scanning to occur.&lt;/p&gt;
&lt;p&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ANT+ with NCS BLE scanning</title><link>https://devzone.nordicsemi.com/thread/500616?ContentTypeID=1</link><pubDate>Fri, 30 Aug 2024 14:47:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ae7c41b6-ae56-4bef-8fb0-eea1f030b416</guid><dc:creator>runsiv</dc:creator><description>&lt;p&gt;Hi Alan&lt;/p&gt;
&lt;p&gt;Our ANT expert will be back in office on Monday and will look into your case&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Runar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>