Compare commits

..

10 Commits

Author SHA1 Message Date
Matthias Wientapper
ce4c1e0be1 platformio.ini: Adjust defaults for LoRa frequncies 2026-01-29 11:39:15 +01:00
Matthias Wientapper
deba7253e7 Integration of upstrem PR #1297 2026-01-29 11:38:51 +01:00
Matthias Wientapper
f836872102 Integration of upstrem PR #1338 2026-01-29 11:38:11 +01:00
Matthias Wientapper
4ae707c778 Merge branch 'evo-build-scripts' into main-evo 2026-01-29 11:36:59 +01:00
Scott Powell
e738a74777 Merge branch 'dev' 2026-01-29 21:16:53 +11:00
Scott Powell
465776d667 * ver 1.12.0 2026-01-29 21:12:31 +11:00
Liam Cottle
629adc23c5 Merge pull request #1508 from recrof/rak4631-cleanup
cleanup: moved RAK4631 pindefs from board file to variant.h
2026-01-29 12:35:47 +13:00
Liam Cottle
8f605f83fc Merge pull request #1507 from recrof/rak3401-board-fix
fix: build errors because of changes in RAK3401Board base class
2026-01-29 12:05:58 +13:00
Rastislav Vysoky
f41872420e moved pindefs from board file to variant.h 2026-01-28 17:28:48 +01:00
Rastislav Vysoky
d5a73b2394 fix: build errors because of changes in NRF52 base class 2026-01-28 17:18:39 +01:00
10 changed files with 56 additions and 193 deletions

View File

@@ -8,11 +8,11 @@
#define FIRMWARE_VER_CODE 8 #define FIRMWARE_VER_CODE 8
#ifndef FIRMWARE_BUILD_DATE #ifndef FIRMWARE_BUILD_DATE
#define FIRMWARE_BUILD_DATE "30 Nov 2025" #define FIRMWARE_BUILD_DATE "29 Jan 2026"
#endif #endif
#ifndef FIRMWARE_VERSION #ifndef FIRMWARE_VERSION
#define FIRMWARE_VERSION "v1.11.0" #define FIRMWARE_VERSION "v1.12.0"
#endif #endif
#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM) #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)

View File

@@ -69,11 +69,11 @@ struct NeighbourInfo {
}; };
#ifndef FIRMWARE_BUILD_DATE #ifndef FIRMWARE_BUILD_DATE
#define FIRMWARE_BUILD_DATE "30 Nov 2025" #define FIRMWARE_BUILD_DATE "29 Jan 2026"
#endif #endif
#ifndef FIRMWARE_VERSION #ifndef FIRMWARE_VERSION
#define FIRMWARE_VERSION "v1.11.0" #define FIRMWARE_VERSION "v1.12.0"
#endif #endif
#define FIRMWARE_ROLE "repeater" #define FIRMWARE_ROLE "repeater"

View File

@@ -26,11 +26,11 @@
/* ------------------------------ Config -------------------------------- */ /* ------------------------------ Config -------------------------------- */
#ifndef FIRMWARE_BUILD_DATE #ifndef FIRMWARE_BUILD_DATE
#define FIRMWARE_BUILD_DATE "30 Nov 2025" #define FIRMWARE_BUILD_DATE "29 Jan 2026"
#endif #endif
#ifndef FIRMWARE_VERSION #ifndef FIRMWARE_VERSION
#define FIRMWARE_VERSION "v1.11.0" #define FIRMWARE_VERSION "v1.12.0"
#endif #endif
#ifndef LORA_FREQ #ifndef LORA_FREQ

View File

@@ -33,11 +33,11 @@
#define PERM_RECV_ALERTS_HI (1 << 7) // high priority alerts #define PERM_RECV_ALERTS_HI (1 << 7) // high priority alerts
#ifndef FIRMWARE_BUILD_DATE #ifndef FIRMWARE_BUILD_DATE
#define FIRMWARE_BUILD_DATE "30 Nov 2025" #define FIRMWARE_BUILD_DATE "29 Jan 2026"
#endif #endif
#ifndef FIRMWARE_VERSION #ifndef FIRMWARE_VERSION
#define FIRMWARE_VERSION "v1.11.0" #define FIRMWARE_VERSION "v1.12.0"
#endif #endif
#define FIRMWARE_ROLE "sensor" #define FIRMWARE_ROLE "sensor"

View File

@@ -1,56 +0,0 @@
# Maintenance Tools
This directory contains automation for managing our **Friendly Fork**. It allows us to integrate community-submitted Pull Requests from the upstream repository into our local development branches.
## Why this exists
In firmware development, critical bug fixes or hardware support often exist in the upstream "Pull Request" queue long before they are officially merged. This tool allows us to build an integrated firmware version that includes those necessary patches while remaining syncable with the official source.
## Usage
### 1. Prerequisites
You must have the original repository added as a remote named `upstream`:
```bash
git remote add upstream https://github.com/meshcore-dev/MeshCore.git
```
### 2. Basic Commands
**Apply specific patches:**
To pull in PR #1338 and PR #1400 from the upstream project:
```bash
./tools/maint/apply_patches.sh 1338 1400
```
**Start over (Reset):**
To wipe the integrated branch and reset it to match the official upstream `main` branch exactly:
```bash
./tools/maint/apply_patches.sh --reset
```
## Traceability
Every time this script runs, it updates `patch_manifest.log`. This file tracks:
* The date of the integration.
* The base commit SHA we started from.
* The specific commit SHA of every PR applied.
**This log is essential for debugging firmware regressions.** If the hardware fails, check the manifest to identify which experimental patch might be the cause.
---
### A Note on Merge Conflicts
If a PR cannot be applied automatically, the script will abort the merge. You will need to:
1. Manually merge the PR.
2. Resolve the conflicts in your editor.
3. Commit the result.
4. Manually update the `patch_manifest.log`.

View File

