<?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>Sensitivity, 125 kbps BLE mode</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/73434/sensitivity-125-kbps-ble-mode</link><description>hi, 
 For NRF52840, is the 125kbps sensitivity the same as on Radio? I used the 125kbps long distance mode, but the distance was not up to the ideal state, the deviation was very big.The specification says the sensitivity is up to -103 dBm.Or is this</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 07 Apr 2021 10:39:13 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/73434/sensitivity-125-kbps-ble-mode" /><item><title>RE: Sensitivity, 125 kbps BLE mode</title><link>https://devzone.nordicsemi.com/thread/303439?ContentTypeID=1</link><pubDate>Wed, 07 Apr 2021 10:39:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa65116d-a7ef-432e-8e1b-9cdeab7902df</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Dmitry is absolutely correct that there are multiple factors affecting the distance you&amp;#39;ll be able to see. Can you provide some details about what exactly the &amp;quot;ideal state&amp;quot; or target distance is for your use case?&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><item><title>RE: Sensitivity, 125 kbps BLE mode</title><link>https://devzone.nordicsemi.com/thread/302840?ContentTypeID=1</link><pubDate>Thu, 01 Apr 2021 09:33:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:015cd08e-bcce-4e33-bdde-c858fa2fcf3e</guid><dc:creator>Dmitry</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;there are too many factors that affect distance. What&amp;#39;s the size of your packets? Are you testing outdoors or indoors, are there wifi stations nearby? Is it a 52833 DK or some third-party module? Is your power source clean? Finally, did you check whether channel 7 has not too much noise in &lt;a href="https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop"&gt;nRF-Connect RSSI viewer&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;As Simon mentioned, Coded PHY doesn&amp;#39;t increase sensitivity at physical layer (it&amp;#39;s the same 1Mbps bitstream), it uses a FEC encoder that helps to recover from one-two-bit errors (weak signal) but doesn&amp;#39;t help much if there&amp;#39;s a strong interference on the channel. If you need a stable audio transmission in a noisy environment, maybe it&amp;#39;s better to use 1M or even 2M PHY with short packets and some error correction scheme over a larger transmission window.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Sensitivity, 125 kbps BLE mode</title><link>https://devzone.nordicsemi.com/thread/302825?ContentTypeID=1</link><pubDate>Thu, 01 Apr 2021 01:51:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:721c376b-b6ce-4d62-9565-541ad3f34745</guid><dc:creator>Ellison</dc:creator><description>&lt;p&gt;&lt;span&gt;hi Simonr&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This is the code for the radio configuration I used.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;void radio_configure()
{
    // Radio config
    NRF_RADIO-&amp;gt;TXPOWER   = (RADIO_TXPOWER_TXPOWER_Pos8dBm &amp;lt;&amp;lt; RADIO_TXPOWER_TXPOWER_Pos);
    NRF_RADIO-&amp;gt;FREQUENCY = 7UL;  // Frequency bin 7, 2407MHz
    NRF_RADIO-&amp;gt;MODE      = (RADIO_MODE_MODE_Ble_LR125Kbit &amp;lt;&amp;lt; RADIO_MODE_MODE_Pos);

    // Radio address config
    NRF_RADIO-&amp;gt;PREFIX0 =
        ((uint32_t)swap_bits(0xC3) &amp;lt;&amp;lt; 24) // Prefix byte of address 3 converted to nRF24L series format
      | ((uint32_t)swap_bits(0xC2) &amp;lt;&amp;lt; 16) // Prefix byte of address 2 converted to nRF24L series format
      | ((uint32_t)swap_bits(0xC1) &amp;lt;&amp;lt; 8)  // Prefix byte of address 1 converted to nRF24L series format
      | ((uint32_t)swap_bits(0xC0) &amp;lt;&amp;lt; 0); // Prefix byte of address 0 converted to nRF24L series format

    NRF_RADIO-&amp;gt;PREFIX1 =
        ((uint32_t)swap_bits(0xC7) &amp;lt;&amp;lt; 24) // Prefix byte of address 7 converted to nRF24L series format
      | ((uint32_t)swap_bits(0xC6) &amp;lt;&amp;lt; 16) // Prefix byte of address 6 converted to nRF24L series format
      | ((uint32_t)swap_bits(0xC4) &amp;lt;&amp;lt; 0); // Prefix byte of address 4 converted to nRF24L series format

    NRF_RADIO-&amp;gt;BASE0 = bytewise_bitswap(0x01234567UL);  // Base address for prefix 0 converted to nRF24L series format
    NRF_RADIO-&amp;gt;BASE1 = bytewise_bitswap(0x89ABCDEFUL);  // Base address for prefix 1-7 converted to nRF24L series format

    NRF_RADIO-&amp;gt;TXADDRESS   = 0x00UL;  // Set device address 0 to use when transmitting
    NRF_RADIO-&amp;gt;RXADDRESSES = 0x01UL;  // Enable device address 0 to use to select which addresses to receive

     
     *(volatile uint32_t *) 0x40001740 = ((*((volatile uint32_t *) 0x40001740)) &amp;amp; 0x7FFF00FF) | 0x80000000 | (((uint32_t)(196)) &amp;lt;&amp;lt; 8);
     // Enable the workaround for nRF52840 anomaly 172 on affected devices.
     
    // Coded PHY (Long range)
    NRF_RADIO-&amp;gt;PCNF0 = (PACKET_S1_FIELD_SIZE &amp;lt;&amp;lt; RADIO_PCNF0_S1LEN_Pos) |
                       (PACKET_S0_FIELD_SIZE &amp;lt;&amp;lt; RADIO_PCNF0_S0LEN_Pos) |
                       (PACKET_LENGTH_FIELD_SIZE &amp;lt;&amp;lt; RADIO_PCNF0_LFLEN_Pos) |
                       (3UL &amp;lt;&amp;lt; RADIO_PCNF0_TERMLEN_Pos) |
                       (2UL &amp;lt;&amp;lt; RADIO_PCNF0_CILEN_Pos) |
                       (RADIO_PCNF0_PLEN_LongRange &amp;lt;&amp;lt; RADIO_PCNF0_PLEN_Pos);

    // Packet configuration
    NRF_RADIO-&amp;gt;PCNF1 = (RADIO_PCNF1_WHITEEN_Disabled &amp;lt;&amp;lt; RADIO_PCNF1_WHITEEN_Pos) |
                       (RADIO_PCNF1_ENDIAN_Little       &amp;lt;&amp;lt; RADIO_PCNF1_ENDIAN_Pos)  |
                       (PACKET_BASE_ADDRESS_LENGTH   &amp;lt;&amp;lt; RADIO_PCNF1_BALEN_Pos)   |
                       (PACKET_STATIC_LENGTH         &amp;lt;&amp;lt; RADIO_PCNF1_STATLEN_Pos) |
                       (PACKET_PAYLOAD_MAXSIZE       &amp;lt;&amp;lt; RADIO_PCNF1_MAXLEN_Pos); //lint !e845 &amp;quot;The right argument to operator &amp;#39;|&amp;#39; is certain to be 0&amp;quot;

    // CRC Config
    NRF_RADIO-&amp;gt;CRCCNF = (1 &amp;lt;&amp;lt; RADIO_CRCCNF_SKIP_ADDR_Pos) |(RADIO_CRCCNF_LEN_Three &amp;lt;&amp;lt; RADIO_CRCCNF_LEN_Pos); // Number of checksum bits
    if ((NRF_RADIO-&amp;gt;CRCCNF &amp;amp; RADIO_CRCCNF_LEN_Msk) == (RADIO_CRCCNF_LEN_Two &amp;lt;&amp;lt; RADIO_CRCCNF_LEN_Pos))
    {
        NRF_RADIO-&amp;gt;CRCINIT = 0xFFFFUL;   // Initial value
        NRF_RADIO-&amp;gt;CRCPOLY = 0x11021UL;  // CRC poly: x^16 + x^12^x^5 + 1
    }
    else if ((NRF_RADIO-&amp;gt;CRCCNF &amp;amp; RADIO_CRCCNF_LEN_Msk) == (RADIO_CRCCNF_LEN_One &amp;lt;&amp;lt; RADIO_CRCCNF_LEN_Pos))
    {
        NRF_RADIO-&amp;gt;CRCINIT = 0xFFUL;   // Initial value
        NRF_RADIO-&amp;gt;CRCPOLY = 0x107UL;  // CRC poly: x^8 + x^2^x^1 + 1
    }
    else if ((NRF_RADIO-&amp;gt;CRCCNF &amp;amp; RADIO_CRCCNF_LEN_Msk) == (RADIO_CRCCNF_LEN_Three &amp;lt;&amp;lt; RADIO_CRCCNF_LEN_Pos))
    {
        NRF_RADIO-&amp;gt;CRCINIT = 0x555555UL;    // Initial value of CRC
        NRF_RADIO-&amp;gt;CRCPOLY = 0x00065BUL;    // CRC polynomial function
    }
}&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;After that, I sent and received like this：&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;RF_IRQ = 0;
NRF_RADIO-&amp;gt;PACKETPTR = (uint32_t)&amp;amp;packet[0];     
                  
