Commit Graph
5219 Commits
Author SHA1 Message Date
Liam Cottle 19ebd8c795 Merge pull request #2480 from KPrivitt/dev
Incorrect time_t TypeDef used in RAK12035_SoilMoisture
2026-05-06 17:46:57 +12:00
Kevin Le 517d3ed643 Added isReadBusy for NRF52 BLE 2026-05-06 12:40:52 +07:00
Kevin Le eac4f7201e Commented NRF52_POWER_MANAGEMENT and added PowerSaving BLE companions 2026-05-06 12:38:22 +07:00
ripplebiz f9ddd9da72 Merge pull request #2445 from kizniche/update-docs-txdelay-rxdelay
Docs: Add explanatory notes for txdelay, direct.txdelay, and rxdelay
2026-05-06 14:37:36 +10:00
ripplebiz 00afb06768 Merge pull request #2475 from uwl-cpe-2025/fix/ST7789-reset-timing
Do not perform redundant reset on ST7789 displays
2026-05-06 14:32:30 +10:00
Kenneth Privitt 235706a22a Incorrect time_t TypeDef in RAK12035_SoilMoisture 2026-05-05 11:20:36 -07:00
Josiah VanderZee e56c1b3d58 Do not perform redundant reset on ST7789 displays
The `::init` method in the Adafruit ST7789 library is responsible to
initialize the device. This includes performing a reset, which can be
found in the Adafruit source for `Adafruit_SPITFT`.

Before this change, MeshCore performed its own ST7789 display reset
sequence, which consisted of three steps.

* Pull reset low
* Wait 10ms
* Pull reset high

Importantly, there was no fixed delay after pulling reset high. The
ST7789 driver requires a delay (T<sub>RT</sub>) of 5ms in Sleep In Mode
and 120ms in Sleep Out Mode before it will properly receive commands.
When `Adafruit_SPITFT` resets the device after MeshCore has already
reset it, the mandatory time may not have elapsed, leading to strange
behavior. In the author's case, this issue caused the initial
`fillScreen` to fail, such that the display showed an uninitialized
framebuffer.

This removes the MeshCore delay, leaving the responsibility of reset to
`Adafruit_SPITFT`, where they have the correct delays in place with
extra safety margin. The change was briefly tested by Josiah VanderZee
and Ben Zignego on a custom hardware build using an nRF52840 Dongle and
an Adafruit 4311 TFT display. The user button seemed to behave
strangely, but the display looked correct.
2026-05-04 17:01:39 -05:00
Kevin Le 7f02cbe80b Delayed sleep for BLE companions if BLE read is busy. Reduced sleep period from 50 sticks to 10 sticks 2026-05-04 22:04:11 +07:00
agessaman 78e1500ac9 feat(mqtt): add T-LoRa V2.1-1.6 environments for MQTT observer functionality
Introduced new PlatformIO environments for the LilyGo T-LoRa V2.1-1.6 board, including `LilyGo_TLora_V2_1_1_6_repeater_observer_mqtt` and `LilyGo_TLora_V2_1_1_6_room_server_observer_mqtt`. These environments optimize flash usage by omitting the `sensor_base` and include specific build flags and dependencies for enhanced MQTT capabilities. Updated documentation to reflect changes in partition table handling and NVS settings during firmware updates.
2026-05-02 09:05:26 -07:00
Liam Cottle e727fd543b Merge pull request #2462 from meshcore-dev/target-dup-cleanup
Refactor: removed duplicated target code
2026-05-02 17:21:51 +12:00
Nick Le Mouton c4137e78d0 Add stddef.h 2026-05-02 17:12:03 +12:00
Liam Cottle 679fb9c0ab Merge pull request #2460 from liamcottle/ui/startup-mute
Don't play startup tune if buzzer pref disabled
2026-05-02 02:24:37 +12:00
liamcottle 5a509752a7 don't play startup tune if buzzer pref disabled 2026-05-02 01:47:35 +12:00
jirogit f224a325e6 fix: enable radio.rxgain CLI command for LR1110 (T1000-E)
USE_LR1110 was missing from the preprocessor guard in CommonCLI.cpp,
causing both get and set to fail silently on T1000-E:

- get radio.rxgain returned the full radio config string (fell through
  to the memcmp("radio", 5) branch)