@@ -1,65 +0,0 @@
#!/bin/bash
# Configuration
UPSTREAM_REMOTE="upstream"
BASE_BRANCH="main" # Change to 'master' if that's what upstream uses
TARGET_BRANCH="main-integrated"
MANIFEST_FILE="tools/maint/patch_manifest.log"
# Function to reset the branch
reset_to_upstream() {
echo "Warning: This will wipe all local changes on $TARGET_BRANCH."
read -p "Are you sure you want to reset to $UPSTREAM_REMOTE/$BASE_BRANCH? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
git fetch "$UPSTREAM_REMOTE"
git checkout -B "$TARGET_BRANCH" "$UPSTREAM_REMOTE/$BASE_BRANCH"
echo "--- Reset to Upstream: $(date) ---" > "$MANIFEST_FILE"
echo "Base Commit: $(git rev-parse HEAD)" >> "$MANIFEST_FILE"
echo "Reset successful. Branch is now clean."
else
echo "Reset aborted."
fi
}
# Check for reset flag
if [[ "$1" == "--reset" ]]; then
reset_to_upstream
exit 0
fi
# Standard PR application logic
PR_IDS=("$@")
if [ ${#PR_IDS[@]} -eq 0 ]; then
echo "Usage:"
echo " Apply PRs: $0 <PR_ID1> <PR_ID2> ..."
echo " Reset: $0 --reset"
exit 1
fi
# Ensure target branch exists and is checked out
git checkout -B "$TARGET_BRANCH"
echo "--- Patch Session: $(date) ---" >> "$MANIFEST_FILE"
for PR in "${PR_IDS[@]}"; do
echo "--------------------------------------"
echo "Fetching PR #$PR..."
if git fetch "$UPSTREAM_REMOTE" "pull/$PR/head:PR_TEMP_FETCH"; then
if git merge PR_TEMP_FETCH --no-edit -m "Integrate upstream PR #$PR"; then
echo "Successfully integrated PR #$PR"
echo "PR #$PR SHA: $(git rev-parse PR_TEMP_FETCH)" >> "$MANIFEST_FILE"
else
echo "Conflict in PR #$PR. Aborting merge."
git merge --abort
exit 1
fi
git branch -D PR_TEMP_FETCH
else
echo "Error: PR #$PR not found."
fi
done
echo "--------------------------------------"
echo "Done. See $MANIFEST_FILE for details."

View File

@@ -4,30 +4,6 @@
#include <Arduino.h> #include <Arduino.h>
#include <helpers/NRF52Board.h> #include <helpers/NRF52Board.h>
// LoRa radio module pins for RAK13302
#define P_LORA_SCLK 3
#define P_LORA_MISO 29
#define P_LORA_MOSI 30
#define P_LORA_NSS 26
#define P_LORA_DIO_1 10
#define P_LORA_BUSY 9
#define P_LORA_RESET 4
#ifndef P_LORA_PA_EN
#define P_LORA_PA_EN 31
#endif
//#define PIN_GPS_SDA 13 //GPS SDA pin (output option)
//#define PIN_GPS_SCL 14 //GPS SCL pin (output option)
// #define PIN_GPS_TX 16 //GPS TX pin
// #define PIN_GPS_RX 15 //GPS RX pin
#define PIN_GPS_1PPS 17 //GPS PPS pin
#define GPS_BAUD_RATE 9600
#define GPS_ADDRESS 0x42 //i2c address for GPS
#define SX126X_DIO2_AS_RF_SWITCH
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
// built-ins // built-ins
#define PIN_VBAT_READ 5 #define PIN_VBAT_READ 5
#define ADC_MULTIPLIER (3 * 1.73 * 1.187 * 1000) #define ADC_MULTIPLIER (3 * 1.73 * 1.187 * 1000)
@@ -35,9 +11,13 @@
#define PIN_3V3_EN (34) #define PIN_3V3_EN (34)
#define WB_IO2 PIN_3V3_EN #define WB_IO2 PIN_3V3_EN
class RAK3401Board : public NRF52BoardDCDC, public NRF52BoardOTA { class RAK3401Board : public NRF52BoardDCDC {
protected:
#ifdef NRF52_POWER_MANAGEMENT
void initiateShutdown(uint8_t reason) override;
#endif
public: public:
RAK3401Board() : NRF52BoardOTA("RAK3401_OTA") {} RAK3401Board() : NRF52Board("RAK3401_OTA") {}
void begin(); void begin();
#define BATTERY_SAMPLES 8 #define BATTERY_SAMPLES 8

View File

@@ -141,11 +141,6 @@ static const uint8_t AREF = PIN_AREF;
#define EXTERNAL_FLASH_DEVICES IS25LP080D #define EXTERNAL_FLASH_DEVICES IS25LP080D
#define EXTERNAL_FLASH_USE_QSPI #define EXTERNAL_FLASH_USE_QSPI
#define P_LORA_SCK PIN_SPI1_SCK
#define P_LORA_MISO PIN_SPI1_MISO
#define P_LORA_MOSI PIN_SPI1_MOSI
#define P_LORA_CS 26
#define USE_SX1262 #define USE_SX1262
#define SX126X_CS (26) #define SX126X_CS (26)
#define SX126X_DIO1 (10) #define SX126X_DIO1 (10)
@@ -157,6 +152,15 @@ static const uint8_t AREF = PIN_AREF;
#define SX126X_DIO2_AS_RF_SWITCH #define SX126X_DIO2_AS_RF_SWITCH
#define SX126X_DIO3_TCXO_VOLTAGE 1.8 #define SX126X_DIO3_TCXO_VOLTAGE 1.8
#define P_LORA_SCLK PIN_SPI1_SCK
#define P_LORA_MISO PIN_SPI1_MISO
#define P_LORA_MOSI PIN_SPI1_MOSI
#define P_LORA_NSS SX126X_CS
#define P_LORA_DIO_1 SX126X_DIO1
#define P_LORA_BUSY SX126X_BUSY
#define P_LORA_RESET SX126X_RESET
#define P_LORA_PA_EN 31
// enables 3.3V periphery like GPS or IO Module // enables 3.3V periphery like GPS or IO Module
// Do not toggle this for GPS power savings // Do not toggle this for GPS power savings
#define PIN_3V3_EN (34) #define PIN_3V3_EN (34)
@@ -173,6 +177,10 @@ static const uint8_t AREF = PIN_AREF;
#define PIN_GPS_RX PIN_SERIAL1_RX #define PIN_GPS_RX PIN_SERIAL1_RX
#define PIN_GPS_TX PIN_SERIAL1_TX #define PIN_GPS_TX PIN_SERIAL1_TX
#define PIN_GPS_1PPS PIN_GPS_PPS
#define GPS_BAUD_RATE 9600
#define GPS_ADDRESS 0x42 //i2c address for GPS
// Battery // Battery
// The battery sense is hooked to pin A0 (5) // The battery sense is hooked to pin A0 (5)
#define BATTERY_PIN PIN_A0 #define BATTERY_PIN PIN_A0

View File

@@ -4,27 +4,6 @@
#include <Arduino.h> #include <Arduino.h>
#include <helpers/NRF52Board.h> #include <helpers/NRF52Board.h>
// LoRa radio module pins for RAK4631
#define P_LORA_DIO_1 47
#define P_LORA_NSS 42
#define P_LORA_RESET RADIOLIB_NC // 38
#define P_LORA_BUSY 46
#define P_LORA_SCLK 43
#define P_LORA_MISO 45
#define P_LORA_MOSI 44
#define SX126X_POWER_EN 37
//#define PIN_GPS_SDA 13 //GPS SDA pin (output option)
//#define PIN_GPS_SCL 14 //GPS SCL pin (output option)
//#define PIN_GPS_TX 16 //GPS TX pin
//#define PIN_GPS_RX 15 //GPS RX pin
#define PIN_GPS_1PPS 17 //GPS PPS pin
#define GPS_BAUD_RATE 9600
#define GPS_ADDRESS 0x42 //i2c address for GPS
#define SX126X_DIO2_AS_RF_SWITCH true
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
// built-ins // built-ins
#define PIN_VBAT_READ 5 #define PIN_VBAT_READ 5
#define ADC_MULTIPLIER (3 * 1.73 * 1.187 * 1000) #define ADC_MULTIPLIER (3 * 1.73 * 1.187 * 1000)

View File

@@ -144,6 +144,19 @@ extern "C"
static const uint8_t MISO = PIN_SPI_MISO; static const uint8_t MISO = PIN_SPI_MISO;
static const uint8_t SCK = PIN_SPI_SCK; static const uint8_t SCK = PIN_SPI_SCK;
// LoRa radio module pins for RAK4631
#define P_LORA_DIO_1 (47)
#define P_LORA_NSS (42)
#define P_LORA_RESET (-1)
#define P_LORA_BUSY (46)
#define P_LORA_SCLK (43)
#define P_LORA_MISO (45)
#define P_LORA_MOSI (44)
#define SX126X_POWER_EN (37)
#define SX126X_DIO2_AS_RF_SWITCH true
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
/* /*
* Wire Interfaces * Wire Interfaces
*/ */
@@ -155,19 +168,23 @@ extern "C"
#define PIN_WIRE1_SDA (24) #define PIN_WIRE1_SDA (24)
#define PIN_WIRE1_SCL (25) #define PIN_WIRE1_SCL (25)
// QSPI Pins // QSPI Pins
// QSPI occupied by GPIO's // QSPI occupied by GPIO's
#define PIN_QSPI_SCK 3 // 19 #define PIN_QSPI_SCK 3 // 19
#define PIN_QSPI_CS 26 // 17 #define PIN_QSPI_CS 26 // 17
#define PIN_QSPI_IO0 30 // 20 #define PIN_QSPI_IO0 30 // 20
#define PIN_QSPI_IO1 29 // 21 #define PIN_QSPI_IO1 29 // 21
#define PIN_QSPI_IO2 28 // 22 #define PIN_QSPI_IO2 28 // 22
#define PIN_QSPI_IO3 2 // 23 #define PIN_QSPI_IO3 2 // 23
// On-board QSPI Flash // On-board QSPI Flash
// No onboard flash // No onboard flash
#define EXTERNAL_FLASH_DEVICES IS25LP080D #define EXTERNAL_FLASH_DEVICES IS25LP080D
#define EXTERNAL_FLASH_USE_QSPI #define EXTERNAL_FLASH_USE_QSPI
#define PIN_GPS_1PPS 17 //GPS PPS pin
#define GPS_BAUD_RATE 9600
#define GPS_ADDRESS 0x42 //i2c address for GPS
#ifdef __cplusplus #ifdef __cplusplus
} }