Achieving 3.3 Mbps Throughput with ESB on the BL54L15: Beyond BLE Limits

Published on May 6, 2026

Achieving 3.3 Mbps Throughput with ESB on the BL54L15: Beyond BLE Limits

If you have ever tried to stream high-rate sensor data over Bluetooth Low Energy, you know the frustration: the 2 Mbps PHY sounds fast on paper, but once you factor in connection intervals, L2CAP framing, ATT headers, and the rest of the BLE stack, practical throughput tops out around 1.4 Mbps. For many applications -- think raw ADC streams in medical devices, high-resolution motion capture, or real-time industrial monitoring -- that is not enough.

We set out to find a better option using hardware you may already have on your bench.

The Short Version

Using Nordic's Enhanced Shockburst (ESB) protocol with the proprietary 4 Mbps PHY on two Ezurio BL54L15 DVKs, we achieved ~3.3 Mbps of sustained unidirectional throughput. That is more than double what BLE can deliver in practice, and we did it with a few hundred lines of C on top of the standard nRF Connect SDK ESB samples.

Transmitter (left) reporting 3.30 Mbps sent, receiver (right) confirming 3.27 Mbps received.

Enhanced Shockburst - Throughput Example

Why ESB Instead of BLE?

Enhanced Shockburst is a lightweight, proprietary radio protocol that ships as part of the Nordic radio peripheral. It operates in the same 2.4 GHz band as Bluetooth but strips away everything that makes BLE a general-purpose interoperability standard: no GATT, no L2CAP, no frequency hopping, no connection management. The application writes a packet, and the radio sends it. That simplicity translates directly into throughput.

The trade-off is clear: ESB only works between Nordic devices. There is no pairing with a phone, no app store integration, no cross-vendor ecosystem. But if both ends of your link are embedded devices under your control, that constraint may not matter -- and the performance gain is significant.

The nRF54 series introduced a proprietary 4 Mbps PHY mode that ESB can take advantage of. Combined with a few configuration tweaks, this unlocks throughput that sits well above BLE's ceiling.

What We Changed

Starting from the standard ESB PTX/PRX sample applications in nRF Connect SDK v3.2.4, the key modifications were:

  • 4 Mbps PHY -- ESB_BITRATE_4MBPS instead of the default 1 or 2 Mbps
  • Maximum payload size -- 252 bytes per packet (up from the default 32), amortizing fixed packet overhead across more data
  • Disabled acknowledgement -- selective_auto_ack with noack = true eliminates the TX/RX turnaround between packets, allowing back-to-back transmission
  • Fast radio ramp-up -- CONFIG_ESB_FAST_SWITCHING=y reduces dead time before each TX/RX event
  • Continuous TX loop -- replaced k_sleep() with a tight k_yield() loop to keep the radio busy

None of these changes required modifying the ESB library itself. Everything is achievable through the public configuration API and Kconfig options.

Things to Keep in Mind

ESB is not a drop-in replacement for BLE. Some trade-offs to be aware of:

  • No frequency hopping. ESB uses a single channel. In a crowded 2.4 GHz environment, interference on that channel directly impacts reliability.
  • No built-in security. Encryption, if needed, is your responsibility at the application layer.
  • No delivery guarantee (in this configuration). We disabled acknowledgement for maximum throughput. The ~1% packet loss visible in the TX vs. RX throughput numbers is the cost. For streaming use cases where the next sample replaces the last, this is often acceptable. For reliable transport, ACKs can be re-enabled at the cost of lower throughput.
  • Range vs. speed. The 4 Mbps PHY trades of receiver sensitivity for data rate. Expect shorter range compared to 1 Mbps or 2 Mbps modes.

Try It Yourself

For a deeper dive into the protocol, a full code walkthrough, and a detailed discussion of limitations, see our Application Note - Enhanced Shockburst (ESB) with 4 Mbps PHY on the BL54L15.

The complete project -- transmitter, receiver, and build configurations -- is available on GitHub:
BL54x-High-Throughput-ESB-Demo-with-4Mbps-Phy

All you need is two BL54L15 DVKs and a working nRF Connect SDK v3.2.4 setup. If you are new to building applications for the BL54L15, the Quick Start Guide for BL54Lxx Application Development with nRF Connect for VS Codewill get you up and running.

Flash esb_4mbps_ptx to one board, esb_4mbps_prx to the other, open two serial terminals, and you should see throughput numbers within seconds.