diff --git a/pages/debugging.md b/pages/debugging.md index 4da6cfb..f133936 100644 --- a/pages/debugging.md +++ b/pages/debugging.md @@ -26,6 +26,17 @@ consoles and link budgets, with the Inspector for whichever node is selected. | no route | nothing relayed it | regions, `flood_max`, loop detection | | dropped by region | the node does not hold the scope | the region map, or the scope being sent on | +A collision says where it landed. "Decoded its header, then N symbol(s) were +destroyed" is a frame whose payload failed its CRC; "locked on, then N of its 8 +header symbols were destroyed" is a header the receiver could not read. The +receiving node's firmware is told the same thing its radio would report: a CRC +error, with the damaged bytes, or a header error and nothing more. A frame the +receiver could detect and never locked onto, because something stronger +swamped it while its preamble was still to be found, raises nothing, as on the +radio: on a native node the preamble flag stays set until the firmware clears +it, and a receiver re-armed part-way through a frame loses that frame. Only +native firmware builds that support it are told; emulated boards are not yet. + "It did not arrive" and "it arrived 3 dB under the floor" lead to completely different fixes, which is why the cause is recorded rather than a boolean.