Hi all,
I'm working on a Nordic-based system involving multiple nRF52-series chips exchanging high-rate sensor data over both radio and SPI links. The setup involves two independent wireless paths feeding the same 10 kHz data stream into a central processor, which must cleanly merge, de-duplicate, and re-order this stream for reliable output over SPI to a downstream device (ESP32 acting as SPI slave).
System Overview:
-
Sensor Node A: Samples data at 10 kHz, sends via SPI to Node B, and also transmits the same stream over 2.4 GHz Nordic proprietary radio to Node C.
-
Node B: Forwards the 10 kHz stream via radio to Node D.
-
Central Node (Node D): Receives two parallel 10 kHz streams with possible packet loss or jitter. Needs to:
-
Merge the two sources (RADIO interrupt and SPIS interrupt) into one clean, ordered stream
-
Eliminate duplicates using a 16-bit sequence number
-
Output the result over SPI at a steady 10 kHz
-
Constraints & Challenges:
-
Duplicate packets from dual paths must be detected and discarded.
-
Out-of-order arrivals are expected due to radio/SPI timing variance.
-
Latency vs. Buffering trade-off is tricky: excessive buffering increases latency, but insufficient buffering may cause gaps.
-
All of this must happen with minimal latency.
Tools & Environment:
-
nRF Connect SDK (v2.9)
Nordic proprietary 2.4 GHz stack
My Question:
I'm looking for architectural suggestions or best practices to robustly and efficiently merge these two data streams. Are there any design patterns, or tricks in the nordic environment that would help here? For example, strategies for lightweight reordering and de-duplication under tight real-time constraints.
Appreciate any advice!
Thanks!