Let's take your QN9090 board for a test drive! You have the choice of watching the sequence in a short video or following the detailed actions list below.
Your QN9090 board comes loaded with a demo that will repeatedly flash an LED when you connect the board.
MCUXpresso SDK for the QN9090 integrates the MCUXpresso Software Development Kit with all the wireless connectivity stacks required to develop your solution with Bluetooth Low Energy.
Click below to download a pre-configured SDK release for the QN9090 that includes the wireless connectivity Bluetooth Low Energy stack for the QN9090.
NXP offers a complimentary toolchain called MCUXpresso IDE.
Want to use a different toolchain?
No problem! The MCUXpresso SDK includes support for other tools such as IAR .
The MCUXpresso Config Tool is an integrated suite of configuration tools that guides users in creating new MCUXpresso SDK projects, and also provides pin and clock tools to generate initialization C code for custom board support. This tool is integrated into MCUXpresso IDE, but if you are using a different IDE, you can download this tool below.
Drivers for the debugger and virtual COM port also need to be installed. Ensure the QN9080DK board is connected to your computer, and then go to the drivers folder in the MCUXpresso IDE install directory (C:\NXP\MCUXpressoIDE_11.1.0_3209\Drivers by default) double click on lpc_driver_installer.exe to install the drivers. Alternatively they are part of the LPCScrypt package, which can be download below.
Configure your preferred terminal to 115200 baud rate, 8 data bits, no parity and 1 stop bit. To determine the port number of the QN9090’s virtual COM port, open the device manager and look under the "Ports" group.
Not sure how to use a terminal application? Try one of these tutorials:
The QN9090 bootloader requires an image signature to verify the validity of a binary image. The image signing tool requires a Python install to exist on the PC. Download and the latest install Python 3.8 and add it to your system path. Then in a terminal window enter pip install pycryptodome to install the library.
Tera Term is a very popular open source terminal emulation application. This program can be used to display information sent from your NXP development platform's virtual serial port.
PuTTY is a popular terminal emulation application. This program can be used to display information sent from your NXP development platform's virtual serial port.
The QN9090 Wireless Connectivity Stack comes with a list of demo applications and driver examples ready to be compiled and run.
The QN9090 Wireless Connectivity Software package comes with a long list of BLE examples. To see what's available, browse to the 'wireless_examples' folder (\boards\QN9090cdk\wireless_examples\bluetooth).
If you are interested in running the preprogrammed example that comes with your board, Click here.
In order to use the Bluetooth Low Energy examples, the NXP IoT Toolbox needs to be installed on a smartphone. This application provides several examples that can be used in conjunction with the connectivity stack to connect your phone to the development board over BLE.
You probably want to build and debug a demo by yourself. Use the guide below to learn how to build and debug an example application from the Wireless Connectivity Stacks in the MCUXpresso IDE or IAR Embedded Workbench IDE.
The following steps will guide you through compiling, flashing, and running a simple Heart Rate Sensor BLE application using the QN9090 board.
Navigate to the Heart Rate Sensor workspace (located at ''\boards\QN9090cdk\wireless_examples\bluetooth\heart_rate_sensor\freertos\iar)
After the workspace is open, select the project.
Click the Make button to build the project.
Connect the first QN9090 board to your PC if it is not already. Use the J2 USB connector on the QN9090.
Open the terminal application on the PC (such as PuTTY or TeraTerm) and connect to the debug COM port you determined earlier. Configure the terminal with these settings:
Click the "Download and Debug" button to download the application to the target.
The firmware will be downloaded to the board and then you may see the following message. Check the “Don’t show again” checkbox and then click on the Yes button.
The debugger will then be started. Click on the “Go” button to begin running the demo.
Open the NXP IoT Toolbox application on your mobile device and click on the Heart Rate icon.
On the QN9090 board, press Buton1 to begin BLE advertising.
In the smartphone app, you should now see the FSL_HRS name. Click on it.
The board will then connect to the phone, and you’ll see a graph of the random BPM reading.
After the MDK tools are installed, Cortex® Microcontroller Software Interface Standard (CMSIS) device packs must be installed to fully support the device from a debug perspective. These packs include things such as memory map information, register definitions and flash programming algorithms. Follow these steps to install the appropriate CMSIS pack.
1. Open the MDK IDE, which is called μVision. In the IDE, select the “Pack Installer” icon.
2. In the Pack Installer window, search for “qn” to bring up the QN9090 family. Click on the QN9090 name, and then in the right hand side you’ll see the NXP::QN9090_DFP pack. Click on the “Install” button next to the pack. This process requires an internet connection to successfully complete.
3. After the installation finishes, close the Pack Installer window and return to the µVision IDE.
The following steps will guide you through opening the heart_rate_sensor BLE demo.
1. Inside the MDK, go to Project->Open Project
2. Navigate to the Heart Rate Sensor workspace (located at
3. To build the demo project, select the "Rebuild" button, highlighted in red.
4. The build will complete without errors.
1. Connect the first QN9090 board to your PC if it is not already. Use the J2 USB connector on the QN9090.
2. Click on the Start/Stop Debug Session button to download the code to the board and start debugging it.
3. Run the code by clicking the "Run" button to start the application.
1. Open the NXP IoT Toolbox application on your mobile device and click on the Heart Rate icon.
2. On the QN9090 board, press Buton1 to begin BLE advertising.
3. In the smartphone app, you should now see the FSL_HRS name. Click on it.
4. The board will then connect to the phone, and you’ll see a graph of the random BPM reading.
The following steps will guide you through opening the hybrid example. This project will be loaded to one board, while another project will be loaded on the 2nd board.
Find the Quickstart Panel in the lower left hand corner
Then click on Import SDK examples(s)…
Click on the QN9090 board to select that you want to import an example that can run on that board, and then click on Next.
Now we need to select the project to import. Use the arrow button to expand the wireless_examples category, and then under the bluetooth category expand the heart_rate_sensor project and select the freertos version of project.
This particular project doesn’t make use of the UART, but for projects that do, select the “UART” option for the SDK Debug Console. Then, click on Finish.
Now build the project by clicking on the QN9090cdk_wireless_examples_bluetooth_heart_rate_sensor_freertos project name and then in the Quickstart Panel click on Build.
You can see the status of the build in the Console tab. If you get a compile error, make sure you had imported two projects at the same.
MCUXpresso IDE will probe for connected boards and should find the LPC-LINK2 CMSIS-DAP debug probe that is part of the integrated debug circuit on the QN9090. Click on OK to continue.
You may get the following error. Hit “OK” to dismiss it.
The firmware will be downloaded to the board and the debugger started
Open the NXP IoT Toolbox application on your mobile device and click on the Heart Rate icon.
On the QN9090 board, press Buton1 to begin BLE advertising.
In the smartphone app, you should now see the FSL_HRS name. Click on it.
The board will then connect to the phone, and you’ll see a graph of the random BPM reading.
Documents and Videos | Description |
---|---|
AN12928 Bluetooth Low Energy Privacy and NXP QN9090 | Discusses the means that allow Bluetooth LE devices to preserve the identity of their users and how this relates to NXP QN9090 features, limitations, and applications. |
Democratizing the Establishment of Secure Connections | Learn how NFC can be used along with the latest wireless MCUs to democratize secure connections. |
Several examples, demos and drivers are available within the SDK to help you get started. Some common examples for security are listed below.
A demonstration program that uses the KSDK software to encrypt plain text and decrypt it back using the AES algorithm.
Path:
<SDK_PATH>/boards/qn9090dk6/driver_examples/aes
A demonstration program that uses the KSDK software to generate SHA checksums.
Path:
<SDK_PATH>/boards/qn9090dk6/driver_examples/sha/
Several examples, demos and drivers are available within the SDK to help you get started. A common example for wired communications is listed below.
A number of driver examples exist within the SDK including I2C, SPI and USART.
Path:
<SDK_PATH>/boards/qn9090dk6/driver examples
Documents and Videos | Description |
---|---|
AN2731 Compact Planar Antennas for 2.4 GHz Communication Features | Provides the basic insight on board layout and antenna design to improve the customer first pass success. |
AN12610 QN9090 RF System Evaluation Report for BLE Applications | Provides RF evaluation test results of the QN9090 for BLE applications (2FSK modulation). It includes the test setup description and the tools used to perform the tests on your own. |
AN12928 Bluetooth Low Energy Privacy and NXP QN9090 | Discusses the means that allow Bluetooth LE devices to preserve the identity of their users and how this relates to NXP QN9090 features, limitations, and applications. |
AN1252 High Power Support | The QN9090 / QN9030 feature an integrated radio, which can be used with an external Front End. This application note is concerned with setting up the device for hardware designs that uses a FEM (FrontEnd module). |
QN9090 Radio Certification Documents | Find certificate of declaration of conformity for the QN9090 as well as more on building a PCB right the first time. |
Robust RF Designs for NXP’s K32W/QN Wireless MCUs with CEL Modules | The session will describe the features and performance of the NXP solution, show how combining NXP’s K32Wx/QN90x with CEL’s optimized wireless performance delivers a variety of key benefits. |
Bluetooth Low Energy Application Developer’s Guide |
How to integrate the Bluetooth Low Energy Host Stack in an application and
provides detailed explanation of the most used APIs and code examples.Path: <SDK_PATH>/docs/wireless/Bluetooth
|
Bluetooth Low Energy Demo Applications User’s Guide |
Describes the Bluetooth® Low Energy stack enablement for the NXP
development platforms. Path: <SDK_PATH>/docs/wireless/Bluetooth
|
Bluetooth Low Energy Host Stack FSCI Reference Manual |
Provides a detailed description of the Bluetooth Low Energy Host Stack serial
commands, communication packet structure, and usage of the Framework Serial
Communication Interface (FSCI).Path: <SDK_PATH>/docs/wireless/Bluetooth
|
Bluetooth Low Energy Host Stack API Reference Manual |
Presents all APIs, information and definitions relative to BLE configuration constants, Generic Access Profile (GAP), Generic Attribute Profile (GATT) and L2CAP procedures.Path: <SDK_PATH>/docs/wireless/Bluetooth
|
Connectivity Framework Reference Manual |
An introduction to the Connectivity Framework software used to ensure
portability across the ARM®-based MCU portfolio. Definitions and
examples of framework services are included.Path: <SDK_PATH>/docs/wireless/Common
|
Kinetis FSCI Host Application Programming |
Provides a detailed description for the Kinetis Wireless Host API implementing
the Framework Serial Connectivity Interface (FSCI) on a peripheral port such as
UART, USB or SPI.Path: <SDK_PATH>/docs/wireless/Common
|
Several examples, demos and drivers are available within the SDK to help you get started. Some common examples for wireless connectivity are listed below.
The QN9090 SDK comes with a long list of BLE examples.
Path:
<SDK_PATH>/boards/qn9090dk6/wireless_examples/bluetooth
Examples show how to use the NTAG component in the context of a wireless application and how to transfer NFC data through the NTAG SRAM.
Path:
<SDK_PATH>/boards/qn9090dk6/wireless_examples/framework/nfc
QN9090(T) / QN9030(T) Bluetooth Low Energy Certification Tool User’s Guide -Certification is mandatory for these kinds of RF product according to the regulatory of each region. The test is FCC/CE certification in US and EU areas. There are similar certification requirements in other areas.
Connectivity QTool -Connectivity QTool is a BLE PC Tools. It helps the developers to evaluate NXP’s BLE devices. lt mainly includes following features: Advertising, Scanning and Connecting, Security Manager profile and other profiles such as DIS, OTAP, QPP and Wireless-UART.
Connectivity Tool Suite - Connectivity tools are a collection of applications that communicate with the NXP development boards via a serial interface. They help in the development and testing process of either 802.15.4 MAC, Simple MAC (SMAC), Thread, Bluetooth® Low Energy or Zigbee 3.0 based applications.
Documents and Videos | Description |
---|---|
AN12902 QN9090/QN9030 Power Consumption Analysis | Provides information about the power consumption of QN9090 wireless MCU, how the hardware is designed and optimized for low-power operation, and how the software is configured to achieve the best low-power profile |
Several examples, demos and drivers are available within the SDK to help you get started. A common example for power management is listed below.
Allows each of the various low power modes to be selected using a simple user interface via the serial port.
Path:
<SDK_PATH>/boards/qn9090dk6/driver_examples/power_api
Several examples, demos and drivers are available within the SDK to help you get started. A common example for device management and secure OTA is listed below.
Determines if an OTA has occurred. It also determines if an application (image) is valid and whether to load a particular application or not.
Path:
<SDK_PATH>/qn9090dk6/wireless_examples/ssbl
Basic Application Development Using MCUXpresso IDE and MCUXpresso Config Tools –This three-part video series covers the basic interactions between the MCUXpresso IDE and Config Tools when working with either an imported SDK example project or creating a new one.
The best way to build a PCB correctly the first time with K32W061, QN9090 or JN5189 – All the information you need to build your own PCB.
QN9090 Training - Full list of on-demand training, how-to videos and webinars from NXP about this product.Connect with other engineers and get expert advice on designing with the QN9090 on one of our community sites.
No problem! Your board simply came in the old packaging and has a different out-of-box demo loaded into the flash memory.
You should be seeing the RGB LED toggling between each of the three colors; red, blue and green. It's OK to move onto the next step when you're ready.
Try proceeding to the next steps to get other example applications running on your board. If you still have problems, try contacting us through the NXP Community.
After the MDK tools are installed, Cortex® Microcontroller Software Interface Standard (CMSIS) device packs must be installed to fully support the device from a debug perspective. These packs include things such as memory map information, register definitions and flash programming algorithms. Follow these steps to install the appropriate CMSIS pack.
Open the MDK IDE, which is called µVision. In the IDE, select the "Pack Installer" icon.
In the Pack Installer window, navigate to the section with the Kinetis packs (they are in alphabetical order). The Kinetis packs start with "Keil::Kinetis" and are followed by the MCU family name, for example "Keil::Kinetis_K60_DFP". Because this example uses the FRDM-K64F platform, the K60 family pack is selected. Click on the "Install" button next to the pack. This process requires an internet connection to successfully complete.
After the installation finishes, close the Pack Installer window and return to the µVision IDE.
The following steps will guide you through opening the hello_world application. These steps may change slightly for other example applications as some of these applications may have additional layers of folders in their path.
If not already done, open the desired demo application workspace in:
The workspace file is named
To build the demo project, select the "Rebuild" button, highlighted in red.
The build will complete without errors.
The FRDM-K64F board comes loaded with the mbed/CMSIS-DAP debug interface from the factory. If you have changed the debug OpenSDA application on your board, visit http://www.nxp.com/opensda for information on updating or restoring your board to the factory state.
Connect the development platform to your PC via USB cable between the "SDAUSB" USB port on the board and the PC USB connector.
Open the terminal application on the PC (such as PuTTY or TeraTerm) and connect to the debug COM port you determined earlier. Configure the terminal with these settings:
After the application is properly built, click the "Download" button to download the application to the target.
After clicking the "Download" button, the application downloads to the target and should be running. To debug the application, click the "Start/Stop Debug Session" button, highlighted in red.
Run the code by clicking the "Run" button to start the application.
The hello_world application is now running and a banner is displayed on the terminal. If this is not the case, check your terminal settings and connections.
The demo application programmed out of the box for the QN9090 board is the Proximity Reporter demo. It implements a GATT server and the following profile and services.
First you will need to download and install the IoT Toolbox smartphone app from the Google Play or iTunes store.
After powering on the board, press Button1 to begin advertising, and the blinking light should turn red. Open the IoT Toolbox app and click on the Proximity icon.