- set radio.rxgain returned "unknown config" (no branch matched)

Fix: add -D USE_LR1110 to variants/t1000-e/platformio.ini and include
USE_LR1110 in the #if guard on both get and set branches.

CustomLR1110Wrapper already implements setRxBoostedGainMode() and
getRxBoostedGainMode() via the RadioLibWrapper virtual interface,
so no radio-layer changes are required.

Tested on T1000-E: get/set/persist all confirmed working.
2026-05-01 00:31:31 -07:00
jirogit 8e787f6ee4 fix(RegionMap): save() returns actual write success instead of hardcoded true 2026-05-01 00:06:46 -07:00
Scott Powell 0a8a0a4904 * Refactor: removed duplicated radio_rng_seed(), radio_set_params(), radio_set_tx_power() 2026-05-01 14:47:07 +10:00
agessaman 9f8f2d052e fix(mqtt): update coloradomesh preset with proper details 2026-04-30 19:53:52 -07:00
Liam Cottle ccda0a99d8 Merge pull request #925 from mtlynch/unit-tests
Add unit tests for Utils::toHex
2026-05-01 14:49:45 +12:00
Liam Cottle 9b1ca6b10b Merge pull request #2456 from Avi0n/docs/fix-typos
fix typos in docs
2026-05-01 14:16:51 +12:00
Avi0n 0be082b5f9 fix typos 2026-04-30 14:21:26 -07:00
Liam Cottle c7c400ed5d Merge pull request #2428 from recrof/minewsemi-refactor
minewsemi: refactor platformio.ini
2026-05-01 00:56:32 +12:00
Rastislav Vysoky d7e3a9ddba Merge branch 'dev' into minewsemi-refactor 2026-04-30 14:48:49 +02:00
Liam Cottle ffbf73dc5c Merge pull request #2432 from recrof/kiss-radio-everywhere
kiss radio: added stm32 support + envs in platformio.ini
2026-05-01 00:36:46 +12:00
Liam Cottle 5c651b35a0 Merge pull request #1954 from OverkillFPV/lora-longer-preamble
Lora longer preamble
2026-04-30 22:12:04 +12:00
Liam Cottle bd90475d72 Merge pull request #2448 from weebl2000/bump-sensor-version
bump simple_sensor version to v1.15.0
2026-04-30 21:43:06 +12:00
Liam Cottle 9ce6b49cd3 Merge pull request #2430 from oltaco/use-forked-adafruit-nrf52
Use internal fork of Adafruit nRF52 Arduino
2026-04-30 21:42:24 +12:00
liamcottle 2b0f74a7e9 add comments 2026-04-30 21:36:04 +12:00
Wessel Nieboer c5bf23f4b1 bump simple_sensor version to v1.15.0 2026-04-30 11:12:31 +02:00
Liam Cottle daa50e9469 Merge pull request #2426 from recrof/nano-g2-rework
make g2 more in line with other variants
2026-04-30 16:57:58 +12:00
Liam Cottle 2522492cd7 Merge pull request #2436 from chrisdavis2110/rak3401-comp-ana-button
feat: Add support for PIN_USER_BTN_ANA on rak3401 companion usb and companion ble envs
2026-04-30 16:57:00 +12:00
Kyle 293a8a9a84 docs: add explanatory notes for txdelay, direct.txdelay, and rxdelay CLI commands 2026-04-29 14:10:13 -04:00
Kyle db8a002c0e fix: enforce upper bounds for rxdelay, txdelay, and direct.txdelay in CLI 2026-04-29 13:26:26 -04:00
Liam Cottle 2f6ca731c8 Merge pull request #2439 from Quency-D/fix-lna
Heltec boards have LNA disabled by default.
2026-04-30 02:35:34 +12:00
Quency-D 696aae6ed1 Heltec boards have LNA disabled by default. 2026-04-29 16:20:21 +08:00
chrisdavis2110 5fbd473298 added PIN_GPS_EN=-1 to rak3401 companion usb 2026-04-28 21:59:10 -07:00
chrisdavis2110 0265851621 added PIN_USER_BTN_ANA for rak3401 companion usb and companion ble 2026-04-28 21:26:56 -07:00
hank cb521b4444 handleLoginReq: layer ACL between admin pw and guest/blank pw
Reorder login auth so that, in priority:

  1. Admin password match -> ADMIN (overrides ACL — a region_mgr or
     other ACL'd client who knows the admin pw can still upgrade).
  2. Sender pubkey is in the ACL -> use the stored permissions
     (no password required; pubkey is itself an identity assertion).
  3. Guest password match (or blank pw when guest pw is unset) -> GUEST.
  4. Otherwise -> reject.

Previously the ACL was consulted only when `data[0] == 0` (blank pw),
so a non-blank password would skip the ACL entirely and fall through
to the password block. Phones that sent any non-empty password field
— even a stale one — would never see their ACL-granted role; they'd
either be rejected or assigned the role implied by the password match.

Implementation is a single-line change: gate the ACL lookup on "the
admin pw did NOT match". When admin matches, we skip the lookup so
the existing password block sets ADMIN unconditionally (the right
behavior for the upgrade case). When admin does not match, the ACL
takes over; only on an ACL miss do we fall through to guest/reject.
2026-04-28 21:06:47 -07:00
hank 65a28582dd Add PERM_ACL_REGION_MGR role for delegated region management
Introduces a fourth ACL role (value 4) that can manage the region map
without full admin privileges. The role is intended for trusted users
who curate regions on a repeater but should not have access to general
admin commands.

ClientACL:
  - Widen PERM_ACL_ROLE_MASK from 2 to 3 bits so the new value fits.
  - Add PERM_ACL_REGION_MGR and ClientInfo::isRegionMgr().
  - Exempt region_mgr entries from least-recently-active eviction in
    putClient(), same as admins.

simple_repeater:
  - Phones may still gate UI on the legacy is_admin byte (reply_data[6]),
    so report region_mgr as admin there. Without this, the phone CLI
    falls back to guest view.
  - Allow region_mgr to send TXT_MSG CLI commands. handleCommand()
    gates non-whitelisted commands with "Err - not permitted". The
    whitelist covers region.* (read+write) plus a small set of
    read-only queries (get, ver, board, neighbors, clock, sensor
    get/list).
  - Pass the ClientInfo* through to handleCommand and drop the
    redundant sender_timestamp parameter (derived from
    sender->last_timestamp; NULL means Serial CLI).
  - Use ~PERM_ACL_ROLE_MASK instead of ~0x03 when clearing role bits
    on login, so the wider mask is honored.
2026-04-28 20:54:11 -07:00
agessaman 0b05aedecd feat(platformio): enable PSRAM support for TBeam Supreme SX1262 variant 2026-04-28 08:00:28 -07:00
agessaman 457edf69af feat(mqtt): add new ColoradoMesh preset to MQTT presets
Increased the total number of built-in MQTT presets from 12 to 13 by adding the ColoradoMesh preset. This addition enhances the MQTT bridge's capabilities for connecting to more networks.
2026-04-28 07:41:56 -07:00
Rastislav Vysoky 5beef490a0 add kiss radio env to most of the variants 2026-04-28 15:09:25 +02:00
Rastislav Vysoky 66009069cd standardize the minewsemi variant 2026-04-28 13:53:35 +02:00
taco f7d8fa3420 use internal fork of Adafruit nRF52 Arduino 2026-04-28 21:46:14 +10:00
taco 04b69e86be revert bluefruit patch
in preparation to switch to using our own fork of Adafruit NRF52 Arduino with the patch included
2026-04-28 21:39:34 +10:00
Liam Cottle d8f3d59d82 Merge pull request #2427 from recrof/tabs-to-spaces
replace all intendation tabs to spaces in pio ini files
2026-04-28 22:39:31 +12:00
Rastislav Vysoky b963681830 replace all intendation tabs to spaces in pio ini files 2026-04-28 12:37:30 +02:00
Rastislav Vysoky 12d9cc3752 make g2 more in line with other variants 2026-04-28 12:24:45 +02:00
ripplebiz cb81d34b1a Merge pull request #2424 from liamcottle/ui/website
Add MeshCore website to splash screen
2026-04-28 19:12:00 +10:00
liamcottle e111f71064 added website to sensor splash screen 2026-04-28 20:40:13 +12:00
liamcottle 3cd40902b3 added website to room server splash screen 2026-04-28 20:39:07 +12:00