element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents How Accurate Is Bluetooth Channel Sounding? A Deep Dive with the nRF54L15
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
EMI-Reduction-Techniques
Recommended
Engagement
  • Author Author: cstanton
  • Date Created: 18 Nov 2025 5:06 PM Date Created
  • Last Updated Last Updated: 20 Nov 2025 12:06 PM
  • Views 221 views
  • Likes 3 likes
  • Comments 1 comment

How Accurate Is Bluetooth Channel Sounding? A Deep Dive with the nRF54L15

Pat takes a practical look at Bluetooth 6.0 channel sounding using Nordic’s nRF54L15 DK, breaking down how RTT, phase-based ranging, and the new sounding packets behave once you get them off the bench and into the real world. He digs into RF captures, decodes the packets, rewrites the sample code into a cleaner library, and runs open-air distance tests using reflectors, SDR tools, and his own analysis workflows. If you’re curious about how channel sounding actually performs, what the measurements look like at the signal level, or how to start experimenting with the 54-series devices, this deep dive offers a clear view of what’s possible today and where the challenges show up.

Watch the Video

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image


Pat set out to demystify one of Bluetooth 6.0’s headline features: channel sounding, using Nordic Semiconductor’s nRF54L15 Development Kit. In typical Pat fashion, he wasn’t interested in marketing gloss. As he put it at the start, most resources “feel more like marketing pitches, leaving engineers and curious minds with more questions than answers.” So, he committed to tearing into the technology from the perspective makers, engineers, and RF tinkerers actually need.

His goal for this video project was simple: understand channel sounding down to the signal level, implement it using Nordic’s sample code, and test its real-world performance with open-air experiments. Along the way, he built support tools, captured the raw RF behaviour, made firmware libraries, and even did field measurements with reflectors hanging off clotheslines. The result is a hands-on look at a technology that will eventually ship in phones, trackers, locks, and all sorts of short-range positioning systems.

nrf54l15

The Hardware: Why Pat Reached for the nRF54L15

Nordic’s nRF54L15 DK is the backbone of Pat’s entire investigation. He’s used Nordic chips for years and notes that the new 54-series devices are “an extension of the 52… a plus-plus version”, with a faster M33 core, better efficiency, and a RISC-V coprocessor for timing-critical jobs. That coprocessor caught his attention: “an independent little machine to handle time-critical tasks… without requiring anything from the main processor.” For something like channel sounding, full of tight timing windows, this matters.

But what really triggered the deep dive was Bluetooth 6.0’s new precise ranging capability, fully supported in hardware on this device. In his words: “what really got my juices flowing is that the 54L supports one of Bluetooth’s coolest new features: channel sounding.”

Pat also highlighted a couple of practical points makers will appreciate. First, Nordic made the DK simple. Instead of jumper forests, much of the configuration happens through nRF Connect Desktop, which keeps the board design clean. But he was honest about the tradeoff: “It turns things like the VDD into mystery meat… there’s no way to tell what it’s set to by looking at the board.” Second, the chip tolerates a broad voltage range (1.8–3.3 V), which let him power a reflector module with AA batteries during field tests.

The supporting gear was typical RF-tinkerer fare: a Morpheus down-converter for spectrum analysis, a phone-based serial USB terminal app for logging over UART, and a clothesline for suspending reflectors to get them away from the ground plane. It was all in service of getting clean, repeatable measurements.

image

How Channel Sounding Actually Works

Before jumping into demos, Pat laid out the core idea behind channel sounding. Bluetooth has always let devices know they’re near each other, but RSSI-based distance guessing has never been reliable. As Pat put it: “calling it inaccurate is an understatement.” Channel sounding, by contrast, tries to get real distance, centimetre-level when conditions are ideal.

Pat breaks it down into two measurement paths:

1. Round Trip Time (RTT)

RTT is the radar-like approach: send a packet, wait for the reply at a precisely defined delay, subtract clock offsets, and infer the path length. Nordic’s implementation uses what Pat described as a “collaborative approach, with both sides sending transmissions.” Instead of echoes, the reflector actively sends back the pong.

