Commit Graph
485 Commits
Author SHA1 Message Date
liquidraver eb055e2f6b Merge pull request #52 from spinkham/fix-set-freq-clobber
fix(cli): persist 'set freq' across a later savePrefs()
2026-07-13 14:23:42 +02:00
liquidraver 432336867b add cad.busycap knob for hilltop repeaters v20260713.085741 2026-07-13 10:29:50 +02:00
liquidraver 9eb33e27dc cad, meshamerica flasher and other polishes 2026-07-13 09:00:14 +02:00
liquidraver 0c6e2a7058 release notes update v20260712.191934 2026-07-12 20:53:59 +02:00
liquidraver 51a807a957 vcontact polishing 2026-07-12 15:53:00 +02:00
liquidraver 722ca66cf0 fix build warnings 2026-07-12 14:35:54 +02:00
liquidraver 9d204db5c7 bump to 1.16.5 2026-07-12 14:23:37 +02:00
liquidraver a320a7646d SmartCAD p2 2026-07-12 14:18:07 +02:00
liquidraver dc1239537e SmartCAD p1 2026-07-12 10:48:37 +02:00
liquidraver 0d70256d2e vcontact p2 2026-07-11 21:21:47 +02:00
liquidraver 0e7a9b7285 vcontact p1 2026-07-11 16:28:27 +02:00
liquidraver 748e7917e2 sensecap solar led fix 2026-07-11 15:42:39 +02:00
liquidraver 0b405168d7 bump west 2026-07-11 15:21:08 +02:00
liquidraver 56e41284e1 repeater-observer hybrid fixup 2026-07-10 22:43:26 +02:00
liquidraver 983e7a198c t-impulse display fix 2026-07-10 21:13:04 +02:00
liquidraver 3566bf39e9 radio driver fixes/enhancements 2026-07-10 18:50:54 +02:00
liquidraver 2232e579c2 t-impulse screen fix 2026-07-10 09:36:52 +02:00
liquidraver b89005ab68 update meshamerica flashers docs 2026-07-09 22:20:08 +02:00
liquidraver 603f0e15f6 refactor all ESP partitioning 2026-07-09 22:16:54 +02:00
liquidraver ce69a95e00 fix lr1110 CRC bug 2026-07-09 21:55:42 +02:00
liquidraver 8e4ca50747 meshamerica flasher v1 2026-07-09 21:45:58 +02:00
Steve PinkhamandClaude Opus 4.8 8cde6d83f3 fix(cli): persist 'set freq' across a later savePrefs()
The `set freq <mhz>` handler saved the new frequency to prefs, then
reverted _prefs->freq to the old value in RAM to keep the running radio
on the old params until reboot. But _prefs is the source of truth for
every savePrefs(), so:
  - `get freq` / `get radio` reported the old value right after a
    successful `set freq`;
  - the next savePrefs() from any other `set` command (e.g. `set rxduty`)
    rewrote the old freq back over the persisted new one, losing the
    change on reboot.

Mirror the `set radio` handler: keep _prefs->freq = f and freeze the
running radio on the old freq via freezeRadioParams() instead of
reverting the pref. Semantics unchanged (applies at reboot; the live
radio stays on the old freq until then); _prefs now correctly retains
the new value so `get` reflects it and later saves can't clobber it.
freezeRadioParams() is implemented for the Repeater and Room Server
roles; the CommonCLI base default is a no-op, so other roles are
unaffected.

Verified on Seeed XIAO MG24 + Wio-SX1262 (Repeater role, built from
release v20260704.220543 + this patch): `set freq 903.0` is retained by
`get freq` immediately and survives an intervening `set rxduty` + reboot.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 17:19:00 -04:00
liquidraver 4c4218a6b5 add -update builds for OTA/manual updates 2026-07-08 21:35:54 +02:00
liquidraver 14d4d54c72 both button press locks device in joystick ui 2026-07-08 20:43:01 +02:00
liquidraver bd2ac4d46c ui refactor v1 2026-07-08 20:36:48 +02:00
liquidraver 67175d2bb2 CAD docs update 2026-07-08 15:25:58 +02:00
liquidraver a03856cb34 gps cli commands fix and e-ink sats count clear 2026-07-08 09:16:47 +02:00
liquidraver d081535a80 tiny ui v1 2026-07-07 23:14:22 +02:00
liquidraver 4bcefbcda7 mirror PR #51 onto V4.3 2026-07-07 22:36:26 +02:00
liquidraverandClaude Opus 4.8 4246f94ae1 Merge pull request #51 from etienn01/fix-heltec-v4-display-and-boot
Fix Heltec V4 display (Vext PMOS polarity) and Xtensa TX-wait stack overflow.

