Dynamic CAD sensitivity#2916
Conversation
|
@weebl2000 : I tested in my setup with 5 weakly connected nodes, 50 direct messages in 10s intervals, interference by a LoRa node sending local adverts every 6 seconds and a successful delivery counted if the last node ACKs. Looks good: the problems I saw with 7c8e092 disappeared. My results:
Attached you can find the monitoring logs. dev-50-wo-cad.txt |
|
I wonder why using dynamic CAD together with repeated sending #2670 decreases deliverability significantly. Resending happens relatively often, but following nodes seem not to react. May the CAD analysis create too much deafness? I wonder why I didn't see this effect when running the same test without the sending repetition. |
Probe every 4 seconds to measure actual channel activity. If channel seems busy we adjust CAD to be less sensitive. If channel seems empty maximum CAD sensitivity.
|
@weebl2000 Agreed on the motivation: at a busy node, sub-decode remote traffic and interference trip CAD-based carrier sense into unnecessary TX deferral, so auto-lowering CAD sensitivity ( (a) Effect on standard MeshCoreWhen CAD is enabled (opt-in The benefit is real - fewer false-busy deferrals under overload - but two costs trade against it:
(b) Interaction with repeated-sending (#2670)Standard MeshCore doesn't imply repeated-sending, so (a) stands on its own - but the repeated-sending demonstrates the limits of (a). #2670's resend path deliberately avoids CAD: it uses a non-invasive RSSI/noise-floor gate (
Net: the two pull opposite ways - CAD desensitizes under load, repeated-sending needs a collision-free, RX-receptive channel. I saw exactly this in the A/B I posted two days ago (CAD on vs off under repeated-sending load, past the 128 s window - see above). (c) The RSSI-margin path#1727 moved away from RSSI carrier sense ("Using RSSI isn't very reliable"), so The "RSSI unreliable" residual is smaller than it looks for a margin gate. The real argument for keeping an RSSI-margin path isn't accuracy, it's that CAD is a different sensing modality: a preamble detector, immune to RSSI calibration, but structurally unable to run without leaving RXCONTINUOUS - so it deafens the receiver. A non-invasive RSSI-margin gate stays in RX, which is exactly what repeated-sending's cancel-overhearing (#2670) relies on. The trade is calibration-immunity + deafness (CAD) vs calibration-noisy + RX-receptive (RSSI-margin). So for discussion: with #2933 making the floor reliable and the hardware residual largely self-neutralizing (especially under boosted gain), is the non-invasive RSSI-margin path worth revisiting? |
Probe every 4 seconds to measure actual channel activity. If channel seems busy we adjust CAD to be less sensitive. If channel seems empty maximum CAD sensitivity.
Build here: https://mcimages.weebl.me/?commitId=dynamic-cad
Based on conversation in #1727 - this should make a busier node be less senitive to preambles. Tagging @recrof and @syssi would be interesting to see how this changes behavior.
You can use get cad and it will show stats for actual preambles detected during idle periods.