<?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>Minimum Bandwidth Requirement for FCC Certification</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/33439/minimum-bandwidth-requirement-for-fcc-certification</link><description>Hi All, 
 We are currently in the process of FCC certification for one of our product that uses nRF51822. Our testing house said the the test has failed because of not qualifying the minimum bandwidth requirement. 
 We used the radio test example provided</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 19 Apr 2018 13:22:43 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/33439/minimum-bandwidth-requirement-for-fcc-certification" /><item><title>RE: Minimum Bandwidth Requirement for FCC Certification</title><link>https://devzone.nordicsemi.com/thread/128994?ContentTypeID=1</link><pubDate>Thu, 19 Apr 2018 13:22:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a98c1c84-0978-4e41-ac60-ad1397e8ebc2</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;The code you are using looks fine, except that you should use modulated tx carrier. For testing the bandwidth, modulated TX carrier has to be used.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;6dB bandwidth&amp;quot; is&amp;nbsp;measured on a modulated signal. When setting up the radio, use&amp;nbsp;radio_modulated_tx_carrier() to generate a signal with a random payload.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum Bandwidth Requirement for FCC Certification</title><link>https://devzone.nordicsemi.com/thread/128879?ContentTypeID=1</link><pubDate>Thu, 19 Apr 2018 03:58:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cbf0e04d-60df-4280-8a28-ac120cfec2d0</guid><dc:creator>KrishNa</dc:creator><description>&lt;p&gt;Hi Kristin/nRF Team,&lt;/p&gt;
