This application demonstrates BLE Throughput measurement on RT1170 using wireless module IW612.
- 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 the WIFI IW612 BOARD MURATA 2EL M2 module.
- Connect a USB cable between the PC host and the Debug USB 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.
-
Application Start-up
Upon powering on, the application initializes and begins advertising custom GATT service(UUID: 0x1AA1).
Console output:
-
Device Connection
Use a BLE-compatible device (Android/iOS) to scan for nearby BLE peripherals. Select and connect to the advertised custom GATT service or serach by name "BLE_Throughput_Demo".
Note: To change the advertising name, update the string assigned to CONFIG_BT_DEVICE_NAME in source/app_bluetooth_config.h.
-
Discover GATT Services
Once connected, use the BLE scanner app to discover available GATT services and their characteristics.
-
Set MTU to 517
After establishing the connection, update the MTU to 517 using the BLE scanner application or an appropriate API. This is mandatory to ensure the application operates correctly and achieves the expected throughput. Failure to set the MTU may result in zero frames and throughput readings, as shown in the Results section.
Note: Do change "Ser Preferred PHY" to 1M PHY or 2M PHY to observe the difference of throughput with different PHY level.
-
Subscribe to Notifications
Subscribe to notifications for a characteristic (UUID 0xAABB). With notifications enabled and the MTU set, the connected peer will start receiving periodic updates from the custom characteristic. Observe the real-time frames and throughput updates in the serial console output..
-
Write to Characteristic
Write a value to a writable characteristic (UUID 0xCCDD). Ensure the value is written successfully, and the characteristic is updated accordingly.
-
Read Characteristic
Access a readable characteristic (UUID 0xAABB or 0xEEFF) and retrieve its value. Values are updated dynamically and can be viewed in the app.
-
Indicate Characteristic Updates
Subscribe to indications for a characteristic (UUID 0xEEFF). Observe acknowledgment of updates from the device.
Open the log screen to observe the data.
Upon running the firmware, the following results are observed:
-
Notifications Subscribing to the Notify property of the custom characteristic allows the BLE scanner or connected peer device to receive periodic updates automatically. The output in the serial console shows real-time frames and throughput updates. The expected output will look like this:
Connected to peer: 49:D4:EC:4B:31:6D (random) Passkey for 49:D4:EC:4B:31:6D (random): 048657 Security changed: F8:1A:2B:3F:31:04 (public) level 4 (error 0) LE Data Length update initiated Notifications enabled for Characteristic 1 frames: 171(throughput 701kbps) frames: 100(throughput 410kbps) frames: 104(throughput 426kbps) frames: 117(throughput 480kbps)
NOTE: After a successful connection, setting the MTU to 517 is mandatory for proper operation. If the MTU is not set correctly, the output will indicate zero frames and throughput:
frames: 0(throughput 0kbps)␊
frames: 0(throughput 0kbps)␊
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 | May 22th 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.