Devkits for UWB Data Communication

Hi, i’m a student researching UWB for datacommunication in low-latency applications, that also require ranging/distance estimation.
I’m looking for devkits that allow for both data communication and ranging.
I have read some papers and seen that the DWM1001-DEV is sometimes used, but I’m wondering if this is also possible on any of the DWM3000 series devboards, since this is a newer generation.
Thanks in advance for the help.

Hi Sander,
The Qorvo DWM3000 series development boards are based on the DWM3000 UWB transceiver module, which is designed for ultra-wideband (UWB) communications. These boards are capable of supporting both UWB data communication and ranging (distance estimation) functions, similar to the DWM1001-DEV.

Key points:

  • UWB Data Communication: The DWM3000 module supports UWB-based wireless data transfer, which is suitable for low-latency applications.
  • Ranging Functions: The DWM3000 supports precise distance measurement (ranging) using UWB technology, making it well-suited for applications that require accurate distance estimation.
  • Low-Latency Applications: UWB technology inherently provides low-latency communication, which is beneficial for real-time location and ranging systems.

While the DWM1001-DEV is a previous-generation development board that integrates both communication and ranging, the DWM3000 series offers similar capabilities with improved performance and compatibility with newer UWB standards.

If you need more detailed technical specifications or feature comparisons for your specific application, please let me know!

1 Like

Hi,
Thank you for the info!
Just to be sure, does this also apply for the DWM3001CDK devkit?

Hi Sander, Yes it does

Hi,
I’m currently trying to implement a simple proof-of-concept using a Fira ranging session with in-band data:
fira_helper_init_session(&fira_ctx, session_id, QUWBS_FBS_SESSION_TYPE_RANGING_AND_IN_BAND_DATA, &rsp)

I want the initiator to send “Hello from UWB” using fira_helper_data_message_send():

static uint8_t msg[] = "Hello from UWB";
static uint8_t test_seq = 0;

struct data_message_content data = {0};

data.session_handle = session_handle;
data.short_addr = get_fira_config()->controlees_params.controlees[0].address;
data.uci_seq_nr = test_seq++;
data.data_segment_info = FIRA_DATA_SEGMENT_FIRST | FIRA_DATA_SEGMENT_LAST;
data.data_len = sizeof(msg) - 1;
data.data = msg;

int r = fira_helper_data_message_send(&fira_ctx, session_handle, &data);

The call returns QERR_SUCCESS, but the data transfer never actually happens and i receive:
DATA_TRANSFER_STATUS_NTF: status=6 “Error Data Transfer Is Ongoing” seq=0 tx_count=0

DATA_CREDIT_NTF: credit_available=1

(status 6 maps to UCI_DATA_TRANSFER_STATUS_ERROR_DATA_TRANSFER_IS_ONGOING)
The responder never receives the DATA_MESSAGE_RCV callback.

The session is already in the active state when the send request is issued:
SESSION_STATUS_NTF: {state=“INIT” reason=“State change with session management commands”}

SESSION_STATUS_NTF: {state=“IDLE” reason=“State change with session management commands”}

SESSION_STATUS_NTF: {state=“ACTIVE” reason=“State change with session management commands”}

The parameters i already set/checked:
Responder:
MAC_ADDRESS_MODE=0
LINK_LAYER_MODE=0
STS_CONFIG=0
MTU_SIZE=32
APP_DATA_ENDPOINT=0
PSDU_DATA_RATE=0 (meaning the default 6.8Mbps)
MAC_PAYLOAD_ENCRYPTION=0
DATA_REPETITION_COUNT=0
DATA_SIZE_IN_RANGING=72

Initiator:
MAC_ADDRESS_MODE=0
LINK_LAYER_MODE=0
STS_CONFIG=0
MTU_SIZE=32
APP_DATA_ENDPOINT=0
PSDU_DATA_RATE=0
MAC_PAYLOAD_ENCRYPTION=0
DATA_REPETITION_COUNT=0
DATA_SIZE_IN_RANGING=114

FiRa session parameters via terminal:
FiRa Session Parameters: {
SESSION_ID: 42,
CHANNEL_NUMBER: 9,
DEVICE_ROLE: INITIATOR,
RANGING_ROUND_USAGE: DS_TWR_DEFERRED,
SLOT_DURATION [rstu]: 2400,
RANGING_DURATION [ms]: 200,
SLOTS_PER_RR: 25,
MULTI_NODE_MODE: UNICAST,
HOPPING_MODE: Disabled,
RFRAME_CONFIG: SP3,
SFD_ID: 2,
PREAMBLE_CODE_INDEX: 10,
STATIC_STS_IV: “01:02:03:04:05:06”,
VENDOR_ID: “07:08”,
DEVICE_MAC_ADDRESS: 0x0000,
DST_MAC_ADDRESS[0]: 0x0001
}

Am i missing something in the configuration for the FiRa in-band data transfer when using fira_helper_data_message_send() on the DWM3001CDK?

Thanks in advance.