-
Notifications
You must be signed in to change notification settings - Fork 588
Description
I've been tinkering with my repeater as of late, trying its sensitivity and noise floor in various conditions. Looks like there's an issue with AGC not being reset after getting hit by a strong signal (I've used a handheld radio to simulate a powerful interference source). The noise floor in the application drops to -120 dBm permanently, and the repeater gets "deafened" until rebooted. Building with the -D SX126X_RX_BOOSTED_GAIN=0 flag helps somewhat in the noisy urban environment, but a strong noise peak still can induce this problem.
As per code in RadioLibWrappers.cpp, "according to higher powers, just issuing RadioLib's startReceive() will reset the AGC". Apparently it isn't the case, because setting agc.reset.interval as low as 4 doesn't do nothing with this problem, and the noise floor still gets clamped at -120 dBm. Which is not surprising, according to this:
if (_noise_floor < -120) { _noise_floor = -120; // clamp to lower bound of -120dBi }
All in all, it seems to me that either this method of resetting AGC doesn't work, there's something at fault with the agc.reset procedure or something else going on.