He emphasised the clock-offset correction mechanism, where devices exchange known pure tones. He explains: “if the system clocks aren’t in agreement, it’s going to be measured by the initiator as a frequency with some offset.” Correcting that offset is essential before you can trust the timing.

2. Phase-Based Ranging (PBR)

The second approach is clever: use phase differences across many BLE frequencies to derive distance. Each frequency experiences a different phase rotation along the same physical path. When you hop across channels and compare, a slope emerges.

Pat showed how this produces the “sparkle field” seen in his RF captures. You see initiator tones and reflector tones bouncing back on many channels in a sequence. As he said, “that’s what all these extra sparkles are… mode two phase-based ranging.”

The redundancy is deliberate. “If phase says you’re one meter out but RTT reports you 40 meters away, something is off,” he noted. Both methods can cross-validate and harden the system against spoofing.

image

Digging Into the RF: SDR Tools, Packet Captures, and Nordic Samples

To really understand what the radios were doing, Pat used a LimeSDR and an Inspectrum build of his own (with new usability patches) to capture and analyse the BLE traffic. He mixed down the 2.4 GHz signals using a 1.4 GHz LO so his analyser could watch the down-converted spectrum range.

He found that with max-hold running, the DK “eventually lights up almost 80 MHz of spectrum… one tiny piece at a time.” These were the individual 2 MHz BLE channels being used for the hop-by-hop phase measurements.

To understand the packets, he decoded preambles, access addresses, whitening, and the special CSS SYNC packets. These packets have unusual structures, Pat remarked that the four-bit trailer “is kind of annoying because now everything that might come after is no longer aligned on byte boundaries.” He even wrote an external decoder for his Inspectrum fork to handle symbol parsing.

From the software side, he leaned heavily on the Nordic sample apps. But instead of leaving the code in sample form, he did what many embedded engineers end up doing: tear out the spaghetti.

He explained that the official samples combine “boilerplate, setup, basic interactions, application logic… hard-coded to one specific use case.” So he refactored them into a proper library and wrapped it with a C++ class. This let him write cleaner test apps, connect to multiple devices, and log data in a controlled way.

For those curious, he’s put his channel sounding library and examples on GitHub.

image

Testing in the Real World: Clotheslines, Parks, and a Lot of Data

After validating the radio behaviour and the firmware, Pat moved on to the fun part: range testing. Indoors, things were too chaotic—“tight and cluttered, with signals bouncing everywhere.” So he set up an outdoor test track.

Free-Space-Like Setup

To get as close to free-space propagation as possible, Pat needed to physically isolate the reflector. That’s where the clothesline came in. With the reflector suspended in mid-air, powered by AA batteries, and logging via his phone, he could walk away with the initiator DK and collect distances at various known positions.

He first tried rough distances of 5 m, 10 m, and ~50 m. Then he created a more carefully spaced flag line in a park, planting markers every 5 meters out to around 45 m. Even then, the handheld laser ranger wasn’t precise outdoors, so the distances were approximate.

What He Found

The data was revealing:

  • RTT was the most consistent and had “less than 1% failure rate” at mid-range.

  • Phase slope tended to over-estimate distance by 20–30%.

  • Inverse FFT (another phase-based estimate) was the most sensitive to disturbances.

  • Overall jitter in any method was 60–120 cm, even when the mean distance was right.

Pat noted that channel sounding absolutely works, but the hopes of “20 cm precision” using single PCB antennas aren’t realistic in this configuration. Adding antenna diversity, polarisation diversity, or improved RF front-ends would be the next step to tighten up accuracy.

image

Trying Positioning with Two Reflectors

Distance is good, but Pat pushed further, could he triangulate position?

With two reflectors set 20 m apart, and the initiator rotating through connect → measure → disconnect cycles, he tried to compute intersection regions of the distance bands. Because “jiggle in the estimates” frequently made the two circles not intersect, he allowed ±50 cm tolerance to turn each circle into a band.

