nRF5340 chip with FCC certification badge showing Bluetooth and regulatory compliance symbols
Embedded
5 min read

Enabling Direct Test Mode (DTM) on nRF5340 for FCC Testing

Practical guide to implementing DTM on Nordic nRF5340 for FCC certification, including USB protocol integration and validation strategies

Anuj Pathak

Anuj Pathak

Senior Firmware Developer

Share:

If you’re building a Bluetooth-enabled product, you’re likely aware that regulatory certification is a crucial step in the go-to-market journey. Recently, I enabled Direct Test Mode (DTM) on the Nordic nRF5340 SoC using the nRF Connect SDK (NCS) to facilitate FCC testing for a product with Bluetooth LE enabled.

This blog post provides a practical overview of what DTM is, why it’s essential for certification, and how we implemented it on the dual-core nRF5340 SoC using Zephyr-based NCS. Whether you’re an engineer integrating DTM into firmware, or a product manager navigating certification requirements, this guide aims to demystify the process.

What is Direct Test Mode (DTM)?

Direct Test Mode is a Bluetooth SIG-defined interface (Vol 6, Part F) that allows external RF test equipment to control a BLE radio. It puts the radio into defined transmit or receive states, which are required for regulatory certification such as FCC, CE, and TELEC.

DTM allows lab engineers to measure key RF parameters like:

  • Transmit power
  • Receiver sensitivity
  • Frequency stability
  • Packet error rate

Traditionally, a host (e.g., test PC) communicates DTM commands over a UART or HCI interface to the device under test.

Why is DTM Required for FCC Testing?

To legally operate in the 2.4 GHz ISM band, your product must meet FCC compliance under Part 15 Subpart C. Certification includes tests for:

  • Controlled out-of-band emissions
  • Consistent transmit power output
  • Spectrum usage and hopping behavior
  • Stability under worst-case operational conditions

DTM allows manual or automated control over the device’s RF behavior, such as continuous transmission or reception on specific channels—capabilities that are indispensable during these certification tests.

How We Implemented DTM on the nRF5340 with NCS

1. Choosing the Right Sample: direct_test_mode

The nRF Connect SDK provides a sample project at:

nrf/samples/bluetooth/direct_test_mode

This sample configures the network core of the nRF5340 as a Bluetooth Controller capable of accepting DTM commands over UART/HCI. The application core remains idle (or in bootloader mode).

Key Configuration Steps:

  • Enable: CONFIG_BT_CTLR_DTM_HCI=y
  • Set UART parameters to match test equipment (typically 115200 8N1)
  • Build for: BOARD=nrf5340dk_nrf5340_cpunet (network core only)

We then extended this by:

  • Migrating the DTM communication interface from UART/HCI to USB
  • Wrapping DTM commands in a proprietary protocol
  • Transferring commands via IPC from the application core to the network core
  • Network core utilizing dtm.c/dtm.h implementation to put device in the requested RF state

Flow Summary:

  1. Host sends a DTM command using our proprietary USB protocol
  2. Application core interprets and forwards it to the network core over IPC
  3. Network core executes the command and returns the response

2. Validating DTM Functionality

We tested the integration using Nordic’s nRF Connect for Desktop (Direct Test Mode app) with two setups:

Requirements:

  • nRF5340 DK running stock direct_test_mode firmware, connected to the PC running nRF Connect for Desktop (Direct Test Mode app)
  • Device under test (DUT) connected to the PC (could be same or different) running proprietary software

Testing:

TX Testing:

  • Setup: nRF5340 DK in RX mode (single channel), DUT in TX mode on same channel

    • Result: RX packets were observed only on the configured channel
  • Setup: nRF5340 DK in RX mode (single channel), DUT in TX mode on different channel

    • Result: RX packets were not observed on the configured channel
  • Setup: nRF5340 DK in RX mode (sweep channel), DUT in TX mode on any channel

    • Result: RX packets were observed only on the configured channel

RX Testing:

  • Setup: nRF5340 DK in TX mode on a defined channel, DUT in RX mode on same channel

    • Result: Successful packet reception observed via console logs
  • Setup: nRF5340 DK in TX mode on a defined channel, DUT in RX mode on different channel

    • Result: No packet reception observed via console logs

These tests confirmed interoperability and protocol reliability.

3. Delivering to the Certification Lab

We handed off a robust and easy-to-use test suite, which included:

  • A pre-built merged .hex firmware for the device under test
  • A host-side application to initiate Direct Test Mode
  • Clear documentation on how to operate the test firmware

This reduced back-and-forth with the lab and accelerated certification readiness.

Lessons Learned

  • The stock DTM sample can be easily integrated into custom firmware
  • While Nordic’s reference uses UART/HCI, DTM commands can be routed over any peripheral (e.g., USB) with minimal effort
  • A development board like the nRF5340 DK can act as a reference device for functional testing using Nordic’s desktop tools

Conclusion

Enabling Direct Test Mode for FCC testing on the nRF5340 using Nordic’s SDK was a valuable learning experience. With thoughtful integration and planning, you can streamline the certification process and deliver lab-ready firmware with confidence.

If you’re developing a Bluetooth product and need help with firmware integration, RF testing, or certification preparation — Croxel’s engineering team has extensive experience with Nordic platforms and FCC certification processes. We can help accelerate your product’s path to market while ensuring regulatory compliance.

About the Author

Anuj Pathak

Anuj Pathak

Senior Firmware Developer

Firmware engineer with expertise in Zephyr RTOS, embedded systems, and IoT product development. Brings extensive experience in medical device firmware, wireless connectivity solutions, and real-time embedded systems across diverse industry applications. Anuj is skilled in translating complex technical requirements into robust, production-ready firmware solutions for resource-constrained devices.