diff --git a/platformio.ini b/platformio.ini index 30d233f6..5e9f4672 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,5 +1,6 @@ ; T-Deck environment using Bluedroid BLE stack (fallback, uses more RAM) [env:tdeck-bluedroid] +extra_scripts = pre:version.py platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino @@ -71,6 +72,7 @@ build_flags = ; Default T-Deck environment using NimBLE BLE stack (uses ~100KB less RAM than Bluedroid) [env:tdeck] +extra_scripts = pre:version.py platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino diff --git a/src/main.cpp b/src/main.cpp index 9216b1f0..cc97d582 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,6 +7,8 @@ #include #include #include +#include +#include // Reticulum #include @@ -72,8 +74,10 @@ #endif // Firmware version for web flasher detection -#define FIRMWARE_VERSION "1.0.0" -#define FIRMWARE_NAME "microReticulum" +#ifndef FIRMWARE_VERSION +#define FIRMWARE_VERSION "dev" +#endif +#define FIRMWARE_NAME "Pyxis" using namespace RNS; using namespace LXMF; @@ -1036,7 +1040,7 @@ void setup() { INFO("\n"); INFO("╔══════════════════════════════════════╗"); INFO("║ LXMF Messenger for T-Deck Plus ║"); - INFO("║ microReticulum + LVGL UI ║"); + INFO("║ Pyxis + LVGL UI ║"); INFO("╚══════════════════════════════════════╝"); INFO(""); @@ -1165,6 +1169,13 @@ void loop() { serial_cmd_buffer.trim(); if (serial_cmd_buffer == "VERSION") { Serial.println(String(FIRMWARE_NAME) + " v" + FIRMWARE_VERSION); + } else if (serial_cmd_buffer == "BOOTLOADER") { + Serial.println("ENTERING_BOOTLOADER"); + Serial.flush(); + delay(100); + // Set RTC flag to force download mode on next reset + REG_WRITE(RTC_CNTL_OPTION1_REG, RTC_CNTL_FORCE_DOWNLOAD_BOOT); + esp_restart(); } serial_cmd_buffer = ""; } else if (serial_cmd_buffer.length() < 32) { diff --git a/version.py b/version.py new file mode 100644 index 00000000..c16cfc29 --- /dev/null +++ b/version.py @@ -0,0 +1,12 @@ +Import("env") +import subprocess + +try: + version = subprocess.check_output( + ["git", "describe", "--tags", "--always"], + stderr=subprocess.DEVNULL + ).decode().strip().lstrip("v") +except Exception: + version = "dev" + +env.Append(CPPDEFINES=[("FIRMWARE_VERSION", env.StringifyMacro(version))])