Cordio and radio certifications test

Hey !

I’m developing an application with mbed-os-6.5 on a custom board based on NRF52840, and to get the radio certified, the laboratory asked to set the module into continuous emission mode. I’m trying to figure out how to do this with mbed-os and cordio API … but with no success.

I noticed that there is an interesting function rf_test_start_le_transmitter_test in CordioHCIDriver.h. I did manage to make a program (with a loop incrementing the channel number), which call this function without returning error, but when I call rf_test_end, my callback (test_end_handler) is never triggered, and the next call of rf_test_start_le_transmitter_test returns BLE_ERROR_INVALID_STATE because the test has not been terminated properly …

Is there any place where I can find some example on how to write a program with mbed for radio testing ?

Thank you !

Hi, it would help if you could please share the code you wrote. To debug it yourself please put
mbed_trace_init();
somewhere in your main function and put this in your mbed_app.json:

            "mbed-trace.enable": true,
            "mbed-trace.max-level": "TRACE_LEVEL_DEBUG",
            "cordio.trace-hci-packets": false,
            "cordio.trace-cordio-wsf-traces": true,
            "ble.trace-human-readable-enums": true

You can only have one outstaning call to le_test running so call rf_test_start_le_transmitter_test and then when you’re done rf_test_end. After that you need to call reset on ble.