NRF_RADIO-&amp;gt;TASKS_TXEN = 1U;      
while(RF_IRQ == 0)
{
    __WFE();
}

&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Receive, I directly configure Radio into RX mode and turn on receiving。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Can&amp;#39;t I use 125Kbps?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Thanks and Best regards.&lt;/p&gt;
&lt;p&gt;Ellison&lt;/p&gt;
&lt;p&gt;&lt;span&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;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&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: Sensitivity, 125 kbps BLE mode</title><link>https://devzone.nordicsemi.com/thread/302694?ContentTypeID=1</link><pubDate>Wed, 31 Mar 2021 10:09:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf669d94-2214-434d-9ea2-9877bf5b8aa5</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi Ellison&lt;/p&gt;
&lt;p&gt;I&amp;#39;m not sure I understand your question correctly. Are you trying to do something similar to Coded PHY in your own proprietary protocol outside of BLE? If not, please describe the use case in detail so I&amp;#39;m able to understand what you&amp;#39;re trying to do.&lt;/p&gt;
&lt;p&gt;The long range feature (Coded PHY) in BLE basically transmits the raw data at a rate of 1Mbps, but the data includes redundancy in the user data which brings down the rate to as low as 125 kbps. This redundanct allows the receiver to recover the original data from the errors that occur in the transmission using FEC (Forward Error Correction) algorithms rather than increasing transmit power. The higher the redundancy, the higher the probability of recovering data.&amp;nbsp;So if you want to this in a proprietary protocol you&amp;#39;re free to implement this yourself, as we don&amp;#39;t have any example code operating outside the BLE stack doing this.&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>