This software demonstrates a Custom Wireless RF Test Mode (RFTM) application running on an NXP development board.
Upon powering the board, it starts in Access Point (AP) mode, allowing configuration via a web interface.
Users can connect to the AP, enter configuration commands one at a time, and start RFTM mode for wireless testing.
The device logs results in flash memory, which can be retrieved later by reconnecting to the AP and using the provided "Read the Results" feature.
This example is useful for validating wireless performance, range, and stability in custom RF test scenarios.
- Open MCUXpresso IDE, in the Quick Start Panel, choose Import from Application Code Hub
- Enter the demo name in the search bar.
- Click Copy GitHub link, MCUXpresso IDE will automatically retrieve project attributes, then click Next>.
- Select main branch and then click Next>, Select the MCUXpresso project, click Finish button to complete import.
- Connect a USB cable between the PC host and the MCU-Link port on the target board.
- Open a serial terminal with the following settings:
- 115200 baud rate
- 8 data bits
- No parity
- One stop bit
- No flow control
- Build the application.
- Flash the program to the target board.
-
Press the reset button.
-
Download controller FW according to the document SDK_XX_XX_XX\component\conn_fwloader\readme.txt.
-
Power On the Board
Upon powering up, the device will automatically start in Access Point (AP) mode.
-
Connect to the Configuration Network
On your peer device (e.g., phone or laptop), scan for available Wi-Fi networks and connect to:
SSID: nxp_configuration_access_point
Password: NXP0123456789
-
Access the Configuration Interface
Open a web browser and navigate to:
-
Enter Configuration Commands (One at a Time)
On the UI page:
Locate the "Write Command" input field.
Enter only one command at a time to configure RFTM mode.
Click "Send Command" after each entry.
Repeat this process for all required commands.
Supported commands: wlan-version
wlan-mac
wlan-set-rf-test-mode
wlan-unset-rf-test-mode
wlan-set-rf-tx-antenna
wlan-get-rf-tx-antenna
wlan-set-rf-rx-antenna
wlan-get-rf-rx-antenna
wlan-set-rf-band
wlan-get-rf-band
wlan-set-rf-bandwidth
wlan-get-rf-bandwidth
wlan-set-rf-channel
wlan-get-rf-channel
wlan-set-rf-radio-mode <radio_mode>
wlan-get-rf-radio-mode
wlan-set-rf-tx-power <tx_power> <path_id>
wlan-set-rf-tx-cont-mode <enable_tx> <cw_mode> <payload_pattern> <cs_mode> <act_sub_ch> <tx_rate>
wlan-set-rf-tx-frame <data_rate> <frame_pattern> <frame_len> <adjust_burst_sifs> <burst_sifs_in_us> <short_preamble> <act_sub_ch> <short_gi> <adv_coding> <tx_bf> <gf_mode>
wlan-set-rf-trigger-frame-cfg <Enable_tx> <Standalone_hetb> <FRAME_CTRL_TYPE> <FRAME_CTRL_SUBTYPE> <FRAME_DURATION> <
wlan-set-rf-he-tb-tx <axq_mu_timer> <tx_power>
wlan-get-and-reset-rf-per
wlan-set-rf-otp-mac-addr <mac_addr>
wlan-get-rf-otp-mac-addr
wlan-set-rf-otp-cal-data
wlan-get-rf-otp-cal-data
le_test.set_tx_power
le_test.tx_test <data_len> <pkt_payload>
le_test.rx_test <modulation_index>
-
Command Response Handling
If the command is valid, the response will be:
status: command accepted
If the command is invalid or malformed, the response will be:
status: Unknown or malformed command
-
Send 'per_calculate_int xx' command which will set PER measurement interval to xx seconds(e.g for 10 minutes enter 600 : "per_calculate_int 600").
-
Send 'pwr_reboot_minutes xx' command which will set device reboot interval to xx minutes.
-
Start RFTM Mode
After entering all required commands:
Click the "Start RFTM Mode" button.
Check the debug log for "RFTM start triggered" message.
Close the browser window.
-
Device Operation in RFTM Mode
The device will:
Exit AP mode.
Enter RFTM mode.
Begin storing logs in flash memory.
Once testing is complete:
Reboot the device.
Repeat steps 1 to 3 of section 3.3.
Click the "Read the Results" button on ui.
The logs will be displayed in the Command Result window.
No FAQs have been identified for this project.
No URL
Questions regarding the content/correctness of this example can be entered as Issues within this GitHub repository.
Warning: For more general technical questions regarding NXP Microcontrollers and the difference in expected functionality, enter your questions on the NXP Community Forum
| Version | Description / Update | Date |
|---|---|---|
| 1.0 | Initial release on Application Code Hub | Sep 18th 2025 |
NXP, the NXP logo, NXP SECURE CONNECTIONS FOR A SMARTER WORLD, Airfast, Altivec, ByLink, CodeWarrior, ColdFire, ColdFire+, CoolFlux, CoolFlux DSP, DESFire, EdgeLock, EdgeScale, EdgeVerse, elQ, Embrace, Freescale, GreenChip, HITAG, ICODE and I-CODE, Immersiv3D, I2C-bus logo , JCOP, Kinetis, Layerscape, MagniV, Mantis, MCCI, MIFARE, MIFARE Classic, MIFARE FleX, MIFARE4Mobile, MIFARE Plus, MIFARE Ultralight, MiGLO, MOBILEGT, NTAG, PEG, Plus X, POR, PowerQUICC, Processor Expert, QorIQ, QorIQ Qonverge, RoadLink wordmark and logo, SafeAssure, SafeAssure logo , SmartLX, SmartMX, StarCore, Symphony, Tower, TriMedia, Trimension, UCODE, VortiQa, Vybrid are trademarks of NXP B.V. All other product or service names are the property of their respective owners. © 2021 NXP B.V.










