diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 0960d45c40..d5c8b93cbe 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -557,8 +557,9 @@ pio run -e native-macos # Build headless macOS meshtasticd (Homebrew prere 1. Create directory under `variants///` 2. Add `variant.h` with pin definitions and hardware capability defines 3. Add `platformio.ini` with build config - use `extends` to reference common base (e.g., `esp32s3_base`) -4. Set `custom_meshtastic_support_level = 1` (PR builds) or `2` (merge builds) -5. For e-ink displays, add `nicheGraphics.h` for InkHUD configuration +4. Set `board_level` (required - `release` for a normal variant; see "Build Matrix Generation") +5. Set `custom_meshtastic_support_level` (1-3) and the other `custom_meshtastic_*` metadata +6. For e-ink displays, add `nicheGraphics.h` for InkHUD configuration ### Adding a New Telemetry Sensor @@ -642,11 +643,16 @@ The CI uses `bin/generate_ci_matrix.py` to dynamically select which targets to b ./bin/generate_ci_matrix.py all --level pr ``` -Variants can specify their support level in `platformio.ini`: +Every variant env **must** declare a `board_level` in its `platformio.ini`; the matrix +generator exits non-zero if any env is missing it or uses an unrecognized value: -- `custom_meshtastic_support_level = 1` - Actively supported, built on every PR -- `custom_meshtastic_support_level = 2` - Supported, built on merge to main branches -- `board_level = extra` - Extra builds, only on full releases +- `board_level = pr` - Smallest subset, built on every PR (and in every larger matrix) +- `board_level = release` - The full release matrix, built on push / schedule / `workflow_dispatch` +- `board_level = extra` - Opt-in only, built when explicitly requested via `--level extra` + +`custom_meshtastic_support_level` (1-3) is **not** part of this filtering. It is variant +metadata that `bin/platformio-custom.py` emits as `supportLevel` in the generated +hardware list; changing it does not change which targets CI builds. ### Running Workflows Locally diff --git a/.github/workflows/daily_packaging.yml b/.github/workflows/daily_packaging.yml index 16363f562d..abbeb9fb08 100644 --- a/.github/workflows/daily_packaging.yml +++ b/.github/workflows/daily_packaging.yml @@ -35,8 +35,8 @@ jobs: series: - jammy # 22.04 LTS - noble # 24.04 LTS - - questing # 25.10 - resolute # 26.04 LTS + - stonking # 26.10 uses: ./.github/workflows/package_ppa.yml with: ppa_repo: ppa:meshtastic/daily diff --git a/.github/workflows/release_channels.yml b/.github/workflows/release_channels.yml index 3184413ef3..f301030e42 100644 --- a/.github/workflows/release_channels.yml +++ b/.github/workflows/release_channels.yml @@ -23,8 +23,8 @@ jobs: series: - jammy # 22.04 LTS - noble # 24.04 LTS - - questing # 25.10 - resolute # 26.04 LTS + - stonking # 26.10 uses: ./.github/workflows/package_ppa.yml with: ppa_repo: |- diff --git a/.github/workflows/test_native.yml b/.github/workflows/test_native.yml index c5186c9f13..2c677a5440 100644 --- a/.github/workflows/test_native.yml +++ b/.github/workflows/test_native.yml @@ -7,6 +7,9 @@ on: permissions: {} env: + # Only pushes to the default branch (develop) populate the cache; PR / merge_group runs + # restore it but never save, so they stop filling up the repo's Actions cache storage. + SAVE_CACHE: ${{ github.event_name == 'push' && github.ref_name == github.event.repository.default_branch }} LCOV_CAPTURE_FLAGS: --quiet --capture --include "${PWD}/src/*" --exclude '*/src/mesh/generated/*' --directory .pio/build/coverage/src --base-directory "${PWD}" jobs: @@ -17,7 +20,7 @@ jobs: # check here and fail the PR on a mismatch, keeping the manual count honest. suite-count-check: name: Native Suite Count - runs-on: ubuntu-latest + runs-on: ubuntu-slim permissions: contents: read steps: @@ -56,7 +59,7 @@ jobs: simulator-tests: name: Native Simulator Tests - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm needs: suite-count-check steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -70,10 +73,26 @@ jobs: - name: Install simulator dependencies run: pip install -U dotmap + - name: Restore PlatformIO cache + id: pio-cache + uses: actions/cache/restore@v6 + with: + path: ~/.platformio/.cache + key: pio-simulator-tests-${{ hashFiles('platformio.ini', 'variants/native/portduino.ini', 'variants/native/portduino/platformio.ini') }} + restore-keys: | + pio-simulator-tests- + # We now run integration test before other build steps (to quickly see runtime failures) - name: Build for native/coverage run: platformio run -e coverage + - name: Save PlatformIO cache + if: env.SAVE_CACHE == 'true' && steps.pio-cache.outputs.cache-hit != 'true' + uses: actions/cache/save@v6 + with: + path: ~/.platformio/.cache + key: pio-simulator-tests-${{ hashFiles('platformio.ini', 'variants/native/portduino.ini', 'variants/native/portduino/platformio.ini') }} + - name: Capture initial coverage information shell: bash run: | @@ -139,7 +158,7 @@ jobs: platformio-tests: name: Native PlatformIO Tests - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm needs: suite-count-check steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 @@ -159,11 +178,27 @@ jobs: - name: Disable BUILD_EPOCH run: sed -i 's/-DBUILD_EPOCH=$UNIX_TIME/#-DBUILD_EPOCH=$UNIX_TIME/' platformio.ini + - name: Restore PlatformIO cache + id: pio-cache + uses: actions/cache/restore@v6 + with: + path: ~/.platformio/.cache + key: pio-coverage-tests-${{ hashFiles('platformio.ini', 'variants/native/portduino.ini', 'variants/native/portduino/platformio.ini') }} + restore-keys: | + pio-coverage-tests- + - name: Build test programs once # One shared build of src + every test program. This is the single source build; gcov then # accumulates coverage counts into this shared .pio/build/coverage/src as the chunks run. run: platformio test -e coverage --without-testing + - name: Save PlatformIO cache + if: env.SAVE_CACHE == 'true' && steps.pio-cache.outputs.cache-hit != 'true' + uses: actions/cache/save@v6 + with: + path: ~/.platformio/.cache + key: pio-coverage-tests-${{ hashFiles('platformio.ini', 'variants/native/portduino.ini', 'variants/native/portduino/platformio.ini') }} + - name: Run tests one area at a time shell: bash run: | @@ -270,7 +305,8 @@ jobs: needs: - simulator-tests - platformio-tests - if: always() + # Run this job even if the previous jobs failed, but skip if the workflow was cancelled. + if: ${{ !cancelled() }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 diff --git a/bin/generate_ci_matrix.py b/bin/generate_ci_matrix.py index 48cada719d..ec336f08a9 100755 --- a/bin/generate_ci_matrix.py +++ b/bin/generate_ci_matrix.py @@ -4,8 +4,8 @@ Enumerates every PlatformIO environment and prints a JSON list of ``{"board", "platform"}`` entries for the requested selector ("all", "check", or a -specific arch), honoring the per-env ``board_level`` tiers (``pr`` / ``extra`` / -release-only). +specific arch), honoring the per-env ``board_level`` tiers (``pr`` / ``release`` / +``extra``). On pull requests the workflow additionally passes ``--changed-files``: the matrix is then narrowed to just the environments a PR's changed files can affect (see @@ -37,8 +37,8 @@ COVERED_ELSEWHERE = {"native"} # board_level values an env may carry and still be emittable. An ALLOWLIST (not a # denylist) so an unknown/typo'd level fails CLOSED (excluded) rather than silently -# building. None = release board, "pr"/"extra" = the two explicit tiers. -EMITTABLE_LEVELS = {None, "pr", "extra"} +# building. "release" = full release matrix, "pr"/"extra" = the two explicit tiers. +EMITTABLE_LEVELS = {"pr", "release", "extra"} # Fallback platformio.ini globs that hold [env:...] / [*_base] definitions. Production # overrides the env-definition scan with the real [platformio] extra_configs (see @@ -206,10 +206,21 @@ def load_all_envs(): cfg.get(f"env:{pio_env}", "board_check", default="false").strip().lower() == "true" ) + board_level = cfg.get(f"env:{pio_env}", "board_level", default=None) + # Intentionally fail on a missing or unrecognized level: every env must opt in + # explicitly, so a new variant can't silently drop out of (or into) the matrix. + if board_level not in EMITTABLE_LEVELS: + found = repr(board_level) if board_level is not None else "no value" + print( + f"Error: environment '{pio_env}' has {found} for 'board_level'; " + f"expected one of: {', '.join(sorted(EMITTABLE_LEVELS))}", + file=sys.stderr, + ) + sys.exit(1) all_envs.append( { "ci": {"board": pio_env, "platform": env_platform}, - "board_level": cfg.get(f"env:{pio_env}", "board_level", default=None), + "board_level": board_level, "board_check": board_check, "include_dirs": include_dirs, "def_dir": defdir.get(pio_env), @@ -370,8 +381,8 @@ def build_outlist(all_envs, platform, level, selected): # Include board_level = 'extra' when requested. elif "extra" in level and env["board_level"] == "extra": outlist.append(ci) - # If no board level is specified, include in release builds (not PR). - elif "pr" not in level and not env["board_level"]: + # Include board_level = 'release' unless narrowed to the PR subset. + elif "pr" not in level and env["board_level"] == "release": outlist.append(ci) return outlist diff --git a/bin/test_generate_ci_matrix.py b/bin/test_generate_ci_matrix.py index 7d339b6f32..311426b379 100644 --- a/bin/test_generate_ci_matrix.py +++ b/bin/test_generate_ci_matrix.py @@ -38,7 +38,7 @@ BASE_INI_INCL = {"variants/esp32/esp32-common.ini": {"esp32"}} def env( board, platform, - level=None, + level="release", check=False, include_dirs=None, def_dir=None, @@ -68,7 +68,7 @@ def universe(): env( "tbeam", "esp32", - level=None, + level="release", include_dirs=["variants/esp32/tbeam"], def_dir="variants/esp32/tbeam", src_platforms=_sp("esp32"), @@ -401,11 +401,12 @@ def test_platform_src_map_from_envs_derives_family_grouping(): def test_emittable_allowlist_fails_closed(): - """Unknown board_level values are excluded; only None/pr/extra emit.""" - assert gcm._emittable(env("a", "esp32", level=None)) + """Unknown board_level values are excluded; only pr/release/extra emit.""" + assert gcm._emittable(env("a", "esp32", level="release")) assert gcm._emittable(env("a", "esp32", level="pr")) assert gcm._emittable(env("a", "esp32", level="extra")) - # Retired 'community' tier and any typo fail closed. + # Retired 'community' tier, None (missing level), and any typo fail closed. + assert not gcm._emittable(env("a", "esp32", level=None)) assert not gcm._emittable(env("a", "esp32", level="community")) assert not gcm._emittable(env("a", "esp32", level="bogus")) # covered-elsewhere platform is excluded regardless of a valid level. diff --git a/debian/control b/debian/control index 38e998b978..a7fab640c0 100644 --- a/debian/control +++ b/debian/control @@ -28,7 +28,8 @@ Build-Depends: debhelper-compat (= 13), libinput-dev, libxkbcommon-x11-dev, libsqlite3-dev, - libsdl2-dev + libsdl2-dev, + libcurl4-gnutls-dev Standards-Version: 4.6.2 Homepage: https://github.com/meshtastic/firmware Rules-Requires-Root: no diff --git a/meshtasticd.spec.rpkg b/meshtasticd.spec.rpkg index 0fd5f14270..6f181f71bf 100644 --- a/meshtasticd.spec.rpkg +++ b/meshtasticd.spec.rpkg @@ -41,6 +41,7 @@ BuildRequires: pkgconfig(libusb-1.0) BuildRequires: libi2c-devel BuildRequires: pkgconfig(libuv) BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(libcurl) # Web components: BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(liborcania) diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp index 9c1688db47..6db6ba166a 100644 --- a/src/graphics/Screen.cpp +++ b/src/graphics/Screen.cpp @@ -1467,7 +1467,7 @@ void Screen::setFrames(FrameFocus focus) #if HAS_WIFI && !defined(ARCH_PORTDUINO) if (!hiddenFrames.wifi && isWifiAvailable()) { fsi.positions.wifi = numframes; - normalFrames[numframes++] = graphics::DebugRenderer::drawDebugInfoWiFiTrampoline; + normalFrames[numframes++] = graphics::DebugRenderer::drawFrameWiFi; indicatorIcons.push_back(icon_wifi); } #endif diff --git a/src/graphics/Screen.h b/src/graphics/Screen.h index 776a14c589..997ec5d571 100644 --- a/src/graphics/Screen.h +++ b/src/graphics/Screen.h @@ -195,27 +195,6 @@ enum class FrameDirection { NEXT, PREVIOUS }; // Forward declarations class Screen; -/// Handles gathering and displaying debug information. -class DebugInfo -{ - public: - DebugInfo(const DebugInfo &) = delete; - DebugInfo &operator=(const DebugInfo &) = delete; - - private: - friend Screen; - - DebugInfo() {} - - /// Renders the debug screen. - void drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); - void drawFrameSettings(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); - void drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); - - /// Protects all of internal state. - concurrency::Lock lock; -}; - /** * @brief This class deals with showing things on the screen of the device. * @@ -647,11 +626,6 @@ class Screen : public concurrency::OSThread // stick to standard EASCII codes) } - /// Returns a handle to the DebugInfo screen. - // - // Use this handle to set things like battery status, user count, GPS status, etc. - DebugInfo *debug_info() { return &debugInfo; } - // Handle observer events int handleStatusUpdate(const meshtastic::Status *arg); int handleUIFrameEvent(const UIFrameEvent *arg); @@ -824,9 +798,6 @@ class Screen : public concurrency::OSThread float compassHeading; uint32_t endCalibrationAt; - /// Holds state for debug information - DebugInfo debugInfo; - /// Display device #ifdef USE_ST7789 ST7789Spi *dispdev; diff --git a/src/graphics/draw/DebugRenderer.cpp b/src/graphics/draw/DebugRenderer.cpp index 95a76c0e9d..8e5ec52c38 100644 --- a/src/graphics/draw/DebugRenderer.cpp +++ b/src/graphics/draw/DebugRenderer.cpp @@ -5,7 +5,6 @@ #include "FSCommon.h" #include "MeshService.h" #include "NodeDB.h" -#include "Throttle.h" #include "UIRenderer.h" #include "airtime.h" #include "gps/RTC.h" @@ -16,9 +15,6 @@ #include "graphics/TimeFormatters.h" #include "graphics/images.h" #include "main.h" -#include "mesh/Channels.h" -#include "mesh/generated/meshtastic/deviceonly.pb.h" -#include "sleep.h" #if HAS_WIFI && !defined(ARCH_PORTDUINO) #include "mesh/wifi/WiFiAPClient.h" @@ -28,9 +24,6 @@ #endif #endif -#ifdef ARCH_ESP32 -#include "modules/StoreForwardModule.h" -#endif #include #include #include @@ -39,111 +32,17 @@ using namespace meshtastic; // External variables extern std::unique_ptr screen; -extern PowerStatus *powerStatus; extern NodeStatus *nodeStatus; -extern GPSStatus *gpsStatus; -extern Channels channels; extern AirTime *airTime; // External functions from Screen.cpp extern bool heartbeat; -#ifdef ARCH_ESP32 -extern StoreForwardModule *storeForwardModule; -#endif - namespace graphics { namespace DebugRenderer { -void drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) -{ - display->setFont(FONT_SMALL); - - // The coordinates define the left starting point of the text - display->setTextAlignment(TEXT_ALIGN_LEFT); - - if (config.display.displaymode != meshtastic_Config_DisplayConfig_DisplayMode_INVERTED) { - display->fillRect(0 + x, 0 + y, x + display->getWidth(), y + FONT_HEIGHT_SMALL); - display->setColor(BLACK); - } - - char channelStr[20]; - snprintf(channelStr, sizeof(channelStr), "#%s", channels.getName(channels.getPrimaryIndex())); - // Display nodes status - if (config.display.displaymode == meshtastic_Config_DisplayConfig_DisplayMode_DEFAULT) { - UIRenderer::drawNodes(display, x + (SCREEN_WIDTH * 0.25), y + 2, nodeStatus); - } else { - UIRenderer::drawNodes(display, x + (SCREEN_WIDTH * 0.25), y + 3, nodeStatus); - } -#if HAS_GPS - // Display GPS status - if (config.position.gps_mode != meshtastic_Config_PositionConfig_GpsMode_ENABLED) { - UIRenderer::drawGpsPowerStatus(display, x, y + 2, gpsStatus); - } else { - if (config.display.displaymode == meshtastic_Config_DisplayConfig_DisplayMode_DEFAULT) { - UIRenderer::drawGps(display, x + (SCREEN_WIDTH * 0.63), y + 2, gpsStatus); - } else { - UIRenderer::drawGps(display, x + (SCREEN_WIDTH * 0.63), y + 3, gpsStatus); - } - } -#endif - display->setColor(WHITE); - // Draw the channel name - display->drawString(x, y + FONT_HEIGHT_SMALL, channelStr); - // Draw our hardware ID to assist with bluetooth pairing. Either prefix with Info or S&F Logo - if (moduleConfig.store_forward.enabled) { -#ifdef ARCH_ESP32 - if (!Throttle::isWithinTimespanMs(storeForwardModule->lastHeartbeat, - (storeForwardModule->heartbeatInterval * 1200))) { // no heartbeat, overlap a bit -#if (defined(USE_EINK) || defined(HAS_SPI_TFT) || ARCH_PORTDUINO) && !defined(DISPLAY_FORCE_SMALL_FONTS) - display->drawFastImage(x + SCREEN_WIDTH - 14 - display->getStringWidth(screen->ourId), y + 3 + FONT_HEIGHT_SMALL, 12, - 8, imgQuestionL1); - display->drawFastImage(x + SCREEN_WIDTH - 14 - display->getStringWidth(screen->ourId), y + 11 + FONT_HEIGHT_SMALL, 12, - 8, imgQuestionL2); -#else - display->drawFastImage(x + SCREEN_WIDTH - 10 - display->getStringWidth(screen->ourId), y + 2 + FONT_HEIGHT_SMALL, 8, - 8, imgQuestion); -#endif - } else { -#if (defined(USE_EINK) || defined(HAS_SPI_TFT)) && !defined(DISPLAY_FORCE_SMALL_FONTS) - display->drawFastImage(x + SCREEN_WIDTH - 18 - display->getStringWidth(screen->ourId), y + 3 + FONT_HEIGHT_SMALL, 16, - 8, imgSFL1); - display->drawFastImage(x + SCREEN_WIDTH - 18 - display->getStringWidth(screen->ourId), y + 11 + FONT_HEIGHT_SMALL, 16, - 8, imgSFL2); -#else - display->drawFastImage(x + SCREEN_WIDTH - 13 - display->getStringWidth(screen->ourId), y + 2 + FONT_HEIGHT_SMALL, 11, - 8, imgSF); -#endif - } -#endif - } else { - // TODO: Raspberry Pi supports more than just the one screen size -#if (defined(USE_EINK) || defined(HAS_SPI_TFT) || ARCH_PORTDUINO) && !defined(DISPLAY_FORCE_SMALL_FONTS) - display->drawFastImage(x + SCREEN_WIDTH - 14 - display->getStringWidth(screen->ourId), y + 3 + FONT_HEIGHT_SMALL, 12, 8, - imgInfoL1); - display->drawFastImage(x + SCREEN_WIDTH - 14 - display->getStringWidth(screen->ourId), y + 11 + FONT_HEIGHT_SMALL, 12, 8, - imgInfoL2); -#else - display->drawFastImage(x + SCREEN_WIDTH - 10 - display->getStringWidth(screen->ourId), y + 2 + FONT_HEIGHT_SMALL, 8, 8, - imgInfo); -#endif - } - - display->drawString(x + SCREEN_WIDTH - display->getStringWidth(screen->ourId), y + FONT_HEIGHT_SMALL, screen->ourId); - - // Draw any log messages - display->drawLogBuffer(x, y + (FONT_HEIGHT_SMALL * 2)); - - /* Display a heartbeat pixel that blinks every time the frame is redrawn */ -#ifdef SHOW_REDRAWS - if (heartbeat) - display->setPixel(0, 0); - heartbeat = !heartbeat; -#endif -} - // **************************** // * WiFi Screen * // **************************** @@ -230,12 +129,6 @@ void drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, i #endif } -// Trampoline functions for DebugInfo class access -void drawDebugInfoWiFiTrampoline(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y) -{ - drawFrameWiFi(display, state, x, y); -} - // **************************** // * LoRa Focused Screen * // **************************** diff --git a/src/graphics/draw/DebugRenderer.h b/src/graphics/draw/DebugRenderer.h index 9d28a5e9c0..41b4c2bce6 100644 --- a/src/graphics/draw/DebugRenderer.h +++ b/src/graphics/draw/DebugRenderer.h @@ -8,7 +8,6 @@ namespace graphics /// Forward declarations class Screen; -class DebugInfo; /** * @brief Debug and diagnostic drawing functions @@ -18,13 +17,9 @@ class DebugInfo; */ namespace DebugRenderer { -// Debug frame functions -void drawFrame(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); +// WiFi status display void drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); -// Trampoline functions for framework callback compatibility -void drawDebugInfoWiFiTrampoline(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); - // LoRa information display void drawLoRaFocused(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y); diff --git a/src/graphics/draw/UIRenderer.cpp b/src/graphics/draw/UIRenderer.cpp index 82baf81d80..47bbef516e 100644 --- a/src/graphics/draw/UIRenderer.cpp +++ b/src/graphics/draw/UIRenderer.cpp @@ -547,22 +547,6 @@ void UIRenderer::drawGps(OLEDDisplay *display, int16_t x, int16_t y, const mesht } } -// Draw status when GPS is disabled or not present -void UIRenderer::drawGpsPowerStatus(OLEDDisplay *display, int16_t x, int16_t y, const meshtastic::GPSStatus *gps) -{ - const char *displayLine; - int pos; - if (y < FONT_HEIGHT_SMALL) { // Line 1: use short string - displayLine = config.position.gps_mode == meshtastic_Config_PositionConfig_GpsMode_NOT_PRESENT ? "No GPS" : "GPS off"; - pos = display->getWidth() - display->getStringWidth(displayLine); - } else { - displayLine = config.position.gps_mode == meshtastic_Config_PositionConfig_GpsMode_NOT_PRESENT ? "GPS not present" - : "GPS is disabled"; - pos = (display->getWidth() - display->getStringWidth(displayLine)) / 2; - } - display->drawString(x + pos, y, displayLine); -} - void UIRenderer::drawGpsAltitude(OLEDDisplay *display, int16_t x, int16_t y, const meshtastic::GPSStatus *gps) { char displayLine[32]; diff --git a/src/graphics/draw/UIRenderer.h b/src/graphics/draw/UIRenderer.h index 1afddea8f5..d6a55dd07b 100644 --- a/src/graphics/draw/UIRenderer.h +++ b/src/graphics/draw/UIRenderer.h @@ -42,7 +42,6 @@ class UIRenderer static void drawGpsCoordinates(OLEDDisplay *display, int16_t x, int16_t y, const meshtastic::GPSStatus *gpsStatus, const char *mode = "line1"); static void drawGpsAltitude(OLEDDisplay *display, int16_t x, int16_t y, const meshtastic::GPSStatus *gpsStatus); - static void drawGpsPowerStatus(OLEDDisplay *display, int16_t x, int16_t y, const meshtastic::GPSStatus *gpsStatus); // Overlay and special screens static void drawFrameText(OLEDDisplay *display, OLEDDisplayUiState *state, int16_t x, int16_t y, const char *text); diff --git a/src/graphics/images.h b/src/graphics/images.h index 0467101163..a4ae77e5f0 100644 --- a/src/graphics/images.h +++ b/src/graphics/images.h @@ -29,21 +29,6 @@ const uint8_t bluetoothConnectedIcon[36] PROGMEM = {0xfe, 0x01, 0xff, 0x03, 0x03 0xf3, 0x3f, 0x33, 0x30, 0x33, 0x33, 0x33, 0x33, 0x03, 0x33, 0xff, 0x33, 0xfe, 0x31, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0xf0, 0x3f, 0xe0, 0x1f}; -#if (defined(USE_EINK) || defined(HAS_SPI_TFT) || ARCH_PORTDUINO) && !defined(DISPLAY_FORCE_SMALL_FONTS) -const uint8_t imgQuestionL1[] PROGMEM = {0xff, 0x01, 0x01, 0x32, 0x7b, 0x49, 0x49, 0x6f, 0x26, 0x01, 0x01, 0xff}; -const uint8_t imgQuestionL2[] PROGMEM = {0x0f, 0x08, 0x08, 0x08, 0x06, 0x0f, 0x0f, 0x06, 0x08, 0x08, 0x08, 0x0f}; -const uint8_t imgInfoL1[] PROGMEM = {0xff, 0x01, 0x01, 0x01, 0x1e, 0x7f, 0x1e, 0x01, 0x01, 0x01, 0x01, 0xff}; -const uint8_t imgInfoL2[] PROGMEM = {0x0f, 0x08, 0x08, 0x08, 0x06, 0x0f, 0x0f, 0x06, 0x08, 0x08, 0x08, 0x0f}; -const uint8_t imgSFL1[] PROGMEM = {0xb6, 0x8f, 0x19, 0x11, 0x31, 0xe3, 0xc2, 0x01, - 0x01, 0xf9, 0xf9, 0x89, 0x89, 0x89, 0x09, 0xeb}; -const uint8_t imgSFL2[] PROGMEM = {0x0e, 0x09, 0x09, 0x09, 0x09, 0x09, 0x08, 0x08, - 0x00, 0x0f, 0x0f, 0x00, 0x08, 0x08, 0x08, 0x0f}; -#else -const uint8_t imgInfo[] PROGMEM = {0xff, 0x81, 0x00, 0xfb, 0xfb, 0x00, 0x81, 0xff}; -const uint8_t imgQuestion[] PROGMEM = {0xbf, 0x41, 0xc0, 0x8b, 0xdb, 0x70, 0xa1, 0xdf}; -const uint8_t imgSF[] PROGMEM = {0xd2, 0xb7, 0xad, 0xbb, 0x92, 0x01, 0xfd, 0xfd, 0x15, 0x85, 0xf5}; -#endif - // === Horizontal battery === // Basic battery design and all related pieces const unsigned char batteryBitmap_h_bottom[] PROGMEM = { diff --git a/variants/esp32/chatter2/platformio.ini b/variants/esp32/chatter2/platformio.ini index 6913c21226..4873b7f6dc 100644 --- a/variants/esp32/chatter2/platformio.ini +++ b/variants/esp32/chatter2/platformio.ini @@ -1,6 +1,7 @@ ; CircuitMess Chatter 2 based on ESP32-WROOM-32 (38 pins) devkit & DeeamLNK DL-LLCC68 or Heltec HT RA62 SX1262/SX1268 module [env:chatter2] extends = esp32_base +board_level = release board = esp32doit-devkit-v1 build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32/diy/hydra/platformio.ini b/variants/esp32/diy/hydra/platformio.ini index 3afd17e010..0d4377300b 100644 --- a/variants/esp32/diy/hydra/platformio.ini +++ b/variants/esp32/diy/hydra/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_display_name = Hydra custom_meshtastic_tags = DIY extends = esp32_base +board_level = release board = esp32doit-devkit-v1 build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32/diy/v1/platformio.ini b/variants/esp32/diy/v1/platformio.ini index 3d31fc24a0..1d1fcebfaa 100644 --- a/variants/esp32/diy/v1/platformio.ini +++ b/variants/esp32/diy/v1/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = diy.svg custom_meshtastic_tags = DIY extends = esp32_base +board_level = release board = esp32doit-devkit-v1 board_check = true build_flags = diff --git a/variants/esp32/m5stack_core/platformio.ini b/variants/esp32/m5stack_core/platformio.ini index fbdbada5ee..edb0a48b9a 100644 --- a/variants/esp32/m5stack_core/platformio.ini +++ b/variants/esp32/m5stack_core/platformio.ini @@ -8,6 +8,7 @@ custom_meshtastic_display_name = M5 Stack custom_meshtastic_tags = M5Stack extends = esp32_base +board_level = release board = m5stack-core-esp32 monitor_filters = esp32_exception_decoder build_src_filter = diff --git a/variants/esp32/m5stack_coreink/platformio.ini b/variants/esp32/m5stack_coreink/platformio.ini index 70ada7bf32..a68daab693 100644 --- a/variants/esp32/m5stack_coreink/platformio.ini +++ b/variants/esp32/m5stack_coreink/platformio.ini @@ -1,5 +1,6 @@ [env:m5stack-coreink] extends = esp32_base +board_level = release board = m5stack-coreink board_check = true build_src_filter = diff --git a/variants/esp32/nano-g1-explorer/platformio.ini b/variants/esp32/nano-g1-explorer/platformio.ini index 6f57897a8c..a2f73c5155 100644 --- a/variants/esp32/nano-g1-explorer/platformio.ini +++ b/variants/esp32/nano-g1-explorer/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_display_name = Nano G1 Explorer custom_meshtastic_tags = B&Q extends = esp32_base +board_level = release board = ttgo-tbeam build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32/nano-g1/platformio.ini b/variants/esp32/nano-g1/platformio.ini index 82d0f5e733..1db3763573 100644 --- a/variants/esp32/nano-g1/platformio.ini +++ b/variants/esp32/nano-g1/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_display_name = Nano G1 custom_meshtastic_tags = B&Q extends = esp32_base +board_level = release board = ttgo-tbeam build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32/radiomaster_900_bandit/platformio.ini b/variants/esp32/radiomaster_900_bandit/platformio.ini index fdc483fe31..bad7dc2997 100644 --- a/variants/esp32/radiomaster_900_bandit/platformio.ini +++ b/variants/esp32/radiomaster_900_bandit/platformio.ini @@ -1,5 +1,6 @@ [env:radiomaster_900_bandit] extends = esp32_base +board_level = release board = esp32doit-devkit-v1 build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32/radiomaster_900_bandit_micro/platformio.ini b/variants/esp32/radiomaster_900_bandit_micro/platformio.ini index 32e9280e1b..b8585ab5b5 100644 --- a/variants/esp32/radiomaster_900_bandit_micro/platformio.ini +++ b/variants/esp32/radiomaster_900_bandit_micro/platformio.ini @@ -5,6 +5,7 @@ ; [env:radiomaster_900_bandit_micro] extends = esp32_base +board_level = release board = esp32doit-devkit-v1 build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32/radiomaster_900_bandit_nano/platformio.ini b/variants/esp32/radiomaster_900_bandit_nano/platformio.ini index 924447ee4f..de11d11165 100644 --- a/variants/esp32/radiomaster_900_bandit_nano/platformio.ini +++ b/variants/esp32/radiomaster_900_bandit_nano/platformio.ini @@ -8,6 +8,7 @@ custom_meshtastic_display_name = RadioMaster 900 Bandit Nano custom_meshtastic_tags = RadioMaster extends = esp32_base +board_level = release board = esp32doit-devkit-v1 build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32/rak11200/platformio.ini b/variants/esp32/rak11200/platformio.ini index ee704a23ea..8d24160006 100644 --- a/variants/esp32/rak11200/platformio.ini +++ b/variants/esp32/rak11200/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_images = rak11200.svg custom_meshtastic_tags = RAK extends = esp32_base +board_level = release board = wiscore_rak11200 board_check = true build_flags = diff --git a/variants/esp32/station-g1/platformio.ini b/variants/esp32/station-g1/platformio.ini index 20e29764c6..dc665f58e0 100644 --- a/variants/esp32/station-g1/platformio.ini +++ b/variants/esp32/station-g1/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_display_name = Station G1 custom_meshtastic_tags = B&Q extends = esp32_base +board_level = release board = ttgo-tbeam build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32/tbeam/platformio.ini b/variants/esp32/tbeam/platformio.ini index b1367df87a..f1d9ad4652 100644 --- a/variants/esp32/tbeam/platformio.ini +++ b/variants/esp32/tbeam/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = tbeam.svg custom_meshtastic_tags = LilyGo extends = esp32_base +board_level = release board = ttgo-tbeam board_check = true diff --git a/variants/esp32/tlora_v2_1_16/platformio.ini b/variants/esp32/tlora_v2_1_16/platformio.ini index a41c5016e8..529ad57838 100644 --- a/variants/esp32/tlora_v2_1_16/platformio.ini +++ b/variants/esp32/tlora_v2_1_16/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_images = tlora-v2-1-1_6.svg custom_meshtastic_tags = LilyGo extends = esp32_base +board_level = release board = ttgo-lora32-v21 board_check = true build_flags = diff --git a/variants/esp32/tlora_v3_3_0_tcxo/platformio.ini b/variants/esp32/tlora_v3_3_0_tcxo/platformio.ini index d3669ce551..7c58a16e4c 100644 --- a/variants/esp32/tlora_v3_3_0_tcxo/platformio.ini +++ b/variants/esp32/tlora_v3_3_0_tcxo/platformio.ini @@ -1,5 +1,6 @@ [env:tlora-v3-3-0-tcxo] extends = esp32_base +board_level = release board = ttgo-lora32-v21 build_flags = ${esp32_base.build_flags} diff --git a/variants/esp32c3/heltec_hru_3601/platformio.ini b/variants/esp32c3/heltec_hru_3601/platformio.ini index 5eb1c99771..256b5acef4 100644 --- a/variants/esp32c3/heltec_hru_3601/platformio.ini +++ b/variants/esp32c3/heltec_hru_3601/platformio.ini @@ -1,5 +1,6 @@ [env:heltec-hru-3601] extends = esp32c3_base +board_level = release board = adafruit_qtpy_esp32c3 build_flags = ${esp32c3_base.build_flags} diff --git a/variants/esp32c6/m5stack_unitc6l/platformio.ini b/variants/esp32c6/m5stack_unitc6l/platformio.ini index 59eca377b2..e99c806e85 100644 --- a/variants/esp32c6/m5stack_unitc6l/platformio.ini +++ b/variants/esp32c6/m5stack_unitc6l/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_images = m5_c6l.svg custom_meshtastic_tags = M5Stack extends = esp32c6_base +board_level = release board = esp32-c6-devkitc-1 board_upload.flash_size = 16MB board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/CDEBYTE_EoRa-S3/platformio.ini b/variants/esp32s3/CDEBYTE_EoRa-S3/platformio.ini index 092b36a2f0..6b3515d52b 100644 --- a/variants/esp32s3/CDEBYTE_EoRa-S3/platformio.ini +++ b/variants/esp32s3/CDEBYTE_EoRa-S3/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_tags = EByte custom_meshtastic_requires_dfu = true extends = esp32s3_base +board_level = release board = CDEBYTE_EoRa-S3 build_flags = ${esp32s3_base.build_flags} diff --git a/variants/esp32s3/ELECROW-ThinkNode-G3/platformio.ini b/variants/esp32s3/ELECROW-ThinkNode-G3/platformio.ini index 9c0a492ebf..f3d5e0f3b8 100644 --- a/variants/esp32s3/ELECROW-ThinkNode-G3/platformio.ini +++ b/variants/esp32s3/ELECROW-ThinkNode-G3/platformio.ini @@ -1,5 +1,6 @@ [env:thinknode_g3] extends = esp32s3_base +board_level = release board = ESP32-S3-WROOM-1-N4 board_build.psram_type = opi diff --git a/variants/esp32s3/ELECROW-ThinkNode-M2/platformio.ini b/variants/esp32s3/ELECROW-ThinkNode-M2/platformio.ini index cfea4c1c03..b1fd87a355 100644 --- a/variants/esp32s3/ELECROW-ThinkNode-M2/platformio.ini +++ b/variants/esp32s3/ELECROW-ThinkNode-M2/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_tags = Elecrow custom_meshtastic_requires_dfu = false extends = esp32s3_base +board_level = release board = ESP32-S3-WROOM-1-N4 build_flags = ${esp32s3_base.build_flags} diff --git a/variants/esp32s3/ELECROW-ThinkNode-M5/platformio.ini b/variants/esp32s3/ELECROW-ThinkNode-M5/platformio.ini index 9f8c3a8711..17e2b68823 100644 --- a/variants/esp32s3/ELECROW-ThinkNode-M5/platformio.ini +++ b/variants/esp32s3/ELECROW-ThinkNode-M5/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_tags = Elecrow custom_meshtastic_requires_dfu = false extends = esp32s3_base +board_level = release board = ESP32-S3-WROOM-1-N4 build_src_filter = ${esp32s3_base.build_src_filter} diff --git a/variants/esp32s3/elecrow_panel/platformio.ini b/variants/esp32s3/elecrow_panel/platformio.ini index b0fc4bcf0f..cbe5059bde 100644 --- a/variants/esp32s3/elecrow_panel/platformio.ini +++ b/variants/esp32s3/elecrow_panel/platformio.ini @@ -91,6 +91,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true extends = crowpanel_small_esp32s3_base +board_level = release build_flags = ${crowpanel_small_esp32s3_base.build_flags} -D SPI_FREQUENCY=80000000 @@ -127,6 +128,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true extends = crowpanel_small_esp32s3_base +board_level = release build_flags = ${crowpanel_small_esp32s3_base.build_flags} -D LV_CACHE_DEF_SIZE=2097152 @@ -166,6 +168,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true extends = crowpanel_large_esp32s3_base +board_level = release build_flags = ${crowpanel_large_esp32s3_base.build_flags} -D VIEW_320x240 diff --git a/variants/esp32s3/hackaday-communicator/platformio.ini b/variants/esp32s3/hackaday-communicator/platformio.ini index cee393e48a..5259045c73 100644 --- a/variants/esp32s3/hackaday-communicator/platformio.ini +++ b/variants/esp32s3/hackaday-communicator/platformio.ini @@ -1,6 +1,7 @@ ; Hackaday Communicator [env:hackaday-communicator] extends = esp32s3_base +board_level = release board = hackaday-communicator board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/heltec_capsule_sensor_v3/platformio.ini b/variants/esp32s3/heltec_capsule_sensor_v3/platformio.ini index 0bb21581ab..79bd64bf68 100644 --- a/variants/esp32s3/heltec_capsule_sensor_v3/platformio.ini +++ b/variants/esp32s3/heltec_capsule_sensor_v3/platformio.ini @@ -1,5 +1,6 @@ [env:heltec_capsule_sensor_v3] extends = esp32s3_base +board_level = release board = heltec_wifi_lora_32_V3 board_check = true board_build.partitions = default_8MB.csv diff --git a/variants/esp32s3/heltec_sensor_hub/platformio.ini b/variants/esp32s3/heltec_sensor_hub/platformio.ini index ab99e51ed0..83b4e1565a 100644 --- a/variants/esp32s3/heltec_sensor_hub/platformio.ini +++ b/variants/esp32s3/heltec_sensor_hub/platformio.ini @@ -1,5 +1,6 @@ [env:heltec_sensor_hub] extends = esp32s3_base +board_level = release board = heltec_wifi_lora_32_V3 board_check = true diff --git a/variants/esp32s3/heltec_v4/platformio.ini b/variants/esp32s3/heltec_v4/platformio.ini index 1cfe1ed144..06434a73bb 100644 --- a/variants/esp32s3/heltec_v4/platformio.ini +++ b/variants/esp32s3/heltec_v4/platformio.ini @@ -24,6 +24,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true extends = heltec_v4_base +board_level = release build_flags = ${heltec_v4_base.build_flags} -D HELTEC_V4_OLED @@ -48,6 +49,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB extends = heltec_v4_base +board_level = release build_flags = ${heltec_v4_base.build_flags} ;-Os -D HELTEC_V4_TFT diff --git a/variants/esp32s3/heltec_v4_r8/platformio.ini b/variants/esp32s3/heltec_v4_r8/platformio.ini index bb3ee2ee3b..f0437f5aa9 100644 --- a/variants/esp32s3/heltec_v4_r8/platformio.ini +++ b/variants/esp32s3/heltec_v4_r8/platformio.ini @@ -24,6 +24,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB extends = heltec_v4_r8_base +board_level = release build_flags = ${heltec_v4_r8_base.build_flags} -D HELTEC_V4_R8_OLED @@ -46,6 +47,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB extends = heltec_v4_r8_base +board_level = release build_flags = ${heltec_v4_r8_base.build_flags} ;-Os -D HELTEC_V4_R8_TFT diff --git a/variants/esp32s3/heltec_vision_master_e213/platformio.ini b/variants/esp32s3/heltec_vision_master_e213/platformio.ini index fb97fd9831..f8045cf84b 100644 --- a/variants/esp32s3/heltec_vision_master_e213/platformio.ini +++ b/variants/esp32s3/heltec_vision_master_e213/platformio.ini @@ -12,6 +12,7 @@ custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_ink_hud = true extends = esp32s3_base +board_level = release board = heltec_vision_master_e213 board_build.partitions = default_8MB.csv build_flags = diff --git a/variants/esp32s3/heltec_vision_master_e290/platformio.ini b/variants/esp32s3/heltec_vision_master_e290/platformio.ini index 9fdb023de4..a05bde7b8c 100644 --- a/variants/esp32s3/heltec_vision_master_e290/platformio.ini +++ b/variants/esp32s3/heltec_vision_master_e290/platformio.ini @@ -13,6 +13,7 @@ custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_ink_hud = true extends = esp32s3_base +board_level = release board = heltec_vision_master_e290 board_build.partitions = default_8MB.csv build_flags = @@ -38,6 +39,7 @@ upload_speed = 115200 [env:heltec-vision-master-e290-inkhud] extends = esp32s3_base, inkhud +board_level = release board = heltec_vision_master_e290 board_build.partitions = default_8MB.csv build_src_filter = diff --git a/variants/esp32s3/heltec_vision_master_t190/platformio.ini b/variants/esp32s3/heltec_vision_master_t190/platformio.ini index af3fe25f81..fdb508be61 100644 --- a/variants/esp32s3/heltec_vision_master_t190/platformio.ini +++ b/variants/esp32s3/heltec_vision_master_t190/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = heltec_vision_master_t190 board_build.partitions = default_8MB.csv build_flags = diff --git a/variants/esp32s3/heltec_wireless_paper/platformio.ini b/variants/esp32s3/heltec_wireless_paper/platformio.ini index acd619c485..63ca29ea89 100644 --- a/variants/esp32s3/heltec_wireless_paper/platformio.ini +++ b/variants/esp32s3/heltec_wireless_paper/platformio.ini @@ -12,6 +12,7 @@ custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_ink_hud = true extends = esp32s3_base +board_level = release board = heltec_wifi_lora_32_V3 board_build.partitions = default_8MB.csv build_flags = @@ -35,6 +36,7 @@ upload_speed = 115200 [env:heltec-wireless-paper-inkhud] extends = esp32s3_base, inkhud +board_level = release board = heltec_wifi_lora_32_V3 board_build.partitions = default_8MB.csv build_src_filter = diff --git a/variants/esp32s3/heltec_wireless_tracker/platformio.ini b/variants/esp32s3/heltec_wireless_tracker/platformio.ini index e835b9435d..596a09f703 100644 --- a/variants/esp32s3/heltec_wireless_tracker/platformio.ini +++ b/variants/esp32s3/heltec_wireless_tracker/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = heltec_wireless_tracker board_build.partitions = default_8MB.csv upload_protocol = esptool diff --git a/variants/esp32s3/heltec_wireless_tracker_v2/platformio.ini b/variants/esp32s3/heltec_wireless_tracker_v2/platformio.ini index 831f0ca790..210cd47fc6 100644 --- a/variants/esp32s3/heltec_wireless_tracker_v2/platformio.ini +++ b/variants/esp32s3/heltec_wireless_tracker_v2/platformio.ini @@ -4,6 +4,7 @@ custom_meshtastic_images = heltec_wireless_tracker_v2.svg custom_meshtastic_tags = Heltec extends = esp32s3_base +board_level = release board = heltec_wireless_tracker_v2 board_build.partitions = default_8MB.csv upload_protocol = esptool diff --git a/variants/esp32s3/heltec_wsl_v3/platformio.ini b/variants/esp32s3/heltec_wsl_v3/platformio.ini index 0903a6bc7d..96c3fd0457 100644 --- a/variants/esp32s3/heltec_wsl_v3/platformio.ini +++ b/variants/esp32s3/heltec_wsl_v3/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_tags = Heltec custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = heltec_wifi_lora_32_V3 board_build.partitions = default_8MB.csv # Temporary until espressif creates a release with this new target diff --git a/variants/esp32s3/m5stack_cardputer_adv/platformio.ini b/variants/esp32s3/m5stack_cardputer_adv/platformio.ini index d6d91d4c13..a0e42eae49 100644 --- a/variants/esp32s3/m5stack_cardputer_adv/platformio.ini +++ b/variants/esp32s3/m5stack_cardputer_adv/platformio.ini @@ -1,6 +1,7 @@ ; M5stack Cardputer Advanced [env:m5stack-cardputer-adv] extends = esp32s3_base +board_level = release board = m5stack-stamps3 board_check = true board_build.partitions = default_8MB.csv diff --git a/variants/esp32s3/m5stack_cores3/platformio.ini b/variants/esp32s3/m5stack_cores3/platformio.ini index 6ad09a8bf9..f18d002313 100644 --- a/variants/esp32s3/m5stack_cores3/platformio.ini +++ b/variants/esp32s3/m5stack_cores3/platformio.ini @@ -1,6 +1,7 @@ ; M5stack CoreS3 [env:m5stack-cores3] extends = esp32s3_base +board_level = release board = m5stack-cores3 board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/meshnology-w10/platformio.ini b/variants/esp32s3/meshnology-w10/platformio.ini index cee86421c6..bf66921621 100644 --- a/variants/esp32s3/meshnology-w10/platformio.ini +++ b/variants/esp32s3/meshnology-w10/platformio.ini @@ -17,6 +17,7 @@ board_build.psram_type = opi board_build.arduino.memory_type = qio_opi extends = esp32s3_base +board_level = release build_flags = ${esp32s3_base.build_flags} -D MESHNOLOGY_W10 diff --git a/variants/esp32s3/meshnology-w12/platformio.ini b/variants/esp32s3/meshnology-w12/platformio.ini index 2942abc135..a43a490f9c 100644 --- a/variants/esp32s3/meshnology-w12/platformio.ini +++ b/variants/esp32s3/meshnology-w12/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB extends = esp32s3_base +board_level = release board = esp32-s3-devkitc-1 ; ESP32-S3R8: 8 MB OPI PSRAM, 16 MB QIO flash board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/mini-epaper-s3/platformio.ini b/variants/esp32s3/mini-epaper-s3/platformio.ini index 3e48023192..ea6c331e24 100644 --- a/variants/esp32s3/mini-epaper-s3/platformio.ini +++ b/variants/esp32s3/mini-epaper-s3/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = no custom_meshtastic_has_mui = false extends = esp32s3_base +board_level = release board = mini-epaper-s3 board_check = true upload_protocol = esptool @@ -37,6 +38,7 @@ lib_deps = [env:mini-epaper-s3-inkhud] extends = esp32s3_base, inkhud +board_level = release board = mini-epaper-s3 board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/picomputer-s3/platformio.ini b/variants/esp32s3/picomputer-s3/platformio.ini index ed200077e8..4e632bbd2f 100644 --- a/variants/esp32s3/picomputer-s3/platformio.ini +++ b/variants/esp32s3/picomputer-s3/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_mui = true extends = esp32s3_base +board_level = release board = bpi_picow_esp32_s3 board_check = true board_build.partitions = partition-table-8MB.csv @@ -33,6 +34,7 @@ build_src_filter = [env:picomputer-s3-tft] extends = env:picomputer-s3 +board_level = release build_flags = ${env:picomputer-s3.build_flags} diff --git a/variants/esp32s3/rak3312/platformio.ini b/variants/esp32s3/rak3312/platformio.ini index fa097c8973..2ebf87cb16 100644 --- a/variants/esp32s3/rak3312/platformio.ini +++ b/variants/esp32s3/rak3312/platformio.ini @@ -12,6 +12,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = false extends = esp32s3_base +board_level = release board = wiscore_rak3312 board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/rak_wismesh_tap_v2/platformio.ini b/variants/esp32s3/rak_wismesh_tap_v2/platformio.ini index 00afff5114..871c0f4d4f 100644 --- a/variants/esp32s3/rak_wismesh_tap_v2/platformio.ini +++ b/variants/esp32s3/rak_wismesh_tap_v2/platformio.ini @@ -23,6 +23,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true extends = esp32s3_base +board_level = release board = wiscore_rak3312 board_check = true upload_protocol = esptool @@ -41,6 +42,7 @@ lib_deps = [env:rak_wismesh_tap_v2-tft] extends = env:rak_wismesh_tap_v2 +board_level = release ; The MUI build overflows default_8MB.csv's 0x330000 app slots; use the MUI ; layout (large app0 + small flasher slot) like the other has_mui 8MB boards. board_build.partitions = partition-table-8MB.csv diff --git a/variants/esp32s3/seeed-sensecap-indicator/platformio.ini b/variants/esp32s3/seeed-sensecap-indicator/platformio.ini index 9ffb42f47e..4c5d4c4d60 100644 --- a/variants/esp32s3/seeed-sensecap-indicator/platformio.ini +++ b/variants/esp32s3/seeed-sensecap-indicator/platformio.ini @@ -12,6 +12,7 @@ custom_meshtastic_partition_scheme = 8MB custom_meshtastic_has_mui = true extends = esp32s3_base +board_level = release platform_packages = ; Version needs to match the pioarduino version used in esp32_common.ini platformio/framework-arduinoespressif32 @ https://github.com/mverch67/arduino-esp32#6dde0f3b58e32d9f884b94b4685b0f3a267c4624 ; 3.3.11 diff --git a/variants/esp32s3/seeed_xiao_s3/platformio.ini b/variants/esp32s3/seeed_xiao_s3/platformio.ini index 85f2c1b9b4..2a0e0f0e86 100644 --- a/variants/esp32s3/seeed_xiao_s3/platformio.ini +++ b/variants/esp32s3/seeed_xiao_s3/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = seeed-xiao-s3 board_check = true board_build.partitions = default_8MB.csv diff --git a/variants/esp32s3/station-g2/platformio.ini b/variants/esp32s3/station-g2/platformio.ini index c874ce8629..ab94cc6cd1 100755 --- a/variants/esp32s3/station-g2/platformio.ini +++ b/variants/esp32s3/station-g2/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB extends = esp32s3_base +board_level = release board = station-g2 board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/station-g3/platformio.ini b/variants/esp32s3/station-g3/platformio.ini index ee5ee307e9..910e70ae11 100644 --- a/variants/esp32s3/station-g3/platformio.ini +++ b/variants/esp32s3/station-g3/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB extends = esp32s3_base +board_level = release board = station-g3 board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/t-beam-1w/platformio.ini b/variants/esp32s3/t-beam-1w/platformio.ini index b14f2fe3ce..aef36a8540 100644 --- a/variants/esp32s3/t-beam-1w/platformio.ini +++ b/variants/esp32s3/t-beam-1w/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_has_mui = false extends = esp32s3_base +board_level = release board = t-beam-1w board_build.partitions = default_8MB.csv board_check = true diff --git a/variants/esp32s3/t-beam-bpf/platformio.ini b/variants/esp32s3/t-beam-bpf/platformio.ini index ef12d0ba88..291ddde7b6 100644 --- a/variants/esp32s3/t-beam-bpf/platformio.ini +++ b/variants/esp32s3/t-beam-bpf/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = tbeam-1w.svg custom_meshtastic_tags = LilyGo extends = esp32s3_base +board_level = release board = t-beam-bpf board_build.partitions = default_16MB.csv board_check = true diff --git a/variants/esp32s3/t-deck-pro-v1_1/platformio.ini b/variants/esp32s3/t-deck-pro-v1_1/platformio.ini index 22432d769e..d7b5a3b3e6 100644 --- a/variants/esp32s3/t-deck-pro-v1_1/platformio.ini +++ b/variants/esp32s3/t-deck-pro-v1_1/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 16MB extends = esp32s3_base +board_level = release board = t-deck-pro board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/t-deck-pro/platformio.ini b/variants/esp32s3/t-deck-pro/platformio.ini index d1a2398a4a..f1a5c850b4 100644 --- a/variants/esp32s3/t-deck-pro/platformio.ini +++ b/variants/esp32s3/t-deck-pro/platformio.ini @@ -12,6 +12,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = false extends = esp32s3_base +board_level = release board = t-deck-pro board_check = true upload_protocol = esptool diff --git a/variants/esp32s3/t-deck/platformio.ini b/variants/esp32s3/t-deck/platformio.ini index 04efbb2140..29389c8291 100644 --- a/variants/esp32s3/t-deck/platformio.ini +++ b/variants/esp32s3/t-deck/platformio.ini @@ -13,6 +13,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true extends = esp32s3_base +board_level = release board = t-deck board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/t-eth-elite/platformio.ini b/variants/esp32s3/t-eth-elite/platformio.ini index 2ed698b0d4..42369a63d8 100644 --- a/variants/esp32s3/t-eth-elite/platformio.ini +++ b/variants/esp32s3/t-eth-elite/platformio.ini @@ -1,5 +1,6 @@ [env:t-eth-elite] extends = esp32s3_base +board_level = release board = esp32s3box board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/t-watch-s3/platformio.ini b/variants/esp32s3/t-watch-s3/platformio.ini index 1565a3f7e2..8bd212c4f3 100644 --- a/variants/esp32s3/t-watch-s3/platformio.ini +++ b/variants/esp32s3/t-watch-s3/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = t-watch-s3 board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/t5s3_epaper/platformio.ini b/variants/esp32s3/t5s3_epaper/platformio.ini index 16997945f5..9dd1cea71a 100644 --- a/variants/esp32s3/t5s3_epaper/platformio.ini +++ b/variants/esp32s3/t5s3_epaper/platformio.ini @@ -55,6 +55,7 @@ lib_deps = [env:t5s3-epaper-v1] ; H752 extends = t5s3_epaper_base +board_level = release build_flags = ${t5s3_epaper_base.build_flags} -D T5_S3_EPAPER_PRO_V1 @@ -62,6 +63,7 @@ build_flags = [env:t5s3-epaper-v2] ; H752-01 extends = t5s3_epaper_base +board_level = release build_flags = ${t5s3_epaper_base.build_flags} -D T5_S3_EPAPER_PRO_V2 diff --git a/variants/esp32s3/tbeam-s3-core/platformio.ini b/variants/esp32s3/tbeam-s3-core/platformio.ini index 512cf3202e..2599606226 100644 --- a/variants/esp32s3/tbeam-s3-core/platformio.ini +++ b/variants/esp32s3/tbeam-s3-core/platformio.ini @@ -12,6 +12,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = tbeam-s3-core board_build.partitions = default_8MB.csv board_check = true diff --git a/variants/esp32s3/tlora-pager/platformio.ini b/variants/esp32s3/tlora-pager/platformio.ini index ad326220b8..69acd9283d 100644 --- a/variants/esp32s3/tlora-pager/platformio.ini +++ b/variants/esp32s3/tlora-pager/platformio.ini @@ -13,6 +13,7 @@ custom_meshtastic_partition_scheme = 16MB custom_meshtastic_has_mui = true extends = esp32s3_base +board_level = release board = t-deck-pro ; same as T-Deck Pro board_check = true board_build.partitions = default_16MB.csv diff --git a/variants/esp32s3/tlora_t3s3_epaper/platformio.ini b/variants/esp32s3/tlora_t3s3_epaper/platformio.ini index 93cd4d68d3..8d235c957c 100644 --- a/variants/esp32s3/tlora_t3s3_epaper/platformio.ini +++ b/variants/esp32s3/tlora_t3s3_epaper/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_has_ink_hud = true extends = esp32s3_base +board_level = release board = tlora-t3s3-v1 board_check = true board_build.partitions = partition-table-t3s3.csv @@ -39,6 +40,7 @@ lib_deps = [env:tlora-t3s3-epaper-inkhud] extends = esp32s3_base, inkhud +board_level = release board = tlora-t3s3-v1 board_check = true board_build.partitions = partition-table-t3s3.csv diff --git a/variants/esp32s3/tlora_t3s3_v1/platformio.ini b/variants/esp32s3/tlora_t3s3_v1/platformio.ini index 96103df827..dfe40f46ef 100644 --- a/variants/esp32s3/tlora_t3s3_v1/platformio.ini +++ b/variants/esp32s3/tlora_t3s3_v1/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_requires_dfu = true extends = esp32s3_base +board_level = release board = tlora-t3s3-v1 board_check = true board_build.partitions = partition-table-t3s3.csv diff --git a/variants/esp32s3/tracksenger/platformio.ini b/variants/esp32s3/tracksenger/platformio.ini index 6cfe932fda..c3f2b1aacf 100644 --- a/variants/esp32s3/tracksenger/platformio.ini +++ b/variants/esp32s3/tracksenger/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = heltec_wireless_tracker board_build.partitions = default_8MB.csv upload_protocol = esp-builtin @@ -35,6 +36,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = heltec_wireless_tracker board_build.partitions = default_8MB.csv upload_protocol = esp-builtin @@ -60,6 +62,7 @@ custom_meshtastic_display_name = TrackSenger (big OLED) custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = heltec_wireless_tracker board_build.partitions = default_8MB.csv upload_protocol = esp-builtin diff --git a/variants/esp32s3/unphone/platformio.ini b/variants/esp32s3/unphone/platformio.ini index 6b64bd9601..edb4fa7b87 100644 --- a/variants/esp32s3/unphone/platformio.ini +++ b/variants/esp32s3/unphone/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_requires_dfu = true custom_meshtastic_partition_scheme = 8MB extends = esp32s3_base +board_level = release board = unphone board_build.partitions = partition-table-8MB.csv upload_speed = 921600 diff --git a/variants/nrf52840/ELECROW-ThinkNode-M1/platformio.ini b/variants/nrf52840/ELECROW-ThinkNode-M1/platformio.ini index c169de8f76..5c35f6310a 100644 --- a/variants/nrf52840/ELECROW-ThinkNode-M1/platformio.ini +++ b/variants/nrf52840/ELECROW-ThinkNode-M1/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_tags = Elecrow custom_meshtastic_has_ink_hud = true extends = nrf52840_base +board_level = release board = ThinkNode-M1 board_check = true debug_tool = jlink @@ -41,6 +42,7 @@ lib_deps = [env:thinknode_m1-inkhud] extends = nrf52840_base, inkhud +board_level = release board = ThinkNode-M1 board_check = true debug_tool = jlink diff --git a/variants/nrf52840/ELECROW-ThinkNode-M3/platformio.ini b/variants/nrf52840/ELECROW-ThinkNode-M3/platformio.ini index b6956c0f18..d1d665f6ce 100644 --- a/variants/nrf52840/ELECROW-ThinkNode-M3/platformio.ini +++ b/variants/nrf52840/ELECROW-ThinkNode-M3/platformio.ini @@ -4,6 +4,7 @@ custom_meshtastic_images = thinknode_m3.svg custom_meshtastic_tags = Elecrow extends = nrf52840_base +board_level = release board = ThinkNode-M3 board_check = true debug_tool = jlink diff --git a/variants/nrf52840/ELECROW-ThinkNode-M4/platformio.ini b/variants/nrf52840/ELECROW-ThinkNode-M4/platformio.ini index f96e6038c1..4495beba82 100644 --- a/variants/nrf52840/ELECROW-ThinkNode-M4/platformio.ini +++ b/variants/nrf52840/ELECROW-ThinkNode-M4/platformio.ini @@ -1,6 +1,7 @@ ; ThinkNode M4 - Powerbank nrf52840/LR1110 by Elecrow [env:thinknode_m4] extends = nrf52840_base +board_level = release board = ThinkNode-M4 board_check = true debug_tool = jlink diff --git a/variants/nrf52840/ELECROW-ThinkNode-M6/platformio.ini b/variants/nrf52840/ELECROW-ThinkNode-M6/platformio.ini index fa09a44639..25a58bb62e 100644 --- a/variants/nrf52840/ELECROW-ThinkNode-M6/platformio.ini +++ b/variants/nrf52840/ELECROW-ThinkNode-M6/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = thinknode_m6.svg custom_meshtastic_tags = Elecrow extends = nrf52840_base +board_level = release board = ThinkNode-M6 board_check = true debug_tool = jlink diff --git a/variants/nrf52840/ELECROW-ThinkNode-M8/platformio.ini b/variants/nrf52840/ELECROW-ThinkNode-M8/platformio.ini index 6b845b2eff..e1c94381ac 100644 --- a/variants/nrf52840/ELECROW-ThinkNode-M8/platformio.ini +++ b/variants/nrf52840/ELECROW-ThinkNode-M8/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_display_name = Elecrow ThinkNode M8 custom_meshtastic_actively_supported = true extends = nrf52840_base +board_level = release board = ThinkNode-M8 board_check = true debug_tool = jlink diff --git a/variants/nrf52840/canaryone/platformio.ini b/variants/nrf52840/canaryone/platformio.ini index a2cf55972e..7b3678693f 100644 --- a/variants/nrf52840/canaryone/platformio.ini +++ b/variants/nrf52840/canaryone/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_display_name = Canary One custom_meshtastic_tags = Canary extends = nrf52840_base +board_level = release board = canaryone debug_tool = jlink diff --git a/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini index 51d058bee4..a72b8c61e6 100644 --- a/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini +++ b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_tags = DIY custom_meshtastic_requires_dfu = true extends = nrf52840_base +board_level = release board = promicro-nrf52840 build_flags = ${nrf52840_base.build_flags} -I variants/nrf52840/diy/nrf52_promicro_diy_tcxo diff --git a/variants/nrf52840/feather_diy/platformio.ini b/variants/nrf52840/feather_diy/platformio.ini index 5540021b35..e3d28a2479 100644 --- a/variants/nrf52840/feather_diy/platformio.ini +++ b/variants/nrf52840/feather_diy/platformio.ini @@ -1,6 +1,7 @@ ; The very slick RAK wireless RAK 4631 / 4630 board - Unified firmware for 5005/19003, with or without OLED RAK 1921 [env:feather_diy] extends = nrf52840_base +board_level = release board = adafruit_feather_nrf52840 build_flags = ${nrf52840_base.build_flags} -Ivariants/nrf52840/feather_diy diff --git a/variants/nrf52840/heltec_mesh_node_t096/platformio.ini b/variants/nrf52840/heltec_mesh_node_t096/platformio.ini index 98ca481c26..dcc6f77a42 100644 --- a/variants/nrf52840/heltec_mesh_node_t096/platformio.ini +++ b/variants/nrf52840/heltec_mesh_node_t096/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = heltec-mesh-node-t096.svg, heltec-mesh-node-t096-case custom_meshtastic_tags = Heltec extends = nrf52840_base +board_level = release board = heltec_mesh_node_t096 debug_tool = jlink diff --git a/variants/nrf52840/heltec_mesh_node_t1/platformio.ini b/variants/nrf52840/heltec_mesh_node_t1/platformio.ini index 154fa2f357..3ec2997797 100644 --- a/variants/nrf52840/heltec_mesh_node_t1/platformio.ini +++ b/variants/nrf52840/heltec_mesh_node_t1/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = heltec-mesh-node-t1.svg custom_meshtastic_tags = Heltec extends = nrf52840_base +board_level = release board = heltec_mesh_node_t1 debug_tool = jlink diff --git a/variants/nrf52840/heltec_mesh_pocket/platformio.ini b/variants/nrf52840/heltec_mesh_pocket/platformio.ini index c9b599382c..ae559128ce 100644 --- a/variants/nrf52840/heltec_mesh_pocket/platformio.ini +++ b/variants/nrf52840/heltec_mesh_pocket/platformio.ini @@ -5,6 +5,7 @@ custom_meshtastic_images = heltec_mesh_pocket.svg custom_meshtastic_tags = Heltec extends = nrf52840_base +board_level = release board = heltec_mesh_pocket debug_tool = jlink custom_device_hw_model = 94 @@ -43,6 +44,7 @@ lib_deps = [env:heltec-mesh-pocket-5000-inkhud] extends = nrf52840_base, inkhud +board_level = release board = heltec_mesh_pocket custom_meshtastic_hw_model = 94 custom_meshtastic_hw_model_slug = HELTEC_MESH_POCKET @@ -70,6 +72,7 @@ custom_meshtastic_images = heltec_mesh_pocket.svg custom_meshtastic_tags = Heltec extends = nrf52840_base +board_level = release board = heltec_mesh_pocket debug_tool = jlink custom_meshtastic_hw_model = 94 @@ -107,6 +110,7 @@ lib_deps = [env:heltec-mesh-pocket-10000-inkhud] extends = nrf52840_base, inkhud +board_level = release board = heltec_mesh_pocket custom_meshtastic_hw_model = 94 custom_meshtastic_hw_model_slug = HELTEC_MESH_POCKET diff --git a/variants/nrf52840/heltec_mesh_solar/platformio.ini b/variants/nrf52840/heltec_mesh_solar/platformio.ini index 01af41a5fa..62d3a972bf 100644 --- a/variants/nrf52840/heltec_mesh_solar/platformio.ini +++ b/variants/nrf52840/heltec_mesh_solar/platformio.ini @@ -28,11 +28,13 @@ custom_meshtastic_images = heltec-mesh-solar.svg custom_meshtastic_tags = Heltec extends = heltec_mesh_solar_base +board_level = release build_flags = ${heltec_mesh_solar_base.build_flags} -DSPI_INTERFACES_COUNT=1 [env:heltec-mesh-solar-eink] extends = heltec_mesh_solar_base +board_level = release build_flags = ${heltec_mesh_solar_base.build_flags} -DHELTEC_MESH_SOLAR_EINK -DSPI_INTERFACES_COUNT=2 @@ -71,6 +73,7 @@ lib_deps = [env:heltec-mesh-solar-inkhud] extends = heltec_mesh_solar_base, inkhud +board_level = release build_src_filter = ${heltec_mesh_solar_base.build_src_filter} ${inkhud.build_src_filter} build_flags = ${heltec_mesh_solar_base.build_flags} ${inkhud.build_flags} @@ -92,6 +95,7 @@ lib_deps = [env:heltec-mesh-solar-oled] extends = heltec_mesh_solar_base +board_level = release build_flags = ${heltec_mesh_solar_base.build_flags} -DHELTEC_MESH_SOLAR_OLED -DSPI_INTERFACES_COUNT=1 @@ -103,6 +107,7 @@ build_flags = ${heltec_mesh_solar_base.build_flags} [env:heltec-mesh-solar-tft] extends = heltec_mesh_solar_base +board_level = release build_flags = ${heltec_mesh_solar_base.build_flags} -UOLEDDISPLAY_REDUCE_MEMORY ; TFTDisplay.cpp needs the lib's buffer_back for dirty-window diffing -DHELTEC_MESH_SOLAR_TFT diff --git a/variants/nrf52840/heltec_mesh_tower_v2/platformio.ini b/variants/nrf52840/heltec_mesh_tower_v2/platformio.ini index 9b7090677a..c75c1d23f7 100644 --- a/variants/nrf52840/heltec_mesh_tower_v2/platformio.ini +++ b/variants/nrf52840/heltec_mesh_tower_v2/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = heltec-mesh-tower-v2.svg custom_meshtastic_tags = Heltec extends = nrf52840_base +board_level = release board = heltec_mesh_tower_v2 debug_tool = jlink diff --git a/variants/nrf52840/muzi_base/platformio.ini b/variants/nrf52840/muzi_base/platformio.ini index 52c558ff13..90c871c200 100644 --- a/variants/nrf52840/muzi_base/platformio.ini +++ b/variants/nrf52840/muzi_base/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_images = muzi_base.svg custom_meshtastic_tags = muzi extends = nrf52840_base +board_level = release board = muzi-base build_flags = ${nrf52840_base.build_flags} -I variants/nrf52840/muzi_base diff --git a/variants/nrf52840/nano-g2-ultra/platformio.ini b/variants/nrf52840/nano-g2-ultra/platformio.ini index 7e593a49a7..ae7f7599a9 100644 --- a/variants/nrf52840/nano-g2-ultra/platformio.ini +++ b/variants/nrf52840/nano-g2-ultra/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = nano-g2-ultra.svg custom_meshtastic_tags = B&Q extends = nrf52840_base +board_level = release board = nano-g2-ultra debug_tool = jlink diff --git a/variants/nrf52840/r1-neo/platformio.ini b/variants/nrf52840/r1-neo/platformio.ini index 9d70d6bfd4..c79650bbce 100644 --- a/variants/nrf52840/r1-neo/platformio.ini +++ b/variants/nrf52840/r1-neo/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = muzi_r1_neo.svg custom_meshtastic_tags = muzi extends = nrf52840_base +board_level = release board = r1-neo board_check = true build_flags = ${nrf52840_base.build_flags} diff --git a/variants/nrf52840/rak2560/platformio.ini b/variants/nrf52840/rak2560/platformio.ini index 54b66f4b24..797e439c63 100644 --- a/variants/nrf52840/rak2560/platformio.ini +++ b/variants/nrf52840/rak2560/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = rak2560.svg custom_meshtastic_tags = RAK extends = nrf52840_base +board_level = release board = wiscore_rak4631 board_check = true build_flags = ${nrf52840_base.build_flags} diff --git a/variants/nrf52840/rak3401_1watt/platformio.ini b/variants/nrf52840/rak3401_1watt/platformio.ini index 0220042d1f..e61223f00f 100644 --- a/variants/nrf52840/rak3401_1watt/platformio.ini +++ b/variants/nrf52840/rak3401_1watt/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_tags = RAK custom_meshtastic_requires_dfu = true extends = nrf52840_base +board_level = release board = wiscore_rak4631 board_check = true build_flags = ${nrf52840_base.build_flags} @@ -39,6 +40,7 @@ lib_deps = ; RAK10729 WisMesh Repeater Mini V2 HP (RAK3401 + RAK19007 + RAK13302 + solar battery) [env:rak_wismesh_repeater_mini_hp] extends = env:rak3401-1watt +board_level = release custom_meshtastic_display_name = RAK WisMesh Repeater Mini V2 HP custom_meshtastic_images = rak3401.svg build_flags = diff --git a/variants/nrf52840/rak4631/platformio.ini b/variants/nrf52840/rak4631/platformio.ini index 12c60ffdfe..b45cdab4ff 100644 --- a/variants/nrf52840/rak4631/platformio.ini +++ b/variants/nrf52840/rak4631/platformio.ini @@ -47,6 +47,7 @@ lib_deps = ; RAK10728 WisMesh Repeater Mini V2 (RAK4631 + RAK19003 + solar battery + GPS module) [env:rak_wismesh_repeater_mini] extends = env:rak4631 +board_level = release custom_meshtastic_display_name = RAK WisMesh Repeater Mini V2 custom_meshtastic_images = rak4631.svg build_flags = @@ -59,6 +60,7 @@ build_flags = ; RAK WisMesh Pocket V3 - rak4631 pin map + OLED; no ethernet (unlike env:rak4631) [env:rak_wismesh_pocket] extends = env:rak4631 +board_level = release custom_meshtastic_display_name = RAK WisMesh Pocket V3 custom_meshtastic_images = rak4631.svg build_flags = diff --git a/variants/nrf52840/rak4631_epaper/platformio.ini b/variants/nrf52840/rak4631_epaper/platformio.ini index c970baddd6..5548596fdc 100644 --- a/variants/nrf52840/rak4631_epaper/platformio.ini +++ b/variants/nrf52840/rak4631_epaper/platformio.ini @@ -1,6 +1,7 @@ ; The very slick RAK wireless RAK 4631 / 4630 board - Firmware for 5005 with the RAK 14000 ePaper [env:rak4631_eink] extends = nrf52840_base +board_level = release board = wiscore_rak4631 build_flags = ${nrf52840_base.build_flags} -I variants/nrf52840/rak4631_epaper diff --git a/variants/nrf52840/rak4631_eth_gw/platformio.ini b/variants/nrf52840/rak4631_eth_gw/platformio.ini index eb8890e087..0509f0a1c1 100644 --- a/variants/nrf52840/rak4631_eth_gw/platformio.ini +++ b/variants/nrf52840/rak4631_eth_gw/platformio.ini @@ -1,6 +1,7 @@ ; The very slick RAK wireless RAK 4631 / 4630 board - Unified firmware for 5005/19003, with or without OLED RAK 1921 [env:rak4631_eth_gw] extends = nrf52840_base +board_level = release board = wiscore_rak4631 board_check = true build_flags = ${nrf52840_base.build_flags} diff --git a/variants/nrf52840/rak4631_nomadstar_meteor_pro/platformio.ini b/variants/nrf52840/rak4631_nomadstar_meteor_pro/platformio.ini index f1641e7e42..e3c2fb0184 100644 --- a/variants/nrf52840/rak4631_nomadstar_meteor_pro/platformio.ini +++ b/variants/nrf52840/rak4631_nomadstar_meteor_pro/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = meteor_pro.svg custom_meshtastic_tags = NomadStar extends = nrf52840_base +board_level = release board = wiscore_rak4631 board_check = true build_flags = ${nrf52840_base.build_flags} diff --git a/variants/nrf52840/rak_wismeshtag/platformio.ini b/variants/nrf52840/rak_wismeshtag/platformio.ini index 9e819ab919..d8c289d147 100644 --- a/variants/nrf52840/rak_wismeshtag/platformio.ini +++ b/variants/nrf52840/rak_wismeshtag/platformio.ini @@ -5,6 +5,7 @@ custom_meshtastic_images = rak_wismesh_tag.svg custom_meshtastic_tags = RAK extends = nrf52840_base +board_level = release board = wiscore_rak4631 board_check = true custom_meshtastic_hw_model = 105 @@ -26,6 +27,7 @@ build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak_wis ; RAK WisMesh Pod - same board as Tag (no user buttons on hardware; shares Tag pin map) [env:rak_wismesh_pod] extends = env:rak_wismeshtag +board_level = release custom_meshtastic_display_name = RAK WisMesh Pod build_flags = ${env:rak_wismeshtag.build_flags} diff --git a/variants/nrf52840/rak_wismeshtap/platformio.ini b/variants/nrf52840/rak_wismeshtap/platformio.ini index 87dd49b2c3..46d6b5161d 100644 --- a/variants/nrf52840/rak_wismeshtap/platformio.ini +++ b/variants/nrf52840/rak_wismeshtap/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = rak-wismeshtap.svg custom_meshtastic_tags = RAK extends = nrf52840_base +board_level = release board = wiscore_rak4631 build_flags = ${nrf52840_base.build_flags} -UOLEDDISPLAY_REDUCE_MEMORY ; TFTDisplay.cpp needs the lib's buffer_back for dirty-window diffing diff --git a/variants/nrf52840/seeed_solar_node/platformio.ini b/variants/nrf52840/seeed_solar_node/platformio.ini index 18894c0494..3494193aa2 100644 --- a/variants/nrf52840/seeed_solar_node/platformio.ini +++ b/variants/nrf52840/seeed_solar_node/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_tags = Seeed board = seeed_solar_node extends = nrf52840_base +board_level = release ;board_level = extra build_flags = ${nrf52840_base.build_flags} -I variants/nrf52840/seeed_solar_node diff --git a/variants/nrf52840/seeed_wio_tracker_L1_eink/platformio.ini b/variants/nrf52840/seeed_wio_tracker_L1_eink/platformio.ini index cc746d0177..587349602f 100644 --- a/variants/nrf52840/seeed_wio_tracker_L1_eink/platformio.ini +++ b/variants/nrf52840/seeed_wio_tracker_L1_eink/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_has_ink_hud = true board = seeed_wio_tracker_L1 extends = nrf52840_base +board_level = release ;board_level = extra build_flags = ${nrf52840_base.build_flags} -I variants/nrf52840/seeed_wio_tracker_L1_eink @@ -41,6 +42,7 @@ debug_tool = jlink [env:seeed_wio_tracker_L1_eink-inkhud] board = seeed_wio_tracker_L1 extends = env:seeed_wio_tracker_L1_eink, inkhud +board_level = release build_flags = ${env:seeed_wio_tracker_L1_eink.build_flags} ${inkhud.build_flags} diff --git a/variants/nrf52840/seeed_xiao_nrf52840_kit/platformio.ini b/variants/nrf52840/seeed_xiao_nrf52840_kit/platformio.ini index 0fa09d407b..2ea05057d4 100644 --- a/variants/nrf52840/seeed_xiao_nrf52840_kit/platformio.ini +++ b/variants/nrf52840/seeed_xiao_nrf52840_kit/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = seeed_xiao_nrf52_kit.svg custom_meshtastic_tags = Seeed extends = nrf52840_base +board_level = release board = xiao_ble_sense build_flags = ${nrf52840_base.build_flags} -I variants/nrf52840/seeed_xiao_nrf52840_kit diff --git a/variants/nrf52840/t-echo-lite/platformio.ini b/variants/nrf52840/t-echo-lite/platformio.ini index 1b725815ed..d0e392a9f8 100644 --- a/variants/nrf52840/t-echo-lite/platformio.ini +++ b/variants/nrf52840/t-echo-lite/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_images = techo_lite.svg custom_meshtastic_tags = LilyGo extends = nrf52840_base +board_level = release board = t-echo board_check = true debug_tool = jlink diff --git a/variants/nrf52840/t-echo/platformio.ini b/variants/nrf52840/t-echo/platformio.ini index 40396e1a51..3ce0932b38 100644 --- a/variants/nrf52840/t-echo/platformio.ini +++ b/variants/nrf52840/t-echo/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_has_ink_hud = true extends = nrf52840_base +board_level = release board = t-echo board_check = true debug_tool = jlink @@ -37,6 +38,7 @@ lib_deps = [env:t-echo-inkhud] extends = nrf52840_base, inkhud +board_level = release board = t-echo board_check = true debug_tool = jlink diff --git a/variants/nrf52840/t-impulse-plus/platformio.ini b/variants/nrf52840/t-impulse-plus/platformio.ini index 4287240994..beae2dbfac 100644 --- a/variants/nrf52840/t-impulse-plus/platformio.ini +++ b/variants/nrf52840/t-impulse-plus/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_tags = LilyGo custom_meshtastic_requires_dfu = true extends = nrf52840_base +board_level = release board = t-impulse-plus build_flags = ${nrf52840_base.build_flags} diff --git a/variants/nrf52840/wio-sdk-wm1110/platformio.ini b/variants/nrf52840/wio-sdk-wm1110/platformio.ini index 9fac822896..5f46e10f87 100644 --- a/variants/nrf52840/wio-sdk-wm1110/platformio.ini +++ b/variants/nrf52840/wio-sdk-wm1110/platformio.ini @@ -1,6 +1,7 @@ ; The black Wio-WM1110 Dev Kit with sensors and the WM1110 module [env:wio-sdk-wm1110] extends = nrf52840_base +board_level = release board = wio-sdk-wm1110 extra_scripts = diff --git a/variants/nrf52840/wio-tracker-wm1110/platformio.ini b/variants/nrf52840/wio-tracker-wm1110/platformio.ini index 515712062a..9fbd651fee 100644 --- a/variants/nrf52840/wio-tracker-wm1110/platformio.ini +++ b/variants/nrf52840/wio-tracker-wm1110/platformio.ini @@ -11,6 +11,7 @@ custom_meshtastic_tags = Seeed custom_meshtastic_requires_dfu = true extends = nrf52840_base +board_level = release board = wio-tracker-wm1110 build_flags = ${nrf52840_base.build_flags} -Ivariants/nrf52840/wio-tracker-wm1110 diff --git a/variants/rp2040/rak11310/platformio.ini b/variants/rp2040/rak11310/platformio.ini index 1b1f636a69..f3496023f3 100644 --- a/variants/rp2040/rak11310/platformio.ini +++ b/variants/rp2040/rak11310/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_tags = RAK custom_meshtastic_requires_dfu = true extends = rp2040_base +board_level = release board = rakwireless_rak11300 upload_protocol = picotool # add our variants files to the include and src paths diff --git a/variants/rp2040/rp2040-lora/platformio.ini b/variants/rp2040/rp2040-lora/platformio.ini index f1e0b9af6e..9d7520b1b9 100644 --- a/variants/rp2040/rp2040-lora/platformio.ini +++ b/variants/rp2040/rp2040-lora/platformio.ini @@ -9,6 +9,7 @@ custom_meshtastic_tags = Waveshare custom_meshtastic_requires_dfu = true extends = rp2040_base +board_level = release board = rpipico upload_protocol = picotool # add our variants files to the include and src paths diff --git a/variants/rp2040/rpipico/platformio.ini b/variants/rp2040/rpipico/platformio.ini index c07d2d24fd..b32ba7e217 100644 --- a/variants/rp2040/rpipico/platformio.ini +++ b/variants/rp2040/rpipico/platformio.ini @@ -10,6 +10,7 @@ custom_meshtastic_tags = RPi, DIY custom_meshtastic_requires_dfu = true extends = rp2040_base +board_level = release board = rpipico upload_protocol = picotool # add our variants files to the include and src paths diff --git a/variants/rp2040/seeed_xiao_rp2040/platformio.ini b/variants/rp2040/seeed_xiao_rp2040/platformio.ini index 1aad30a3de..48c7db61db 100644 --- a/variants/rp2040/seeed_xiao_rp2040/platformio.ini +++ b/variants/rp2040/seeed_xiao_rp2040/platformio.ini @@ -1,5 +1,6 @@ [env:seeed_xiao_rp2040] extends = rp2040_base +board_level = release board = seeed_xiao_rp2040 upload_protocol = picotool # add our variants files to the include and src paths diff --git a/variants/rp2350/rpipico2/platformio.ini b/variants/rp2350/rpipico2/platformio.ini index 2ff65c9cd9..59b704fabf 100644 --- a/variants/rp2350/rpipico2/platformio.ini +++ b/variants/rp2350/rpipico2/platformio.ini @@ -1,5 +1,6 @@ [env:pico2] extends = rp2350_base +board_level = release board = rpipico2 upload_protocol = picotool diff --git a/variants/rp2350/seeed_xiao_rp2350/platformio.ini b/variants/rp2350/seeed_xiao_rp2350/platformio.ini index c9d85af745..e179ae2d80 100644 --- a/variants/rp2350/seeed_xiao_rp2350/platformio.ini +++ b/variants/rp2350/seeed_xiao_rp2350/platformio.ini @@ -1,5 +1,6 @@ [env:seeed_xiao_rp2350] extends = rp2350_base +board_level = release board = seeed_xiao_rp2350 upload_protocol = picotool