diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index c1dc40f08..65ed14874 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -303,6 +303,7 @@ void NodeDB::installDefaultDeviceState() snprintf(owner.short_name, sizeof(owner.short_name), "%02x%02x", ourMacAddr[4], ourMacAddr[5]); snprintf(owner.id, sizeof(owner.id), "!%08x", getNodeNum()); // Default node ID now based on nodenum + memcpy(owner.macaddr, ourMacAddr, sizeof(owner.macaddr)); } void NodeDB::init() @@ -381,17 +382,17 @@ void NodeDB::pickNewNodeNum() { NodeNum r = myNodeInfo.my_node_num; - // If we don't have a nodenum at app - pick an initial nodenum based on the macaddr - if (r == 0) - r = (ourMacAddr[2] << 24) | (ourMacAddr[3] << 16) | (ourMacAddr[4] << 8) | ourMacAddr[5]; + // Pick an initial nodenum based on the macaddr + r = (ourMacAddr[2] << 24) | (ourMacAddr[3] << 16) | (ourMacAddr[4] << 8) | ourMacAddr[5]; if (r == NODENUM_BROADCAST || r < NUM_RESERVED) r = NUM_RESERVED; // don't pick a reserved node number meshtastic_NodeInfoLite *found; while ((found = getMeshNode(r)) && memcmp(found->user.macaddr, owner.macaddr, sizeof(owner.macaddr))) { + // FIXME: input for random() is int, so NODENUM_BROADCAST becomes -1 NodeNum n = random(NUM_RESERVED, NODENUM_BROADCAST); // try a new random choice - LOG_DEBUG("NOTE! Our desired nodenum 0x%x is in use, so trying for 0x%x\n", r, n); + LOG_WARN("NOTE! Our desired nodenum 0x%x is in use, so trying for 0x%x\n", r, n); r = n; } diff --git a/variants/rak11310/variant.h b/variants/rak11310/variant.h index a2bef0730..1d1577cfd 100644 --- a/variants/rak11310/variant.h +++ b/variants/rak11310/variant.h @@ -14,6 +14,7 @@ #undef GPS_SERIAL_NUM #define LED_CONN PIN_LED2 +#define LED_PIN LED_BUILTIN #define BUTTON_PIN 9 #define BUTTON_NEED_PULLUP