<?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>The issue is that the radiated power at 2480 MHz during the Radio Test is 10 dB lower compared to other channels.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/116715/the-issue-is-that-the-radiated-power-at-2480-mhz-during-the-radio-test-is-10-db-lower-compared-to-other-channels</link><description>We developed firmware based on the sample provided at the following link to pass Japan&amp;#39;s technical standards compliance test https ://docs .nordicsemi .com /bundle /sdk_nrf5_v17.0.2 /page /nrf_radio_test_example .html . 
 
 However, during testing, we</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 27 Nov 2024 08:38:32 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/116715/the-issue-is-that-the-radiated-power-at-2480-mhz-during-the-radio-test-is-10-db-lower-compared-to-other-channels" /><item><title>RE: The issue is that the radiated power at 2480 MHz during the Radio Test is 10 dB lower compared to other channels.</title><link>https://devzone.nordicsemi.com/thread/512276?ContentTypeID=1</link><pubDate>Wed, 27 Nov 2024 08:38:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6b23b9e1-4087-4cb2-9adf-6212dd6c7794</guid><dc:creator>ketiljo</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Ok, I need to see a picture of how you have connected the cable.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can you test it with the unmodified radio test to rule out any FW issues?&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;Ketil&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: The issue is that the radiated power at 2480 MHz during the Radio Test is 10 dB lower compared to other channels.</title><link>https://devzone.nordicsemi.com/thread/512231?ContentTypeID=1</link><pubDate>Tue, 26 Nov 2024 23:15:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:990ca876-89c5-4c4c-a480-8c2977655e0a</guid><dc:creator>keigo.imaizumi</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;Cut the antenna pattern and connect a coaxial cable to observe the frequency characteristics using a spectrum analyzer.&lt;/p&gt;
&lt;p&gt;I read the RADIO.TXPOWER register, and it showed 8dBm.&lt;br /&gt;This is the maximum value, so it is as expected.&lt;/p&gt;
&lt;p&gt;Let me share an excerpt from the code again. The &lt;code&gt;tx_power&lt;/code&gt; is set as &lt;code&gt;NRF_RADIO_TXPOWER_POS8DBM&lt;/code&gt;, and it is never modified, so it shouldn&amp;#39;t drop to 0dBm.&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s strange is that the output power decreases each time&amp;mdash;first from 2402 MHz to 2442 MHz, and then from 2442 MHz to 2480 MHz.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;// =====================================================
// radio_cmd_handler.c

/**@brief Radio parameter configuration.
 */
typedef struct radio_param_config {
    transmit_pattern_t tx_pattern; /**&amp;lt; Radio transmission pattern. */
    nrf_radio_mode_t mode;         /**&amp;lt; Radio mode. Data rate and modulation. */
    nrf_radio_txpower_t txpower;   /**&amp;lt; Radio output power. */
    uint8_t channel_start;         /**&amp;lt; Radio start channel (frequency). */
    uint8_t channel_end;           /**&amp;lt; Radio end channel (frequency). */
    uint32_t delay_ms;             /**&amp;lt; Delay time in milliseconds. */
    uint32_t duty_cycle;           /**&amp;lt; Duty cycle. */
} radio_param_config_t;

static radio_test_config_t m_test_config; /**&amp;lt; Radio test configuration. */
static bool m_test_in_progress;           /**&amp;lt; If true, RX sweep, TX sweep or duty cycle test is performed. */
static radio_param_config_t m_config = {
    .tx_pattern = TRANSMIT_PATTERN_RANDOM,
    .mode = NRF_RADIO_MODE_BLE_1MBIT,
    .txpower = NRF_RADIO_TXPOWER_POS8DBM,
    .channel_start = 0,
    .channel_end = 80,
    .delay_ms = 10,
    .duty_cycle = 50,
};

radio_cmd_handler__ret_code_t radio_cmd_handler__tx_unmodulation_low_channel_start(void) {
    NRF_LOG_INFO(&amp;quot;%s&amp;quot;, __func__);
    if (m_test_in_progress) {
        radio_test__cancel();
        m_test_in_progress = false;
    }

    m_config.channel_start = 2;

#if USE_MORE_RADIO_MODES
    ieee_channel_check(m_config.channel_start);
#endif /* USE_MORE_RADIO_MODES */

    memset(&amp;amp;m_test_config, 0, sizeof(m_test_config));
    m_test_config.type = UNMODULATED_TX;
    m_test_config.mode = m_config.mode;
    m_test_config.params.unmodulated_tx.txpower = m_config.txpower;
    m_test_config.params.unmodulated_tx.channel = m_config.channel_start;

    radio_test__start(&amp;amp;m_test_config);

    NRF_LOG_INFO(&amp;quot;%s. Start the TX carrier.&amp;quot;, __func__);

    return RADIO_CMD_HANDLER__SUCCESS;
}

