From b2dbc2d5812fe8ea00ed9bcbe1ba6c5a8133e3da Mon Sep 17 00:00:00 2001 From: Ian Taylor Date: Sat, 20 Jan 2024 15:54:44 -0700 Subject: [PATCH] [RF] Use exponential backoff delay in initCC1101() (#1874) --- main/ZcommonRF.ino | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/main/ZcommonRF.ino b/main/ZcommonRF.ino index 2aa7ccb..2d5a41e 100644 --- a/main/ZcommonRF.ino +++ b/main/ZcommonRF.ino @@ -34,6 +34,8 @@ void initCC1101() { # ifdef ZradioCC1101 //receiving with CC1101 // Loop on getCC1101() until it returns true and break after 10 attempts + int delayMS = 16; + int delayMaxMS = 500; for (int i = 0; i < 10; i++) { if (ELECHOUSE_cc1101.getCC1101()) { Log.notice(F("C1101 spi Connection OK" CR)); @@ -42,8 +44,11 @@ void initCC1101() { break; } else { Log.error(F("C1101 spi Connection Error" CR)); - delay(500); + delay(delayMS); } + // truncated exponential backoff + delayMS = delayMS * 2; + if (delayMS > delayMaxMS) delayMS = delayMaxMS; } # endif }