&lt;p&gt;We are awaiting your response. We are stuck at our certification lab and not able to move forward from past week.&lt;/p&gt;
&lt;p&gt;Please expedite and help us to resolve the issue earliest.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update: Do i need to send Constant carrier Tx or Modulated Carrier Tx for FCC.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Thanks in Advance,&lt;/p&gt;
&lt;p&gt;Best,&lt;/p&gt;
&lt;p&gt;Krish&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum Bandwidth Requirement for FCC Certification</title><link>https://devzone.nordicsemi.com/thread/128595?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 09:30:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:589d8678-de61-49f5-af5a-3f5316ee4033</guid><dc:creator>KrishNa</dc:creator><description>&lt;p&gt;Hi Kristin,&lt;/p&gt;
&lt;p&gt;Thanks for the quick reply.&lt;/p&gt;
&lt;p&gt;I have modified the code so that instead of sending the inputs via terminal, i have hardcoded it in the main loop.&lt;/p&gt;
&lt;p&gt;Below&amp;nbsp;is&amp;nbsp;the code snippet for the same&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt; &lt;span class="s1"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="p3"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;uint8_t txpower = RADIO_TXPOWER_TXPOWER_Pos4dBm; &lt;span class="s1"&gt;// 0 dBm&lt;/span&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;uint8_t mode&lt;span class="Apple-converted-space"&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;= RADIO_MODE_MODE_Nrf_2Mbit;&lt;span class="Apple-converted-space"&gt;&amp;nbsp; &lt;/span&gt;&lt;span class="s1"&gt;// 2 MBit mode&lt;/span&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="s1"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;uint8_t channel = &lt;span class="s2"&gt;2&lt;/span&gt;; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="s4"&gt;// Transmit at channel 40&lt;/span&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="s1"&gt;int&lt;/span&gt; &lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp; &lt;/span&gt;delayms = &lt;span class="s2"&gt;10&lt;/span&gt;;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;radio_tx_carrier(txpower, mode, channel);&lt;/p&gt;
&lt;p class="p1"&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;radio_tx_sweep_start(txpower,mode,channel,channel, delayms);&lt;/p&gt;
&lt;p class="p1"&gt;&lt;/p&gt;
&lt;p class="p1"&gt;In the below code snippet, i am trying to change frequency channels on button press.&amp;nbsp;&lt;/p&gt;
&lt;p class="p1"&gt;1) 1st button click - channel 2 (2402)&amp;nbsp;&lt;/p&gt;
&lt;p class="p1"&gt;2) 2nd button click - channel 40 (2440)&lt;/p&gt;
&lt;p class="p1"&gt;3) 3rd button click - channel 80 (2480)&lt;/p&gt;
&lt;p class="p1"&gt;4) 4th button click - radio sweep end&amp;nbsp;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Also attaching my modified main function for your reference&lt;pre class="ui-code" data-mode="c_cpp"&gt;int main(void)
{
    uint32_t err_code;
    radio_tests_t test     = RADIO_TEST_NOP;
    radio_tests_t cur_test = RADIO_TEST_NOP;
	
		 
	 	uint8_t txpower = RADIO_TXPOWER_TXPOWER_Pos4dBm; // 0 dBm
		uint8_t mode    = RADIO_MODE_MODE_Nrf_2Mbit;  // 2 MBit mode
	
	static char toggle=0, toggle_1=0;

    init();
    const app_uart_comm_params_t comm_params =
    {
        RX_PIN_NUMBER,
        TX_PIN_NUMBER,
        RTS_PIN_NUMBER,
        CTS_PIN_NUMBER,
        APP_UART_FLOW_CONTROL_DISABLED,
        false,
        UART_BAUDRATE_BAUDRATE_Baud115200
    };

    APP_UART_FIFO_INIT(&amp;amp;comm_params,
                         UART_RX_BUF_SIZE,
                         UART_TX_BUF_SIZE,
                         uart_error_handle,
                         APP_IRQ_PRIORITY_LOWEST,
                         err_code);

    APP_ERROR_CHECK(err_code);
    printf(&amp;quot;RF Test\r\n&amp;quot;);
    NVIC_EnableIRQ(TIMER0_IRQn);
    __enable_irq();
	 
	 nrf_gpio_cfg_output(22);
	 nrf_gpio_cfg_output(23);
	 
	 nrf_gpio_pin_set(22);  	
	 nrf_gpio_pin_set(23);	

	 nrf_gpio_cfg_input(06, NRF_GPIO_PIN_NOPULL);	
	 
    while (true)
    {

		 if((nrf_gpio_pin_read(06)==0)&amp;amp;&amp;amp;(toggle_1 == 0))
		 {
			 toggle++;
			 toggle_1 = 1;
			 
			 if(toggle == 1)
			 { 
				printf(&amp;quot;toggle == 1\r\n&amp;quot;);
				nrf_gpio_pin_clear(22);  
				nrf_gpio_pin_set(23);
				 
				uint8_t channel = 2; 												// Transmit at channel 40
				int 	  delayms = 10;
				radio_tx_carrier(txpower, mode, channel);
				radio_tx_sweep_start(txpower,mode,channel,channel, delayms);
			 }
			 else if(toggle == 2)
			 {
				 printf(&amp;quot;toggle == 2\r\n&amp;quot;);
				nrf_gpio_pin_set(22);  
				nrf_gpio_pin_clear(23);	

				uint8_t channel = 40; 												// Transmit at channel 40
				int 	  delayms = 10;
				radio_tx_carrier(txpower, mode, channel);
				radio_tx_sweep_start(txpower,mode,channel,channel, delayms);				 
			 }
			 else if(toggle == 3)
			 {
				 printf(&amp;quot;toggle == 3\r\n&amp;quot;);
			 	nrf_gpio_pin_clear(22);  
				nrf_gpio_pin_clear(23);
				 
				uint8_t channel = 80; 												// Transmit at channel 40
				int 	  delayms = 10;
				radio_tx_carrier(txpower, mode, channel);
				radio_tx_sweep_start(txpower,mode,channel,channel, delayms);
			 }
			 else if(toggle == 4)
			 {
				 printf(&amp;quot;toggle == 4\r\n&amp;quot;);
			 	nrf_gpio_pin_set(22);  
				nrf_gpio_pin_set(23);
				toggle = 0;
				 radio_sweep_end();
				 
			 }
			 
		 }
		 else if(nrf_gpio_pin_read(06)==1)
			toggle_1 = 0;
		 
			 
       /*{
			 uint8_t control;
        scanf(&amp;quot;%c&amp;quot;,&amp;amp;control);
        switch (control)
        {
            case &amp;#39;a&amp;#39;:
                while (true)
                {
                    printf(&amp;quot;Enter start channel (two decimal digits, 00 to 80):\r\n&amp;quot;);
                    scanf(&amp;quot;%d&amp;quot;,&amp;amp;channel_start_);
                    if ((channel_start_ &amp;lt;= 80)&amp;amp;&amp;amp;(channel_start_ &amp;gt;= 0))
                    {
                        printf(&amp;quot;%d\r\n&amp;quot;, channel_start_);
                        break;
                    }

                    printf(&amp;quot;Channel must be between 0 and 80\r\n&amp;quot;);
                }
                test = cur_test;
                break;

            case &amp;#39;b&amp;#39;:
                while (true)
                {
                    printf(&amp;quot;Enter end channel (two decimal digits, 00 to 80):\r\n&amp;quot;);
                    scanf(&amp;quot;%d&amp;quot;,&amp;amp;channel_end_);
                    if ((channel_end_ &amp;lt;= 80)&amp;amp;&amp;amp;(channel_start_ &amp;gt;= 0))
                    {
                        printf(&amp;quot;%d\r\n&amp;quot;, channel_end_);
                        break;
                    }
                    printf(&amp;quot;Channel must be between 0 and 80\r\n&amp;quot;);
                }
                test = cur_test;
                break;

            case &amp;#39;c&amp;#39;:
                test = RADIO_TEST_TXCC;
                break;

            case &amp;#39;d&amp;#39;:
                while (true)
                {
                    printf(&amp;quot;Enter delay in ms (two decimal digits, 01 to 99):\r\n&amp;quot;);
                    scanf(&amp;quot;%d&amp;quot;,&amp;amp;delayms_);
                    if ((delayms_ &amp;gt; 0) &amp;amp;&amp;amp; (delayms_ &amp;lt; 100))
                    {
                        printf(&amp;quot;%d\r\n&amp;quot;, delayms_);
                        break;
                    }
                    printf(&amp;quot;Delay must be between 1 and 99\r\n&amp;quot;);
                }
                test = cur_test;
                break;

            case &amp;#39;e&amp;#39;:
                radio_sweep_end();
                cur_test = RADIO_TEST_NOP;
                break;

            case &amp;#39;m&amp;#39;:
                get_datarate();
                test = cur_test;
                break;

            case &amp;#39;o&amp;#39;:
                test = RADIO_TEST_TXMC;
                printf(&amp;quot;TX modulated carrier\r\n&amp;quot;);
                break;

            case &amp;#39;p&amp;#39;:
                get_power();
                test = cur_test;
                break;

            case &amp;#39;r&amp;#39;:
                test = RADIO_TEST_RXSWEEP;
                printf(&amp;quot;RX Sweep\r\n&amp;quot;);
                break;

            case &amp;#39;s&amp;#39;:
                print_parameters();
                break;

            case &amp;#39;t&amp;#39;:
                test = RADIO_TEST_TXSWEEP;
                printf(&amp;quot;TX Sweep\r\n&amp;quot;);
                break;

            case &amp;#39;x&amp;#39;:
                test = RADIO_TEST_RXC;
                printf(&amp;quot;RX constant carrier\r\n&amp;quot;);
                break;

            case &amp;#39;h&amp;#39;:
                help();
                break;

            default:
                // No implementation needed
                break;
        }

        switch (test)
        {
            case RADIO_TEST_TXCC:
                if (sweep)
                {
                    radio_sweep_end();
                    sweep = false;
                }
                radio_tx_carrier(txpower_, mode_, channel_start_);
                cur_test = test;
                test     = RADIO_TEST_NOP;
                break;

            case RADIO_TEST_TXMC:
                if (sweep)
                {
                    radio_sweep_end();
                    sweep = false;
                }
                radio_modulated_tx_carrier(txpower_, mode_, channel_start_);
                cur_test = test;
                test     = RADIO_TEST_NOP;
                break;

            case RADIO_TEST_TXSWEEP:
                radio_tx_sweep_start(txpower_, mode_, channel_start_, channel_end_, delayms_);
                sweep    = true;
                cur_test = test;
                test     = RADIO_TEST_NOP;
                break;

            case RADIO_TEST_RXC:
                if (sweep)
                {
                    radio_sweep_end();
                    sweep = false;
                }
                radio_rx_carrier(mode_, channel_start_);
                cur_test = test;
                test     = RADIO_TEST_NOP;
                break;

            case RADIO_TEST_RXSWEEP:
                radio_rx_sweep_start(mode_, channel_start_, channel_end_, delayms_);
                sweep    = true;
                cur_test = test;
                test     = RADIO_TEST_NOP;
                break;

            case RADIO_TEST_NOP:
                // Fall through.
            default:
                // No implementation needed.
                break;
        }
    }*/
  }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p class="p1"&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Can you check whether everything looks ok or not?&lt;/p&gt;
&lt;p class="p1"&gt;We have also got a report from our testing house that the output power is very low, it comes around -5 to -10 dBm range. Is there any specific reason why the output power is very low even we have selected +4 dBm in our code?&lt;/p&gt;
&lt;p class="p1"&gt;&lt;/p&gt;
&lt;p class="p1"&gt;Awaiting your reply.&lt;/p&gt;
&lt;p class="p1"&gt;Best,&lt;/p&gt;
&lt;p class="p1"&gt;Krish&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Minimum Bandwidth Requirement for FCC Certification</title><link>https://devzone.nordicsemi.com/thread/128587?ContentTypeID=1</link><pubDate>Tue, 17 Apr 2018 09:01:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b05be4bc-eacd-4f3b-83b2-aacb1e6ccc01</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;Which commands you use when setting up the test? When I test here, I use the below commands and get the following result, which is within the 500 kHz requirement:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Commands:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;a&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;m&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;p&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;o&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-b5a692fad4b04630940612dfe7aa76d1/commands.PNG" alt=" " /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-b5a692fad4b04630940612dfe7aa76d1/modulated.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>