radio_cmd_handler__ret_code_t radio_cmd_handler__tx_unmodulation_middle_channel_start(void) {
    NRF_LOG_INFO(&amp;quot;%s&amp;quot;, __func__);
    if (m_test_in_progress) {
        radio_test__cancel();
        m_test_in_progress = false;
    }

    m_config.channel_start = 42;

#if USE_MORE_RADIO_MODES
    ieee_channel_check(m_config.channel_start);
#endif /* USE_MORE_RADIO_MODES */

    memset(&amp;amp;m_test_config, 0, sizeof(m_test_config));
    m_test_config.type = UNMODULATED_TX;
    m_test_config.mode = m_config.mode;
    m_test_config.params.unmodulated_tx.txpower = m_config.txpower;
    m_test_config.params.unmodulated_tx.channel = m_config.channel_start;

    radio_test__start(&amp;amp;m_test_config);

    NRF_LOG_INFO(&amp;quot;%s. Start the TX carrier.&amp;quot;, __func__);

    return RADIO_CMD_HANDLER__SUCCESS;
}

radio_cmd_handler__ret_code_t radio_cmd_handler__tx_unmodulation_high_channel_start(void) {
    NRF_LOG_INFO(&amp;quot;%s&amp;quot;, __func__);
    if (m_test_in_progress) {
        radio_test__cancel();
        m_test_in_progress = false;
    }

    m_config.channel_start = 80;

#if USE_MORE_RADIO_MODES
    ieee_channel_check(m_config.channel_start);
#endif /* USE_MORE_RADIO_MODES */

    memset(&amp;amp;m_test_config, 0, sizeof(m_test_config));
    m_test_config.type = UNMODULATED_TX;
    m_test_config.mode = m_config.mode;
    m_test_config.params.unmodulated_tx.txpower = m_config.txpower;
    m_test_config.params.unmodulated_tx.channel = m_config.channel_start;

    radio_test__start(&amp;amp;m_test_config);

    NRF_LOG_INFO(&amp;quot;%s. Start the TX carrier.&amp;quot;, __func__);

    return RADIO_CMD_HANDLER__SUCCESS;
}



// =====================================================
// radio_test.c

void radio_test__start(radio_test_config_t* p_config) {
    // NRF_LOG_INFO(&amp;quot;%s&amp;quot;, __func__);
    switch (p_config-&amp;gt;type) {
    case UNMODULATED_TX:
        radio_unmodulated_tx_carrier(p_config-&amp;gt;mode, p_config-&amp;gt;params.unmodulated_tx.txpower, p_config-&amp;gt;params.unmodulated_tx.channel);
        break;
    case MODULATED_TX:
        radio_modulated_tx_carrier(p_config-&amp;gt;mode, p_config-&amp;gt;params.modulated_tx.txpower, p_config-&amp;gt;params.modulated_tx.channel, p_config-&amp;gt;params.modulated_tx.pattern);
        break;
    case RX:
        radio_rx(p_config-&amp;gt;mode, p_config-&amp;gt;params.rx.channel, p_config-&amp;gt;params.rx.pattern);
        break;
    case TX_SWEEP:
        // radio_sweep_start(p_config-&amp;gt;params.tx_sweep.channel_start, p_config-&amp;gt;params.tx_sweep.delay_ms);
        break;
    case RX_SWEEP:
        // radio_sweep_start(p_config-&amp;gt;params.rx_sweep.channel_start, p_config-&amp;gt;params.rx_sweep.delay_ms);
        break;
    case MODULATED_TX_DUTY_CYCLE:
        // radio_modulated_tx_carrier_duty_cycle(p_config-&amp;gt;mode, p_config-&amp;gt;params.modulated_tx_duty_cycle.txpower, p_config-&amp;gt;params.modulated_tx_duty_cycle.channel, p_config-&amp;gt;params.modulated_tx_duty_cycle.pattern, p_config-&amp;gt;params.modulated_tx_duty_cycle.duty_cycle);
        break;
    }
}

static void radio_unmodulated_tx_carrier(nrf_radio_mode_t mode, nrf_radio_txpower_t txpower, uint8_t channel) {
    NRF_LOG_INFO(&amp;quot;%s&amp;quot;, __func__);
    radio_disable();

    nrf_radio_mode_set(mode);
#if !defined(NRF21540_DRIVER_ENABLE) || (NRF21540_DRIVER_ENABLE == 0)
    nrf_radio_shorts_enable(NRF_RADIO_SHORT_READY_START_MASK);
#endif
    nrf_radio_txpower_set(txpower);

    radio_channel_set(mode, channel);

#if defined(NRF21540_DRIVER_ENABLE) &amp;amp;&amp;amp; (NRF21540_DRIVER_ENABLE == 1)
    (void) nrf21540_tx_set(NRF21540_EXECUTE_NOW, NRF21540_EXEC_MODE_NON_BLOCKING);
#else
    nrf_radio_task_trigger(NRF_RADIO_TASK_TXEN);
#endif
}

