BLE and UWB coesistence on murata type2AB - Subject: sd_softdevice_enable() never returns when adding BLE (S140) to UWB CLI-FreeRTOS project - Murata Type2AB

Dear all ,
we are having problem testing the combo skill of murata type2AB about running the BLE stack and UWB in parallel. Following all details.

nRF52840.ld.txt (11.1 KB)
main.c.txt (1.2 KB)
sdk_config .h.txt (270.0 KB)
FreeRTOSConfig.h.txt (9.4 KB)

Hardware: Murata Type2AB EVK (nRF52840 + QM33120W), DW3_QM33_SDK_1.1.1, FreeRTOS CLI sample project (originally UWB-only, working correctly). Adding SoftDevice S140 v7.2.0 for BLE (advertising/scanning only, no GATT/connections needed).

**
rtt.txt (9.7 KB)
**: nrf_sdh_enable_request() (sd_softdevice_enable()) never returns. Reproduces even in a minimal test with all UWB init removed (only BoardInit() + the SoftDevice call) - see attached main.c and RTT log. Watchdog resets the board every ~60s and the hang repeats identically.

Already ruled out:

  • Flash/RAM reallocation (FLASH origin 0x27000, RAM adjusted) - verified S140 is genuinely flashed via GDB memory read
  • NVIC priorities - none of ours overlap SoftDevice’s reserved 0/1/4; configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY matches your GTW05_BLE_only reference (_PRIO_APP_HIGH)
  • LFCLK source/accuracy - switched XTAL to RC, accuracy set correctly per compile-time check
  • LFCLK stabilization timing - manually pre-started LFCLK before the SD call, confirmed running=true instantly (wait_count=0) every time
  • UWB interaction - identical hang with zero UWB init in the call path
  • Linker/missing symbols - confirmed via nm that all SDH object files and symbols are present in the .elf

Question: Is there anything specific to Murata Type2AB / QM33120W designs (UICR, DCDC, errata, SPI/GPIO conflict between the UWB transceiver interface and SoftDevice/RADIO) that would explain this, given the stock Nordic BLE-only example works fine on its own?

Have you an example out of the box of coesistence between BLE and UWB in murata2AB board or similar ?
Please support us regarding this,
Thanks a lot.
Nicola

I just saw your post today

I spent most of the winter adding BLE to the Murata Type2AB UCI build in the 1.1.1 sdk. It can be done

The key for me was turning off the SPI3 workaround in the sdk_config.h

I use Seggers Ozone source level debugger and the elf file

If you look at the QANI project for how softdevice is added as a binary section in the ld file. You can do the same with sd 140, see

Hi rexxdad,
I did the fix and its working correctly in dual mode (scanning+advertising) , with s140 integrated.
Thanks a lot.

Awesome! You mean the SPI 3 workaround disable?

yes I already had that parameter disabled but I used the wrong “.py” converter. Now I’m going further hoping no other issues

Awesome.

I didn’t really have any other troubles, adjusting memory size in ld file based on other things I added was tedious

I spent a month with the boards (2-Type2ab) facing away from each other. Doah!!! So the UWB stuff failed or gave crazy results. Murata helped me solve that one.

do you mean you had a lot of issues in the UWB measurements ? From what I see UWB is working good if I put the 2 type2AB face to face but if I turn them I lose packets. Do you mean this ?

yes, I didn’t know how the boards were supposed to be positioned..

  1. components toward each other (antennas LOOKED like they were on that side of the board)
  2. back, non-component,
  3. vertical
  4. horizontal
    I picked 1 & 4.. oops.. , needed 2 & 4

I have another thread asking to Murata how to put FPC antennas on custom PCB cause we need 360° coverage or at least a better coverage than PCB ones on our iot device. I see they have just SMA external antennas , too big for smart iot device. Hope they help.

yeh, I don’t think they can answer you.

they have two boards..
one with fixed antennas in the board, 1055
one with external connectors.. can’t remember the other..