Commit Graph
209 Commits
Author SHA1 Message Date
liquidraver 9a1569c511 make rx duty cycle tuning more easy 2026-05-04 15:09:26 +02:00
liquidraver 1a956aa86a remove hot path RX, re-done the math, solves nothing, eats battery v20260502.112307 2026-05-02 12:13:29 +02:00
liquidraver 9282ac8c9c stay in full RX after TX for 3 seconds
agc reset on every lora_recv_duty_cycle entry
v20260501.191026
2026-05-01 20:46:12 +02:00
liquidraver 624fc3306c tune duty cycling 2026-05-01 08:58:55 +02:00
liquidraver a81f27aea4 implement "isradioready" for early returns in rx duty cycling 2026-04-30 21:54:59 +02:00
liquidraver 7c31045bd4 fix hang near noisefloorcalibrate 2026-04-30 21:35:06 +02:00
liquidraver 961fc1ec80 sx1262 driver fixes
-Removed broken §15.3 implicit-header workaround (wrong addresses, wrong bit, wrong condition)
-Initialize data->rx_boost_enabled from config->rx_boosted (DTS) instead of hard-coded false
-Re-apply RX gain after the first SetRx in lora_recv_async to match restart_rx / recv_duty_cycle
-Re-issue CalibrateImage(operating_freq) after Calibrate(ALL) to keep image-rejection band correct on EU868 / 433 MHz / 779 MHz
-rx_cb_gen converted from uint32_t to atomic_t — atomic_set/get/inc at all 13 sites; local snapshot is now atomic_val_t
2026-04-30 21:18:50 +02:00
liquidraver 8a7dacf55d increase sx1262 power to 140mA 2026-04-30 20:52:21 +02:00
liquidraver f947b6b5b1 increase preamble like vanilla v20260430.112448 2026-04-30 12:58:33 +02:00
liquidraver 9938d0e6ca fix a race condition in sx driver 2026-04-30 12:56:42 +02:00
liquidraver e930d6cc9c more small security fixes 2026-04-30 09:53:03 +02:00
liquidraver 62232bf609 small ble fixes 2026-04-30 09:23:56 +02:00
liquidraver 0e01fb2bb0 small security fix 2026-04-29 21:01:01 +02:00
liquidraver 5dc07d78ba force unscoped send on magic scope word: "none" even if there is a default scope 2026-04-29 13:17:04 +02:00
liquidraver b84830b3b3 (greatly) improve our BLE v20260429.104549 2026-04-29 12:09:21 +02:00
liquidraver 4506280162 fix(sx126x): recover and re-arm duty-cycle RX after BUSY timeout 2026-04-29 11:11:32 +02:00
liquidraver c187dac4b4 fix(sx126x): honor tx-enable-gpios when dio2-tx-enable is set 2026-04-29 10:40:13 +02:00
liquidraver 3da236adb2 Merge branch 'dev' of https://github.com/liquidraver/zephcore into dev 2026-04-29 09:26:49 +02:00
liquidraver 0f1fa8f185 do a full display reset after splashscreen 2026-04-29 09:26:39 +02:00
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