diff --git a/src/main.cpp b/src/main.cpp index c2e702115..53ed53b9d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -142,15 +142,6 @@ static int32_t ledBlinker() setLed(ledOn); - auto newHeap = memGet.getFreeHeap(); - if (newHeap < 10000) { - LOG_DEBUG("\n\n====== heap too low [10000] -> reboot in 1s ======\n\n"); -#ifdef HAS_SCREEN - screen->startRebootScreen(); -#endif - rebootAtMsec = millis() + 900; - } - // have a very sparse duty cycle of LED being on, unless charging, then blink 0.5Hz square wave rate to indicate that return powerStatus->getIsCharging() ? 1000 : (ledOn ? 1 : 1000); } diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index 02749feb8..964ae37ab 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -767,7 +767,7 @@ meshtastic_NodeInfo *NodeDB::getOrCreateNode(NodeNum n) meshtastic_NodeInfo *info = getNode(n); if (!info) { - if (*numNodes >= MAX_NUM_NODES) { + if ((*numNodes >= MAX_NUM_NODES) || (memGet.getFreeHeap() < meshtastic_NodeInfo_size * 3)) { screen->print("warning: node_db full! erasing oldest entry\n"); // look for oldest node and erase it uint32_t oldest = UINT32_MAX;