Getting both reflectors to sound simultaneously didn’t work yet, he suspects the sounding sequences interfere with each other, but by brute forcing sequential measurements he managed to get usable data. It wasn’t precise positioning, but it demonstrated the mechanics for future refinement.

imageimage

Working with the Nordic Ecosystem

Pat spent time discussing what it’s like to actually develop with the nRF54 family:

  • Zephyr RTOS: Powerful, open, and flexible, but a steep learning curve. “If you're new to it… it can feel like trying to sew with a sledgehammer.”

  • SoftDevice Controller: A necessary but opaque binary blob. Sometimes it produces cryptic errors with no source to inspect.

  • Developer Support: Nordic’s DevZone is invaluable, but replies take time.

  • Documentation: Genuinely excellent, and the Nordic Developer Academy has complete courses.

His message to makers is that Nordic gives you the tools, but you’ll need to get comfortable with Zephyr, device tree overlays, and a fair bit of abstraction.

Supporting Links and Downloads

-  Episode 691 Supporting Files  (Github: Inspectrum / Sounding Library / Experiment Data )

- Pat Deegan's Youtube Channel / Blog / Consulting Services

- FMCW RADAR Playlist

- Bluetooth Channel Sounding Specification

- Great Scott Gadgets - SDR

- Nordic Semi's Channel Sounding with Multiple Reflectors

- Kicad: Unlocked Course

- Nordic Developer Academy

- nRF54L Series Express Course

Bill of Materials

- nrf54L15 Development Kit

Join the Conversation, What Can the Community Do with Channel Sounding?

Pat’s takeaway is that channel sounding is real, available now, and working, just not yet at the “centimetre-accurate magic” level people might expect. He showed that with the nRF54L15, you can:

  • implement RTT and phase-based ranging,

  • visualise all the underlying radio behaviour,

  • characterise accuracy in the field,

  • and start experimenting with positioning systems.

But Pat also made it clear there’s room for exploration. Precision depends heavily on antennas, test environments, averaging strategies, and algorithms. Nordic intentionally leaves the final distance-estimation logic open, which means there’s opportunity for optimisation, experimentation, and community-driven ideas.

In his words, the Bluetooth SIG “left a ton of room for selecting the right tradeoffs for your particular circumstances.” That’s where hobbyists and engineers shine.

Pat put a lot of time into showing what channel sounding actually does in the real world, where the clean-looking spec bumps into noise, phase quirks, and antennas that don’t always behave. If you’ve spent time wrestling with RF measurements, SDR captures, or Nordic’s tooling, you probably spotted a few moments where you thought, “I’ve hit that exact problem before.” That’s the kind of insight other makers can really benefit from.

If you’ve tried open-air tests of your own, especially with BLE or UWB, what setup gave you the most stable readings? Pat mentioned that the biggest battle was getting away from reflections, if you’ve found a trick or layout that helped you tame multipath, sharing that would save others a lot of time.

Or maybe you’ve worked with Zephyr on the 52 or 53 series and found a reliable way to structure small test apps without drowning in overlays or sample boilerplate. Pat rebuilt the sample code because he hit those same walls. If you’ve solved something similar, walk the rest of us through your approach.

And if you’ve pushed phase-based ranging or RTT further than Pat managed here, better antennas, averaging tricks, or clever filtering, show the community what worked for you. Someone else is almost certainly stuck at the same point.

What part of Pat’s work lines up with something you’ve already battled through, and what did you learn that could help the next person?

  • limesdr
  • phase based ranging
  • SDR analysis
  • Zephyr RTOS
  • RTT ranging
  • BLE ranging
  • RF experimentation
  • distance estimation
  • BLE phase slope
  • IQ samples
  • nordic semuconductor
  • Bluetooth channel sounding
  • embedded development
  • nRF54L15
  • RF measurements
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply
  • DAB
    DAB 1 day ago

    Very interesting and informative.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube