diff --git a/.github/workflows/main_matrix.yml b/.github/workflows/main_matrix.yml
index 9d5cb0981..a3e8caf15 100644
--- a/.github/workflows/main_matrix.yml
+++ b/.github/workflows/main_matrix.yml
@@ -31,10 +31,16 @@ jobs:
fail-fast: false
matrix:
arch: [esp32, esp32s3, esp32c3, esp32c6, nrf52840, rp2040, stm32, check]
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- - id: jsonStep
+ - uses: actions/setup-python@v5
+ with:
+ python-version: 3.x
+ cache: pip
+ - run: pip install -U platformio
+ - name: Generate matrix
+ id: jsonStep
run: |
if [[ "$GITHUB_HEAD_REF" == "" ]]; then
TARGETS=$(./bin/generate_ci_matrix.py ${{matrix.arch}})
diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml
index d6a8cc8c1..2d4d3fc16 100644
--- a/.trunk/trunk.yaml
+++ b/.trunk/trunk.yaml
@@ -9,9 +9,9 @@ plugins:
lint:
enabled:
- checkov@3.2.451
- - renovate@41.38.1
+ - renovate@41.40.0
- prettier@3.6.2
- - trufflehog@3.90.0
+ - trufflehog@3.90.1
- yamllint@1.37.1
- bandit@1.8.6
- trivy@0.64.1
@@ -28,7 +28,7 @@ lint:
- shellcheck@0.10.0
- black@25.1.0
- git-diff-check
- - gitleaks@8.27.2
+ - gitleaks@8.28.0
- clang-format@16.0.3
ignore:
- linters: [ALL]
diff --git a/bin/generate_ci_matrix.py b/bin/generate_ci_matrix.py
index 0ce6b0f6b..acc0a9fb7 100755
--- a/bin/generate_ci_matrix.py
+++ b/bin/generate_ci_matrix.py
@@ -2,50 +2,67 @@
"""Generate the CI matrix."""
-import configparser
import json
-import os
import sys
import random
-
-rootdir = "variants/"
+import re
+from platformio.project.config import ProjectConfig
options = sys.argv[1:]
outlist = []
if len(options) < 1:
- print(json.dumps(outlist))
- exit()
+ print(json.dumps(outlist))
+ exit(1)
-for subdir, dirs, files in os.walk(rootdir):
- for file in files:
- if file == "platformio.ini":
- config = configparser.ConfigParser()
- config.read(subdir + "/" + file)
- for c in config.sections():
- if c.startswith("env:"):
- section = config[c].name[4:]
- if "extends" in config[config[c].name]:
- if options[0] + "_base" in config[config[c].name]["extends"]:
- if "board_level" in config[config[c].name]:
- if (
- config[config[c].name]["board_level"] == "extra"
- ) & ("extra" in options):
- outlist.append(section)
- else:
- outlist.append(section)
- # Add the TFT variants if the base variant is selected
- elif section.replace("-tft", "") in outlist and config[config[c].name].get("board_level") != "extra":
- outlist.append(section)
- elif section.replace("-inkhud", "") in outlist and config[config[c].name].get("board_level") != "extra":
- outlist.append(section)
- if "board_check" in config[config[c].name]:
- if (config[config[c].name]["board_check"] == "true") & (
- "check" in options
- ):
- outlist.append(section)
-if ("quick" in options) & (len(outlist) > 3):
+cfg = ProjectConfig.get_instance()
+pio_envs = cfg.envs()
+
+# Gather all PlatformIO environments for filtering later
+all_envs = []
+for pio_env in pio_envs:
+ env_build_flags = cfg.get(f"env:{pio_env}", 'build_flags')
+ env_platform = None
+ for flag in env_build_flags:
+ # Extract the platform from the build flags
+ # Example flag: -I variants/esp32s3/heltec-v3
+ match = re.search(r"-I\s?variants/([^/]+)", flag)
+ if match:
+ env_platform = match.group(1)
+ break
+ # Intentionally fail if platform cannot be determined
+ if not env_platform:
+ print(f"Error: Could not determine platform for environment '{pio_env}'")
+ exit(1)
+ # Store env details as a dictionary, and add to 'all_envs' list
+ env = {
+ 'name': pio_env,
+ 'platform': env_platform,
+ 'board_level': cfg.get(f"env:{pio_env}", 'board_level', default=None),
+ 'board_check': bool(cfg.get(f"env:{pio_env}", 'board_check', default=False))
+ }
+ all_envs.append(env)
+
+# Filter outputs based on options
+# Check is currently mutually exclusive with other options
+if "check" in options:
+ for env in all_envs:
+ if env['board_check']:
+ outlist.append(env['name'])
+# Filter (non-check) builds by platform
+else:
+ for env in all_envs:
+ if options[0] == env['platform']:
+ # If no board level is specified, always include it
+ if not env['board_level']:
+ outlist.append(env['name'])
+ # Include `extra` boards when requested
+ elif "extra" in options and env['board_level'] == "extra":
+ outlist.append(env['name'])
+
+# Return as a JSON list
+if ("quick" in options) and (len(outlist) > 3):
print(json.dumps(random.sample(outlist, 3)))
else:
- print(json.dumps(outlist))
\ No newline at end of file
+ print(json.dumps(outlist))
diff --git a/platformio.ini b/platformio.ini
index c0eb6fedb..8bf56cf5b 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -6,7 +6,6 @@ default_envs = tbeam
extra_configs =
arch/*/*.ini
- variants/*/platformio.ini ; Remove when all variants migrated to new dir structure
variants/*/*/platformio.ini
variants/*/diy/*/platformio.ini
src/graphics/niche/InkHUD/PlatformioConfig.ini
@@ -111,7 +110,7 @@ lib_deps =
[device-ui_base]
lib_deps =
# renovate: datasource=git-refs depName=meshtastic/device-ui packageName=https://github.com/meshtastic/device-ui gitBranch=master
- https://github.com/meshtastic/device-ui/archive/86a09a7360f92d10053fbbf8d74f67f85b0ceb09.zip
+ https://github.com/meshtastic/device-ui/archive/c75d545bf9e8d1fe20051c319f427f711113ff22.zip
; Common libs for environmental measurements in telemetry module
[environmental_base]
diff --git a/protobufs b/protobufs
index fa02e14d8..d31cd890d 160000
--- a/protobufs
+++ b/protobufs
@@ -1 +1 @@
-Subproject commit fa02e14d8d01850336eaea0e9552aef4f08f0a40
+Subproject commit d31cd890d58ffa7e3524e0685a8617bbd181a1c6
diff --git a/src/Power.cpp b/src/Power.cpp
index 298f08e0d..b489bc33c 100644
--- a/src/Power.cpp
+++ b/src/Power.cpp
@@ -20,6 +20,11 @@
#include "meshUtils.h"
#include "sleep.h"
+#if defined(ARCH_PORTDUINO)
+#include "api/WiFiServerAPI.h"
+#include "input/LinuxInputImpl.h"
+#endif
+
// Working USB detection for powered/charging states on the RAK platform
#ifdef NRF_APM
#include "nrfx_power.h"
@@ -690,6 +695,47 @@ bool Power::setup()
return found;
}
+void Power::powerCommandsCheck()
+{
+ if (rebootAtMsec && millis() > rebootAtMsec) {
+ LOG_INFO("Rebooting");
+ reboot();
+ }
+
+ if (shutdownAtMsec && millis() > shutdownAtMsec) {
+ shutdownAtMsec = 0;
+ shutdown();
+ }
+}
+
+void Power::reboot()
+{
+ notifyReboot.notifyObservers(NULL);
+#if defined(ARCH_ESP32)
+ ESP.restart();
+#elif defined(ARCH_NRF52)
+ NVIC_SystemReset();
+#elif defined(ARCH_RP2040)
+ rp2040.reboot();
+#elif defined(ARCH_PORTDUINO)
+ deInitApiServer();
+ if (aLinuxInputImpl)
+ aLinuxInputImpl->deInit();
+ SPI.end();
+ Wire.end();
+ Serial1.end();
+ if (screen)
+ delete screen;
+ LOG_DEBUG("final reboot!");
+ reboot();
+#elif defined(ARCH_STM32WL)
+ HAL_NVIC_SystemReset();
+#else
+ rebootAtMsec = -1;
+ LOG_WARN("FIXME implement reboot for this platform. Note that some settings require a restart to be applied");
+#endif
+}
+
void Power::shutdown()
{
diff --git a/src/PowerFSM.cpp b/src/PowerFSM.cpp
index 3b3f8080d..322b877ff 100644
--- a/src/PowerFSM.cpp
+++ b/src/PowerFSM.cpp
@@ -72,7 +72,7 @@ extern Power *power;
static void shutdownEnter()
{
LOG_DEBUG("State: SHUTDOWN");
- power->shutdown();
+ shutdownAtMsec = millis();
}
#include "error.h"
diff --git a/src/gps/GPS.cpp b/src/gps/GPS.cpp
index 3a6b19f64..f3624c627 100644
--- a/src/gps/GPS.cpp
+++ b/src/gps/GPS.cpp
@@ -643,8 +643,16 @@ bool GPS::setup()
delay(250);
} else if (IS_ONE_OF(gnssModel, GNSS_MODEL_AG3335, GNSS_MODEL_AG3352)) {
- _serial_gps->write("$PAIR066,1,0,1,0,0,1*3B\r\n"); // Enable GPS+GALILEO+NAVIC
-
+ if (config.lora.region == meshtastic_Config_LoRaConfig_RegionCode_IN ||
+ config.lora.region == meshtastic_Config_LoRaConfig_RegionCode_NP_865) {
+ _serial_gps->write("$PAIR066,1,0,1,0,0,1*3B\r\n"); // Enable GPS+GALILEO+NAVIC
+ // GPS GLONASS GALILEO BDS QZSS NAVIC
+ // 1 0 1 0 0 1
+ } else {
+ _serial_gps->write("$PAIR066,1,1,1,1,0,0*3A\r\n"); // Enable GPS+GLONASS+GALILEO+BDS
+ // GPS GLONASS GALILEO BDS QZSS NAVIC
+ // 1 1 1 1 0 0
+ }
// Configure NMEA (sentences will output once per fix)
_serial_gps->write("$PAIR062,0,1*3F\r\n"); // GGA ON
_serial_gps->write("$PAIR062,1,0*3F\r\n"); // GLL OFF
diff --git a/src/graphics/draw/MenuHandler.cpp b/src/graphics/draw/MenuHandler.cpp
index 83198a7c5..5eaa2c6bf 100644
--- a/src/graphics/draw/MenuHandler.cpp
+++ b/src/graphics/draw/MenuHandler.cpp
@@ -51,12 +51,14 @@ void menuHandler::LoraRegionPicker(uint32_t duration)
"PH_915",
"ANZ_433",
"KZ_433",
- "KZ_863"};
+ "KZ_863",
+ "NP_865",
+ "BR_902"};
BannerOverlayOptions bannerOptions;
bannerOptions.message = "Set the LoRa region";
bannerOptions.durationMs = duration;
bannerOptions.optionsArrayPtr = optionsArray;
- bannerOptions.optionsCount = 25;
+ bannerOptions.optionsCount = 27;
bannerOptions.InitialSelected = 0;
bannerOptions.bannerCallback = [](int selected) -> void {
if (selected != 0 && config.lora.region != _meshtastic_Config_LoRaConfig_RegionCode(selected)) {
diff --git a/src/graphics/niche/InkHUD/Applets/System/Menu/MenuApplet.cpp b/src/graphics/niche/InkHUD/Applets/System/Menu/MenuApplet.cpp
index a1f79a28f..7876276a8 100644
--- a/src/graphics/niche/InkHUD/Applets/System/Menu/MenuApplet.cpp
+++ b/src/graphics/niche/InkHUD/Applets/System/Menu/MenuApplet.cpp
@@ -223,7 +223,7 @@ void InkHUD::MenuApplet::execute(MenuItem item)
case SHUTDOWN:
LOG_INFO("Shutting down from menu");
- power->shutdown();
+ shutdownAtMsec = millis();
// Menu is then sent to background via onShutdown
break;
diff --git a/src/graphics/niche/InkHUD/PlatformioConfig.ini b/src/graphics/niche/InkHUD/PlatformioConfig.ini
index e5a0e67df..80984f399 100644
--- a/src/graphics/niche/InkHUD/PlatformioConfig.ini
+++ b/src/graphics/niche/InkHUD/PlatformioConfig.ini
@@ -1,7 +1,6 @@
[inkhud]
build_src_filter =
+; Include the nicheGraphics directory
- +<../variants/$PIOENV>; Include nicheGraphics.h from our variant folder
build_flags =
-D MESHTASTIC_INCLUDE_NICHE_GRAPHICS ; Use NicheGraphics
-D MESHTASTIC_INCLUDE_INKHUD ; Use InkHUD (a NicheGraphics UI)
diff --git a/src/input/ExpressLRSFiveWay.cpp b/src/input/ExpressLRSFiveWay.cpp
index 77f9e9993..776b9001d 100644
--- a/src/input/ExpressLRSFiveWay.cpp
+++ b/src/input/ExpressLRSFiveWay.cpp
@@ -199,7 +199,7 @@ void ExpressLRSFiveWay::sendKey(input_broker_event key)
void ExpressLRSFiveWay::toggleGPS()
{
#if HAS_GPS && !MESHTASTIC_EXCLUDE_GPS
- if (!config.device.disable_triple_click && (gps != nullptr)) {
+ if (gps != nullptr) {
gps->toggleGpsMode();
screen->startAlert("GPS Toggled");
alerting = true;
diff --git a/src/main.cpp b/src/main.cpp
index c3e7c2a33..1868d98c7 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -33,7 +33,6 @@
#include "mesh/generated/meshtastic/config.pb.h"
#include "meshUtils.h"
#include "modules/Modules.h"
-#include "shutdown.h"
#include "sleep.h"
#include "target_specific.h"
#include
@@ -1530,7 +1529,7 @@ void loop()
#ifdef ARCH_NRF52
nrf52Loop();
#endif
- powerCommandsCheck();
+ power->powerCommandsCheck();
#ifdef DEBUG_STACK
static uint32_t lastPrint = 0;
diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp
index 38e213167..b7120a064 100644
--- a/src/mesh/NodeDB.cpp
+++ b/src/mesh/NodeDB.cpp
@@ -628,11 +628,6 @@ void NodeDB::installDefaultConfig(bool preserveKey = false)
#ifdef PIN_GPS_EN
config.position.gps_en_gpio = PIN_GPS_EN;
#endif
-#ifdef GPS_POWER_TOGGLE
- config.device.disable_triple_click = false;
-#else
- config.device.disable_triple_click = true;
-#endif
#if defined(USERPREFS_CONFIG_GPS_MODE)
config.position.gps_mode = USERPREFS_CONFIG_GPS_MODE;
#elif !HAS_GPS || GPS_DEFAULT_NOT_PRESENT
diff --git a/src/mesh/RadioInterface.cpp b/src/mesh/RadioInterface.cpp
index faa67a1c2..7590ac34d 100644
--- a/src/mesh/RadioInterface.cpp
+++ b/src/mesh/RadioInterface.cpp
@@ -67,6 +67,7 @@ const RegionInfo regions[] = {
/*
https://www.iot.org.au/wp/wp-content/uploads/2016/12/IoTSpectrumFactSheet.pdf
https://iotalliance.org.nz/wp-content/uploads/sites/4/2019/05/IoT-Spectrum-in-NZ-Briefing-Paper.pdf
+ Also used in Brazil.
*/
RDEF(ANZ, 915.0f, 928.0f, 100, 0, 30, true, false, false),
@@ -169,6 +170,21 @@ const RegionInfo regions[] = {
*/
RDEF(KZ_433, 433.075f, 434.775f, 100, 0, 10, true, false, false), RDEF(KZ_863, 863.0f, 868.0f, 100, 0, 30, true, false, true),
+
+ /*
+ Nepal
+ 865 MHz to 868 MHz frequency band for IoT (Internet of Things), M2M (Machine-to-Machine), and smart metering use, specifically in non-cellular mode.
+ https://www.nta.gov.np/uploads/contents/Radio-Frequency-Policy-2080-English.pdf
+ */
+ RDEF(NP_865, 865.0f, 868.0f, 100, 0, 30, true, false, false),
+
+ /*
+ Brazil
+ 902 - 907.5 MHz , 1W power limit, no duty cycle restrictions
+ https://github.com/meshtastic/firmware/issues/3741
+ */
+ RDEF(BR_902, 902.0f, 907.5f, 100, 0, 30, true, false, false),
+
/*
2.4 GHZ WLAN Band equivalent. Only for SX128x chips.
*/
diff --git a/src/mesh/generated/meshtastic/deviceonly.pb.h b/src/mesh/generated/meshtastic/deviceonly.pb.h
index b02b2083d..e709db6c4 100644
--- a/src/mesh/generated/meshtastic/deviceonly.pb.h
+++ b/src/mesh/generated/meshtastic/deviceonly.pb.h
@@ -362,7 +362,7 @@ extern const pb_msgdesc_t meshtastic_BackupPreferences_msg;
#define MESHTASTIC_MESHTASTIC_DEVICEONLY_PB_H_MAX_SIZE meshtastic_BackupPreferences_size
#define meshtastic_BackupPreferences_size 2271
#define meshtastic_ChannelFile_size 718
-#define meshtastic_DeviceState_size 1722
+#define meshtastic_DeviceState_size 1724
#define meshtastic_NodeInfoLite_size 196
#define meshtastic_PositionLite_size 28
#define meshtastic_UserLite_size 98
diff --git a/src/mesh/generated/meshtastic/mesh.pb.cpp b/src/mesh/generated/meshtastic/mesh.pb.cpp
index 361d01b9a..85735357a 100644
--- a/src/mesh/generated/meshtastic/mesh.pb.cpp
+++ b/src/mesh/generated/meshtastic/mesh.pb.cpp
@@ -117,6 +117,8 @@ PB_BIND(meshtastic_ChunkedPayloadResponse, meshtastic_ChunkedPayloadResponse, AU
+
+
diff --git a/src/mesh/generated/meshtastic/mesh.pb.h b/src/mesh/generated/meshtastic/mesh.pb.h
index d1a38b565..abc06e635 100644
--- a/src/mesh/generated/meshtastic/mesh.pb.h
+++ b/src/mesh/generated/meshtastic/mesh.pb.h
@@ -325,6 +325,25 @@ typedef enum _meshtastic_CriticalErrorCode {
meshtastic_CriticalErrorCode_FLASH_CORRUPTION_UNRECOVERABLE = 13
} meshtastic_CriticalErrorCode;
+/* Enum to indicate to clients whether this firmware is a special firmware build, like an event.
+ The first 16 values are reserved for non-event special firmwares, like the Smart Citizen use case. */
+typedef enum _meshtastic_FirmwareEdition {
+ /* Vanilla firmware */
+ meshtastic_FirmwareEdition_VANILLA = 0,
+ /* Firmware for use in the Smart Citizen environmental monitoring network */
+ meshtastic_FirmwareEdition_SMART_CITIZEN = 1,
+ /* Open Sauce, the maker conference held yearly in CA */
+ meshtastic_FirmwareEdition_OPEN_SAUCE = 16,
+ /* DEFCON, the yearly hacker conference */
+ meshtastic_FirmwareEdition_DEFCON = 17,
+ /* Burning Man, the yearly hippie gathering in the desert */
+ meshtastic_FirmwareEdition_BURNING_MAN = 18,
+ /* Hamvention, the Dayton amateur radio convention */
+ meshtastic_FirmwareEdition_HAMVENTION = 19,
+ /* Placeholder for DIY and unofficial events */
+ meshtastic_FirmwareEdition_DIY_EDITION = 127
+} meshtastic_FirmwareEdition;
+
/* Enum for modules excluded from a device's configuration.
Each value represents a ModuleConfigType that can be toggled as excluded
by setting its corresponding bit in the `excluded_modules` bitmask field. */
@@ -914,6 +933,8 @@ typedef struct _meshtastic_MyNodeInfo {
meshtastic_MyNodeInfo_device_id_t device_id;
/* The PlatformIO environment used to build this firmware */
char pio_env[40];
+ /* The indicator for whether this device is running event firmware and which */
+ meshtastic_FirmwareEdition firmware_edition;
} meshtastic_MyNodeInfo;
/* Debug output from the device.
@@ -1212,6 +1233,10 @@ extern "C" {
#define _meshtastic_CriticalErrorCode_MAX meshtastic_CriticalErrorCode_FLASH_CORRUPTION_UNRECOVERABLE
#define _meshtastic_CriticalErrorCode_ARRAYSIZE ((meshtastic_CriticalErrorCode)(meshtastic_CriticalErrorCode_FLASH_CORRUPTION_UNRECOVERABLE+1))
+#define _meshtastic_FirmwareEdition_MIN meshtastic_FirmwareEdition_VANILLA
+#define _meshtastic_FirmwareEdition_MAX meshtastic_FirmwareEdition_DIY_EDITION
+#define _meshtastic_FirmwareEdition_ARRAYSIZE ((meshtastic_FirmwareEdition)(meshtastic_FirmwareEdition_DIY_EDITION+1))
+
#define _meshtastic_ExcludedModules_MIN meshtastic_ExcludedModules_EXCLUDED_NONE
#define _meshtastic_ExcludedModules_MAX meshtastic_ExcludedModules_NETWORK_CONFIG
#define _meshtastic_ExcludedModules_ARRAYSIZE ((meshtastic_ExcludedModules)(meshtastic_ExcludedModules_NETWORK_CONFIG+1))
@@ -1258,6 +1283,7 @@ extern "C" {
#define meshtastic_MeshPacket_delayed_ENUMTYPE meshtastic_MeshPacket_Delayed
+#define meshtastic_MyNodeInfo_firmware_edition_ENUMTYPE meshtastic_FirmwareEdition
#define meshtastic_LogRecord_level_ENUMTYPE meshtastic_LogRecord_Level
@@ -1296,7 +1322,7 @@ extern "C" {
#define meshtastic_MqttClientProxyMessage_init_default {"", 0, {{0, {0}}}, 0}
#define meshtastic_MeshPacket_init_default {0, 0, 0, 0, {meshtastic_Data_init_default}, 0, 0, 0, 0, 0, _meshtastic_MeshPacket_Priority_MIN, 0, _meshtastic_MeshPacket_Delayed_MIN, 0, 0, {0, {0}}, 0, 0, 0, 0}
#define meshtastic_NodeInfo_init_default {0, false, meshtastic_User_init_default, false, meshtastic_Position_init_default, 0, 0, false, meshtastic_DeviceMetrics_init_default, 0, 0, false, 0, 0, 0, 0}
-#define meshtastic_MyNodeInfo_init_default {0, 0, 0, {0, {0}}, ""}
+#define meshtastic_MyNodeInfo_init_default {0, 0, 0, {0, {0}}, "", _meshtastic_FirmwareEdition_MIN}
#define meshtastic_LogRecord_init_default {"", 0, "", _meshtastic_LogRecord_Level_MIN}
#define meshtastic_QueueStatus_init_default {0, 0, 0, 0}
#define meshtastic_FromRadio_init_default {0, 0, {meshtastic_MeshPacket_init_default}}
@@ -1327,7 +1353,7 @@ extern "C" {
#define meshtastic_MqttClientProxyMessage_init_zero {"", 0, {{0, {0}}}, 0}
#define meshtastic_MeshPacket_init_zero {0, 0, 0, 0, {meshtastic_Data_init_zero}, 0, 0, 0, 0, 0, _meshtastic_MeshPacket_Priority_MIN, 0, _meshtastic_MeshPacket_Delayed_MIN, 0, 0, {0, {0}}, 0, 0, 0, 0}
#define meshtastic_NodeInfo_init_zero {0, false, meshtastic_User_init_zero, false, meshtastic_Position_init_zero, 0, 0, false, meshtastic_DeviceMetrics_init_zero, 0, 0, false, 0, 0, 0, 0}
-#define meshtastic_MyNodeInfo_init_zero {0, 0, 0, {0, {0}}, ""}
+#define meshtastic_MyNodeInfo_init_zero {0, 0, 0, {0, {0}}, "", _meshtastic_FirmwareEdition_MIN}
#define meshtastic_LogRecord_init_zero {"", 0, "", _meshtastic_LogRecord_Level_MIN}
#define meshtastic_QueueStatus_init_zero {0, 0, 0, 0}
#define meshtastic_FromRadio_init_zero {0, 0, {meshtastic_MeshPacket_init_zero}}
@@ -1450,6 +1476,7 @@ extern "C" {
#define meshtastic_MyNodeInfo_min_app_version_tag 11
#define meshtastic_MyNodeInfo_device_id_tag 12
#define meshtastic_MyNodeInfo_pio_env_tag 13
+#define meshtastic_MyNodeInfo_firmware_edition_tag 14
#define meshtastic_LogRecord_message_tag 1
#define meshtastic_LogRecord_time_tag 2
#define meshtastic_LogRecord_source_tag 3
@@ -1682,7 +1709,8 @@ X(a, STATIC, SINGULAR, UINT32, my_node_num, 1) \
X(a, STATIC, SINGULAR, UINT32, reboot_count, 8) \
X(a, STATIC, SINGULAR, UINT32, min_app_version, 11) \
X(a, STATIC, SINGULAR, BYTES, device_id, 12) \
-X(a, STATIC, SINGULAR, STRING, pio_env, 13)
+X(a, STATIC, SINGULAR, STRING, pio_env, 13) \
+X(a, STATIC, SINGULAR, UENUM, firmware_edition, 14)
#define meshtastic_MyNodeInfo_CALLBACK NULL
#define meshtastic_MyNodeInfo_DEFAULT NULL
@@ -1965,7 +1993,7 @@ extern const pb_msgdesc_t meshtastic_ChunkedPayloadResponse_msg;
#define meshtastic_LowEntropyKey_size 0
#define meshtastic_MeshPacket_size 378
#define meshtastic_MqttClientProxyMessage_size 501
-#define meshtastic_MyNodeInfo_size 77
+#define meshtastic_MyNodeInfo_size 79
#define meshtastic_NeighborInfo_size 258
#define meshtastic_Neighbor_size 22
#define meshtastic_NodeInfo_size 323
diff --git a/src/modules/AdminModule.cpp b/src/modules/AdminModule.cpp
index 8d3e710df..33d5e1016 100644
--- a/src/modules/AdminModule.cpp
+++ b/src/modules/AdminModule.cpp
@@ -596,7 +596,6 @@ void AdminModule::handleSetConfig(const meshtastic_Config &c)
if (config.device.button_gpio == c.payload_variant.device.button_gpio &&
config.device.buzzer_gpio == c.payload_variant.device.buzzer_gpio &&
config.device.role == c.payload_variant.device.role &&
- config.device.disable_triple_click == c.payload_variant.device.disable_triple_click &&
config.device.rebroadcast_mode == c.payload_variant.device.rebroadcast_mode) {
requiresReboot = false;
}
diff --git a/src/modules/CannedMessageModule.cpp b/src/modules/CannedMessageModule.cpp
index 2a4f1cf4d..ed930db41 100644
--- a/src/modules/CannedMessageModule.cpp
+++ b/src/modules/CannedMessageModule.cpp
@@ -56,6 +56,7 @@ CannedMessageModule::CannedMessageModule()
disable();
} else {
LOG_INFO("CannedMessageModule is enabled");
+ moduleConfig.canned_message.enabled = true;
this->inputObserver.observe(inputBroker);
}
}
@@ -2075,6 +2076,9 @@ void CannedMessageModule::handleSetCannedMessageModuleMessages(const char *from_
if (changed) {
this->saveProtoForModule();
+ if (splitConfiguredMessages()) {
+ moduleConfig.canned_message.enabled = true;
+ }
}
}
diff --git a/src/modules/ExternalNotificationModule.cpp b/src/modules/ExternalNotificationModule.cpp
index 5d7233279..1f871f87e 100644
--- a/src/modules/ExternalNotificationModule.cpp
+++ b/src/modules/ExternalNotificationModule.cpp
@@ -126,9 +126,11 @@ int32_t ExternalNotificationModule::runOnce()
millis()) {
setExternalState(1, !getExternal(1));
}
- if (externalTurnedOn[2] + (moduleConfig.external_notification.output_ms ? moduleConfig.external_notification.output_ms
+ // Only toggle buzzer output if not using PWM mode (to avoid conflict with RTTTL)
+ if (!moduleConfig.external_notification.use_pwm &&
+ externalTurnedOn[2] + (moduleConfig.external_notification.output_ms ? moduleConfig.external_notification.output_ms
: EXT_NOTIFICATION_MODULE_OUTPUT_MS) <
- millis()) {
+ millis()) {
LOG_DEBUG("EXTERNAL 2 %d compared to %d", externalTurnedOn[2] + moduleConfig.external_notification.output_ms,
millis());
setExternalState(2, !getExternal(2));
@@ -247,7 +249,8 @@ void ExternalNotificationModule::setExternalState(uint8_t index, bool on)
digitalWrite(moduleConfig.external_notification.output_vibra, on);
break;
case 2:
- if (moduleConfig.external_notification.output_buzzer)
+ // Only control buzzer pin digitally if not using PWM mode
+ if (moduleConfig.external_notification.output_buzzer && !moduleConfig.external_notification.use_pwm)
digitalWrite(moduleConfig.external_notification.output_buzzer, on);
break;
default:
@@ -320,6 +323,11 @@ void ExternalNotificationModule::stopNow()
#endif
nagCycleCutoff = 1; // small value
isNagging = false;
+ // Turn off all outputs
+ for (int i = 0; i < 3; i++) {
+ setExternalState(i, false);
+ externalTurnedOn[i] = 0;
+ }
setIntervalFromNow(0);
#ifdef T_WATCH_S3
drv.stop();
@@ -478,14 +486,17 @@ ProcessMessage ExternalNotificationModule::handleReceived(const meshtastic_MeshP
if (containsBell) {
LOG_INFO("externalNotificationModule - Notification Bell (Buzzer)");
isNagging = true;
- if (!moduleConfig.external_notification.use_pwm) {
+ if (!moduleConfig.external_notification.use_pwm && !moduleConfig.external_notification.use_i2s_as_buzzer) {
setExternalState(2, true);
} else {
#ifdef HAS_I2S
- audioThread->beginRttl(rtttlConfig.ringtone, strlen_P(rtttlConfig.ringtone));
-#else
- rtttl::begin(config.device.buzzer_gpio, rtttlConfig.ringtone);
+ if (moduleConfig.external_notification.use_i2s_as_buzzer) {
+ audioThread->beginRttl(rtttlConfig.ringtone, strlen_P(rtttlConfig.ringtone));
+ } else
#endif
+ if (moduleConfig.external_notification.use_pwm) {
+ rtttl::begin(config.device.buzzer_gpio, rtttlConfig.ringtone);
+ }
}
if (moduleConfig.external_notification.nag_timeout) {
nagCycleCutoff = millis() + moduleConfig.external_notification.nag_timeout * 1000;
@@ -526,10 +537,11 @@ ProcessMessage ExternalNotificationModule::handleReceived(const meshtastic_MeshP
#ifdef HAS_I2S
if (moduleConfig.external_notification.use_i2s_as_buzzer) {
audioThread->beginRttl(rtttlConfig.ringtone, strlen_P(rtttlConfig.ringtone));
- }
-#else
- rtttl::begin(config.device.buzzer_gpio, rtttlConfig.ringtone);
+ } else
#endif
+ if (moduleConfig.external_notification.use_pwm) {
+ rtttl::begin(config.device.buzzer_gpio, rtttlConfig.ringtone);
+ }
}
if (moduleConfig.external_notification.nag_timeout) {
nagCycleCutoff = millis() + moduleConfig.external_notification.nag_timeout * 1000;
diff --git a/src/platform/portduino/PortduinoGlue.cpp b/src/platform/portduino/PortduinoGlue.cpp
index 685f0d077..5f99ec2c3 100644
--- a/src/platform/portduino/PortduinoGlue.cpp
+++ b/src/platform/portduino/PortduinoGlue.cpp
@@ -34,6 +34,7 @@ Ch341Hal *ch341Hal = nullptr;
char *configPath = nullptr;
char *optionMac = nullptr;
bool forceSimulated = false;
+bool verboseEnabled = false;
const char *argp_program_version = optstr(APP_VERSION);
@@ -70,7 +71,9 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
case 'h':
optionMac = arg;
break;
-
+ case 'v':
+ verboseEnabled = true;
+ break;
case ARGP_KEY_ARG:
return 0;
default:
@@ -85,6 +88,7 @@ void portduinoCustomInit()
{"config", 'c', "CONFIG_PATH", 0, "Full path of the .yaml config file to use."},
{"hwid", 'h', "HWID", 0, "The mac address to assign to this virtual machine"},
{"sim", 's', 0, 0, "Run in Simulated radio mode"},
+ {"verbose", 'v', 0, 0, "Set log level to full debug"},
{0}};
static void *childArguments;
static char doc[] = "Meshtastic native build.";
@@ -417,6 +421,9 @@ void portduinoSetup()
exit(EXIT_FAILURE);
}
}
+ if (verboseEnabled && settingsMap[logoutputlevel] != level_trace) {
+ settingsMap[logoutputlevel] = level_debug;
+ }
return;
}
diff --git a/src/power.h b/src/power.h
index 046980bd6..1c078c06d 100644
--- a/src/power.h
+++ b/src/power.h
@@ -110,7 +110,7 @@ class Power : private concurrency::OSThread
Power();
- void shutdown();
+ void powerCommandsCheck();
void readPowerStatus();
virtual bool setup();
virtual int32_t runOnce() override;
@@ -130,6 +130,8 @@ class Power : private concurrency::OSThread
bool lipoChargerInit();
private:
+ void shutdown();
+ void reboot();
// open circuit voltage lookup table
uint8_t low_voltage_counter;
#ifdef DEBUG_HEAP
diff --git a/src/shutdown.h b/src/shutdown.h
deleted file mode 100644
index 973e388b1..000000000
--- a/src/shutdown.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "buzz.h"
-#include "configuration.h"
-#include "graphics/Screen.h"
-#include "main.h"
-#include "power.h"
-#include "sleep.h"
-#if defined(ARCH_PORTDUINO)
-#include "api/WiFiServerAPI.h"
-#include "input/LinuxInputImpl.h"
-
-#endif
-
-void powerCommandsCheck()
-{
- if (rebootAtMsec && millis() > rebootAtMsec) {
- LOG_INFO("Rebooting");
- notifyReboot.notifyObservers(NULL);
-#if defined(ARCH_ESP32)
- ESP.restart();
-#elif defined(ARCH_NRF52)
- NVIC_SystemReset();
-#elif defined(ARCH_RP2040)
- rp2040.reboot();
-#elif defined(ARCH_PORTDUINO)
- deInitApiServer();
- if (aLinuxInputImpl)
- aLinuxInputImpl->deInit();
- SPI.end();
- Wire.end();
- Serial1.end();
- if (screen)
- delete screen;
- LOG_DEBUG("final reboot!");
- reboot();
-#elif defined(ARCH_STM32WL)
- HAL_NVIC_SystemReset();
-#else
- rebootAtMsec = -1;
- LOG_WARN("FIXME implement reboot for this platform. Note that some settings require a restart to be applied");
-#endif
- }
-
- if (shutdownAtMsec && millis() > shutdownAtMsec) {
- shutdownAtMsec = 0;
- power->shutdown();
- }
-}
\ No newline at end of file
diff --git a/variants/diy/platformio.ini b/variants/diy/platformio.ini
deleted file mode 100644
index 6b3a2ed99..000000000
--- a/variants/diy/platformio.ini
+++ /dev/null
@@ -1,80 +0,0 @@
-; Promicro + E22(0)-xxxMM / RA-01SH modules board variant - DIY - without TCXO
-[env:nrf52_promicro_diy_xtal]
-extends = nrf52840_base
-board = promicro-nrf52840
-board_level = extra
-build_flags = ${nrf52840_base.build_flags}
- -I variants/diy/nrf52_promicro_diy_xtal
- -D NRF52_PROMICRO_DIY
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/diy/nrf52_promicro_diy_xtal>
-lib_deps =
- ${nrf52840_base.lib_deps}
-debug_tool = jlink
-
-
-; Promicro + E22(0)-xxxM / HT-RA62 modules board variant - DIY - with TCXO
-[env:nrf52_promicro_diy_tcxo]
-extends = nrf52840_base
-board = promicro-nrf52840
-build_flags = ${nrf52840_base.build_flags}
- -I variants/diy/nrf52_promicro_diy_tcxo
- -D NRF52_PROMICRO_DIY
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/diy/nrf52_promicro_diy_tcxo>
-lib_deps =
- ${nrf52840_base.lib_deps}
-debug_tool = jlink
-
-; NRF52 ProMicro w/ E-Ink display
-[env:nrf52_promicro_diy-inkhud]
-board_level = extra
-extends = nrf52840_base, inkhud
-board = promicro-nrf52840
-build_flags =
- ${nrf52840_base.build_flags}
- ${inkhud.build_flags}
- -I variants/diy/nrf52_promicro_diy_tcxo
- -D NRF52_PROMICRO_DIY
-build_src_filter =
- ${nrf52_base.build_src_filter}
- ${inkhud.build_src_filter}
- +<../variants/diy/nrf52_promicro_diy_tcxo>
-lib_deps =
- ${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
- ${nrf52840_base.lib_deps}
-extra_scripts =
- ${env.extra_scripts}
- variants/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py ; Add to PIO's Project Tasks pane: preset builds for common displays
-
-; Seeed Xiao BLE: https://www.digikey.com/en/products/detail/seeed-technology-co-ltd/102010448/16652893
-[env:xiao_ble]
-extends = env:seeed_xiao_nrf52840_kit
-board_level = extra
-build_flags = ${env:seeed_xiao_nrf52840_kit.build_flags} -D PRIVATE_HW -DXIAO_BLE_LEGACY_PINOUT -DEBYTE_E22 -DEBYTE_E22_900M30S
-build_unflags = -DGPS_L76K
-
-; Seeed XIAO nRF52840 + EBYTE E22-900M30S - Pinout matching Wio-SX1262 (SKU 113010003)
-[env:seeed_xiao_nrf52840_e22_900m30s]
-extends = env:seeed_xiao_nrf52840_kit
-board_level = extra
-build_flags = ${env:seeed_xiao_nrf52840_kit.build_flags} -D PRIVATE_HW -DEBYTE_E22 -DEBYTE_E22_900M30S
-build_unflags = -DGPS_L76K
-
-; Seeed XIAO nRF52840 + EBYTE E22-900M33S - Pinout matching Wio-SX1262 (SKU 113010003)
-[env:seeed_xiao_nrf52840_e22_900m33s]
-extends = env:seeed_xiao_nrf52840_kit
-board_level = extra
-build_flags = ${env:seeed_xiao_nrf52840_kit.build_flags} -D PRIVATE_HW -DEBYTE_E22 -DEBYTE_E22_900M33S
-build_unflags = -DGPS_L76K
-
-; Seeed XIAO nRF52840 + XIAO Wio SX1262 DIY
-[env:seeed-xiao-nrf52840-wio-sx1262]
-board = xiao_ble_sense
-extends = nrf52840_base
-board_level = extra
-build_flags = ${nrf52840_base.build_flags} -Ivariants/diy/seeed-xiao-nrf52840-wio-sx1262 -D PRIVATE_HW
- -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52
-board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/diy/seeed-xiao-nrf52840-wio-sx1262>
-lib_deps =
- ${nrf52840_base.lib_deps}
-debug_tool = jlink
diff --git a/variants/tlora_c6/platformio.ini b/variants/esp32c6/tlora_c6/platformio.ini
similarity index 85%
rename from variants/tlora_c6/platformio.ini
rename to variants/esp32c6/tlora_c6/platformio.ini
index 2da10138a..a06306add 100644
--- a/variants/tlora_c6/platformio.ini
+++ b/variants/esp32c6/tlora_c6/platformio.ini
@@ -4,6 +4,6 @@ board = esp32-c6-devkitm-1
build_flags =
${esp32c6_base.build_flags}
-D TLORA_C6
- -I variants/tlora_c6
+ -I variants/esp32c6/tlora_c6
-DARDUINO_USB_CDC_ON_BOOT=1
-DARDUINO_USB_MODE=1
diff --git a/variants/tlora_c6/variant.h b/variants/esp32c6/tlora_c6/variant.h
similarity index 100%
rename from variants/tlora_c6/variant.h
rename to variants/esp32c6/tlora_c6/variant.h
diff --git a/variants/mesh-tab/pins_arduino.h b/variants/esp32s3/mesh-tab/pins_arduino.h
similarity index 100%
rename from variants/mesh-tab/pins_arduino.h
rename to variants/esp32s3/mesh-tab/pins_arduino.h
diff --git a/variants/mesh-tab/platformio.ini b/variants/esp32s3/mesh-tab/platformio.ini
similarity index 99%
rename from variants/mesh-tab/platformio.ini
rename to variants/esp32s3/mesh-tab/platformio.ini
index 52f9fc13c..e21bc38e1 100644
--- a/variants/mesh-tab/platformio.ini
+++ b/variants/esp32s3/mesh-tab/platformio.ini
@@ -45,7 +45,7 @@ build_flags = ${esp32s3_base.build_flags}
-D LGFX_TOUCH_INT=41
-D VIEW_320x240
-D USE_PACKET_API
- -I variants/mesh-tab
+ -I variants/esp32s3/mesh-tab
build_src_filter = ${esp32_base.build_src_filter}
lib_deps =
${esp32_base.lib_deps}
diff --git a/variants/mesh-tab/variant.h b/variants/esp32s3/mesh-tab/variant.h
similarity index 100%
rename from variants/mesh-tab/variant.h
rename to variants/esp32s3/mesh-tab/variant.h
diff --git a/variants/portduino-buildroot/platformio.ini b/variants/native/portduino-buildroot/platformio.ini
similarity index 75%
rename from variants/portduino-buildroot/platformio.ini
rename to variants/native/portduino-buildroot/platformio.ini
index 3fbd26910..d1bd39e10 100644
--- a/variants/portduino-buildroot/platformio.ini
+++ b/variants/native/portduino-buildroot/platformio.ini
@@ -2,7 +2,7 @@
extends = portduino_base
; Optional libraries should be appended to `PLATFORMIO_BUILD_FLAGS`
; environment variable in the buildroot environment.
-build_flags = ${portduino_base.build_flags} -O0 -I variants/portduino-buildroot
+build_flags = ${portduino_base.build_flags} -O0 -I variants/native/portduino-buildroot
board = buildroot
lib_deps = ${portduino_base.lib_deps}
build_src_filter = ${portduino_base.build_src_filter}
\ No newline at end of file
diff --git a/variants/portduino-buildroot/variant.h b/variants/native/portduino-buildroot/variant.h
similarity index 100%
rename from variants/portduino-buildroot/variant.h
rename to variants/native/portduino-buildroot/variant.h
diff --git a/variants/portduino/platformio.ini b/variants/native/portduino/platformio.ini
similarity index 97%
rename from variants/portduino/platformio.ini
rename to variants/native/portduino/platformio.ini
index 5293b12b9..732b2a1d4 100644
--- a/variants/portduino/platformio.ini
+++ b/variants/native/portduino/platformio.ini
@@ -1,6 +1,6 @@
[native_base]
extends = portduino_base
-build_flags = ${portduino_base.build_flags} -I variants/portduino
+build_flags = ${portduino_base.build_flags} -I variants/native/portduino
-D ARCH_PORTDUINO
-I /usr/include
board = cross_platform
diff --git a/variants/portduino/variant.h b/variants/native/portduino/variant.h
similarity index 100%
rename from variants/portduino/variant.h
rename to variants/native/portduino/variant.h
diff --git a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini b/variants/nrf52840/Dongle_nRF52840-pca10059-v1/platformio.ini
similarity index 67%
rename from variants/Dongle_nRF52840-pca10059-v1/platformio.ini
rename to variants/nrf52840/Dongle_nRF52840-pca10059-v1/platformio.ini
index ad944779d..83044c206 100644
--- a/variants/Dongle_nRF52840-pca10059-v1/platformio.ini
+++ b/variants/nrf52840/Dongle_nRF52840-pca10059-v1/platformio.ini
@@ -2,11 +2,13 @@
board_level = extra
extends = nrf52840_base
board = nordic_pca10059
-build_flags = ${nrf52840_base.build_flags} -Ivariants/Dongle_nRF52840-pca10059-v1 -D NORDIC_PCA10059
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/Dongle_nRF52840-pca10059-v1
+ -D NORDIC_PCA10059
-DEINK_DISPLAY_MODEL=GxEPD2_420_M01
-DEINK_WIDTH=300
-DEINK_HEIGHT=400
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/Dongle_nRF52840-pca10059-v1>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/Dongle_nRF52840-pca10059-v1>
lib_deps =
${nrf52840_base.lib_deps}
zinggjm/GxEPD2@^1.6.2
diff --git a/variants/Dongle_nRF52840-pca10059-v1/variant.cpp b/variants/nrf52840/Dongle_nRF52840-pca10059-v1/variant.cpp
similarity index 100%
rename from variants/Dongle_nRF52840-pca10059-v1/variant.cpp
rename to variants/nrf52840/Dongle_nRF52840-pca10059-v1/variant.cpp
diff --git a/variants/Dongle_nRF52840-pca10059-v1/variant.h b/variants/nrf52840/Dongle_nRF52840-pca10059-v1/variant.h
similarity index 100%
rename from variants/Dongle_nRF52840-pca10059-v1/variant.h
rename to variants/nrf52840/Dongle_nRF52840-pca10059-v1/variant.h
diff --git a/variants/ELECROW-ThinkNode-M1/nicheGraphics.h b/variants/nrf52840/ELECROW-ThinkNode-M1/nicheGraphics.h
similarity index 100%
rename from variants/ELECROW-ThinkNode-M1/nicheGraphics.h
rename to variants/nrf52840/ELECROW-ThinkNode-M1/nicheGraphics.h
diff --git a/variants/ELECROW-ThinkNode-M1/platformio.ini b/variants/nrf52840/ELECROW-ThinkNode-M1/platformio.ini
similarity index 88%
rename from variants/ELECROW-ThinkNode-M1/platformio.ini
rename to variants/nrf52840/ELECROW-ThinkNode-M1/platformio.ini
index 2e9a20dfe..0578bcfe8 100644
--- a/variants/ELECROW-ThinkNode-M1/platformio.ini
+++ b/variants/nrf52840/ELECROW-ThinkNode-M1/platformio.ini
@@ -6,7 +6,8 @@ board_check = true
debug_tool = jlink
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
-build_flags = ${nrf52840_base.build_flags} -Ivariants/ELECROW-ThinkNode-M1
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/ELECROW-ThinkNode-M1
-DELECROW_ThinkNode_M1
-DGPS_POWER_TOGGLE
-DUSE_EINK
@@ -20,7 +21,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/ELECROW-ThinkNode-M1
; -DEINK_LIMIT_GHOSTING_PX=2000 ; (Optional) How much image ghosting is tolerated
-DEINK_BACKGROUND_USES_FAST ; (Optional) Use FAST refresh for both BACKGROUND and RESPONSIVE, until a limit is reached.
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/ELECROW-ThinkNode-M1>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/ELECROW-ThinkNode-M1>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/meshtastic/GxEPD2/archive/33db3fa8ee6fc47d160bdb44f8f127c9a9203a10.zip
@@ -36,11 +37,12 @@ debug_tool = jlink
build_flags =
${nrf52840_base.build_flags}
${inkhud.build_flags}
- -I variants/ELECROW-ThinkNode-M1
+ -I variants/nrf52840/ELECROW-ThinkNode-M1
-D ELECROW_ThinkNode_M1
build_src_filter =
${nrf52_base.build_src_filter}
${inkhud.build_src_filter}
+ +<../variants/nrf52840/ELECROW-ThinkNode-M1>
lib_deps =
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
${nrf52840_base.lib_deps}
diff --git a/variants/ELECROW-ThinkNode-M1/variant.cpp b/variants/nrf52840/ELECROW-ThinkNode-M1/variant.cpp
similarity index 100%
rename from variants/ELECROW-ThinkNode-M1/variant.cpp
rename to variants/nrf52840/ELECROW-ThinkNode-M1/variant.cpp
diff --git a/variants/ELECROW-ThinkNode-M1/variant.h b/variants/nrf52840/ELECROW-ThinkNode-M1/variant.h
similarity index 100%
rename from variants/ELECROW-ThinkNode-M1/variant.h
rename to variants/nrf52840/ELECROW-ThinkNode-M1/variant.h
diff --git a/variants/ME25LS01-4Y10TD/platformio.ini b/variants/nrf52840/ME25LS01-4Y10TD/platformio.ini
similarity index 76%
rename from variants/ME25LS01-4Y10TD/platformio.ini
rename to variants/nrf52840/ME25LS01-4Y10TD/platformio.ini
index b452f0ad8..89a45694c 100644
--- a/variants/ME25LS01-4Y10TD/platformio.ini
+++ b/variants/nrf52840/ME25LS01-4Y10TD/platformio.ini
@@ -3,10 +3,14 @@ extends = nrf52840_base
board = me25ls01-4y10td
board_level = extra
; platform = https://github.com/maxgerhardt/platform-nordicnrf52#cac6fcf943a41accd2aeb4f3659ae297a73f422e
-build_flags = ${nrf52840_base.build_flags} -Ivariants/ME25LS01-4Y10TD -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52 -DME25LS01_4Y10TD
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/ME25LS01-4Y10TD
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
+ -DME25LS01_4Y10TD
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/ME25LS01-4Y10TD>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/ME25LS01-4Y10TD>
lib_deps =
${nrf52840_base.lib_deps}
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
diff --git a/variants/ME25LS01-4Y10TD/rfswitch.h b/variants/nrf52840/ME25LS01-4Y10TD/rfswitch.h
similarity index 100%
rename from variants/ME25LS01-4Y10TD/rfswitch.h
rename to variants/nrf52840/ME25LS01-4Y10TD/rfswitch.h
diff --git a/variants/ME25LS01-4Y10TD/variant.cpp b/variants/nrf52840/ME25LS01-4Y10TD/variant.cpp
similarity index 100%
rename from variants/ME25LS01-4Y10TD/variant.cpp
rename to variants/nrf52840/ME25LS01-4Y10TD/variant.cpp
diff --git a/variants/ME25LS01-4Y10TD/variant.h b/variants/nrf52840/ME25LS01-4Y10TD/variant.h
similarity index 100%
rename from variants/ME25LS01-4Y10TD/variant.h
rename to variants/nrf52840/ME25LS01-4Y10TD/variant.h
diff --git a/variants/ME25LS01-4Y10TD_e-ink/platformio.ini b/variants/nrf52840/ME25LS01-4Y10TD_e-ink/platformio.ini
similarity index 78%
rename from variants/ME25LS01-4Y10TD_e-ink/platformio.ini
rename to variants/nrf52840/ME25LS01-4Y10TD_e-ink/platformio.ini
index f9788a521..ad5867bd5 100644
--- a/variants/ME25LS01-4Y10TD_e-ink/platformio.ini
+++ b/variants/nrf52840/ME25LS01-4Y10TD_e-ink/platformio.ini
@@ -3,13 +3,17 @@ extends = nrf52840_base
board = me25ls01-4y10td
board_level = extra
; platform = https://github.com/maxgerhardt/platform-nordicnrf52#cac6fcf943a41accd2aeb4f3659ae297a73f422e
-build_flags = ${nrf52840_base.build_flags} -Ivariants/ME25LS01-4Y10TD_e-ink -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52 -DME25LS01_4Y10TD
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/ME25LS01-4Y10TD_e-ink
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
+ -DME25LS01_4Y10TD
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DEINK_DISPLAY_MODEL=GxEPD2_420_GDEY042T81
-DEINK_WIDTH=400
-DEINK_HEIGHT=300
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/ME25LS01-4Y10TD_e-ink>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/ME25LS01-4Y10TD_e-ink>
lib_deps =
${nrf52840_base.lib_deps}
zinggjm/GxEPD2@^1.6.2
diff --git a/variants/ME25LS01-4Y10TD_e-ink/rfswitch.h b/variants/nrf52840/ME25LS01-4Y10TD_e-ink/rfswitch.h
similarity index 100%
rename from variants/ME25LS01-4Y10TD_e-ink/rfswitch.h
rename to variants/nrf52840/ME25LS01-4Y10TD_e-ink/rfswitch.h
diff --git a/variants/ME25LS01-4Y10TD_e-ink/variant.cpp b/variants/nrf52840/ME25LS01-4Y10TD_e-ink/variant.cpp
similarity index 100%
rename from variants/ME25LS01-4Y10TD_e-ink/variant.cpp
rename to variants/nrf52840/ME25LS01-4Y10TD_e-ink/variant.cpp
diff --git a/variants/ME25LS01-4Y10TD_e-ink/variant.h b/variants/nrf52840/ME25LS01-4Y10TD_e-ink/variant.h
similarity index 100%
rename from variants/ME25LS01-4Y10TD_e-ink/variant.h
rename to variants/nrf52840/ME25LS01-4Y10TD_e-ink/variant.h
diff --git a/variants/MS24SF1/platformio.ini b/variants/nrf52840/MS24SF1/platformio.ini
similarity index 79%
rename from variants/MS24SF1/platformio.ini
rename to variants/nrf52840/MS24SF1/platformio.ini
index 10e8d2c95..f162cbd60 100644
--- a/variants/MS24SF1/platformio.ini
+++ b/variants/nrf52840/MS24SF1/platformio.ini
@@ -3,10 +3,13 @@ extends = nrf52840_base
board = ms24sf1
board_level = extra
; platform = https://github.com/maxgerhardt/platform-nordicnrf52#cac6fcf943a41accd2aeb4f3659ae297a73f422e
-build_flags = ${nrf52840_base.build_flags} -Ivariants/MS24SF1 -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/MS24SF1
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MS24SF1>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/MS24SF1>
lib_deps =
${nrf52840_base.lib_deps}
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
diff --git a/variants/MS24SF1/variant.cpp b/variants/nrf52840/MS24SF1/variant.cpp
similarity index 100%
rename from variants/MS24SF1/variant.cpp
rename to variants/nrf52840/MS24SF1/variant.cpp
diff --git a/variants/MS24SF1/variant.h b/variants/nrf52840/MS24SF1/variant.h
similarity index 100%
rename from variants/MS24SF1/variant.h
rename to variants/nrf52840/MS24SF1/variant.h
diff --git a/variants/MakePython_nRF52840_eink/platformio.ini b/variants/nrf52840/MakePython_nRF52840_eink/platformio.ini
similarity index 77%
rename from variants/MakePython_nRF52840_eink/platformio.ini
rename to variants/nrf52840/MakePython_nRF52840_eink/platformio.ini
index ef97172e9..50e5495f0 100644
--- a/variants/MakePython_nRF52840_eink/platformio.ini
+++ b/variants/nrf52840/MakePython_nRF52840_eink/platformio.ini
@@ -2,12 +2,14 @@
board_level = extra
extends = nrf52840_base
board = nordic_pca10059
-build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_eink -D PRIVATE_HW
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/MakePython_nRF52840_eink
+ -D PRIVATE_HW
-D PIN_EINK_EN
-DEINK_DISPLAY_MODEL=GxEPD2_290_T5D
-DEINK_WIDTH=296
-DEINK_HEIGHT=128
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_eink>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/MakePython_nRF52840_eink>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/meshtastic/ESP32_Codec2/archive/633326c78ac251c059ab3a8c430fcdf25b41672f.zip
diff --git a/variants/MakePython_nRF52840_eink/variant.cpp b/variants/nrf52840/MakePython_nRF52840_eink/variant.cpp
similarity index 100%
rename from variants/MakePython_nRF52840_eink/variant.cpp
rename to variants/nrf52840/MakePython_nRF52840_eink/variant.cpp
diff --git a/variants/MakePython_nRF52840_eink/variant.h b/variants/nrf52840/MakePython_nRF52840_eink/variant.h
similarity index 100%
rename from variants/MakePython_nRF52840_eink/variant.h
rename to variants/nrf52840/MakePython_nRF52840_eink/variant.h
diff --git a/variants/MakePython_nRF52840_oled/platformio.ini b/variants/nrf52840/MakePython_nRF52840_oled/platformio.ini
similarity index 69%
rename from variants/MakePython_nRF52840_oled/platformio.ini
rename to variants/nrf52840/MakePython_nRF52840_oled/platformio.ini
index 57b9ecb79..c7418e53c 100644
--- a/variants/MakePython_nRF52840_oled/platformio.ini
+++ b/variants/nrf52840/MakePython_nRF52840_oled/platformio.ini
@@ -2,8 +2,10 @@
board_level = extra
extends = nrf52840_base
board = nordic_pca10059
-build_flags = ${nrf52840_base.build_flags} -Ivariants/MakePython_nRF52840_oled -D PRIVATE_HW
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/MakePython_nRF52840_oled>
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/MakePython_nRF52840_oled
+ -D PRIVATE_HW
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/MakePython_nRF52840_oled>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/meshtastic/ESP32_Codec2/archive/633326c78ac251c059ab3a8c430fcdf25b41672f.zip
diff --git a/variants/MakePython_nRF52840_oled/variant.cpp b/variants/nrf52840/MakePython_nRF52840_oled/variant.cpp
similarity index 100%
rename from variants/MakePython_nRF52840_oled/variant.cpp
rename to variants/nrf52840/MakePython_nRF52840_oled/variant.cpp
diff --git a/variants/MakePython_nRF52840_oled/variant.h b/variants/nrf52840/MakePython_nRF52840_oled/variant.h
similarity index 100%
rename from variants/MakePython_nRF52840_oled/variant.h
rename to variants/nrf52840/MakePython_nRF52840_oled/variant.h
diff --git a/variants/TWC_mesh_v4/platformio.ini b/variants/nrf52840/TWC_mesh_v4/platformio.ini
similarity index 59%
rename from variants/TWC_mesh_v4/platformio.ini
rename to variants/nrf52840/TWC_mesh_v4/platformio.ini
index 2eb58bf9f..77aeee26e 100644
--- a/variants/TWC_mesh_v4/platformio.ini
+++ b/variants/nrf52840/TWC_mesh_v4/platformio.ini
@@ -2,8 +2,10 @@
extends = nrf52840_base
board = nordic_pca10059
board_level = extra
-build_flags = ${nrf52840_base.build_flags} -I variants/TWC_mesh_v4 -D TWC_mesh_v4 -L".pio\libdeps\TWC_mesh_v4\bsec2\src\cortex-m4\fpv4-sp-d16-hard"
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/TWC_mesh_v4>
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/TWC_mesh_v4
+ -D TWC_mesh_v4
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/TWC_mesh_v4>
lib_deps =
${nrf52840_base.lib_deps}
zinggjm/GxEPD2@^1.6.2
diff --git a/variants/TWC_mesh_v4/variant.cpp b/variants/nrf52840/TWC_mesh_v4/variant.cpp
similarity index 100%
rename from variants/TWC_mesh_v4/variant.cpp
rename to variants/nrf52840/TWC_mesh_v4/variant.cpp
diff --git a/variants/TWC_mesh_v4/variant.h b/variants/nrf52840/TWC_mesh_v4/variant.h
similarity index 100%
rename from variants/TWC_mesh_v4/variant.h
rename to variants/nrf52840/TWC_mesh_v4/variant.h
diff --git a/variants/canaryone/platformio.ini b/variants/nrf52840/canaryone/platformio.ini
similarity index 78%
rename from variants/canaryone/platformio.ini
rename to variants/nrf52840/canaryone/platformio.ini
index ad11305db..251937e9c 100644
--- a/variants/canaryone/platformio.ini
+++ b/variants/nrf52840/canaryone/platformio.ini
@@ -5,8 +5,10 @@ board = canaryone
debug_tool = jlink
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
-build_flags = ${nrf52840_base.build_flags} -Ivariants/canaryone
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/canaryone>
+build_flags =
+ ${nrf52840_base.build_flags}
+ -I variants/nrf52840/canaryone
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/canaryone>
lib_deps =
${nrf52840_base.lib_deps}
lewisxhe/PCF8563_Library@^1.0.1
diff --git a/variants/canaryone/variant.cpp b/variants/nrf52840/canaryone/variant.cpp
similarity index 100%
rename from variants/canaryone/variant.cpp
rename to variants/nrf52840/canaryone/variant.cpp
diff --git a/variants/canaryone/variant.h b/variants/nrf52840/canaryone/variant.h
similarity index 100%
rename from variants/canaryone/variant.h
rename to variants/nrf52840/canaryone/variant.h
diff --git a/variants/diy/nrf52_promicro_diy_tcxo/E80_RSSI_per_case.webp b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/E80_RSSI_per_case.webp
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_tcxo/E80_RSSI_per_case.webp
rename to variants/nrf52840/diy/nrf52_promicro_diy_tcxo/E80_RSSI_per_case.webp
diff --git a/variants/diy/nrf52_promicro_diy_tcxo/Schematic_Pro-Micro_Pinouts 2024-12-14.pdf b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/Schematic_Pro-Micro_Pinouts 2024-12-14.pdf
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_tcxo/Schematic_Pro-Micro_Pinouts 2024-12-14.pdf
rename to variants/nrf52840/diy/nrf52_promicro_diy_tcxo/Schematic_Pro-Micro_Pinouts 2024-12-14.pdf
diff --git a/variants/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py
rename to variants/nrf52840/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py
diff --git a/variants/diy/nrf52_promicro_diy_tcxo/nicheGraphics.h b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/nicheGraphics.h
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_tcxo/nicheGraphics.h
rename to variants/nrf52840/diy/nrf52_promicro_diy_tcxo/nicheGraphics.h
diff --git a/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini
new file mode 100644
index 000000000..61a6eda07
--- /dev/null
+++ b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/platformio.ini
@@ -0,0 +1,32 @@
+; Promicro + E22(0)-xxxM / HT-RA62 modules board variant - DIY - with TCXO
+[env:nrf52_promicro_diy_tcxo]
+extends = nrf52840_base
+board = promicro-nrf52840
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/diy/nrf52_promicro_diy_tcxo
+ -D NRF52_PROMICRO_DIY
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/diy/nrf52_promicro_diy_tcxo>
+lib_deps =
+ ${nrf52840_base.lib_deps}
+debug_tool = jlink
+
+; NRF52 ProMicro w/ E-Ink display
+[env:nrf52_promicro_diy-inkhud]
+board_level = extra
+extends = nrf52840_base, inkhud
+board = promicro-nrf52840
+build_flags =
+ ${nrf52840_base.build_flags}
+ ${inkhud.build_flags}
+ -I variants/nrf52840/diy/nrf52_promicro_diy_tcxo
+ -D NRF52_PROMICRO_DIY
+build_src_filter =
+ ${nrf52_base.build_src_filter}
+ ${inkhud.build_src_filter}
+ +<../variants/nrf52840/diy/nrf52_promicro_diy_tcxo>
+lib_deps =
+ ${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
+ ${nrf52840_base.lib_deps}
+extra_scripts =
+ ${env.extra_scripts}
+ variants/nrf52840/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py ; Add to PIO's Project Tasks pane: preset builds for common displays
diff --git a/variants/diy/nrf52_promicro_diy_tcxo/readme.md b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/readme.md
similarity index 99%
rename from variants/diy/nrf52_promicro_diy_tcxo/readme.md
rename to variants/nrf52840/diy/nrf52_promicro_diy_tcxo/readme.md
index 585ac36de..5a78103ee 100644
--- a/variants/diy/nrf52_promicro_diy_tcxo/readme.md
+++ b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/readme.md
@@ -1,3 +1,5 @@
+
+
# Notes
## General
diff --git a/variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/rfswitch.h
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_tcxo/rfswitch.h
rename to variants/nrf52840/diy/nrf52_promicro_diy_tcxo/rfswitch.h
diff --git a/variants/diy/nrf52_promicro_diy_tcxo/variant.cpp b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/variant.cpp
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_tcxo/variant.cpp
rename to variants/nrf52840/diy/nrf52_promicro_diy_tcxo/variant.cpp
diff --git a/variants/diy/nrf52_promicro_diy_tcxo/variant.h b/variants/nrf52840/diy/nrf52_promicro_diy_tcxo/variant.h
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_tcxo/variant.h
rename to variants/nrf52840/diy/nrf52_promicro_diy_tcxo/variant.h
diff --git a/variants/nrf52840/diy/nrf52_promicro_diy_xtal/platformio.ini b/variants/nrf52840/diy/nrf52_promicro_diy_xtal/platformio.ini
new file mode 100644
index 000000000..278f578c5
--- /dev/null
+++ b/variants/nrf52840/diy/nrf52_promicro_diy_xtal/platformio.ini
@@ -0,0 +1,12 @@
+; Promicro + E22(0)-xxxMM / RA-01SH modules board variant - DIY - without TCXO
+[env:nrf52_promicro_diy_xtal]
+extends = nrf52840_base
+board = promicro-nrf52840
+board_level = extra
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/diy/nrf52_promicro_diy_xtal
+ -D NRF52_PROMICRO_DIY
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/diy/nrf52_promicro_diy_xtal>
+lib_deps =
+ ${nrf52840_base.lib_deps}
+debug_tool = jlink
diff --git a/variants/diy/nrf52_promicro_diy_xtal/variant.cpp b/variants/nrf52840/diy/nrf52_promicro_diy_xtal/variant.cpp
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_xtal/variant.cpp
rename to variants/nrf52840/diy/nrf52_promicro_diy_xtal/variant.cpp
diff --git a/variants/diy/nrf52_promicro_diy_xtal/variant.h b/variants/nrf52840/diy/nrf52_promicro_diy_xtal/variant.h
similarity index 100%
rename from variants/diy/nrf52_promicro_diy_xtal/variant.h
rename to variants/nrf52840/diy/nrf52_promicro_diy_xtal/variant.h
diff --git a/variants/diy/seeed-xiao-nrf52840-wio-sx1262/README.md b/variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/README.md
similarity index 100%
rename from variants/diy/seeed-xiao-nrf52840-wio-sx1262/README.md
rename to variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/README.md
diff --git a/variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/platformio.ini b/variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/platformio.ini
new file mode 100644
index 000000000..2df31d23c
--- /dev/null
+++ b/variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/platformio.ini
@@ -0,0 +1,15 @@
+; Seeed XIAO nRF52840 + XIAO Wio SX1262 DIY
+[env:seeed-xiao-nrf52840-wio-sx1262]
+board = xiao_ble_sense
+extends = nrf52840_base
+board_level = extra
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262
+ -D PRIVATE_HW
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
+board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262>
+lib_deps =
+ ${nrf52840_base.lib_deps}
+debug_tool = jlink
diff --git a/variants/diy/seeed-xiao-nrf52840-wio-sx1262/variant.cpp b/variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/variant.cpp
similarity index 100%
rename from variants/diy/seeed-xiao-nrf52840-wio-sx1262/variant.cpp
rename to variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/variant.cpp
diff --git a/variants/diy/seeed-xiao-nrf52840-wio-sx1262/variant.h b/variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/variant.h
similarity index 100%
rename from variants/diy/seeed-xiao-nrf52840-wio-sx1262/variant.h
rename to variants/nrf52840/diy/seeed-xiao-nrf52840-wio-sx1262/variant.h
diff --git a/variants/nrf52840/diy/seeed_xiao_nrf52840_e22/platformio.ini b/variants/nrf52840/diy/seeed_xiao_nrf52840_e22/platformio.ini
new file mode 100644
index 000000000..a5d0aaf8f
--- /dev/null
+++ b/variants/nrf52840/diy/seeed_xiao_nrf52840_e22/platformio.ini
@@ -0,0 +1,19 @@
+; Seeed XIAO nRF52840 + EBYTE E22-900M30S - Pinout matching Wio-SX1262 (SKU 113010003)
+[env:seeed_xiao_nrf52840_e22_900m30s]
+extends = env:seeed_xiao_nrf52840_kit
+board_level = extra
+build_flags = ${env:seeed_xiao_nrf52840_kit.build_flags}
+ -D PRIVATE_HW
+ -DEBYTE_E22
+ -DEBYTE_E22_900M30S
+build_unflags = -DGPS_L76K
+
+; Seeed XIAO nRF52840 + EBYTE E22-900M33S - Pinout matching Wio-SX1262 (SKU 113010003)
+[env:seeed_xiao_nrf52840_e22_900m33s]
+extends = env:seeed_xiao_nrf52840_kit
+board_level = extra
+build_flags = ${env:seeed_xiao_nrf52840_kit.build_flags}
+ -D PRIVATE_HW
+ -DEBYTE_E22
+ -DEBYTE_E22_900M33S
+build_unflags = -DGPS_L76K
diff --git a/variants/diy/xiao_ble/README.md b/variants/nrf52840/diy/xiao_ble/README.md
similarity index 100%
rename from variants/diy/xiao_ble/README.md
rename to variants/nrf52840/diy/xiao_ble/README.md
diff --git a/variants/nrf52840/diy/xiao_ble/platformio.ini b/variants/nrf52840/diy/xiao_ble/platformio.ini
new file mode 100644
index 000000000..6c764ea78
--- /dev/null
+++ b/variants/nrf52840/diy/xiao_ble/platformio.ini
@@ -0,0 +1,10 @@
+; Seeed Xiao BLE: https://www.digikey.com/en/products/detail/seeed-technology-co-ltd/102010448/16652893
+[env:xiao_ble]
+extends = env:seeed_xiao_nrf52840_kit
+board_level = extra
+build_flags = ${env:seeed_xiao_nrf52840_kit.build_flags}
+ -D PRIVATE_HW
+ -DXIAO_BLE_LEGACY_PINOUT
+ -DEBYTE_E22
+ -DEBYTE_E22_900M30S
+build_unflags = -DGPS_L76K
diff --git a/variants/feather_diy/platformio.ini b/variants/nrf52840/feather_diy/platformio.ini
similarity index 79%
rename from variants/feather_diy/platformio.ini
rename to variants/nrf52840/feather_diy/platformio.ini
index 84c582ab0..a17e418a2 100644
--- a/variants/feather_diy/platformio.ini
+++ b/variants/nrf52840/feather_diy/platformio.ini
@@ -2,8 +2,10 @@
[env:feather_diy]
extends = nrf52840_base
board = adafruit_feather_nrf52840
-build_flags = ${nrf52840_base.build_flags} -Ivariants/feather_diy -Dfeather_diy
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/feather_diy>
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/feather_diy
+ -Dfeather_diy
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/feather_diy>
lib_deps =
${nrf52840_base.lib_deps}
debug_tool = jlink
diff --git a/variants/feather_diy/variant.cpp b/variants/nrf52840/feather_diy/variant.cpp
similarity index 100%
rename from variants/feather_diy/variant.cpp
rename to variants/nrf52840/feather_diy/variant.cpp
diff --git a/variants/feather_diy/variant.h b/variants/nrf52840/feather_diy/variant.h
similarity index 100%
rename from variants/feather_diy/variant.h
rename to variants/nrf52840/feather_diy/variant.h
diff --git a/variants/gat562_mesh_trial_tracker/platformio.ini b/variants/nrf52840/gat562_mesh_trial_tracker/platformio.ini
similarity index 75%
rename from variants/gat562_mesh_trial_tracker/platformio.ini
rename to variants/nrf52840/gat562_mesh_trial_tracker/platformio.ini
index e67f3ec8d..72ac6320d 100644
--- a/variants/gat562_mesh_trial_tracker/platformio.ini
+++ b/variants/nrf52840/gat562_mesh_trial_tracker/platformio.ini
@@ -3,11 +3,13 @@
extends = nrf52840_base
board = gat562_mesh_trial_tracker
board_check = true
-build_flags = ${nrf52840_base.build_flags} -Ivariants/gat562_mesh_trial_tracker -D GAT562_MESH_TRIAL_TRACKER
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/gat562_mesh_trial_tracker
+ -D GAT562_MESH_TRIAL_TRACKER
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DRADIOLIB_EXCLUDE_SX128X=1
-DRADIOLIB_EXCLUDE_SX127X=1
-DRADIOLIB_EXCLUDE_LR11X0=1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/gat562_mesh_trial_tracker>
-lib_deps =
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/gat562_mesh_trial_tracker>
+lib_deps =
${nrf52840_base.lib_deps}
diff --git a/variants/gat562_mesh_trial_tracker/variant.cpp b/variants/nrf52840/gat562_mesh_trial_tracker/variant.cpp
similarity index 100%
rename from variants/gat562_mesh_trial_tracker/variant.cpp
rename to variants/nrf52840/gat562_mesh_trial_tracker/variant.cpp
diff --git a/variants/gat562_mesh_trial_tracker/variant.h b/variants/nrf52840/gat562_mesh_trial_tracker/variant.h
similarity index 100%
rename from variants/gat562_mesh_trial_tracker/variant.h
rename to variants/nrf52840/gat562_mesh_trial_tracker/variant.h
diff --git a/variants/heltec_mesh_node_t114-inkhud/custom_build_tasks.py b/variants/nrf52840/heltec_mesh_node_t114-inkhud/custom_build_tasks.py
similarity index 100%
rename from variants/heltec_mesh_node_t114-inkhud/custom_build_tasks.py
rename to variants/nrf52840/heltec_mesh_node_t114-inkhud/custom_build_tasks.py
diff --git a/variants/heltec_mesh_node_t114-inkhud/nicheGraphics.h b/variants/nrf52840/heltec_mesh_node_t114-inkhud/nicheGraphics.h
similarity index 100%
rename from variants/heltec_mesh_node_t114-inkhud/nicheGraphics.h
rename to variants/nrf52840/heltec_mesh_node_t114-inkhud/nicheGraphics.h
diff --git a/variants/heltec_mesh_node_t114-inkhud/platformio.ini b/variants/nrf52840/heltec_mesh_node_t114-inkhud/platformio.ini
similarity index 66%
rename from variants/heltec_mesh_node_t114-inkhud/platformio.ini
rename to variants/nrf52840/heltec_mesh_node_t114-inkhud/platformio.ini
index 9a5673040..2641a507d 100644
--- a/variants/heltec_mesh_node_t114-inkhud/platformio.ini
+++ b/variants/nrf52840/heltec_mesh_node_t114-inkhud/platformio.ini
@@ -6,14 +6,15 @@ board_check = true
build_flags =
${nrf52840_base.build_flags}
${inkhud.build_flags}
- -I variants/heltec_mesh_node_t114-inkhud
+ -I variants/nrf52840/heltec_mesh_node_t114-inkhud
build_src_filter =
${nrf52_base.build_src_filter}
${inkhud.build_src_filter}
+ +<../variants/nrf52840/heltec_mesh_node_t114-inkhud>
lib_deps =
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
${nrf52840_base.lib_deps}
lewisxhe/PCF8563_Library@^1.0.1
extra_scripts =
${env.extra_scripts}
- variants/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py ; Add to PIO's Project Tasks pane: preset builds for common displays
\ No newline at end of file
+ variants/nrf52840/diy/nrf52_promicro_diy_tcxo/custom_build_tasks.py ; Add to PIO's Project Tasks pane: preset builds for common displays
diff --git a/variants/heltec_mesh_node_t114-inkhud/variant.cpp b/variants/nrf52840/heltec_mesh_node_t114-inkhud/variant.cpp
similarity index 100%
rename from variants/heltec_mesh_node_t114-inkhud/variant.cpp
rename to variants/nrf52840/heltec_mesh_node_t114-inkhud/variant.cpp
diff --git a/variants/heltec_mesh_node_t114-inkhud/variant.h b/variants/nrf52840/heltec_mesh_node_t114-inkhud/variant.h
similarity index 100%
rename from variants/heltec_mesh_node_t114-inkhud/variant.h
rename to variants/nrf52840/heltec_mesh_node_t114-inkhud/variant.h
diff --git a/variants/heltec_mesh_node_t114/platformio.ini b/variants/nrf52840/heltec_mesh_node_t114/platformio.ini
similarity index 74%
rename from variants/heltec_mesh_node_t114/platformio.ini
rename to variants/nrf52840/heltec_mesh_node_t114/platformio.ini
index 3ba97bd04..ead787bb1 100644
--- a/variants/heltec_mesh_node_t114/platformio.ini
+++ b/variants/nrf52840/heltec_mesh_node_t114/platformio.ini
@@ -5,11 +5,12 @@ board = heltec_mesh_node_t114
debug_tool = jlink
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
-build_flags = ${nrf52840_base.build_flags} -Ivariants/heltec_mesh_node_t114
- -DGPS_POWER_TOGGLE
- -DHELTEC_T114
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/heltec_mesh_node_t114
+ -DGPS_POWER_TOGGLE
+ -DHELTEC_T114
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/heltec_mesh_node_t114>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_node_t114>
lib_deps =
${nrf52840_base.lib_deps}
lewisxhe/PCF8563_Library@^1.0.1
diff --git a/variants/heltec_mesh_node_t114/variant.cpp b/variants/nrf52840/heltec_mesh_node_t114/variant.cpp
similarity index 100%
rename from variants/heltec_mesh_node_t114/variant.cpp
rename to variants/nrf52840/heltec_mesh_node_t114/variant.cpp
diff --git a/variants/heltec_mesh_node_t114/variant.h b/variants/nrf52840/heltec_mesh_node_t114/variant.h
similarity index 100%
rename from variants/heltec_mesh_node_t114/variant.h
rename to variants/nrf52840/heltec_mesh_node_t114/variant.h
diff --git a/variants/heltec_mesh_pocket/nicheGraphics.h b/variants/nrf52840/heltec_mesh_pocket/nicheGraphics.h
similarity index 100%
rename from variants/heltec_mesh_pocket/nicheGraphics.h
rename to variants/nrf52840/heltec_mesh_pocket/nicheGraphics.h
diff --git a/variants/heltec_mesh_pocket/platformio.ini b/variants/nrf52840/heltec_mesh_pocket/platformio.ini
similarity index 89%
rename from variants/heltec_mesh_pocket/platformio.ini
rename to variants/nrf52840/heltec_mesh_pocket/platformio.ini
index 2f3886887..2fb852226 100644
--- a/variants/heltec_mesh_pocket/platformio.ini
+++ b/variants/nrf52840/heltec_mesh_pocket/platformio.ini
@@ -5,7 +5,8 @@ board = heltec_mesh_pocket
debug_tool = jlink
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
-build_flags = ${nrf52840_base.build_flags} -Ivariants/heltec_mesh_pocket
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/heltec_mesh_pocket
-DHELTEC_MESH_POCKET
-DHELTEC_MESH_POCKET_BATTERY_5000
-DUSE_EINK
@@ -21,7 +22,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/heltec_mesh_pocket
-DEINK_HASQUIRK_GHOSTING ; Display model is identified as "prone to ghosting"
-DEINK_HASQUIRK_WEAKFASTREFRESH ; Pixels set with fast-refresh are easy to clear, disrupted by sunlight
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/heltec_mesh_pocket>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket>
lib_deps =
${nrf52840_base.lib_deps}
lewisxhe/PCF8563_Library@^1.0.1
@@ -31,11 +32,11 @@ lib_deps =
[env:heltec-mesh-pocket-5000-inkhud]
extends = nrf52840_base, inkhud
board = heltec_mesh_pocket
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/heltec_mesh_pocket> ${inkhud.build_src_filter}
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket> ${inkhud.build_src_filter}
build_flags =
${inkhud.build_flags}
${nrf52840_base.build_flags}
- -I variants/heltec_mesh_pocket
+ -I variants/nrf52840/heltec_mesh_pocket
-D HELTEC_MESH_POCKET
-D HELTEC_MESH_POCKET_BATTERY_5000
lib_deps =
@@ -50,7 +51,8 @@ board = heltec_mesh_pocket
debug_tool = jlink
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
-build_flags = ${nrf52840_base.build_flags} -Ivariants/heltec_mesh_pocket
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/heltec_mesh_pocket
-DHELTEC_MESH_POCKET
-DHELTEC_MESH_POCKET_BATTERY_10000
-DUSE_EINK
@@ -66,7 +68,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/heltec_mesh_pocket
-DEINK_HASQUIRK_GHOSTING ; Display model is identified as "prone to ghosting"
-DEINK_HASQUIRK_WEAKFASTREFRESH ; Pixels set with fast-refresh are easy to clear, disrupted by sunlight
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/heltec_mesh_pocket>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket>
lib_deps =
${nrf52840_base.lib_deps}
lewisxhe/PCF8563_Library@^1.0.1
@@ -76,11 +78,11 @@ lib_deps =
[env:heltec-mesh-pocket-10000-inkhud]
extends = nrf52840_base, inkhud
board = heltec_mesh_pocket
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/heltec_mesh_pocket> ${inkhud.build_src_filter}
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/heltec_mesh_pocket> ${inkhud.build_src_filter}
build_flags =
${inkhud.build_flags}
${nrf52840_base.build_flags}
- -I variants/heltec_mesh_pocket
+ -I variants/nrf52840/heltec_mesh_pocket
-D HELTEC_MESH_POCKET
-D HELTEC_MESH_POCKET_BATTERY_10000
lib_deps =
diff --git a/variants/heltec_mesh_pocket/variant.cpp b/variants/nrf52840/heltec_mesh_pocket/variant.cpp
similarity index 100%
rename from variants/heltec_mesh_pocket/variant.cpp
rename to variants/nrf52840/heltec_mesh_pocket/variant.cpp
diff --git a/variants/heltec_mesh_pocket/variant.h b/variants/nrf52840/heltec_mesh_pocket/variant.h
similarity index 100%
rename from variants/heltec_mesh_pocket/variant.h
rename to variants/nrf52840/heltec_mesh_pocket/variant.h
diff --git a/variants/meshlink/platformio.ini b/variants/nrf52840/meshlink/platformio.ini
similarity index 94%
rename from variants/meshlink/platformio.ini
rename to variants/nrf52840/meshlink/platformio.ini
index 384858576..8216a704a 100644
--- a/variants/meshlink/platformio.ini
+++ b/variants/nrf52840/meshlink/platformio.ini
@@ -5,7 +5,9 @@
extends = nrf52840_base
board = meshlink
;board_check = true
-build_flags = ${nrf52840_base.build_flags} -I variants/meshlink -D MESHLINK
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/meshlink
+ -D MESHLINK
-D GPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-D EINK_DISPLAY_MODEL=GxEPD2_213_B74
-D EINK_WIDTH=250
@@ -19,7 +21,7 @@ build_flags = ${nrf52840_base.build_flags} -I variants/meshlink -D MESHLINK
-D EINK_HASQUIRK_VICIOUSFASTREFRESH ; Identify that pixels drawn by fast-refresh are harder to clear
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/meshlink>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/meshlink>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/meshtastic/GxEPD2/archive/55f618961db45a23eff0233546430f1e5a80f63a.zip
diff --git a/variants/meshlink/variant.cpp b/variants/nrf52840/meshlink/variant.cpp
similarity index 100%
rename from variants/meshlink/variant.cpp
rename to variants/nrf52840/meshlink/variant.cpp
diff --git a/variants/meshlink/variant.h b/variants/nrf52840/meshlink/variant.h
similarity index 100%
rename from variants/meshlink/variant.h
rename to variants/nrf52840/meshlink/variant.h
diff --git a/variants/meshlink_eink/platformio.ini b/variants/nrf52840/meshlink_eink/platformio.ini
similarity index 93%
rename from variants/meshlink_eink/platformio.ini
rename to variants/nrf52840/meshlink_eink/platformio.ini
index 550b1e2fc..a48a9e695 100644
--- a/variants/meshlink_eink/platformio.ini
+++ b/variants/nrf52840/meshlink_eink/platformio.ini
@@ -5,7 +5,9 @@
extends = nrf52840_base
board = meshlink
;board_check = true
-build_flags = ${nrf52840_base.build_flags} -I variants/meshlink_eink -D MESHLINK
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/meshlink_eink
+ -D MESHLINK
-D GPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-D EINK_DISPLAY_MODEL=GxEPD2_213_B74
-D EINK_WIDTH=250
@@ -19,7 +21,7 @@ build_flags = ${nrf52840_base.build_flags} -I variants/meshlink_eink -D MESHLINK
-D EINK_HASQUIRK_VICIOUSFASTREFRESH ; Identify that pixels drawn by fast-refresh are harder to clear
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/meshlink_eink>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/meshlink_eink>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/meshtastic/GxEPD2/archive/55f618961db45a23eff0233546430f1e5a80f63a.zip
diff --git a/variants/meshlink_eink/variant.cpp b/variants/nrf52840/meshlink_eink/variant.cpp
similarity index 100%
rename from variants/meshlink_eink/variant.cpp
rename to variants/nrf52840/meshlink_eink/variant.cpp
diff --git a/variants/meshlink_eink/variant.h b/variants/nrf52840/meshlink_eink/variant.h
similarity index 100%
rename from variants/meshlink_eink/variant.h
rename to variants/nrf52840/meshlink_eink/variant.h
diff --git a/variants/monteops_hw1/platformio.ini b/variants/nrf52840/monteops_hw1/platformio.ini
similarity index 77%
rename from variants/monteops_hw1/platformio.ini
rename to variants/nrf52840/monteops_hw1/platformio.ini
index 82567f614..5426aee7f 100644
--- a/variants/monteops_hw1/platformio.ini
+++ b/variants/nrf52840/monteops_hw1/platformio.ini
@@ -3,8 +3,10 @@
board_level = extra
extends = nrf52840_base
board = wiscore_rak4631
-build_flags = ${nrf52840_base.build_flags} -Ivariants/monteops_hw1 -D MONTEOPS_HW1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/monteops_hw1> + + +
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/monteops_hw1
+ -D MONTEOPS_HW1
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/monteops_hw1> + + +
lib_deps =
${nrf52840_base.lib_deps}
${networking_base.lib_deps}
diff --git a/variants/monteops_hw1/variant.cpp b/variants/nrf52840/monteops_hw1/variant.cpp
similarity index 100%
rename from variants/monteops_hw1/variant.cpp
rename to variants/nrf52840/monteops_hw1/variant.cpp
diff --git a/variants/monteops_hw1/variant.h b/variants/nrf52840/monteops_hw1/variant.h
similarity index 100%
rename from variants/monteops_hw1/variant.h
rename to variants/nrf52840/monteops_hw1/variant.h
diff --git a/variants/nano-g2-ultra/platformio.ini b/variants/nrf52840/nano-g2-ultra/platformio.ini
similarity index 70%
rename from variants/nano-g2-ultra/platformio.ini
rename to variants/nrf52840/nano-g2-ultra/platformio.ini
index 7da168b47..f697a90dd 100644
--- a/variants/nano-g2-ultra/platformio.ini
+++ b/variants/nrf52840/nano-g2-ultra/platformio.ini
@@ -4,8 +4,10 @@ extends = nrf52840_base
board = nano-g2-ultra
debug_tool = jlink
-build_flags = ${nrf52840_base.build_flags} -Ivariants/nano-g2-ultra -D NANO_G2_ULTRA
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nano-g2-ultra>
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/nano-g2-ultra
+ -D NANO_G2_ULTRA
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/nano-g2-ultra>
lib_deps =
${nrf52840_base.lib_deps}
lewisxhe/PCF8563_Library@^1.0.1
diff --git a/variants/nano-g2-ultra/variant.cpp b/variants/nrf52840/nano-g2-ultra/variant.cpp
similarity index 100%
rename from variants/nano-g2-ultra/variant.cpp
rename to variants/nrf52840/nano-g2-ultra/variant.cpp
diff --git a/variants/nano-g2-ultra/variant.h b/variants/nrf52840/nano-g2-ultra/variant.h
similarity index 100%
rename from variants/nano-g2-ultra/variant.h
rename to variants/nrf52840/nano-g2-ultra/variant.h
diff --git a/variants/rak2560/platformio.ini b/variants/nrf52840/rak2560/platformio.ini
similarity index 87%
rename from variants/rak2560/platformio.ini
rename to variants/nrf52840/rak2560/platformio.ini
index 8a720ce5a..2b73aca03 100644
--- a/variants/rak2560/platformio.ini
+++ b/variants/nrf52840/rak2560/platformio.ini
@@ -3,13 +3,15 @@
extends = nrf52840_base
board = wiscore_rak4631
board_check = true
-build_flags = ${nrf52840_base.build_flags} -Ivariants/rak2560 -D RAK_4631
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/rak2560
+ -D RAK_4631
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DRADIOLIB_EXCLUDE_SX128X=1
-DRADIOLIB_EXCLUDE_SX127X=1
-DRADIOLIB_EXCLUDE_LR11X0=1
-DHAS_RAKPROT=1 ; Define if RAk OneWireSerial is used (disables GPS)
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak2560> + +
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak2560> + +
lib_deps =
${nrf52840_base.lib_deps}
${networking_base.lib_deps}
diff --git a/variants/rak2560/variant.cpp b/variants/nrf52840/rak2560/variant.cpp
similarity index 100%
rename from variants/rak2560/variant.cpp
rename to variants/nrf52840/rak2560/variant.cpp
diff --git a/variants/rak2560/variant.h b/variants/nrf52840/rak2560/variant.h
similarity index 100%
rename from variants/rak2560/variant.h
rename to variants/nrf52840/rak2560/variant.h
diff --git a/variants/rak4631/platformio.ini b/variants/nrf52840/rak4631/platformio.ini
similarity index 94%
rename from variants/rak4631/platformio.ini
rename to variants/nrf52840/rak4631/platformio.ini
index ee134e87a..7b695779c 100644
--- a/variants/rak4631/platformio.ini
+++ b/variants/nrf52840/rak4631/platformio.ini
@@ -3,7 +3,9 @@
extends = nrf52840_base
board = wiscore_rak4631
board_check = true
-build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631 -D RAK_4631
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/rak4631
+ -D RAK_4631
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DEINK_DISPLAY_MODEL=GxEPD2_213_BN
-DEINK_WIDTH=250
@@ -11,7 +13,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631 -D RAK_4631
-DRADIOLIB_EXCLUDE_SX128X=1
-DRADIOLIB_EXCLUDE_SX127X=1
-DRADIOLIB_EXCLUDE_LR11X0=1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631> + + +
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak4631> + + +
lib_deps =
${nrf52840_base.lib_deps}
${networking_base.lib_deps}
diff --git a/variants/rak4631/variant.cpp b/variants/nrf52840/rak4631/variant.cpp
similarity index 100%
rename from variants/rak4631/variant.cpp
rename to variants/nrf52840/rak4631/variant.cpp
diff --git a/variants/rak4631/variant.h b/variants/nrf52840/rak4631/variant.h
similarity index 100%
rename from variants/rak4631/variant.h
rename to variants/nrf52840/rak4631/variant.h
diff --git a/variants/rak4631_epaper/platformio.ini b/variants/nrf52840/rak4631_epaper/platformio.ini
similarity index 86%
rename from variants/rak4631_epaper/platformio.ini
rename to variants/nrf52840/rak4631_epaper/platformio.ini
index 47e4451c7..704520f8d 100644
--- a/variants/rak4631_epaper/platformio.ini
+++ b/variants/nrf52840/rak4631_epaper/platformio.ini
@@ -2,14 +2,16 @@
[env:rak4631_eink]
extends = nrf52840_base
board = wiscore_rak4631
-build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/rak4631_epaper
+ -D RAK_4631
-DEINK_DISPLAY_MODEL=GxEPD2_213_BN
-DEINK_WIDTH=250
-DEINK_HEIGHT=122
-DRADIOLIB_EXCLUDE_SX128X=1
-DRADIOLIB_EXCLUDE_SX127X=1
-DRADIOLIB_EXCLUDE_LR11X0=1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak4631_epaper>
lib_deps =
${nrf52840_base.lib_deps}
zinggjm/GxEPD2@^1.6.2
diff --git a/variants/rak4631_epaper/variant.cpp b/variants/nrf52840/rak4631_epaper/variant.cpp
similarity index 100%
rename from variants/rak4631_epaper/variant.cpp
rename to variants/nrf52840/rak4631_epaper/variant.cpp
diff --git a/variants/rak4631_epaper/variant.h b/variants/nrf52840/rak4631_epaper/variant.h
similarity index 100%
rename from variants/rak4631_epaper/variant.h
rename to variants/nrf52840/rak4631_epaper/variant.h
diff --git a/variants/rak4631_epaper_onrxtx/platformio.ini b/variants/nrf52840/rak4631_epaper_onrxtx/platformio.ini
similarity index 87%
rename from variants/rak4631_epaper_onrxtx/platformio.ini
rename to variants/nrf52840/rak4631_epaper_onrxtx/platformio.ini
index 52a13f2a7..e0156668b 100644
--- a/variants/rak4631_epaper_onrxtx/platformio.ini
+++ b/variants/nrf52840/rak4631_epaper_onrxtx/platformio.ini
@@ -3,7 +3,9 @@
board_level = extra
extends = nrf52840_base
board = wiscore_rak4631
-build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/rak4631_epaper
+ -D RAK_4631
-D PIN_EINK_EN=34
-D EINK_DISPLAY_MODEL=GxEPD2_213_BN
-D EINK_WIDTH=250
@@ -11,7 +13,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_epaper -D RAK_4631
-D RADIOLIB_EXCLUDE_SX128X=1
-D RADIOLIB_EXCLUDE_SX127X=1
-D RADIOLIB_EXCLUDE_LR11X0=1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_epaper_onrxtx>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak4631_epaper_onrxtx>
lib_deps =
${nrf52840_base.lib_deps}
zinggjm/GxEPD2@^1.6.2
diff --git a/variants/rak4631_epaper_onrxtx/variant.cpp b/variants/nrf52840/rak4631_epaper_onrxtx/variant.cpp
similarity index 100%
rename from variants/rak4631_epaper_onrxtx/variant.cpp
rename to variants/nrf52840/rak4631_epaper_onrxtx/variant.cpp
diff --git a/variants/rak4631_epaper_onrxtx/variant.h b/variants/nrf52840/rak4631_epaper_onrxtx/variant.h
similarity index 100%
rename from variants/rak4631_epaper_onrxtx/variant.h
rename to variants/nrf52840/rak4631_epaper_onrxtx/variant.h
diff --git a/variants/rak4631_eth_gw/platformio.ini b/variants/nrf52840/rak4631_eth_gw/platformio.ini
similarity index 95%
rename from variants/rak4631_eth_gw/platformio.ini
rename to variants/nrf52840/rak4631_eth_gw/platformio.ini
index 7e7b0e019..a1c1b4610 100644
--- a/variants/rak4631_eth_gw/platformio.ini
+++ b/variants/nrf52840/rak4631_eth_gw/platformio.ini
@@ -3,7 +3,9 @@
extends = nrf52840_base
board = wiscore_rak4631
board_check = true
-build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_eth_gw -D RAK_4631
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/rak4631_eth_gw
+ -D RAK_4631
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DHAS_UDP_MULTICAST=1
-DEINK_DISPLAY_MODEL=GxEPD2_213_BN
@@ -22,7 +24,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_eth_gw -D RAK_4631
-DMESHTASTIC_EXCLUDE_STOREFORWARD=1
-DMESHTASTIC_EXCLUDE_CANNEDMESSAGES=1
-DMESHTASTIC_EXCLUDE_WAYPOINT=1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_eth_gw> + + +
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak4631_eth_gw> + + +
lib_deps =
${nrf52840_base.lib_deps}
${networking_base.lib_deps}
diff --git a/variants/rak4631_eth_gw/variant.cpp b/variants/nrf52840/rak4631_eth_gw/variant.cpp
similarity index 100%
rename from variants/rak4631_eth_gw/variant.cpp
rename to variants/nrf52840/rak4631_eth_gw/variant.cpp
diff --git a/variants/rak4631_eth_gw/variant.h b/variants/nrf52840/rak4631_eth_gw/variant.h
similarity index 100%
rename from variants/rak4631_eth_gw/variant.h
rename to variants/nrf52840/rak4631_eth_gw/variant.h
diff --git a/variants/rak4631_nomadstar_meteor_pro/platformio.ini b/variants/nrf52840/rak4631_nomadstar_meteor_pro/platformio.ini
similarity index 89%
rename from variants/rak4631_nomadstar_meteor_pro/platformio.ini
rename to variants/nrf52840/rak4631_nomadstar_meteor_pro/platformio.ini
index d5fbe6a16..e94eef1ee 100644
--- a/variants/rak4631_nomadstar_meteor_pro/platformio.ini
+++ b/variants/nrf52840/rak4631_nomadstar_meteor_pro/platformio.ini
@@ -3,8 +3,9 @@
extends = nrf52840_base
board = wiscore_rak4631
board_check = true
-build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_nomadstar_meteor_pro -D NOMADSTAR_METEOR_PRO
- -L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m4/fpv4-sp-d16-hard"
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/rak4631_nomadstar_meteor_pro
+ -D NOMADSTAR_METEOR_PRO
;-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DEINK_DISPLAY_MODEL=GxEPD2_213_BN
-DEINK_WIDTH=250
@@ -12,8 +13,8 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak4631_nomadstar_meteor_p
-DRADIOLIB_EXCLUDE_SX128X=1
-DRADIOLIB_EXCLUDE_SX127X=1
-DRADIOLIB_EXCLUDE_LR11X0=1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak4631_nomadstar_meteor_pro> + +
-lib_deps =
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak4631_nomadstar_meteor_pro> + +
+lib_deps =
${nrf52840_base.lib_deps}
https://github.com/NomadStar-outdoor/IOBoard-RGB-LP5562-Library.git#9c366c8
diff --git a/variants/rak4631_nomadstar_meteor_pro/variant.cpp b/variants/nrf52840/rak4631_nomadstar_meteor_pro/variant.cpp
similarity index 100%
rename from variants/rak4631_nomadstar_meteor_pro/variant.cpp
rename to variants/nrf52840/rak4631_nomadstar_meteor_pro/variant.cpp
diff --git a/variants/rak4631_nomadstar_meteor_pro/variant.h b/variants/nrf52840/rak4631_nomadstar_meteor_pro/variant.h
similarity index 100%
rename from variants/rak4631_nomadstar_meteor_pro/variant.h
rename to variants/nrf52840/rak4631_nomadstar_meteor_pro/variant.h
diff --git a/variants/rak_wismeshtag/platformio.ini b/variants/nrf52840/rak_wismeshtag/platformio.ini
similarity index 71%
rename from variants/rak_wismeshtag/platformio.ini
rename to variants/nrf52840/rak_wismeshtag/platformio.ini
index a066e5282..08e723302 100644
--- a/variants/rak_wismeshtag/platformio.ini
+++ b/variants/nrf52840/rak_wismeshtag/platformio.ini
@@ -3,13 +3,15 @@
extends = nrf52840_base
board = wiscore_rak4631
board_check = true
-build_flags = ${nrf52840_base.build_flags} -Ivariants/rak_wismeshtag -D WISMESH_TAG -D RAK_4631
- -L "${platformio.libdeps_dir}/${this.__env__}/bsec2/src/cortex-m4/fpv4-sp-d16-hard"
+build_flags = ${nrf52840_base.build_flags}
+ -I variants/nrf52840/rak_wismeshtag
+ -D WISMESH_TAG
+ -D RAK_4631
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DRADIOLIB_EXCLUDE_SX128X=1
-DRADIOLIB_EXCLUDE_SX127X=1
-DRADIOLIB_EXCLUDE_LR11X0=1
-DMESHTASTIC_EXCLUDE_WIFI=1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak_wismeshtag>
-lib_deps =
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak_wismeshtag>
+lib_deps =
${nrf52840_base.lib_deps}
\ No newline at end of file
diff --git a/variants/rak_wismeshtag/variant.cpp b/variants/nrf52840/rak_wismeshtag/variant.cpp
similarity index 100%
rename from variants/rak_wismeshtag/variant.cpp
rename to variants/nrf52840/rak_wismeshtag/variant.cpp
diff --git a/variants/rak_wismeshtag/variant.h b/variants/nrf52840/rak_wismeshtag/variant.h
similarity index 99%
rename from variants/rak_wismeshtag/variant.h
rename to variants/nrf52840/rak_wismeshtag/variant.h
index dd82b76a1..eba910dc1 100644
--- a/variants/rak_wismeshtag/variant.h
+++ b/variants/nrf52840/rak_wismeshtag/variant.h
@@ -150,7 +150,6 @@ static const uint8_t SCK = PIN_SPI_SCK;
#define PIN_QSPI_IO2 28
#define PIN_QSPI_IO3 2
-
/* @note RAK5005-O GPIO mapping to RAK4631 GPIO ports
RAK5005-O <-> nRF52840
IO1 <-> P0.17 (Arduino GPIO number 17)
@@ -219,7 +218,7 @@ SO GPIO 39/TXEN MAY NOT BE DEFINED FOR SUCCESSFUL OPERATION OF THE SX1262 - TG
#define GPS_TX_PIN PIN_SERIAL1_TX
// RAK WISMESHTAG
-#define PIN_BUZZER 21
+#define PIN_BUZZER 21
// Battery
// The battery sense is hooked to pin A0 (5)
diff --git a/variants/rak_wismeshtap/platformio.ini b/variants/nrf52840/rak_wismeshtap/platformio.ini
similarity index 87%
rename from variants/rak_wismeshtap/platformio.ini
rename to variants/nrf52840/rak_wismeshtap/platformio.ini
index bfb3ea927..f6ee8fd23 100644
--- a/variants/rak_wismeshtap/platformio.ini
+++ b/variants/nrf52840/rak_wismeshtap/platformio.ini
@@ -2,7 +2,10 @@
[env:rak_wismeshtap]
extends = nrf52840_base
board = wiscore_rak4631
-build_flags = ${nrf52840_base.build_flags} -Ivariants/rak_wismeshtap -DWISMESH_TAP -DRAK_4631
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/rak_wismeshtap
+ -DWISMESH_TAP
+ -DRAK_4631
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DEINK_DISPLAY_MODEL=GxEPD2_213_BN
-DEINK_WIDTH=250
@@ -12,7 +15,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/rak_wismeshtap -DWISMESH_T
-DMESHTASTIC_EXCLUDE_STOREFORWARD=1
-DMESHTASTIC_EXCLUDE_POWER_TELEMETRY=1
-DMESHTASTIC_EXCLUDE_ATAK=1
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/rak_wismeshtap> + + +
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak_wismeshtap> + + +
lib_deps =
${nrf52840_base.lib_deps}
${networking_base.lib_deps}
diff --git a/variants/rak_wismeshtap/variant.cpp b/variants/nrf52840/rak_wismeshtap/variant.cpp
similarity index 100%
rename from variants/rak_wismeshtap/variant.cpp
rename to variants/nrf52840/rak_wismeshtap/variant.cpp
diff --git a/variants/rak_wismeshtap/variant.h b/variants/nrf52840/rak_wismeshtap/variant.h
similarity index 100%
rename from variants/rak_wismeshtap/variant.h
rename to variants/nrf52840/rak_wismeshtap/variant.h
diff --git a/variants/seeed_solar_node/platformio.ini b/variants/nrf52840/seeed_solar_node/platformio.ini
similarity index 70%
rename from variants/seeed_solar_node/platformio.ini
rename to variants/nrf52840/seeed_solar_node/platformio.ini
index eb91a435f..b2a128c57 100644
--- a/variants/seeed_solar_node/platformio.ini
+++ b/variants/nrf52840/seeed_solar_node/platformio.ini
@@ -3,11 +3,12 @@ board = seeed_solar_node
extends = nrf52840_base
;board_level = extra
build_flags = ${nrf52840_base.build_flags}
- -I $PROJECT_DIR/variants/seeed_solar_node
+ -I variants/nrf52840/seeed_solar_node
-D SEEED_SOLAR_NODE
- -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52
+ -I src/platform/nrf52/softdevice
+ -I src/platform/nrf52/softdevice/nrf52
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/seeed_solar_node>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/seeed_solar_node>
lib_deps =
${nrf52840_base.lib_deps}
debug_tool = jlink
diff --git a/variants/seeed_solar_node/variant.cpp b/variants/nrf52840/seeed_solar_node/variant.cpp
similarity index 100%
rename from variants/seeed_solar_node/variant.cpp
rename to variants/nrf52840/seeed_solar_node/variant.cpp
diff --git a/variants/seeed_solar_node/variant.h b/variants/nrf52840/seeed_solar_node/variant.h
similarity index 100%
rename from variants/seeed_solar_node/variant.h
rename to variants/nrf52840/seeed_solar_node/variant.h
diff --git a/variants/seeed_wio_tracker_L1/platformio.ini b/variants/nrf52840/seeed_wio_tracker_L1/platformio.ini
similarity index 61%
rename from variants/seeed_wio_tracker_L1/platformio.ini
rename to variants/nrf52840/seeed_wio_tracker_L1/platformio.ini
index 3c4653d7e..6c137384d 100644
--- a/variants/seeed_wio_tracker_L1/platformio.ini
+++ b/variants/nrf52840/seeed_wio_tracker_L1/platformio.ini
@@ -1,13 +1,13 @@
[env:seeed_wio_tracker_L1]
board = seeed_wio_tracker_L1
extends = nrf52840_base
-;board_level = extra
build_flags = ${nrf52840_base.build_flags}
- -I $PROJECT_DIR/variants/seeed_wio_tracker_L1
- -D SEEED_WIO_TRACKER_L1
- -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52
+ -I variants/nrf52840/seeed_wio_tracker_L1
+ -D SEEED_WIO_TRACKER_L1
+ -I src/platform/nrf52/softdevice
+ -I src/platform/nrf52/softdevice/nrf52
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/seeed_wio_tracker_L1>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/seeed_wio_tracker_L1>
lib_deps =
${nrf52840_base.lib_deps}
debug_tool = jlink
diff --git a/variants/seeed_wio_tracker_L1/variant.cpp b/variants/nrf52840/seeed_wio_tracker_L1/variant.cpp
similarity index 100%
rename from variants/seeed_wio_tracker_L1/variant.cpp
rename to variants/nrf52840/seeed_wio_tracker_L1/variant.cpp
diff --git a/variants/seeed_wio_tracker_L1/variant.h b/variants/nrf52840/seeed_wio_tracker_L1/variant.h
similarity index 100%
rename from variants/seeed_wio_tracker_L1/variant.h
rename to variants/nrf52840/seeed_wio_tracker_L1/variant.h
diff --git a/variants/seeed_wio_tracker_L1_eink/nicheGraphics.h b/variants/nrf52840/seeed_wio_tracker_L1_eink/nicheGraphics.h
similarity index 100%
rename from variants/seeed_wio_tracker_L1_eink/nicheGraphics.h
rename to variants/nrf52840/seeed_wio_tracker_L1_eink/nicheGraphics.h
diff --git a/variants/seeed_wio_tracker_L1_eink/platformio.ini b/variants/nrf52840/seeed_wio_tracker_L1_eink/platformio.ini
similarity index 59%
rename from variants/seeed_wio_tracker_L1_eink/platformio.ini
rename to variants/nrf52840/seeed_wio_tracker_L1_eink/platformio.ini
index b310cce83..52ff39d49 100644
--- a/variants/seeed_wio_tracker_L1_eink/platformio.ini
+++ b/variants/nrf52840/seeed_wio_tracker_L1_eink/platformio.ini
@@ -2,13 +2,15 @@
board = seeed_wio_tracker_L1
extends = nrf52840_base, inkhud
;board_level = extra
-build_flags = ${nrf52840_base.build_flags} ${inkhud.build_flags}
- -I $PROJECT_DIR/variants/seeed_wio_tracker_L1_eink
+build_flags = ${nrf52840_base.build_flags}
+ ${inkhud.build_flags}
+ -I variants/nrf52840/seeed_wio_tracker_L1_eink
-D SEEED_WIO_TRACKER_L1_EINK
-D SEEED_WIO_TRACKER_L1
- -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52
+ -I src/platform/nrf52/softdevice
+ -I src/platform/nrf52/softdevice/nrf52
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/seeed_wio_tracker_L1_eink> ${inkhud.build_src_filter}
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/seeed_wio_tracker_L1_eink> ${inkhud.build_src_filter}
lib_deps =
${inkhud.lib_deps}
${nrf52840_base.lib_deps}
diff --git a/variants/seeed_wio_tracker_L1_eink/variant.cpp b/variants/nrf52840/seeed_wio_tracker_L1_eink/variant.cpp
similarity index 100%
rename from variants/seeed_wio_tracker_L1_eink/variant.cpp
rename to variants/nrf52840/seeed_wio_tracker_L1_eink/variant.cpp
diff --git a/variants/seeed_wio_tracker_L1_eink/variant.h b/variants/nrf52840/seeed_wio_tracker_L1_eink/variant.h
similarity index 100%
rename from variants/seeed_wio_tracker_L1_eink/variant.h
rename to variants/nrf52840/seeed_wio_tracker_L1_eink/variant.h
diff --git a/variants/seeed_xiao_nrf52840_kit/platformio.ini b/variants/nrf52840/seeed_xiao_nrf52840_kit/platformio.ini
similarity index 66%
rename from variants/seeed_xiao_nrf52840_kit/platformio.ini
rename to variants/nrf52840/seeed_xiao_nrf52840_kit/platformio.ini
index 0e1e94cd5..27352875d 100644
--- a/variants/seeed_xiao_nrf52840_kit/platformio.ini
+++ b/variants/nrf52840/seeed_xiao_nrf52840_kit/platformio.ini
@@ -2,9 +2,14 @@
[env:seeed_xiao_nrf52840_kit]
extends = nrf52840_base
board = xiao_ble_sense
-build_flags = ${nrf52840_base.build_flags} -Ivariants/seeed_xiao_nrf52840_kit -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52 -DSEEED_XIAO_NRF52840_KIT -DGPS_L76K
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/seeed_xiao_nrf52840_kit
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
+ -DSEEED_XIAO_NRF52840_KIT
+ -DGPS_L76K
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/seeed_xiao_nrf52840_kit>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/seeed_xiao_nrf52840_kit>
lib_deps =
${nrf52840_base.lib_deps}
debug_tool = jlink
diff --git a/variants/seeed_xiao_nrf52840_kit/variant.cpp b/variants/nrf52840/seeed_xiao_nrf52840_kit/variant.cpp
similarity index 100%
rename from variants/seeed_xiao_nrf52840_kit/variant.cpp
rename to variants/nrf52840/seeed_xiao_nrf52840_kit/variant.cpp
diff --git a/variants/seeed_xiao_nrf52840_kit/variant.h b/variants/nrf52840/seeed_xiao_nrf52840_kit/variant.h
similarity index 100%
rename from variants/seeed_xiao_nrf52840_kit/variant.h
rename to variants/nrf52840/seeed_xiao_nrf52840_kit/variant.h
diff --git a/variants/t-echo/nicheGraphics.h b/variants/nrf52840/t-echo/nicheGraphics.h
similarity index 100%
rename from variants/t-echo/nicheGraphics.h
rename to variants/nrf52840/t-echo/nicheGraphics.h
diff --git a/variants/t-echo/platformio.ini b/variants/nrf52840/t-echo/platformio.ini
similarity index 89%
rename from variants/t-echo/platformio.ini
rename to variants/nrf52840/t-echo/platformio.ini
index 85c3b5799..b80958d5d 100644
--- a/variants/t-echo/platformio.ini
+++ b/variants/nrf52840/t-echo/platformio.ini
@@ -6,7 +6,8 @@ board_check = true
debug_tool = jlink
# add -DCFG_SYSVIEW if you want to use the Segger systemview tool for OS profiling.
-build_flags = ${nrf52840_base.build_flags} -Ivariants/t-echo
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/t-echo
-DGPS_POWER_TOGGLE
-DEINK_DISPLAY_MODEL=GxEPD2_154_D67
-DEINK_WIDTH=200
@@ -16,7 +17,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/t-echo
-DEINK_LIMIT_FASTREFRESH=20 ; How many consecutive fast-refreshes are permitted
-DEINK_BACKGROUND_USES_FAST ; (Optional) Use FAST refresh for both BACKGROUND and RESPONSIVE, until a limit is reached.
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/t-echo>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/t-echo>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/meshtastic/GxEPD2/archive/55f618961db45a23eff0233546430f1e5a80f63a.zip
@@ -31,11 +32,11 @@ debug_tool = jlink
build_flags =
${nrf52840_base.build_flags}
${inkhud.build_flags}
- -I variants/t-echo
+ -I variants/nrf52840/t-echo
build_src_filter =
${nrf52_base.build_src_filter}
${inkhud.build_src_filter}
- +<../variants/t-echo>
+ +<../variants/nrf52840/t-echo>
lib_deps =
${inkhud.lib_deps} ; InkHUD libs first, so we get GFXRoot instead of AdafruitGFX
${nrf52840_base.lib_deps}
diff --git a/variants/t-echo/variant.cpp b/variants/nrf52840/t-echo/variant.cpp
similarity index 100%
rename from variants/t-echo/variant.cpp
rename to variants/nrf52840/t-echo/variant.cpp
diff --git a/variants/t-echo/variant.h b/variants/nrf52840/t-echo/variant.h
similarity index 100%
rename from variants/t-echo/variant.h
rename to variants/nrf52840/t-echo/variant.h
diff --git a/variants/tracker-t1000-e/platformio.ini b/variants/nrf52840/tracker-t1000-e/platformio.ini
similarity index 78%
rename from variants/tracker-t1000-e/platformio.ini
rename to variants/nrf52840/tracker-t1000-e/platformio.ini
index b1f11d524..45c8c5d00 100644
--- a/variants/tracker-t1000-e/platformio.ini
+++ b/variants/nrf52840/tracker-t1000-e/platformio.ini
@@ -1,7 +1,11 @@
[env:tracker-t1000-e]
extends = nrf52840_base
board = tracker-t1000-e
-build_flags = ${nrf52840_base.build_flags} -Ivariants/tracker-t1000-e -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52 -DTRACKER_T1000_E
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/tracker-t1000-e
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
+ -DTRACKER_T1000_E
-DGPS_POWER_TOGGLE
-DMESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR_EXTERNAL=1
-DMESHTASTIC_EXCLUDE_CANNEDMESSAGES=1
@@ -9,7 +13,7 @@ build_flags = ${nrf52840_base.build_flags} -Ivariants/tracker-t1000-e -Isrc/plat
-DMESHTASTIC_EXCLUDE_DETECTIONSENSOR=1
-DMESHTASTIC_EXCLUDE_WIFI=1
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/tracker-t1000-e>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/tracker-t1000-e>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/meshtastic/QMA6100P_Arduino_Library/archive/14c900b8b2e4feaac5007a7e41e0c1b7f0841136.zip
diff --git a/variants/tracker-t1000-e/rfswitch.h b/variants/nrf52840/tracker-t1000-e/rfswitch.h
similarity index 100%
rename from variants/tracker-t1000-e/rfswitch.h
rename to variants/nrf52840/tracker-t1000-e/rfswitch.h
diff --git a/variants/tracker-t1000-e/variant.cpp b/variants/nrf52840/tracker-t1000-e/variant.cpp
similarity index 100%
rename from variants/tracker-t1000-e/variant.cpp
rename to variants/nrf52840/tracker-t1000-e/variant.cpp
diff --git a/variants/tracker-t1000-e/variant.h b/variants/nrf52840/tracker-t1000-e/variant.h
similarity index 100%
rename from variants/tracker-t1000-e/variant.h
rename to variants/nrf52840/tracker-t1000-e/variant.h
diff --git a/variants/wio-sdk-wm1110/platformio.ini b/variants/nrf52840/wio-sdk-wm1110/platformio.ini
similarity index 80%
rename from variants/wio-sdk-wm1110/platformio.ini
rename to variants/nrf52840/wio-sdk-wm1110/platformio.ini
index 4e1415678..2c65246b8 100644
--- a/variants/wio-sdk-wm1110/platformio.ini
+++ b/variants/nrf52840/wio-sdk-wm1110/platformio.ini
@@ -4,16 +4,20 @@ extends = nrf52840_base
board = wio-sdk-wm1110
extra_scripts =
- bin/platformio-custom.py
+ ${env.extra_scripts}
extra_scripts/disable_adafruit_usb.py
# Remove adafruit USB serial from the build (it is incompatible with using the ch340 serial chip on this board)
build_unflags = ${nrf52840_base:build_unflags} -DUSBCON -DUSE_TINYUSB
-build_flags = ${nrf52840_base.build_flags} -Ivariants/wio-sdk-wm1110 -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52 -DWIO_WM1110
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/wio-sdk-wm1110
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
+ -DWIO_WM1110
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
-DCFG_TUD_CDC=0
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/wio-sdk-wm1110>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/wio-sdk-wm1110>
;debug_tool = jlink
debug_tool = stlink
diff --git a/variants/wio-sdk-wm1110/rfswitch.h b/variants/nrf52840/wio-sdk-wm1110/rfswitch.h
similarity index 100%
rename from variants/wio-sdk-wm1110/rfswitch.h
rename to variants/nrf52840/wio-sdk-wm1110/rfswitch.h
diff --git a/variants/wio-sdk-wm1110/variant.cpp b/variants/nrf52840/wio-sdk-wm1110/variant.cpp
similarity index 100%
rename from variants/wio-sdk-wm1110/variant.cpp
rename to variants/nrf52840/wio-sdk-wm1110/variant.cpp
diff --git a/variants/wio-sdk-wm1110/variant.h b/variants/nrf52840/wio-sdk-wm1110/variant.h
similarity index 100%
rename from variants/wio-sdk-wm1110/variant.h
rename to variants/nrf52840/wio-sdk-wm1110/variant.h
diff --git a/variants/wio-t1000-s/platformio.ini b/variants/nrf52840/wio-t1000-s/platformio.ini
similarity index 77%
rename from variants/wio-t1000-s/platformio.ini
rename to variants/nrf52840/wio-t1000-s/platformio.ini
index 2eab1e1c5..3594bcf07 100644
--- a/variants/wio-t1000-s/platformio.ini
+++ b/variants/nrf52840/wio-t1000-s/platformio.ini
@@ -3,10 +3,14 @@
extends = nrf52840_base
board = wio-t1000-s
board_level = extra
-build_flags = ${nrf52840_base.build_flags} -Ivariants/wio-t1000-s -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52 -DWIO_WM1110
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/wio-t1000-s
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
+ -DWIO_WM1110
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/wio-t1000-s>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/wio-t1000-s>
lib_deps =
${nrf52840_base.lib_deps}
debug_tool = jlink
diff --git a/variants/wio-t1000-s/rfswitch.h b/variants/nrf52840/wio-t1000-s/rfswitch.h
similarity index 100%
rename from variants/wio-t1000-s/rfswitch.h
rename to variants/nrf52840/wio-t1000-s/rfswitch.h
diff --git a/variants/wio-t1000-s/variant.cpp b/variants/nrf52840/wio-t1000-s/variant.cpp
similarity index 100%
rename from variants/wio-t1000-s/variant.cpp
rename to variants/nrf52840/wio-t1000-s/variant.cpp
diff --git a/variants/wio-t1000-s/variant.h b/variants/nrf52840/wio-t1000-s/variant.h
similarity index 100%
rename from variants/wio-t1000-s/variant.h
rename to variants/nrf52840/wio-t1000-s/variant.h
diff --git a/variants/wio-tracker-wm1110/platformio.ini b/variants/nrf52840/wio-tracker-wm1110/platformio.ini
similarity index 73%
rename from variants/wio-tracker-wm1110/platformio.ini
rename to variants/nrf52840/wio-tracker-wm1110/platformio.ini
index a6960b435..b383043bb 100644
--- a/variants/wio-tracker-wm1110/platformio.ini
+++ b/variants/nrf52840/wio-tracker-wm1110/platformio.ini
@@ -2,10 +2,14 @@
[env:wio-tracker-wm1110]
extends = nrf52840_base
board = wio-tracker-wm1110
-build_flags = ${nrf52840_base.build_flags} -Ivariants/wio-tracker-wm1110 -Isrc/platform/nrf52/softdevice -Isrc/platform/nrf52/softdevice/nrf52 -DWIO_WM1110
+build_flags = ${nrf52840_base.build_flags}
+ -Ivariants/nrf52840/wio-tracker-wm1110
+ -Isrc/platform/nrf52/softdevice
+ -Isrc/platform/nrf52/softdevice/nrf52
+ -DWIO_WM1110
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
board_build.ldscript = src/platform/nrf52/nrf52840_s140_v7.ld
-build_src_filter = ${nrf52_base.build_src_filter} +<../variants/wio-tracker-wm1110>
+build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/wio-tracker-wm1110>
lib_deps =
${nrf52840_base.lib_deps}
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
diff --git a/variants/wio-tracker-wm1110/rfswitch.h b/variants/nrf52840/wio-tracker-wm1110/rfswitch.h
similarity index 100%
rename from variants/wio-tracker-wm1110/rfswitch.h
rename to variants/nrf52840/wio-tracker-wm1110/rfswitch.h
diff --git a/variants/wio-tracker-wm1110/variant.cpp b/variants/nrf52840/wio-tracker-wm1110/variant.cpp
similarity index 100%
rename from variants/wio-tracker-wm1110/variant.cpp
rename to variants/nrf52840/wio-tracker-wm1110/variant.cpp
diff --git a/variants/wio-tracker-wm1110/variant.h b/variants/nrf52840/wio-tracker-wm1110/variant.h
similarity index 100%
rename from variants/wio-tracker-wm1110/variant.h
rename to variants/nrf52840/wio-tracker-wm1110/variant.h