QM35 DK-05 Radar: RframeConfig default mismatch (Protocol says SP3, SDK Python tool uses 0) and “NULL taps” in SP3

Hi Qorvo team,

I am using the QM35 DK-05 UWB radar kit and I noticed a discrepancy between the protocol document and the SDK Python demo configuration. When I try SP3, I often see “NULL taps” in the CIR (some taps drop to extremely small amplitude while adjacent taps remain strong). I’m hoping you can help confirm the intended default and explain the behavior.

What the documentation says

In QM35 DK-05 UWB Radar Protocol, Page 6, RframeConfig is described as default 0x03 (SP3).

What the SDK Python demo uses

In qm35-sdk 3.0.0, the Python demo config file:

Samples/Python/UWB-Qorvo-Tools/scripts/radar/radar_simple_demo/radar_parameters.json

Observations

A) PC + DK-05 board (Python radar_simple_demo)

  1. With the original SDK config (RframeConfig: 0), the CIR looks normal.

  2. If I change RframeConfig to 3, I start seeing “NULL taps” where individual taps collapse close to zero even though neighboring taps are large.


B) Raspberry Pi radar board (Cherry API, default SDK behavior)

Using the Cherry API implementation on Raspberry Pi (no modifications, following the user manual to collect CIR), I also observe similar “NULL taps” in the CIR waterfall.



If I manually force SP0 frame format, the CIR becomes normal on the Raspberry Pi radar board as well.

Questions

  1. Is SP3 truly the default RframeConfig for QM35 radar, or should it be SP0?
  2. What causes these “NULL taps” in SP3?
  3. In SP3, is the CIR estimated purely from STS or does it still use preamble for CIR extraction?

Thanks!

Hi ybppbzm

I have been able to verify the issue and confim the Null taps with the SP3 configuration. I have raised an internal ticket to root cause the issue and will follow up with an update after the RCA.

  1. There is an error in the documentation. SDK default is SP0 whereas the documenation says SP3.
    2 & 3 we will follow up.
1 Like

Hi ybppbzm,

I’ve run into the same issue as you. Right now, I’m trying to change the RframeConfig for the radar mode on my Raspberry Pi to SP0, but my attempts haven’t worked so far.
Could you give me some guidance on how to make this change successfully?

Thanks in advance!

Hi,

here is how I made it work:

add this to cherry/src/cherry_session.c:

/* set rframe config. */

enum cherry_err
cherry_session_set_rframe_config(struct cherry_session *session,
                 uint8_t rframe_config)
{
    CHERRY_SESSION_SET_PARAM(
        session,
        cherry_uci_client_session_set_app_config_cmd_put_rframe_config(
            cmd, rframe_config));
}

and add the corresponding declaration to the header file cherry_session.h

Then in cherry/radar_app/radar_app.c, within do_radar_bursts function add this:

	/* Set rframe_config to SP0 (0x00) */
	err = cherry_session_set_rframe_config(
		cherry_radar_session_to_base(session),
		0x00 /* SP0 */);
	if (err) {
		QLOGE("cherry_session_set_rframe_config failed with error %d.", err);
		goto err;
	}

Build the cherry app, and it should work

With your guidance, I was able to successfully complete the modification, and the CIR plot has now returned to normal. Thank you very much for your patient and professional support

1 Like