640 Commits
Author SHA1 Message Date
InvisibleSymbol 360b3b578d fix(rak4631): dont touch sx1262 power-enable pin
Upstream Zephyr DTS
[rak4631_nrf52840.dts:124](https://github.com/zephyrproject-rtos/zephyr/blob/c6f781a4988fbb5cc3420f74e36add5ef65dbb94/boards/rakwireless/rak4631/rak4631_nrf52840.dts#L124)
declares P1.05 as `rx-enable-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>`.
MeshCore treats the same pin as `SX126X_POWER_EN`
([variants/rak4631/variant.h:155](https://github.com/meshcore-dev/MeshCore/blob/1a7b3614a8439894714a58af55ab7f501e6bb928/variants/rak4631/variant.h#L155))
and only ever drives it HIGH (= module on,
[RAK4631Board.cpp:51](https://github.com/meshcore-dev/MeshCore/blob/1a7b3614a8439894714a58af55ab7f501e6bb928/variants/rak4631/RAK4631Board.cpp#L51)).
Our driver toggles it per direction at
[sx126x.c:474-475](https://github.com/zephyrproject-rtos/zephyr/blob/684c9e8f32e4373a21098559f748f06915f950c9/drivers/lora/native/sx126x/sx126x.c#L474-L475)
— RX state sets it electrically LOW.

This resulted in degraded rx performance.
2026-04-29 09:26:39 +02:00
liquidraver 51f7b5e7e4 do a full display reset after splashscreen 2026-04-29 09:16:18 +02:00
liquidraver 16ea239234 Merge pull request #18 from InvisibleSymbol/fix-rak4631-rx
fix(rak4631): dont touch sx1262 power-enable pin
2026-04-29 08:53:49 +02:00
InvisibleSymbol b1c358c574 fix(rak4631): dont touch sx1262 power-enable pin
Upstream Zephyr DTS
[rak4631_nrf52840.dts:124](https://github.com/zephyrproject-rtos/zephyr/blob/c6f781a4988fbb5cc3420f74e36add5ef65dbb94/boards/rakwireless/rak4631/rak4631_nrf52840.dts#L124)
declares P1.05 as `rx-enable-gpios = <&gpio1 5 GPIO_ACTIVE_LOW>`.
MeshCore treats the same pin as `SX126X_POWER_EN`
([variants/rak4631/variant.h:155](https://github.com/meshcore-dev/MeshCore/blob/1a7b3614a8439894714a58af55ab7f501e6bb928/variants/rak4631/variant.h#L155))
and only ever drives it HIGH (= module on,
[RAK4631Board.cpp:51](https://github.com/meshcore-dev/MeshCore/blob/1a7b3614a8439894714a58af55ab7f501e6bb928/variants/rak4631/RAK4631Board.cpp#L51)).
Our driver toggles it per direction at
[sx126x.c:474-475](https://github.com/zephyrproject-rtos/zephyr/blob/684c9e8f32e4373a21098559f748f06915f950c9/drivers/lora/native/sx126x/sx126x.c#L474-L475)
— RX state sets it electrically LOW.

This resulted in degraded rx performance.
2026-04-28 21:47:41 +02:00
liquidraver 067e53b474 fix RX duty cycling logic v20260428.134456 2026-04-28 15:31:03 +02:00
liquidraver 1092c49a7d port vanilla duty cycling logic v20260428.125718 2026-04-28 14:43:12 +02:00
liquidraver b57df41753 micro-tweak: skip APC math when APC is off 2026-04-28 14:18:10 +02:00
liquidraver e18d017b2c refactor repeater prefs changes v20260428.120305 2026-04-28 13:49:08 +02:00
liquidraver bf9ad0ef40 tune delay knobs 2026-04-28 13:49:08 +02:00
liquidraver 7ecf647af8 runtime guard agc reset if rx duty cycle is enabled 2026-04-28 13:49:08 +02:00
liquidraver 85c60e613b make our sx driver more aligned with radiolib's logics 2026-04-28 13:49:08 +02:00
liquidraver c9b6d6bded disable GPS cycle until reboot if no GNSS messages present 2026-04-28 13:49:08 +02:00
liquidraver e30644d01d fix repeater prefs saving 2026-04-28 13:49:08 +02:00
liquidraver e7219893c6 fix repeater prefs saving v20260427.083554 2026-04-27 10:15:37 +02:00
liquidraver 8765286119 fix CLI radio settings applied immediately instead after reboot 2026-04-27 09:09:51 +02:00
liquidraver bab513a896 update readme 2026-04-26 21:47:20 +02:00
liquidraver d5f260c1c9 Fix ESP OTA functions v20260425.131224 2026-04-25 14:52:45 +02:00
liquidraver fb25554dcb fix stack overflow on ESP Wifi AP used for OTA 2026-04-25 13:09:58 +02:00
liquidraver 83fca69782 remove hardcoded max TX, set optional defaults instead v20260424.210707 2026-04-24 22:46:03 +02:00
liquidraver 57aab5f522 GPS start fix when requesting telemetry
APC disabled by default, but compiled in
2026-04-24 22:32:05 +02:00
liquidraver 5015827c02 Fix repeater tempradio not restoring settings bug v20260424.124550 2026-04-24 14:30:28 +02:00
liquidraver 37eb87efd6 repeater housekeeping bugfix 2026-04-24 14:30:07 +02:00
liquidraver a6764820d3 repeater housekeeping bugfix v20260424.103845 2026-04-24 12:23:15 +02:00
liquidraver 1dde69c653 add t-echo board
fix e-ink displays
fix one-button confirmation bug (eg shutdown)
v20260424.083622
2026-04-24 10:10:58 +02:00
liquidraver 235890407e update readme 2026-04-23 09:30:59 +02:00
liquidraver a5e5fcbb74 fix 0,0 lat/lon save to prefs as valid position, sorry people on a boat off the coast of Ghana with a very precise GPS hardware 2026-04-23 08:23:01 +02:00
liquidraver d03deda313 port adc.multiplier command 2026-04-22 10:49:41 +02:00
liquidraver de4bcd9a52 clear first_fix_acquired on gps off, increase timeout to 120 sec 2026-04-21 14:41:56 +02:00
liquidraver a3244e2dc2 Three driver fixes for RX duty cycle, all applied to the existing patch
stolen from Zephyr main:

  1. Issue StopTimerOnPreamble=1 before SetRxDutyCycle so the chip's
     timer is not reset on every preamble detect (per §13.1 of the
     datasheet). Without this, duty cycle effectively never sleeps in
     noisy RF and current draw spikes.
  2. On IRQ_RX_TX_TIMEOUT during duty-cycle RX, re-arm via
     sx126x_restart_rx() instead of falling through to set_sleep().
     The old path silently killed duty cycle after the first preamble
     false-positive.
  3. On recv_duty_cycle(NULL) cancel, wake the radio before issuing
     SetStandby — BUSY stays asserted during the sleep phase and the
     standby command was being dropped.

Also adds a dc_timeout_restarts atomic counter incremented on the Fix 2
path, exposed end-to-end: sx126x_ext.h accessors → LoRaRadioBase vtable
→ SX126xRadio override → CommonCLICallbacks → RepeaterMesh. Query via
`get dc.restarts` on the repeater CLI; cleared by `clear stats`. High
values indicate a noisy environment or a too-loose preamble threshold.

(+increase ESP BT stack because future zephyr pin advance will trip that mine)
v20260420.124516
2026-04-20 13:36:45 +02:00
liquidraver f685f6c095 Merge pull request #15 from jakobmn/thinknode-m1-align-target-config
Fix red led polarity and update ThinkNode M1 target to match datasheet
v20260419.090733
2026-04-19 10:41:18 +02:00
liquidraver 78561036d0 bump version to match vanilla 2026-04-19 10:16:59 +02:00
liquidraver 7876ae79c3 make CAD retry jittery, sync prefs load to companion-style 2026-04-18 22:21:57 +02:00
liquidraver 3168205a19 Merge pull request #13 from 446564/repeater-prefs
load radio settings from prefs for repeaters
2026-04-18 20:54:23 +02:00
jakobmn 5d0b66bc4f Update ThinkNode M1 target to match datasheet
- only two leds, red and blue
 - fix pin definition and polarity for leds
 - remove unmapped pins
 - swap buttons, so they match datasheet and marking on buttons
2026-04-18 15:47:15 +02:00
Enot (ded) Skelly a3e47b93cf load radio settings from prefs for repeaters 2026-04-17 13:26:11 -07:00
liquidraver d2cec84100 sync with vanilla dev v20260417.115705 2026-04-17 13:21:30 +02:00
liquidraver ba4b86752d acw: airtime-scale jitter caps, companion surroundings awareness
- flood retransmit jitter now capped at min(2000ms, 6·airtime) instead of
  fixed 2000ms — spreads tighter at SF7, unchanged at SF8
- reactive per-dupe backoff cap now min(2000ms, 12·airtime), keeps
  semantic of "push past ~12 relay slots"
- contention ring 16 → 24 for 50-neighbor hilltops
- companions passively track heard floods (warms EMA without forwarding)
  and spread their own TX by up to min(1000ms, 3·airtime), hopefully
  fixing repeaters missing companion's first transmission

config cleanup:
- move BLE TX buffer bumps (ACL_TX=12 etc.) from zephcore_common.conf to
  esp32_common.conf — the Espressif blob needs them, nRF doesn't, and
  the bumps were overflowing nRF52840 RAM
- remove CONFIG_ZEPHCORE_MAX_CONTACTS=510 overrides from 5 nRF52840
  companion boards; Kconfig default of 350 fits with comfortable margin
  (wio prod: 91% → 79% RAM)
2026-04-17 10:24:12 +02:00
liquidraver cba81af196 heltec v3/v4 oled&button changes 2026-04-16 13:40:30 +02:00
liquidraver e71c3894a2 enable bluetooth privacy on esp32 to counter ios/esp bug
android on official app needs a manual BT bond
2026-04-16 13:02:12 +02:00
liquidraver 54eebee9e8 remove unnecessary writes on nRF 2026-04-16 11:10:07 +02:00
liquidraver 66b064ab02 I HATE BLUETOOTH 2026-04-16 10:31:11 +02:00
liquidraver 897878307d Revert "rak ADC tuning"
This reverts commit 5369e5d3d8.
2026-04-16 09:35:09 +02:00
liquidraver be38b8889f west update to 4.4.0rc 2026-04-15 10:04:40 +02:00
liquidraver 5369e5d3d8 rak ADC tuning v20260414.131646 2026-04-14 14:59:20 +02:00
liquidraver 30c0cba4c9 xiao nrf ADC tuning 2026-04-14 14:38:00 +02:00
liquidraver 706d723d2b xiao nrf UART log backend 2026-04-14 14:04:16 +02:00
liquidraver 3c2ba020c8 Add simple xiao nrf support 2026-04-14 13:29:42 +02:00
liquidraver 26eb4a3729 Add automatic release building by stphnrdmr
First release, no changelog for you!
Thanks stphnrdmr!
2026-04-14 12:13:21 +02:00
liquidraver e1c04113ca update default prefs 2026-04-14 12:07:52 +02:00
Stephan Rodemeier d61a2c3437 Add releases via github actions
This adds automatic builds via Github Actions. A new release will be
created when a new commit is pushed to the "master" branch. The
description for the release will be taken from the latest commit, in the
case of a merged pull request that will be the merge commit.

To add new boards for building, extend the arrays in the build.sh script.
To start, I included all boards from `supported_boards.md`.
2026-04-14 11:17:09 +02:00