@ -135,7 +135,16 @@ void setup() {
}
#endif
if (!radio_init()) { halt(); }
int radioinit_attempts = 0;
while (!radio_init()) {
++radioinit_attempts;
MESH_DEBUG_PRINTLN("Radio init failed! (attempt %d)", radioinit_attempts);
if (radioinit_attempts >= 3) {
MESH_DEBUG_PRINTLN("Radio init failed 3x - rebooting");
board.reboot();
delay(500);
fast_rng.begin(radio_driver.getRngSeed());
@ -78,8 +78,15 @@ void onGetStats(uint32_t* rx, uint32_t* tx, uint32_t* errors) {
void setup() {
board.begin();
if (!radio_init()) {
halt();
radio_driver.begin();
@ -60,9 +60,15 @@ void setup() {
MESH_DEBUG_PRINTLN("Radio init failed!");
@ -45,7 +45,16 @@ void setup() {
@ -564,7 +564,16 @@ void setup() {
external_watchdog.begin();
@ -70,7 +70,16 @@ void setup() {