Remove Cascadia power saving default

This commit is contained in:
mikecarper committed 2026-05-28 17:28:38 -07:00
1 parent 01f43b12c9
commit fec6ddbfa5
5 files changed
+48 -6

No files matched your search

+1 -2
View File
@@ -446,7 +446,6 @@ prompt_for_cascadia_profile_enable() {
echo " - multi.acks: 1"
echo " - path.hash.mode: 2"
echo " - loop.detect: minimal"
echo " - powersaving: on"
prompt_on_off_choice "Enable Cascadia profile overrides" "on"
if [ "$MENU_CHOICE" == "on" ]; then
FIRMWARE_PROFILE_OVERRIDE="cascadia"
@@ -958,7 +957,7 @@ apply_radio_overrides() {
apply_firmware_profile_overrides() {
case "${FIRMWARE_PROFILE_OVERRIDE,,}" in
cascadia)
export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} -DCASCADIA_PROFILE=1 -DDEFAULT_RX_DELAY_BASE=1.0f -DDEFAULT_LOOP_DETECT=1 -DDEFAULT_POWERSAVING_ENABLED=1 -DDEFAULT_AGC_RESET_INTERVAL=2 -DDEFAULT_ADVERT_INTERVAL=0 -DDEFAULT_FLOOD_ADVERT_INTERVAL=83 -DDEFAULT_MULTI_ACKS=1 -DDEFAULT_PATH_HASH_MODE=2"
export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} -DCASCADIA_PROFILE=1 -DDEFAULT_RX_DELAY_BASE=1.0f -DDEFAULT_LOOP_DETECT=1 -DDEFAULT_AGC_RESET_INTERVAL=2 -DDEFAULT_ADVERT_INTERVAL=0 -DDEFAULT_FLOOD_ADVERT_INTERVAL=83 -DDEFAULT_MULTI_ACKS=1 -DDEFAULT_PATH_HASH_MODE=2"
;;
esac
}
+1 -1
View File
@@ -498,7 +498,7 @@ This document provides an overview of CLI commands that can be sent to MeshCore
- `on`: enable power saving
- `off`: disable power saving
**Default:** `on`
**Default:** `off`
**Note:** When enabled, device enters sleep mode between radio transmissions
+37 -3
View File
@@ -2143,7 +2143,6 @@ void MyMesh::begin(FILESYSTEM *fs) {
_prefs.multi_acks = DEFAULT_MULTI_ACKS;
_prefs.path_hash_mode = DEFAULT_PATH_HASH_MODE;
_prefs.loop_detect = DEFAULT_LOOP_DETECT;
_prefs.powersaving_enabled = DEFAULT_POWERSAVING_ENABLED;
#endif
acl.load(_fs, self_id);
// TODO: key_store.begin();
@@ -2208,6 +2207,34 @@ void MyMesh::sendFloodScoped(const TransportKey& scope, mesh::Packet* pkt, uint3
}
}
void MyMesh::sendFloodScopedWithSelfPath(const TransportKey& scope, mesh::Packet* pkt,
uint32_t delay_millis, uint8_t path_hash_size) {
if (pkt == NULL) {
return;
}
if (path_hash_size == 0 || path_hash_size > MAX_ROUTE_HASH_BYTES) {
MESH_DEBUG_PRINTLN("%s MyMesh::sendFloodScopedWithSelfPath(): invalid path_hash_size", getLogDateTime());
return;
}
pkt->header &= ~PH_ROUTE_MASK;
if (scope.isNull()) {
pkt->header |= ROUTE_TYPE_FLOOD;
} else {
uint16_t codes[2];
codes[0] = scope.calcTransportCode(pkt);
codes[1] = 0;
pkt->header |= ROUTE_TYPE_TRANSPORT_FLOOD;
pkt->transport_codes[0] = codes[0];
pkt->transport_codes[1] = codes[1];
}
pkt->setPathHashSizeAndCount(path_hash_size, 1);
self_id.copyHashTo(pkt->path, path_hash_size);
getTables()->markSent(pkt);
sendPacket(pkt, 1, delay_millis);
}
bool MyMesh::sendRepeatersFloodText(const char* text) {
if (text == NULL || *text == 0) return false;
@@ -2223,8 +2250,15 @@ bool MyMesh::sendRepeatersFloodText(const char* text) {
const size_t max_data_len = MAX_PACKET_PAYLOAD - CIPHER_BLOCK_SIZE;
const size_t prefix_cap = max_data_len > 5 ? max_data_len - 5 + 1 : 0;
char sender_name[sizeof(_prefs.node_name)];
StrHelper::strncpy(sender_name, _prefs.node_name, sizeof(sender_name));
for (char* p = sender_name; *p; p++) {
if (*p == ':') {
*p = ';';
}
}
int prefix_written = prefix_cap > 0
? snprintf((char*)&temp[5], prefix_cap, "%s: ", _prefs.node_name)
? snprintf((char*)&temp[5], prefix_cap, "%s: ", sender_name)
: -1;
if (prefix_written < 0) {
return false;
@@ -2247,7 +2281,7 @@ bool MyMesh::sendRepeatersFloodText(const char* text) {
return false;
}
sendFloodScoped(default_scope, pkt, 0, _prefs.path_hash_mode + 1);
sendFloodScopedWithSelfPath(default_scope, pkt, 0, _prefs.path_hash_mode + 1);
return true;
}
+2
View File
@@ -242,6 +242,8 @@ protected:
const uint8_t* path, uint8_t path_len,
const uint8_t* alt_path, uint8_t alt_path_len,
uint32_t delay_millis);
void sendFloodScopedWithSelfPath(const TransportKey& scope, mesh::Packet* pkt,
uint32_t delay_millis, uint8_t path_hash_size);
public:
MyMesh(mesh::MainBoard& board, mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::MeshTables& tables);
+7
View File
@@ -73,6 +73,13 @@ public:
return;
}
#if defined(ARDUINO_USB_CDC_ON_BOOT) && ARDUINO_USB_CDC_ON_BOOT
if (Serial) {
delay(1);
return;
}
#endif
// Set GPIO wakeup
gpio_num_t wakeupPin = (gpio_num_t)getIRQGpio();