I am currently working through the node S/W to understand the S/W flow.
The interrupt processing on the PDoA node seems strange to me. The interrupt setup on the Nordic nRF52840 only sets up the interrupt for the Master DW1000 (see interrupts_init() in dw_pdoa_node_common.c )
The problem is that the RX callback (in function twr_rx_node_cb()) reads timestamps from both devices as if both devices have received the message. This probably works for good radio conditions, but under marginal conditions the slave may not have received the message, while the master has. This can lead to stale information being used in the phase calculation as well, because phase is read assuming both DW1000’s have received the packet.
Am I interpreting the S/W flow correctly?