<?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+ acknowledgement packet send and receive between two nrf52 boards</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/97305/ant-acknowledgement-packet-send-and-receive-between-two-nrf52-boards</link><description>Hi, 
 
 I tried to search example for ANT+ ack packet between two nrf52 boards but not found any. Would you please help me to understand and solve this scheme? 
 
 NOTE: The packet is sd_ant_time_sync_broadcast_tx - I am not sure if it has ACK packet</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 20 Mar 2023 12:56:06 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/97305/ant-acknowledgement-packet-send-and-receive-between-two-nrf52-boards" /><item><title>RE: ANT+ acknowledgement packet send and receive between two nrf52 boards</title><link>https://devzone.nordicsemi.com/thread/416262?ContentTypeID=1</link><pubDate>Mon, 20 Mar 2023 12:56:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:71661ede-48b3-4ab9-a765-c3d4755b6c3c</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;The ACK and ACK with packet only works one to one (one ptx to one prx), if you need data from several prx, then you need to use different addresses and send data to each prx.&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+ acknowledgement packet send and receive between two nrf52 boards</title><link>https://devzone.nordicsemi.com/thread/415944?ContentTypeID=1</link><pubDate>Fri, 17 Mar 2023 10:23:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5be02839-b30a-4a01-a8db-e1ad0b22c90f</guid><dc:creator>TitanDaniel</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I figured it out and I can receive ACK from 1 slave, but when I add 2nd slaves, only one ACK package is received, as you can see here:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/6204.Capture.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;Both devices successfully send ACK with different device ID (0x01 and 0x02), but only one ACK event raises on the master side.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I tried several way but I cannot understand why this happen. Would you please advice?&lt;/p&gt;