/**
 * @brief Function for starting the modulated TX carrier by repeatedly sending a packet with a random address and
 * a random payload.
 */
static void radio_modulated_tx_carrier(nrf_radio_mode_t mode, nrf_radio_txpower_t txpower, uint8_t channel, transmit_pattern_t pattern) {
    NRF_LOG_INFO(&amp;quot;%s&amp;quot;, __func__);
    radio_disable();
    generate_modulated_rf_packet(mode, pattern);

    switch (mode) {
#if USE_MORE_RADIO_MODES
    case NRF_RADIO_MODE_IEEE802154_250KBIT:
    case NRF_RADIO_MODE_BLE_LR125KBIT:
    case NRF_RADIO_MODE_BLE_LR500KBIT:
#if defined(NRF21540_DRIVER_ENABLE) &amp;amp;&amp;amp; (NRF21540_DRIVER_ENABLE == 1)
        nrf_radio_shorts_enable(NRF_RADIO_SHORT_PHYEND_START_MASK);
#else
        nrf_radio_shorts_enable(NRF_RADIO_SHORT_READY_START_MASK | NRF_RADIO_SHORT_PHYEND_START_MASK);
#endif
        break;
#endif /* USE_MORE_RADIO_MODES */

    case NRF_RADIO_MODE_BLE_1MBIT:
    case NRF_RADIO_MODE_BLE_2MBIT:
    case NRF_RADIO_MODE_NRF_1MBIT:
    case NRF_RADIO_MODE_NRF_2MBIT:
    default:
#ifdef NRF52832_XXAA
    case NRF_RADIO_MODE_NRF_250KBIT:
#endif /* NRF52832_XXAA */
#if defined(NRF21540_DRIVER_ENABLE) &amp;amp;&amp;amp; (NRF21540_DRIVER_ENABLE == 1)
        nrf_radio_shorts_enable(NRF_RADIO_SHORT_END_START_MASK);
#else
        nrf_radio_shorts_enable(NRF_RADIO_SHORT_READY_START_MASK | NRF_RADIO_SHORT_END_START_MASK);
#endif
        break;
    }

    nrf_radio_mode_set(mode);
    nrf_radio_txpower_set(txpower);

    radio_channel_set(mode, channel);

    m_tx_packet_cnt = 0;

    nrf_radio_event_clear(NRF_RADIO_EVENT_END);
    nrf_radio_int_enable(NRF_RADIO_INT_END_MASK);
#if defined(NRF21540_DRIVER_ENABLE) &amp;amp;&amp;amp; (NRF21540_DRIVER_ENABLE == 1)
    (void) nrf21540_tx_set(NRF21540_EXECUTE_NOW, NRF21540_EXEC_MODE_NON_BLOCKING);
#else
    nrf_radio_task_trigger(NRF_RADIO_TASK_TXEN);
#endif
    while (!nrf_radio_event_check(NRF_RADIO_EVENT_END)) {
        /* Do nothing */
    }
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: The issue is that the radiated power at 2480 MHz during the Radio Test is 10 dB lower compared to other channels.</title><link>https://devzone.nordicsemi.com/thread/512178?ContentTypeID=1</link><pubDate>Tue, 26 Nov 2024 14:48:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2c48c966-42ce-4f64-8190-61d631db7b7f</guid><dc:creator>ketiljo</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;You can decribe your measurement setup? Since it&amp;#39;s a module, do you meassure this radiated?&lt;/p&gt;
&lt;p&gt;It looks like the output power is set to 0 dBm on the last channel? If you have a debugger connected, you can read the&amp;nbsp;&lt;span&gt;RADIO.TXPOWER register to check what setting you&amp;#39;re using.&amp;nbsp;RADIO.TXPOWER registeret&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regard,&lt;/p&gt;
&lt;p&gt;Ketil Aas-Johansen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: The issue is that the radiated power at 2480 MHz during the Radio Test is 10 dB lower compared to other channels.</title><link>https://devzone.nordicsemi.com/thread/512021?ContentTypeID=1</link><pubDate>Tue, 26 Nov 2024 03:51:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ae4ec406-0a80-4e36-bd4b-594d4ae9f79d</guid><dc:creator>keigo.imaizumi</dc:creator><description>&lt;p&gt;Additional information:&lt;/p&gt;
&lt;p&gt;The sample firmware is designed to use a CLI for changing modes. However, since we do not have a PC to run the CLI, we use &lt;strong&gt;nrf_fstorage&lt;/strong&gt; to store the state. On startup, the firmware determines the mode from the stored state and transitions to the corresponding radio mode.&lt;/p&gt;
&lt;p&gt;The nRF52840 is connected to a GUI system running on a Raspberry Pi. Based on UI operations, commands are sent to rewrite the state in &lt;strong&gt;nrf_fstorage&lt;/strong&gt;.&lt;br /&gt;(Since the GUI system and the nRF52840 are part of a single solution, adapting it to work with the CLI was not feasible.)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>