<?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>adjusting RF channel used to transmit.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/92142/adjusting-rf-channel-used-to-transmit</link><description>This previous case is an example of what i am trying to do.Reconfifure the radio parameters. 
 
 Using example code does not work for me. the DUT has other aspects that need to be EMC compliant, firmware is required to drive these aspects. I also have</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 21 Sep 2022 08:32:55 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/92142/adjusting-rf-channel-used-to-transmit" /><item><title>RE: adjusting RF channel used to transmit.</title><link>https://devzone.nordicsemi.com/thread/387219?ContentTypeID=1</link><pubDate>Wed, 21 Sep 2022 08:32:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6d17acc-0299-4654-8779-7c8201f746ef</guid><dc:creator>Jared</dc:creator><description>&lt;p&gt;Hi Sean,&lt;/p&gt;
[quote user="SeanHowsonTB"]&lt;blockquote&gt;&lt;div&gt;All configurations of the radio registers must either be through the &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v7.3.0/index.html?cp=4_7_3_1"&gt;Softdevice API&lt;/a&gt; or by using &lt;a href="https://infocenter.nordicsemi.com/topic/sds_s132/SDS/s1xx/concurrent_multiprotocol_tsl_api/concurrent_multiprotocol_tsl_api.html?cp=4_7_3_0_8_1"&gt;Radio Timeslot API&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;
&lt;p&gt;Q1: Why? When both the examples you refer to, seemingly do not use the softdevice API? they use functions from the nrf_radio.c file, which seems to directly access the radio registers? &lt;strong&gt;Can i not just disable the softdevice, reconfigure the radio, then re-enable the softdevice?&lt;/strong&gt;&lt;/p&gt;[/quote]
&lt;p&gt;It shouldn&amp;#39;t be used while&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;simultaneously&amp;nbsp;&lt;/strong&gt;using the Softdevice.&lt;/p&gt;
&lt;p&gt;No, Disabling the Softdevice, re-configuring the radio and then re-enabling the Softevice will have no effect. Upon being re-enabled the Softdevice will re-configure the radio to its initial state.&lt;/p&gt;
[quote user="SeanHowsonTB"]&lt;p&gt;&lt;strong&gt;Q2: Should i run radio test functions,with or without the softdevice enabled?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As i stated in my original post, i am not in a position to use the example code, i need to modify my existing application to feature radio tests (again, this is pre-compliance testing, so informal). Bespoke boards are not well suited to example code: For starters the code is hilariously un-annotated, so i have no idea what it is actually doing on physical layer, this is a terrible position to be in, in an embedded environment. It assumes i have access to hardware such as uart ports (which i dont). Additionally, the examples never build without hours of adjustments, to both SDK &amp;amp; source code.&lt;/p&gt;
&lt;p&gt;So again,&lt;strong&gt; i am not looking to be referred to examples,&lt;/strong&gt; im on this forum because i&amp;#39;ve reviewed the examples and cant find what i need, i&amp;#39;m looking for simple written explanations (NOT GENERATED BY DOXYGEN!).&lt;/p&gt;[/quote]
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Without. Radio access is blocked while using Softdevice.&amp;nbsp;&lt;/p&gt;
[quote user="SeanHowsonTB"]&lt;p&gt;&lt;strong&gt;Q3: Will this, or will this not, force the peripheral to advertise on channel 1, (or whatever i put into the arguement on line 2)? &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This seems to run but i cant get the RSSI viewer to re-program my dev kit, so cant actually prove it&amp;#39;s switched channel&lt;/strong&gt;&lt;/p&gt;[/quote]
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;It will not have an effect. &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/54627/configuring-advertisement-channels-and-connection-channels/221017"&gt;Setting advertising channels should be done through the channel mask.&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
[quote user="SeanHowsonTB"]&lt;strong&gt;Q4: This however,&amp;nbsp; locks up the execution? the LED on the product stops flashing, the button becomes unresponsive. &lt;/strong&gt;&lt;strong&gt;Any thoughts as to why this is happening?&lt;/strong&gt;[/quote]
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Have you checked with a debugger if the program has asserted?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;regards&lt;/p&gt;
&lt;p&gt;Jared&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: adjusting RF channel used to transmit.</title><link>https://devzone.nordicsemi.com/thread/387135?ContentTypeID=1</link><pubDate>Tue, 20 Sep 2022 14:53:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a26896d9-8d2e-44a6-8853-0fa86c33e276</guid><dc:creator>SeanHowsonTB</dc:creator><description>&lt;p&gt;corrention on Q4: It was not the radio function locking up the execution, it was me calling the following&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;APP_ERROR_CHECK(nrf_sdh_disable_request());&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;before the radio function.... so disabling the soft device is causing the lockup, any suggestions?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: adjusting RF channel used to transmit.</title><link>https://devzone.nordicsemi.com/thread/387109?ContentTypeID=1</link><pubDate>Tue, 20 Sep 2022 13:51:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c0178bfb-be28-419c-b3e1-86096b838258</guid><dc:creator>SeanHowsonTB</dc:creator><description>[quote userid="73165" url="~/f/nordic-q-a/92142/adjusting-rf-channel-used-to-transmit/387094"]All configurations of the radio registers must either be through the &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v7.3.0/index.html?cp=4_7_3_1"&gt;Softdevice API&lt;/a&gt; or by using &lt;a href="https://infocenter.nordicsemi.com/topic/sds_s132/SDS/s1xx/concurrent_multiprotocol_tsl_api/concurrent_multiprotocol_tsl_api.html?cp=4_7_3_0_8_1"&gt;Radio Timeslot API&lt;/a&gt;.&amp;nbsp;[/quote]
&lt;p&gt;Q1: Why? When both the examples you refer to, seemingly do not use the softdevice API? they use functions from the nrf_radio.c file, which seems to directly access the radio registers? &lt;strong&gt;Can i not just disable the softdevice, reconfigure the radio, then re-enable the softdevice?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q2: Should i run radio test functions,with or without the softdevice enabled?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As i stated in my original post, i am not in a position to use the example code, i need to modify my existing application to feature radio tests (again, this is pre-compliance testing, so informal). Bespoke boards are not well suited to example code: For starters the code is hilariously un-annotated, so i have no idea what it is actually doing on physical layer, this is a terrible position to be in, in an embedded environment. It assumes i have access to hardware such as uart ports (which i dont). Additionally, the examples never build without hours of adjustments, to both SDK &amp;amp; source code.&lt;/p&gt;
&lt;p&gt;So again,&lt;strong&gt; i am not looking to be referred to examples,&lt;/strong&gt; im on this forum because i&amp;#39;ve reviewed the examples and cant find what i need, i&amp;#39;m looking for simple written explanations (NOT GENERATED BY DOXYGEN!).&lt;/p&gt;
&lt;p&gt;As before: I am working with the below few lines of code:&lt;pre class="ui-code" data-mode="text"&gt; APP_ERROR_CHECK(nrf_sdh_disable_request());        //stop SD to avoid access error
 radio_channel_set(NRF_RADIO_MODE_BLE_1MBIT,1);     //change channel.
 ble_init(false);                                   //re-init ble &amp;amp; stack, arguement allows me to qvoid re-initialising queued write module
                                                    //(no useful documentation as to what this does, but error avoided by not re-initialising)
 ble_adv_start();                                   //Begin avertising.&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q3: Will this, or will this not, force the peripheral to advertise on channel 1, (or whatever i put into the arguement on line 2)? &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This seems to run but i cant get the RSSI viewer to re-program my dev kit, so cant actually prove it&amp;#39;s switched channel&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Furthermore, i have since found below function:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;radio_unmodulated_tx_carrier()&lt;/pre&gt;&lt;strong&gt;Q4: This however,&amp;nbsp; locks up the execution? the LED on the product stops flashing, the button becomes unresponsive. &lt;/strong&gt;&lt;strong&gt;Any thoughts as to why this is happening?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Again, there is seemingly no documentation detailing any prerequisites for this function. &amp;amp; the examples in which it is called have next to no annotation either.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: adjusting RF channel used to transmit.</title><link>https://devzone.nordicsemi.com/thread/387094?ContentTypeID=1</link><pubDate>Tue, 20 Sep 2022 12:47:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d7abfc4e-14fd-4d1b-b871-70b46af69447</guid><dc:creator>Jared</dc:creator><description>&lt;p&gt;Hi Sean,&lt;/p&gt;