&lt;p&gt;Thank you so much!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ANT+ acknowledgement packet send and receive between two nrf52 boards</title><link>https://devzone.nordicsemi.com/thread/414110?ContentTypeID=1</link><pubDate>Wed, 08 Mar 2023 12:05:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8968cadc-61ef-4630-a583-b45d17f6c24d</guid><dc:creator>Kenneth</dc:creator><description>[quote user="TitanDaniel"]I tried to configure two channel, one for Time Sync broadcast and one for scaning ACK but I have &amp;quot;ERROR 16435 [Unknown error code] at ..\..\..\main.c:279&amp;quot; line[/quote]
&lt;p&gt;Step into&amp;nbsp;ant_channel_init(&amp;amp;bs_channel_config);//&amp;lt;ERROR HERE&amp;gt; to find more exact which api is returning an error.&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+ acknowledgement packet send and receive between two nrf52 boards</title><link>https://devzone.nordicsemi.com/thread/414053?ContentTypeID=1</link><pubDate>Wed, 08 Mar 2023 09:43:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:95ecea48-ce90-4971-8834-a9791810ca49</guid><dc:creator>TitanDaniel</dc:creator><description>&lt;p&gt;Hello Kenneth,&lt;/p&gt;
&lt;p&gt;Thank you for your reply. I have a question, I found in&amp;nbsp;here &lt;a href="https://infocenter.nordicsemi.com/index.jsp?topic=%2Fug_nrf52832_dk%2FUG%2Fdk%2Fintro.html"&gt;ANT Continuous Scanning Controller&lt;/a&gt;&amp;nbsp;the node receives and sends back acknowledgment by&amp;nbsp;&lt;span&gt;sd_ant_acknowledge_message_tx with another NETWORK_NUMBER&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Your idea about one-to-one communicate, is it usable with ANT time sync protocol, since time sync packet is initialized as&amp;nbsp; broadcast?&lt;/p&gt;
&lt;p&gt;Besides, here is my configure for the ANT stack, is it correct?&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/6765.IMG.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I tried to configure two channel, one for Time Sync broadcast and one for scaning ACK but I have &amp;quot;ERROR 16435 [Unknown error code] at ..\..\..\main.c:279&amp;quot; line &lt;strong&gt;ant_channel_init(&amp;amp;bs_channel_config);&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void ant_channel_tx_broadcast_setup(void)
{
    uint32_t             err_code;
    ANT_TIME_SYNC_CONFIG syncConfig;

    // Configure ANT Time Synchronization using RTC1
    syncConfig.ucTimeBase           = ANT_TIME_BASE_ALT2; // RTC2
    syncConfig.bInvalidationEnabled = true;
    syncConfig.ucInvalidationByte   = INVALID_PAGE;       // Invalid page number set to 0xFF
    err_code                        = sd_ant_time_sync_config_set(&amp;amp;syncConfig);
    APP_ERROR_CHECK(err_code);

    // Configure ANT Channel
    ant_channel_config_t broadcast_channel_config =
    {
        .channel_number    = BROADCAST_CHANNEL_NUMBER,
        .channel_type      = CHANNEL_TYPE_MASTER,
        .ext_assign        = 0x00,
        .rf_freq           = RF_FREQ,
        .transmission_type = CHAN_ID_TRANS_TYPE,
        .device_type       = CHAN_ID_DEV_TYPE,
        .device_number     = CHAN_ID_DEV_NUM,
        .channel_period    = CHAN_PERIOD,
        .network_number    = ANT_NETWORK_NUM,
    };

    err_code = ant_channel_init(&amp;amp;broadcast_channel_config);
    APP_ERROR_CHECK(err_code);

    const ant_channel_config_t bs_channel_config =
    {
        .channel_number    = RECEIVE_CHANNEL_NUMBER,
        .channel_type      = CHANNEL_TYPE_SLAVE,
        .ext_assign        = EXT_PARAM_ALWAYS_SEARCH,
        .rf_freq           = RF_FREQ,
        .transmission_type = CHAN_ID_TRANS_TYPE,
        .device_type       = CHAN_ID_DEV_TYPE,
        .device_number     = 0x00,              // Wild card
        .channel_period    = 0x00,              // This is not taken into account.
        .network_number    = ANT_NETWORK_NUM,
    };

    const ant_search_config_t bs_search_config =
    {
        .channel_number        = RECEIVE_CHANNEL_NUMBER,
        .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_code = ant_channel_init(&amp;amp;bs_channel_config);//&amp;lt;ERROR HERE&amp;gt;
    APP_ERROR_CHECK(err_code);

    err_code = ant_search_init(&amp;amp;bs_search_config);
    APP_ERROR_CHECK(err_code);

    // Fill tx buffer for the first frame

    err_code = sd_ant_channel_open(RECEIVE_CHANNEL_NUMBER);
    APP_ERROR_CHECK(err_code);
    // Open channel.
    err_code = sd_ant_channel_open(BROADCAST_CHANNEL_NUMBER);
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;I really appreciate your help and looking forward to your response.&lt;/p&gt;
&lt;p&gt;Best Regards,&lt;/p&gt;
&lt;p&gt;Daniel&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: ANT+ acknowledgement packet send and receive between two nrf52 boards</title><link>https://devzone.nordicsemi.com/thread/413787?ContentTypeID=1</link><pubDate>Tue, 07 Mar 2023 11:08:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e94d75a-2a33-440d-bac2-677bd9bcafb3</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;In ANT there are 3 types of communication:&lt;/p&gt;
&lt;p&gt;- broadcast (data is sent from a master, but&amp;nbsp;the master don&amp;#39;t know if&amp;nbsp;any slave received it), works one to many communication.&lt;/p&gt;
&lt;p&gt;- acknowledged (data is sent from master, and the&amp;nbsp;slave will send an ack in reverse direction to acknowledge the reception), only work one to one communication.&lt;/p&gt;
&lt;p&gt;-broadcast (send data fast), only work one to one communication.&lt;/p&gt;
&lt;p&gt;There will always be transmisson from master to slave, while slave to master is optional. The&amp;nbsp;&lt;a href="https://www.thisisant.com/resources/ant-message-protocol-and-usage"&gt;https://www.thisisant.com/resources/ant-message-protocol-and-usage&lt;/a&gt;&amp;nbsp;is a very useful document to read to understand ANT.&lt;/p&gt;
&lt;p&gt;There are several ANT example that show various types of communication in the nRF5 SDK:&lt;br /&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/examples_ant.html"&gt;https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/examples_ant.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to communicate with several slave devices, and rely on data to be received also from the slaves. Then I recommend to setup individual ANT channels between the master and the slave. A master can support several ANT channels.&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+ acknowledgement packet send and receive between two nrf52 boards</title><link>https://devzone.nordicsemi.com/thread/413467?ContentTypeID=1</link><pubDate>Mon, 06 Mar 2023 09:57:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:01a4effe-1ee8-4185-bda0-4bb30ecfe49c</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi Daniel&lt;/p&gt;
&lt;p&gt;Our ANT+ expert is out of office today, but will be back in tomorrow. You can expect a reply tomorrow or Wednesday. Thank you for your patience.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>