t4as

Research note · 2026-05-11

nRF54L15 Minimal Zephyr PAwR/PAST Sample Result

Date: 2026-05-11

This test temporarily replaced the device firmware with stock Zephyr samples. No production source files were edited. After the test, the nRF52840 tag was restored from 1wire_blesensro_prod/build_debug/merged.hex, and the nRF54L15 AP was restored from samples_nrf54/central_esl/build_nrf54l15_connectkit/merged.hex.

Samples Used

AP / PAST sender:

  • Source: ~/ncs/v2.8.0_clear/zephyr/samples/bluetooth/periodic_adv_rsp
  • Board: nrf54l15_connectkit/nrf54l15/cpuapp
  • Build directory: ../build_minimal_periodic_adv_rsp
  • Controller: SoftDevice Controller enabled (CONFIG_BT_LL_SOFTDEVICE=y, CONFIG_BT_CTLR_SDC_PAWR_ADV=y)

Tag / PAST receiver:

  • Source: ~/ncs/v2.8.0_clear/zephyr/samples/bluetooth/periodic_sync_rsp
  • Board: adafruit_itsybitsy/nrf52840
  • Build directory: ../build_minimal_periodic_sync_rsp
  • Controller: SoftDevice Controller enabled (CONFIG_BT_LL_SOFTDEVICE=y, CONFIG_BT_CTLR_SDC_PAWR_SYNC=y)

Capture Artifact

  • AP serial capture: ../logs/minimal_pawr_past/20260511_stock_samples/ttyACM0.log

Only ttyACM0.log is used as evidence for this stock-sample run. The second ACM capture from the same run was empty and is not treated as a data source.

Result

The stock Zephyr pair sustained PAwR responses after PAST.

Marker counts from the AP serial log:

  • PAST sent: 6
  • Connected (err 0x00): 7
  • PAwR config written: 6
  • Response: subevent: 176
  • Disconnected, reason: 7

Representative AP output:

PAST sent
Discovery started
PAwR config written to sync 0, disconnecting
Response: subevent 0, slot 0
    0xFF: 590018
Response: subevent 0, slot 0
    0xFF: 59001D

Interpretation

This is a major discriminator. The hardware and NCS v2.8.0 SoftDevice Controller are not globally incapable of PAwR + PAST between nRF54L15 and nRF52840.

The ESL failure is therefore narrower. It is likely triggered by some part of the ESL-like profile or runtime sequence, for example:

  • long periodic interval 1408 units / 1760 ms
  • single subevent
  • ESL response-slot timing: subevent interval 11, response slot delay 8, response slot spacing 3, response slots 8
  • ESL encrypted/ad-addressed payload shape and update cadence
  • PAST timing relative to ACL configuration/disconnect
  • AP periodic advertising behavior under the ESL AP implementation rather than the stock sample implementation

The next minimal discriminator should fork/copy these stock samples into an isolated diagnostic sample and change only the PAwR parameters toward the ESL profile. If the adapted minimal pair fails with one-valid-RX then RX_FAILED, the production ESL app is cleared and the DevZone request can focus on the controller/SDC behavior under that PAwR timing profile. If the adapted minimal pair still works, the remaining root is more likely ESL-specific runtime sequencing or payload handling.