Conflict in heltec_wifi_lora32_v4_procpu.dts resolved: kept the corrected
BatADC header line from 247ca65 (GPIO1 = ADC1_CH0 / &adc0, GPIO37 active-HIGH)
and took the PR Vext change (GPIO36 active-LOW PMOS rail switch).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 22:18:09 +02:00
liquidraver 247ca655a8 fix heltec v3/4/4.3 0% battery 2026-07-07 21:25:59 +02:00
Étienne Fesser c4fb9c0638 Fix TX wait thread stack overflow on Xtensa (boot freeze)
TX_WAIT_THREAD_STACK_SIZE was 1024 bytes, shared by every radio
adapter. On Xtensa (all ESP32/S3 boards) the windowed ABI needs ~3x
the stack of Cortex-M for the same code — Zephyr's own Kconfig
defaults reflect this (IDLE_STACK_SIZE: 1024 if XTENSA vs 320 ARM).

Measured peak usage on Heltec V4 (immediate-mode logging, full TX
cycle including startReceive/lora_config): 1252 bytes — already past
the old 1024 limit. The overflow corrupts the exception frame and
parks CPU0 in _DoubleExceptionVector (LoadProhibited @0x2c), a silent
total freeze at boot. Confirmed via the S3 built-in USB-JTAG:
current thread at crash = lora_tx_wait.

2048 gives ~39% headroom over the measured worst case.
2026-07-06 19:26:17 +02:00
Étienne Fesser 2a26e830e2 Fix Heltec V4 Vext polarity (OLED never powered)
The V4's Vext rail switch is a PMOS: GPIO36 LOW turns the rail ON.
The DTS drove it ACTIVE_HIGH, leaving the OLED (and its I2C pull-ups)
unpowered — the rail floats at ~1.6V and SSD1306 init always fails
with -ETIMEDOUT.

Verified on hardware with a multimeter: GPIO36 high = 1.6V on Vext,
GPIO36 low = 3.3V, display works.

This matches what the working Arduino MeshCore firmware actually does
with the pin, despite its PIN_VEXT_EN_ACTIVE=HIGH define:
RefCountedDigitalPin::begin() initialises the pin to its *inactive*
level (LOW), and the V4 OLED build constructs the display with a NULL
periph_power (variants/heltec_v4/target.cpp) so nothing ever claims
it HIGH. GPIO36 is therefore driven LOW continuously under Arduino —
the exact state this fix reproduces via an ACTIVE_LOW boot-on
regulator.
2026-07-06 19:26:17 +02:00
liquidraver eff498b64c Merge pull request #48 from etienn01/fix-t096-display-offset
Fix ST7735S display offset
v20260704.220543
2026-07-04 23:46:53 +02:00
liquidraver f58f7de8f5 timesync cosmetics and uptime back to UI v20260704.214520 2026-07-04 23:12:41 +02:00
Étienne Fesser b62507f68b Fix Heltec Wireless Tracker v1/v2 display offset 2026-07-04 22:30:43 +02:00
Étienne Fesser 8603bd25bb Fix T096 display offset 2026-07-04 22:20:25 +02:00
liquidraver 000f6ed494 fix some text in docs and comments 2026-07-04 16:47:46 +02:00
liquidraver 2f370285d0 fix build warning 2026-07-04 16:18:09 +02:00
liquidraver 12bdafd297 add timpulse build v20260704.142246 2026-07-04 15:53:22 +02:00
liquidraver 3c4c548c8e add lilygo t-impulse plus 2026-07-04 15:47:27 +02:00
liquidraver c1bba3c609 move with zephyr 2026-07-04 14:19:25 +02:00
liquidraver 38b8ff07cf rework refresh display 2026-07-04 14:15:31 +02:00
liquidraver 74aa3810ee Merge pull request #47 from matthew73210/master
Reworked the screen pages
2026-07-04 12:51:15 +02:00
liquidraver 6057670171 sync with vanilla dev 2026-07-04 12:50:37 +02:00
liquidraver c36aec98b0 unify hold gate for timesync 2026-07-04 12:05:31 +02:00
liquidraver fe14c73f52 bump version 2026-07-04 11:55:24 +02:00
liquidraver 7c4199c8bf thinknode m6 gps & regulator fix 2026-07-04 11:49:16 +02:00
liquidraver e12f5fce8c heltec v4 battery reading fix 2026-07-04 11:26:01 +02:00
liquidraver f8f62cd65b drop serial on reboot for ESP 2026-07-04 11:21:10 +02:00