Remove transport node feature — ratdeck is endpoint only

These standalone devices should not act as transport nodes.
Remove the config toggle, settings UI, and boot-time config peek.
Hardcode transport_enabled(false).
This commit is contained in:
DeFiDude committed 2026-03-11 03:32:35 -06:00
1 parent cb74e7233e
commit 6e36e6524a
7 files changed
+6 -42

No files matched your search

-2
View File
@@ -53,7 +53,6 @@ bool UserConfig::parseJson(const String& json) {
_settings.denseFontMode = doc["dense_font"] | false;
_settings.trackballSpeed = doc["trackball_speed"] | 3;
_settings.touchSensitivity = doc["touch_sens"] | 3;
_settings.transportEnabled = doc["transport"] | false;
_settings.bleEnabled = doc["ble_enabled"] | true;
_settings.audioEnabled = doc["audio_on"] | true;
@@ -95,7 +94,6 @@ String UserConfig::serializeToJson() const {
doc["dense_font"] = _settings.denseFontMode;
doc["trackball_speed"] = _settings.trackballSpeed;
doc["touch_sens"] = _settings.touchSensitivity;
doc["transport"] = _settings.transportEnabled;
doc["ble_enabled"] = _settings.bleEnabled;
doc["audio_on"] = _settings.audioEnabled;
-3
View File
@@ -47,9 +47,6 @@ struct UserSettings {
// Touch
uint8_t touchSensitivity = 3; // 1-5
// Network
bool transportEnabled = false; // Transport node (rebroadcasts packets)
// BLE
bool bleEnabled = true;
-14
View File
@@ -458,20 +458,6 @@ void setup() {
lvBootScreen.setProgress(0.65f, "Starting Reticulum...");
// (LVGL boot renders via lv_timer_handler in setProgress)
rns.setSDStore(&sdStore);
// Transport mode is loaded later from config; default is endpoint (no rebroadcast)
// We load a quick peek at the config to get the transport setting before RNS init
{
String json = sdStore.isReady() ? sdStore.readString(SD_PATH_USER_CONFIG) : "";
if (json.isEmpty()) json = flash.readString(PATH_USER_CONFIG);
if (!json.isEmpty()) {
JsonDocument peek;
if (!deserializeJson(peek, json)) {
bool transport = peek["transport"] | false;
rns.setTransportEnabled(transport);
Serial.printf("[BOOT] Transport mode: %s\n", transport ? "ON" : "OFF");
}
}
}
if (rns.begin(&radio, &flash)) {
Serial.printf("[BOOT] Identity: %s\n", rns.identityHash().c_str());
lvBootScreen.setProgress(0.72f, "Reticulum active");
+5 -12
View File
@@ -91,19 +91,12 @@ bool ReticulumManager::begin(SX1262* radio, FlashStore* flash) {
}
_reticulum = RNS::Reticulum();
RNS::Reticulum::transport_enabled(_transportEnabled);
RNS::Reticulum::transport_enabled(false);
RNS::Reticulum::probe_destination_enabled(true);
if (_transportEnabled) {
// Transport node: larger tables for routing
RNS::Transport::path_table_maxsize(64);
RNS::Transport::announce_table_maxsize(64);
} else {
// Endpoint: smaller tables, no rebroadcasting
RNS::Transport::path_table_maxsize(32);
RNS::Transport::announce_table_maxsize(32);
}
RNS::Transport::path_table_maxsize(32);
RNS::Transport::announce_table_maxsize(32);
_reticulum.start();
Serial.printf("[RNS] Reticulum started (%s)\n", _transportEnabled ? "Transport Node" : "Endpoint");
Serial.println("[RNS] Reticulum started (Endpoint)");
// Layer 1: Transport-level announce rate limiter — filters BEFORE Ed25519 verify
RNS::Transport::set_filter_packet_callback([](const RNS::Packet& packet) -> bool {
@@ -137,7 +130,7 @@ bool ReticulumManager::begin(SX1262* radio, FlashStore* flash) {
_destination.accepts_links(true);
_transportActive = true;
Serial.printf("[RNS] %s active\n", _transportEnabled ? "Transport node" : "Endpoint");
Serial.println("[RNS] Endpoint active");
return true;
}
-2
View File
@@ -39,7 +39,6 @@ public:
bool begin(SX1262* radio, FlashStore* flash);
void setSDStore(SDStore* sd) { _sd = sd; }
void setTransportEnabled(bool enabled) { _transportEnabled = enabled; }
void loop();
void persistData();
@@ -69,7 +68,6 @@ private:
LoRaInterface* _loraImpl = nullptr;
FlashStore* _flash = nullptr;
SDStore* _sd = nullptr;
bool _transportEnabled = false; // Default: endpoint mode (no rebroadcast)
bool _transportActive = false;
unsigned long _lastPersist = 0;
unsigned long _lastAnnounceTime = 0;
+1 -8
View File
@@ -321,11 +321,6 @@ void LvSettingsScreen::buildItems() {
},
[](int v) { return String(v); }, 1, 65535, 1});
idx++;
_items.push_back({"Transport Node", SettingType::TOGGLE,
[&s]() { return s.transportEnabled ? 1 : 0; },
[&s](int v) { s.transportEnabled = (v != 0); },
[](int v) { return v ? String("ON") : String("OFF"); }});
idx++;
_items.push_back({"BLE", SettingType::TOGGLE,
[&s]() { return s.bleEnabled ? 1 : 0; },
[&s](int v) { s.bleEnabled = (v != 0); },
@@ -1074,7 +1069,6 @@ void LvSettingsScreen::snapshotRebootSettings() {
_rebootSnap.wifiSTASSID = s.wifiSTASSID;
_rebootSnap.wifiSTAPassword = s.wifiSTAPassword;
_rebootSnap.bleEnabled = s.bleEnabled;
_rebootSnap.transportEnabled = s.transportEnabled;
}
bool LvSettingsScreen::rebootSettingsChanged() const {
@@ -1083,8 +1077,7 @@ bool LvSettingsScreen::rebootSettingsChanged() const {
return s.wifiMode != _rebootSnap.wifiMode
|| s.wifiSTASSID != _rebootSnap.wifiSTASSID
|| s.wifiSTAPassword != _rebootSnap.wifiSTAPassword
|| s.bleEnabled != _rebootSnap.bleEnabled
|| s.transportEnabled != _rebootSnap.transportEnabled;
|| s.bleEnabled != _rebootSnap.bleEnabled;
}
void LvSettingsScreen::snapshotTCPSettings() {
-1
View File
@@ -141,7 +141,6 @@ private:
String wifiSTASSID;
String wifiSTAPassword;
bool bleEnabled;
bool transportEnabled;
};
RebootSnapshot _rebootSnap;
void snapshotRebootSettings();