BLE radio testing (TX continuous modulated)

We are preparing for all of our radio compliance testing. Our board is inspired from the nrf9160dk design using the nrf9160 chip as the main controller and an nrf52840 flashed with hci_lpuart to function as the BLE passthrough controller.

For our testing we need to be able to put the unit into the following modes:

  • Receive Mode (RX)
  • Transmit Mode (TX continuous, modulated)
    • 3 channels (2402MHz, 2440MHz, 2480MHz)
    • Various data rates 125kbps, 500 kbps, 1Mbps, 2Mbps

I would like to support these tests from the nrf9160 firmware. I have no problem coding the ways to interact and set the different test modes. I am just unsure how instruct the nrf52840 BLE chip to run these settings.

I found the "radio_test" sample but from what I can tell it would take some serious modifications to make that work from the nrf9160 firmware.

I'm thinking this is achievable with "CONFIG_BT_EXT_ADV=y" and using the extended BLE capabilities. This would allow me to specify the channel/tx_power/etc... I'm not clear how to start a modulated transmission though. Are there any resources or pointers that could help with this? Am I on the right path going down the ext adv route?

Thanks.

Parents
  • Hi,

    For radio complience testing I would try to make this simpler and use the radio test sample. You need a way to program the nRF52 anyway, and that can probably also be used during the radio testing. What is the reason for wanting to control this from the 91 side?

    (That said, if you do need to control it you could probably still use the radio test sample with minor adjustments and control it via GPIO from the 91 as you only need to cycle through a few modes).

Reply
  • Hi,

    For radio complience testing I would try to make this simpler and use the radio test sample. You need a way to program the nRF52 anyway, and that can probably also be used during the radio testing. What is the reason for wanting to control this from the 91 side?

    (That said, if you do need to control it you could probably still use the radio test sample with minor adjustments and control it via GPIO from the 91 as you only need to cycle through a few modes).

Children
  • As far as I can tell that sample is made for the following boards (nrf52dk_nrf52832, nrf52840dk_nrf52840, nrf5340dk_nrf5340_cpunet, nrf7002dk_nrf5340_cpunet).

    Our design follows the nrf9160dk design. So the only uart connected to the nrf52840 is the inter-chip uart between the nrf9160 and nrf52480. I would need to heavily modify the radio_test sample to control it from the nrf9160 chip anyways.

    I feel like I must be able to start modulated tx using the standard adv libraries that I currently use on the nrf9160 while leaving hci_lpuart running on the nrf52840 and avoid flashing different firmwares just to run the test.

  • I am able to log data out from the radio_test program over RTT. Would it be possible to send the shell commands to the radio_test using the RTT interface instead of UART?

  • Hi,

    Yes, you can use RTT over SWD instead of UART. You can control it via RTT instead of UART by adding this to prj.conf:

    CONFIG_SHELL_BACKEND_RTT=y

    And adding an app.overlay file with this:

    / {
    	chosen {
    		zephyr,shell = &rtt0;
    		zephyr,console = &rtt0;
    	};
    
    	rtt0: rtt_chan0 {
    		compatible = "segger,rtt-uart";
    		status = "okay";
    	};
    };
    

  • Thank you,

    I'm trying very hard to get this working but I just can't seem to get anything (using J-link RTT viewer). I can send bytes but nothing ever logs or responds.

    I also cannot seem to get the "printk" statements to log out anymore so I'm not even sure if the project is building properly now. I feel like I'm going backwards....

    I have added this:

    # To log printk over RTT
    CONFIG_LOG=y
    CONFIG_LOG_PRINTK=y
    CONFIG_LOG_BACKEND_RTT=y
    CONFIG_USE_SEGGER_RTT=y
    CONFIG_UART_CONSOLE=n
    CONFIG_RTT_CONSOLE=y

    I had this working yesterday and I would see:

    > Starting Radio Test example

    > Clock has started

    Since trying to add the shell backend I can't get anything working and I'm not sure what I have changed...

  • Hi,

    I tested the configuration I shared yesterday so that shoudl work. Can you revert your changes and use the radio test example with only the changes I suggested there?

    Also, if you use RTT Viewer note that the cursor must be in the input field in order to input data. That is highlighted with red here:

Related