An automatic radio test was developed based on Enhanced Shockburst (ESB), which works for
all the nRF Series Chips including, nRF24LE1, nRF24LU1P, nRF51x22, as well as nRF52832. Source code is available as attached.
##What's it for?##
The Purposes of writing this code are:
Test the radio link quality more than one frequency points automatically by sending 1000 ESB packets from the tester to the device under test (DUT).
With ESB, the DUT only sends out ACK to the tester when it receives the correct packets without CRC error.
By counting the number of ACK received, the tester can determine whether the RF link on a particular frequency points meet the pre-defined PER (packet error ratio) requirement and notify the user thru its MMI (e.g. lights a LED).
Three frequency points are tested. Testing finished within 5 sec.
Test Results shown on the Tester side. No need to wire out from DUT
Small firmware footprint on the DUT (PRX) side
Program size (bytes) built with Keil uvision 5:
Code =3780, RO-data =224, RW-data =152, ZI-data = 2864
As mentioned before, the RF link quality is determined by PER on the DUT. The production test setup can be used to evaluate the sensitivity of the DUT receiver based on bit error radio (i.e. sensitivity of the DUT receiver = ?? dBm with 0.1%). Following figure shows the relationship between PER and BER:
For nRF24 series ICs, ESB is built-in their radio cores. What needs to do is build a tester libs (nrf_test.c/h) for both the Tester and DUT :
For nRF5x series ICs, there are no build-in ESBs. Either using ESB libs provided by nRF5x SDK or Micro-ESB that available on Nordic devzone (keywords: micro-esb) or github for the enchanced shockburst functions :
##Porting mico-ESB libs from nRF51 to nRF52 SDK
It is very simple to port the existing nRF51 micro-ESB code to nRF52, or making a common library for both platforms. All we need to do is modifying the header file as below and define either "nRF51" or "nRF52" in the compiler setting accordingly:
A simple demo using nRFgo mother board with nRF24LE1 DK as a tester and nRF24LU1P dongle as the DUT was carried out. LEDs on the tester are used to indicate the test results on three different radio channels (i.e. 2402, 2441, and 2481MHz) :
QuickLinkTest Source v1.0.rar
Hi John or other guys,
I just got the nRF52 - DK and nRF 51822 USB dongle, Could you please help on how to build the Tester.hex file and DUT.hex file using uVision Keil...
I want to use nRF52-DK as Tester and nRF51822 as DUT...Please help...!
Please find attached PER_LE1_DUT.hex and the PER_LE1_DUT.hex
Sorry for late response as I'm out of town in these few weeks.
set test_nrf_l01p_per_init(HAL_NRF_2MBPS, HAL_NRF_18DBM);
Can Someone share PER_LE1_tester.hex and PER_LE1_DUT.hex files to me…I am in urgent need of these files for some test…
Thank you for this tutorial. I am also trying to do something similar.
But I have a question of how to set Pout = -18dbm at the tester side?
Thank you for your time.