&lt;p&gt;We provide mainly two examples that can be used to test the radio HW. The first is the&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/nrf_radio_test_example.html?cp=8_1_4_6_31"&gt; radio test&lt;/a&gt;&amp;nbsp;example that access the radio directly and configures it based on user input. The second example is the&lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/ble_sdk_app_dtm_serial.html?cp=8_1_4_5"&gt; DTM example&lt;/a&gt; which implements the DTM test functions as specified in the Bluetooth Spec. Both examples access the radio registers directly.&amp;nbsp; &lt;a href="https://infocenter.nordicsemi.com/topic/sds_s132/SDS/s1xx/sd_resource_reqs/hw_block_interrupt_vector.html?cp=4_7_3_0_6_0"&gt;When using the Softdevice, radio access will be blocked&lt;/a&gt;.&amp;nbsp;All configurations of the radio registers must either be through the &lt;a href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.s132.api.v7.3.0/index.html?cp=4_7_3_1"&gt;Softdevice API&lt;/a&gt; or by using &lt;a href="https://infocenter.nordicsemi.com/topic/sds_s132/SDS/s1xx/concurrent_multiprotocol_tsl_api/concurrent_multiprotocol_tsl_api.html?cp=4_7_3_0_8_1"&gt;Radio Timeslot API&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
[quote user=""]what must i do to the ble to be able to adjust channel number during operation?[/quote]
&lt;p&gt;You can set a channel map with the Softdevice if it&amp;#39;s a GAP Central.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;regards&lt;br /&gt;Jared&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: adjusting RF channel used to transmit.</title><link>https://devzone.nordicsemi.com/thread/387093?ContentTypeID=1</link><pubDate>Tue, 20 Sep 2022 08:43:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fdc00878-6dbf-4a6b-a4cb-e8f9d6ad9cf5</guid><dc:creator>SeanHowsonTB</dc:creator><description>&lt;p&gt;Note: I have now implemented the following code&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt; APP_ERROR_CHECK(nrf_sdh_disable_request());        //stop SD to avoid access error
 radio_channel_set(NRF_RADIO_MODE_BLE_1MBIT,1);     //change channel.
 ble_init(false);                                   //re-init ble &amp;amp; stack, arguement allows me to qvoid re-initialising queued write module
                                                    //(no useful documentation as to what this does, but error avoided by not re-initialising)
 ble_adv_start();                                   //Begin avertising.&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;This appeared to work, although i do not have a spectrum analyser, and the RSSI viewer tool on nrfconnect just straight up doesn&amp;#39;t work (wont detect or program connected dev kit). so i cannot prove if this has changed channel or not.&lt;/p&gt;
&lt;p&gt;I have realised however this does not produce a continuous transmission that would be suitable for precompliance testing.&lt;/p&gt;
&lt;p&gt;instead i found a 7 year old - unanswered forum post suggesting the use of the following function:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;radio_unmodulated_tx_carrier();&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;However, when called (with comparable arguements to the &amp;quot;radio_channel_set&amp;quot; function, the board appears to lock up, the flashing LED on the board locks up (uses a timer instance?) &amp;amp; I have no further evidence of what the board is doing. No errors returned to be seen.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>