@@ -15,8 +15,6 @@
|
|||||||
#include "WiFi.h"
|
#include "WiFi.h"
|
||||||
#include "AsyncTCP.h"
|
#include "AsyncTCP.h"
|
||||||
#include "Update.h"
|
#include "Update.h"
|
||||||
#include "esp_int_wdt.h"
|
|
||||||
#include "esp_task_wdt.h"
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "Hash.h"
|
#include "Hash.h"
|
||||||
|
|||||||
@@ -261,6 +261,20 @@ If `noise_floor` reports `0`, check `get agc.reset.interval`. If it is not `0`,
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
#### View or change the boosted receive gain mode
|
||||||
|
**Usage:**
|
||||||
|
- `get radio.rxgain`
|
||||||
|
- `set radio.rxgain <state>`
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
- `state`: `on`|`off`
|
||||||
|
|
||||||
|
**Default:** `off`
|
||||||
|
|
||||||
|
**Note:** Only available on SX1262 and SX1268 based boards.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
#### Change the radio parameters for a set duration
|
#### Change the radio parameters for a set duration
|
||||||
|
|
||||||
**Usage:**
|
**Usage:**
|
||||||
|
|||||||
@@ -8,11 +8,11 @@
|
|||||||
#define FIRMWARE_VER_CODE 11
|
#define FIRMWARE_VER_CODE 11
|
||||||
|
|
||||||
#ifndef FIRMWARE_BUILD_DATE
|
#ifndef FIRMWARE_BUILD_DATE
|
||||||
#define FIRMWARE_BUILD_DATE "20 Mar 2026"
|
#define FIRMWARE_BUILD_DATE "19 Apr 2026"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef FIRMWARE_VERSION
|
#ifndef FIRMWARE_VERSION
|
||||||
#define FIRMWARE_VERSION "v1.14.1"
|
#define FIRMWARE_VERSION "v1.15.0"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
|
#if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM)
|
||||||
|
|||||||
@@ -77,11 +77,11 @@ struct NeighbourInfo {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#ifndef FIRMWARE_BUILD_DATE
|
#ifndef FIRMWARE_BUILD_DATE
|
||||||
#define FIRMWARE_BUILD_DATE "20 Mar 2026"
|
#define FIRMWARE_BUILD_DATE "19 Apr 2026"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef FIRMWARE_VERSION
|
#ifndef FIRMWARE_VERSION
|
||||||
#define FIRMWARE_VERSION "v1.14.1"
|
#define FIRMWARE_VERSION "v1.15.0"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define FIRMWARE_ROLE "repeater"
|
#define FIRMWARE_ROLE "repeater"
|
||||||
|
|||||||
@@ -27,11 +27,11 @@
|
|||||||
/* ------------------------------ Config -------------------------------- */
|
/* ------------------------------ Config -------------------------------- */
|
||||||
|
|
||||||
#ifndef FIRMWARE_BUILD_DATE
|
#ifndef FIRMWARE_BUILD_DATE
|
||||||
#define FIRMWARE_BUILD_DATE "20 Mar 2026"
|
#define FIRMWARE_BUILD_DATE "19 Apr 2026"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef FIRMWARE_VERSION
|
#ifndef FIRMWARE_VERSION
|
||||||
#define FIRMWARE_VERSION "v1.14.1"
|
#define FIRMWARE_VERSION "v1.15.0"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef LORA_FREQ
|
#ifndef LORA_FREQ
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ build_src_filter = ${arduino_base.build_src_filter}
|
|||||||
|
|
||||||
[esp32_ota]
|
[esp32_ota]
|
||||||
lib_deps =
|
lib_deps =
|
||||||
me-no-dev/ESPAsyncWebServer @ ^3.6.0
|
ESP32Async/ESPAsyncWebServer @ 3.10.3
|
||||||
file://arch/esp32/AsyncElegantOTA
|
file://arch/esp32/AsyncElegantOTA
|
||||||
|
|
||||||
; esp32c6 uses arduino framework 3.x
|
; esp32c6 uses arduino framework 3.x
|
||||||
|
|||||||
@@ -26,6 +26,18 @@ releases:
|
|||||||
text: "Refreshed the docs site structure and theme as part of the first EastMesh release set."
|
text: "Refreshed the docs site structure and theme as part of the first EastMesh release set."
|
||||||
breaking_changes: []
|
breaking_changes: []
|
||||||
|
|
||||||
|
- track: companion-wifi
|
||||||
|
version: "1.15.0"
|
||||||
|
tag: "companion-wifi-v1.15.0"
|
||||||
|
date: "2026-04-19"
|
||||||
|
previous_version: "1.14.1"
|
||||||
|
summary: "Prepares the next companion_wifi release on top of upstream MeshCore firmware v1.15.0."
|
||||||
|
changes:
|
||||||
|
- type: changed
|
||||||
|
area: upstream
|
||||||
|
text: "Updated the companion_wifi firmware base to upstream MeshCore v1.15.0."
|
||||||
|
breaking_changes: []
|
||||||
|
|
||||||
- track: repeater-mqtt
|
- track: repeater-mqtt
|
||||||
version: "1.0.1"
|
version: "1.0.1"
|
||||||
tag: "repeater-mqtt-eastmesh-v1.0.1"
|
tag: "repeater-mqtt-eastmesh-v1.0.1"
|
||||||
@@ -296,3 +308,15 @@ releases:
|
|||||||
area: web-panel
|
area: web-panel
|
||||||
text: "Updated the documented web CLI allowlist to match the actual browser command gate, including the AGC reset interval commands and the troubleshooting note for `noise_floor` reporting `0`."
|
text: "Updated the documented web CLI allowlist to match the actual browser command gate, including the AGC reset interval commands and the troubleshooting note for `noise_floor` reporting `0`."
|
||||||
breaking_changes: []
|
breaking_changes: []
|
||||||
|
|
||||||
|
- track: repeater-mqtt
|
||||||
|
version: "1.3.5"
|
||||||
|
tag: "repeater-mqtt-eastmesh-v1.3.5"
|
||||||
|
date: "2026-04-19"
|
||||||
|
previous_version: "1.3.4"
|
||||||
|
summary: "Prepares the next repeater_mqtt release on top of upstream MeshCore firmware v1.15.0."
|
||||||
|
changes:
|
||||||
|
- type: changed
|
||||||
|
area: upstream
|
||||||
|
text: "Updated the repeater_mqtt firmware base to upstream MeshCore v1.15.0."
|
||||||
|
breaking_changes: []
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ int RegionMap::getTransportKeysFor(const RegionEntry& src, TransportKey dest[],
|
|||||||
_store->getAutoKeyFor(src.id, src.name, dest[0]);
|
_store->getAutoKeyFor(src.id, src.name, dest[0]);
|
||||||
num = 1;
|
num = 1;
|
||||||
} else { // new: implicit auto hashtag region
|
} else { // new: implicit auto hashtag region
|
||||||
char tmp[sizeof(src.name)];
|
char tmp[sizeof(src.name)+1];
|
||||||
tmp[0] = '#';
|
tmp[0] = '#';
|
||||||
strcpy(&tmp[1], src.name);
|
strcpy(&tmp[1], src.name);
|
||||||
_store->getAutoKeyFor(src.id, tmp, dest[0]);
|
_store->getAutoKeyFor(src.id, tmp, dest[0]);
|
||||||
|
|||||||
@@ -181,6 +181,13 @@ void SerialBLEInterface::begin(const char* prefix, char* name, uint32_t pin_code
|
|||||||
bleuart.begin();
|
bleuart.begin();
|
||||||
bleuart.setRxCallback(onBleUartRX);
|
bleuart.setRxCallback(onBleUartRX);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Register DFU on the main BLE stack so paired clients can discover it
|
||||||
|
// without switching the device into a separate OTA-only BLE mode first.
|
||||||
|
bledfu.setPermission(SECMODE_ENC_WITH_MITM, SECMODE_ENC_WITH_MITM);
|
||||||
|
bledfu.begin();
|
||||||
|
|
||||||
Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
|
Bluefruit.Advertising.addFlags(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
|
||||||
Bluefruit.Advertising.addTxPower();
|
Bluefruit.Advertising.addTxPower();
|
||||||
Bluefruit.Advertising.addService(bleuart);
|
Bluefruit.Advertising.addService(bleuart);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
class SerialBLEInterface : public BaseSerialInterface {
|
class SerialBLEInterface : public BaseSerialInterface {
|
||||||
|
BLEDfu bledfu;
|
||||||
BLEUart bleuart;
|
BLEUart bleuart;
|
||||||
bool _isEnabled;
|
bool _isEnabled;
|
||||||
bool _isDeviceConnected;
|
bool _isDeviceConnected;
|
||||||
|
|||||||
@@ -64,6 +64,25 @@ lib_deps =
|
|||||||
densaugeo/base64 @ ~1.4.0
|
densaugeo/base64 @ ~1.4.0
|
||||||
bakercp/CRC32 @ ^2.0.0
|
bakercp/CRC32 @ ^2.0.0
|
||||||
|
|
||||||
|
[env:Heltec_Wireless_Paper_companion_radio_usb]
|
||||||
|
extends = Heltec_Wireless_Paper_base
|
||||||
|
build_flags =
|
||||||
|
${Heltec_Wireless_Paper_base.build_flags}
|
||||||
|
-I examples/companion_radio/ui-new
|
||||||
|
-D MAX_CONTACTS=350
|
||||||
|
-D MAX_GROUP_CHANNELS=40
|
||||||
|
-D DISPLAY_CLASS=E213Display
|
||||||
|
-D OFFLINE_QUEUE_SIZE=256
|
||||||
|
build_src_filter = ${Heltec_Wireless_Paper_base.build_src_filter}
|
||||||
|
+<helpers/ui/E213Display.cpp>
|
||||||
|
+<helpers/esp32/*.cpp>
|
||||||
|
+<../examples/companion_radio/*.cpp>
|
||||||
|
+<../examples/companion_radio/ui-new/*.cpp>
|
||||||
|
lib_deps =
|
||||||
|
${Heltec_Wireless_Paper_base.lib_deps}
|
||||||
|
densaugeo/base64 @ ~1.4.0
|
||||||
|
bakercp/CRC32 @ ^2.0.0
|
||||||
|
|
||||||
[env:Heltec_Wireless_Paper_repeater]
|
[env:Heltec_Wireless_Paper_repeater]
|
||||||
extends = Heltec_Wireless_Paper_base
|
extends = Heltec_Wireless_Paper_base
|
||||||
build_flags =
|
build_flags =
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ build_flags =
|
|||||||
; -D MESH_DEBUG=1
|
; -D MESH_DEBUG=1
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${tlora_c6.lib_deps}
|
${tlora_c6.lib_deps}
|
||||||
; ${esp32_ota.lib_deps}
|
${esp32_ota.lib_deps}
|
||||||
|
|
||||||
[env:LilyGo_Tlora_C6_room_server_]
|
[env:LilyGo_Tlora_C6_room_server_]
|
||||||
extends = tlora_c6
|
extends = tlora_c6
|
||||||
@@ -63,7 +63,7 @@ build_flags =
|
|||||||
; -D MESH_DEBUG=1
|
; -D MESH_DEBUG=1
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${tlora_c6.lib_deps}
|
${tlora_c6.lib_deps}
|
||||||
; ${esp32_ota.lib_deps}
|
${esp32_ota.lib_deps}
|
||||||
|
|
||||||
[env:LilyGo_Tlora_C6_companion_radio_ble_]
|
[env:LilyGo_Tlora_C6_companion_radio_ble_]
|
||||||
extends = tlora_c6
|
extends = tlora_c6
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ extends = esp32_base
|
|||||||
board = seeed_xiao_esp32c3
|
board = seeed_xiao_esp32c3
|
||||||
build_flags =
|
build_flags =
|
||||||
${esp32_base.build_flags}
|
${esp32_base.build_flags}
|
||||||
${sensor_base.build_flags}
|
|
||||||
-UENV_INCLUDE_GPS
|
|
||||||
-UENV_INCLUDE_VL53L0X
|
|
||||||
-I variants/xiao_c3
|
-I variants/xiao_c3
|
||||||
-D ESP32_CPU_FREQ=80
|
-D ESP32_CPU_FREQ=80
|
||||||
-D PIN_VBAT_READ=D0
|
-D PIN_VBAT_READ=D0
|
||||||
@@ -29,7 +26,6 @@ build_src_filter = ${esp32_base.build_src_filter}
|
|||||||
+<helpers/sensors>
|
+<helpers/sensors>
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
${sensor_base.lib_deps}
|
|
||||||
|
|
||||||
[env:Xiao_C3_repeater]
|
[env:Xiao_C3_repeater]
|
||||||
extends = Xiao_esp32_C3
|
extends = Xiao_esp32_C3
|
||||||
@@ -37,6 +33,9 @@ build_src_filter = ${Xiao_esp32_C3.build_src_filter}
|
|||||||
+<../examples/simple_repeater/*.cpp>
|
+<../examples/simple_repeater/*.cpp>
|
||||||
build_flags =
|
build_flags =
|
||||||
${Xiao_esp32_C3.build_flags}
|
${Xiao_esp32_C3.build_flags}
|
||||||
|
${sensor_base.build_flags}
|
||||||
|
-UENV_INCLUDE_GPS
|
||||||
|
-UENV_INCLUDE_VL53L0X
|
||||||
-D ADVERT_NAME='"Xiao C3 Repeater"'
|
-D ADVERT_NAME='"Xiao C3 Repeater"'
|
||||||
-D ADVERT_LAT=0.0
|
-D ADVERT_LAT=0.0
|
||||||
-D ADVERT_LON=0.0
|
-D ADVERT_LON=0.0
|
||||||
@@ -46,6 +45,7 @@ build_flags =
|
|||||||
; -D MESH_DEBUG=1
|
; -D MESH_DEBUG=1
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${Xiao_esp32_C3.lib_deps}
|
${Xiao_esp32_C3.lib_deps}
|
||||||
|
${sensor_base.lib_deps}
|
||||||
${esp32_ota.lib_deps}
|
${esp32_ota.lib_deps}
|
||||||
bakercp/CRC32 @ ^2.0.0
|
bakercp/CRC32 @ ^2.0.0
|
||||||
|
|
||||||
@@ -55,6 +55,9 @@ build_src_filter = ${Xiao_esp32_C3.build_src_filter}
|
|||||||
+<../examples/simple_room_server/*.cpp>
|
+<../examples/simple_room_server/*.cpp>
|
||||||
build_flags =
|
build_flags =
|
||||||
${Xiao_esp32_C3.build_flags}
|
${Xiao_esp32_C3.build_flags}
|
||||||
|
${sensor_base.build_flags}
|
||||||
|
-UENV_INCLUDE_GPS
|
||||||
|
-UENV_INCLUDE_VL53L0X
|
||||||
-D ADVERT_NAME='"Xiao C3 Room"'
|
-D ADVERT_NAME='"Xiao C3 Room"'
|
||||||
-D ADVERT_LAT=0.0
|
-D ADVERT_LAT=0.0
|
||||||
-D ADVERT_LON=0.0
|
-D ADVERT_LON=0.0
|
||||||
@@ -64,6 +67,7 @@ build_flags =
|
|||||||
; -D MESH_DEBUG=1
|
; -D MESH_DEBUG=1
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${Xiao_esp32_C3.lib_deps}
|
${Xiao_esp32_C3.lib_deps}
|
||||||
|
${sensor_base.lib_deps}
|
||||||
${esp32_ota.lib_deps}
|
${esp32_ota.lib_deps}
|
||||||
bakercp/CRC32 @ ^2.0.0
|
bakercp/CRC32 @ ^2.0.0
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ build_flags =
|
|||||||
; -D MESH_DEBUG=1
|
; -D MESH_DEBUG=1
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${Xiao_C6.lib_deps}
|
${Xiao_C6.lib_deps}
|
||||||
; ${esp32_ota.lib_deps}
|
${esp32_ota.lib_deps}
|
||||||
|
|
||||||
[env:Xiao_C6_companion_radio_ble_]
|
[env:Xiao_C6_companion_radio_ble_]
|
||||||
extends = Xiao_C6
|
extends = Xiao_C6
|
||||||
@@ -163,7 +163,7 @@ build_flags =
|
|||||||
; -D MESH_DEBUG=1
|
; -D MESH_DEBUG=1
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${WHY2025_badge.lib_deps}
|
${WHY2025_badge.lib_deps}
|
||||||
; ${esp32_ota.lib_deps}
|
${esp32_ota.lib_deps}
|
||||||
|
|
||||||
[env:WHY2025_badge_companion_radio_ble_]
|
[env:WHY2025_badge_companion_radio_ble_]
|
||||||
extends = WHY2025_badge
|
extends = WHY2025_badge
|
||||||
|
|||||||
Verwijs in nieuw issue
Block a user