Also implement LR11x10 AGC reset

Similar to SX126x but simpler.
This commit is contained in:
Wessel Nieboer 2026-02-21 15:33:38 +01:00
parent b2032e11b6
commit f54948e06d
No known key found for this signature in database
GPG key ID: 27BB1C3D63DEEFFF
2 changed files with 20 additions and 1 deletions

View file

@ -2,11 +2,13 @@
#include "CustomLR1110.h"
#include "RadioLibWrappers.h"
#include "LR11x0Reset.h"
class CustomLR1110Wrapper : public RadioLibWrapper {
public:
CustomLR1110Wrapper(CustomLR1110& radio, mesh::MainBoard& board) : RadioLibWrapper(radio, board) { }
bool isReceivingPacket() override {
void doResetAGC() override { lr11x0ResetAGC((LR11x0 *)_radio); }
bool isReceivingPacket() override {
return ((CustomLR1110 *)_radio)->isReceiving();
}
float getCurrentRSSI() override {

View file

@ -0,0 +1,17 @@
#pragma once
#include <RadioLib.h>
// Full receiver reset for LR11x0-family chips (LR1110, LR1120, LR1121).
// Warm sleep powers down analog, calibrate(0x3F) refreshes all calibration blocks,
// then re-applies RX settings that calibration may reset.
inline void lr11x0ResetAGC(LR11x0* radio) {
radio->sleep(true, 0);
radio->standby(RADIOLIB_LR11X0_STANDBY_RC, true);
radio->calibrate(RADIOLIB_LR11X0_CALIBRATE_ALL);
#ifdef RX_BOOSTED_GAIN
radio->setRxBoostedGainMode(RX_BOOSTED_GAIN);
#endif
}