Commit Graph
250 Commits
Author SHA1 Message Date
liquidraver 251269d102 heltec v4/v4.3: swap gps uart to tx=38 rx=39 (arduino setPins is rx-first) 2026-09-19 22:03:09 +02:00
liquidraver 05e48fab01 release notes 1.17.5: gps fixes, lr1110 dc, zephyr main, new boards, also-list 2026-09-19 21:59:33 +02:00
liquidraver fb6a303678 ship heltec v4-r8: build.sh, mesh america catalog (folds into heltec v4 tile), trim board docs, display.rotate list 2026-09-19 21:07:39 +02:00
liquidraver c5ab279c32 Merge pull request #93 from ptr727/heltec-wifi-lora32-v4-r8
Add the Heltec WiFi LoRa 32 V4-R8 board
2026-09-19 20:58:43 +02:00
liquidraver 09d95b727b gps: assert reset/resetb across System OFF, declare t1000_e RESETB active-low 2026-09-19 20:57:46 +02:00
liquidraver 60ab598fc3 Merge pull request #92 from ptr727/gps-enable-logical-gpio
Drive every GPS control line with logical GPIO semantics
2026-09-19 20:51:22 +02:00
liquidraver f6d637c484 sysworkq 4K platform-wide, c3 heap 44K, native-linux mapped-partition, sx126x 0003 step B reduction 2026-09-19 19:50:18 +02:00
Pieter ViljoenandClaude Opus 5 bb84f54191 drive every gps control line with logical gpio semantics
gps_power_control() mixed the two GPIO conventions on the same pins. It
configured lines with GPIO_OUTPUT_HIGH / GPIO_OUTPUT_LOW, which Zephyr defines
as physical levels, then drove the same lines with gpio_pin_set_dt(), which is
logical. On a line declared GPIO_ACTIVE_LOW those are opposite, so the first
call asserted the reverse of every call after it.

Two lines are actually broken by this.

gps-enable, on the boards declaring it active-low. Most of them reach the block
named for the T1000-E rather than the "simple boards" path, because
HAS_T1000_GPS_CONTROL is (HAS_GPS_VRTC || HAS_GPS_RESET || HAS_GPS_SLEEP) and a
bare gps-reset alias is enough to route a board there. That block drives the
enable physical HIGH unconditionally on every power-on, and power-off lands on
physical HIGH too, so the line is de-asserted in both states and the module is
never powered at all.

gps-reset, on the six boards declaring it active-low: heltec_t096, heltec_t1,
heltec_t114, thinknode_m1, heltec_wifi_lora32_v4 and _v43. The documented
power-on sequence is "assert reset, hold 10 ms, release", written as
GPIO_OUTPUT_HIGH then gpio_pin_set_dt(0). On an active-low line both of those
are physical HIGH, so the pulse never asserts and the module starts
uncontrolled -- the condition the power-off comment says this code prevents.
heltec_wifi_lora32_v4's overlay documented the no-op rather than fixing it;
that comment is updated here, with _v43's copy.

vrtc, sleep, rtcint and resetb are converted too. Every board declaring them is
active-high, so those change nothing today; they are converted so the root
cause does not survive in four more places.

Converting is safe by construction. gpio_pin_configure() flips the init level
only when both GPIO_OUTPUT_INIT_LOGICAL and GPIO_ACTIVE_LOW are set, then
strips INIT_LOGICAL, so on an active-high pin GPIO_OUTPUT_ACTIVE produces a
flags word byte-identical to GPIO_OUTPUT_HIGH. Behaviour changes only where a
line is declared active-low, which is only where it is currently wrong.

gps_power_off_for_shutdown() had the same inversion and it mattered most there:
on the active-low boards the old physical LOW asserted the enable, powering the
GPS on as the device entered System OFF rather than powering it down. Its
header comment also described a narrower scope than the function has, naming
only the power enable where it configures vrtc, reset, sleep, rtcint and
resetb as well; that is corrected here.

Comments that described a level this change now drives logically are reworded
to asserted/de-asserted. Comments stating genuine electrical facts, such as a
pin floating LOW without its pull-up, are left as they are, since rewording
those would make them wrong.

Verified on hardware on a Heltec V4-R8, whose gps-enable is active-low: with
this change the boot log reports "GPS power GPIO configured, set ACTIVE" and
the L76K streams NMEA (210 sentences in 35 s), where without it the log reports
"set HIGH" and the module never powers on. Also built for heltec_wifi_lora32_v4
and _v43 (active-low enable and reset), thinknode_m1 and heltec_t114
(active-low reset) and t1000_e (active-high throughout).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-19 10:10:30 -07:00
Pieter ViljoenandClaude Opus 5 43e9db5823 add heltec wifi lora32 v4-r8 board + anchor the esp32 light-sleep allowlist
The V4-R8 is an ESP32-S3R8 with 8 MB octal PSRAM, where V4 and V4.3 are S3R2
with 2 MB quad. Octal PSRAM claims GPIO33-37, which moves Vext 36->40, the LED
35->46 and VGNSS_Ctrl 34->42, and drops ADC_Ctrl and GNSS_RST. CTX binds as
lna-bypass-gpios rather than tx-enable-gpios, so the board is a fourth one
where set radio.fem.rxgain works; the CLI reference and the register-patch help
text say so.

The allowlist change is needed for the board to be added correctly. CMake
MATCHES is a substring search, so the existing heltec_wifi_lora32_v4 entry also
matches heltec_wifi_lora32_v4_r8 and the new board would get CONFIG_PM=y
without anyone deciding it should, on a path pm_esp32.conf marks as not yet
validated on hardware. Anchoring preserves the five boards that were intended
to match, including heltec_wireless_tracker_v2, which previously qualified only
by substring and is now listed explicitly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-19 09:52:37 -07:00
liquidraver edcc40a884 track zephyr main 3e8f38faf93: rebase patches, lora 0.9 api, nrf clock split, s3 heap, lr11xx/lr20xx dc preamble guard, usb kick loop fix 2026-09-19 16:46:14 +02:00
liquidraver 26751c76f2 cherry pick openocd patch from zephyr main 2026-09-18 21:40:41 +02:00
liquidraver 39b9584b20 .editorconfig and .gitattributes 2026-09-18 21:25:19 +02:00
liquidraver ca16cb102e enable nrf54 ADC 2026-09-18 20:41:37 +02:00
liquidraver da0450e511 upstream sync + wio tracker 1w 2026-09-16 11:29:45 +02:00
liquidraver 16518e2196 heltec t1 2026-09-14 09:14:46 +02:00
liquidraver 8c21a1609b lr2021 2.4ghz and seeed evk button fix 2026-09-12 19:46:43 +02:00
liquidraver a1b5cfc724 semtech lr2021 evaluation kit port 2026-09-12 14:54:03 +02:00
liquidraver c969b2fca3 promicro fixes 2026-09-10 22:40:15 +02:00
liquidraver 54e333532e PR #80 followup 2026-09-08 23:09:33 +02:00
liquidraver ddfadb9125 Merge pull request #80 from bisbille/pr3-confirm-window
board: fix double-press confirm window on WT2 and V4.3
2026-09-08 23:04:44 +02:00
liquidraver 53cf183a5c esp gps and BT to 9dBm 2026-09-07 22:29:10 +02:00
ZephCore T096 be5e647c6a board: fix double-press confirm window on WT2 and V4.3
Both emit ENTER via a zephyr,input-longpress filter (single button),
same category the Kconfig help text already documents as needing
CONFIG_ZEPHCORE_UI_CONFIRM_WINDOW_MS=3000 instead of the 500ms
default -- two ~1s holds don't fit in 500ms, so the second long press
on shutdown/DFU/offgrid always arrives after the window closed and
just re-arms instead of confirming. T096 already had this set
(board.conf:38); WT2 and V4.3 didn't, apparently missed when their
board.conf was written.
2026-09-05 14:30:20 +02:00
liquidraver eef6a488a2 esp flash fix 2026-09-04 12:14:05 +02:00
liquidraver bcdf125edf bump to 1.17.4 2026-09-03 15:44:47 +02:00
liquidraver 81a43f6dd1 west update and upstream dev sync 2026-09-02 10:01:34 +02:00
liquidraver efa5240b69 add meshnology w12 2026-08-30 22:29:21 +02:00
liquidraver d4363775ae heltec comment updates 2026-08-28 13:48:53 +02:00
liquidraver 5372f1d8a2 auto-enable esp32s3 USB CDC companion in CMakeLists; board.overlay first in overlay order; esp32s3 download-mode reboot 2026-08-28 10:32:49 +02:00
liquidraver 4632797e3e bump to 1.17.3 2026-08-25 14:26:35 +02:00
liquidraver ea86815c95 fix LNA/FEM control 2026-08-25 14:04:32 +02:00
liquidraver 8c0464ea30 logo thiccification and docs chores 2026-08-24 21:43:40 +02:00
liquidraver 6b5e892b38 wirelesstracker improvements 2026-08-24 10:44:28 +02:00
liquidraver 206edcdd5c t096 improvements 2026-08-23 16:19:25 +02:00
liquidraver 174bce80d9 cleanup/bugfix run 2026-08-23 09:45:14 +02:00
liquidraver 5302d21801 wireless tracker display inversion and button wake fixes 2026-08-22 22:48:27 +02:00
liquidraver 0b60af8090 xiao_nrf54l15: catalog tile, verify board against schematics 2026-08-22 21:10:19 +02:00
liquidraver 8423693ca6 add MinewSemi ME25LS02 board (nRF54L15 + SX1262) 2026-08-22 19:09:13 +02:00
liquidraver 2c4c3a07c3 t3s3 fixes 2026-08-22 11:10:05 +02:00
liquidraver 7812bd474b Merge pull request #69 from tommaier123/dev
Added LilyGo T3S3 support
2026-08-22 10:51:13 +02:00
liquidraver cb4863e4bd T1000e full sensors 2026-08-21 20:28:03 +02:00
liquidraver 1b12354b85 bugfixes, improvements and release notes updates 2026-08-21 15:22:27 +02:00
liquidraver 5c4ac21bd4 refactor patches and bump to 1.17.2 2026-08-20 17:50:48 +02:00
Max Beffert c4672ce85e T3S3 support 2026-08-18 16:33:39 +02:00
liquidraver 6705ff4507 xiao nrf 100mA charging 2026-08-16 11:47:29 +02:00
liquidraver 50b5fc3aba bump to 1.17.1 and merge upstream 2026-08-14 14:52:05 +02:00
liquidraver 216012574e X1 barometrification 2026-08-14 14:01:18 +02:00
liquidraver ff0db0dcb8 lr2021 debug v2 2026-08-14 08:36:36 +02:00
liquidraver ae0ff65cce release note supdate and X1 sensor tuning 2026-08-12 22:14:39 +02:00
liquidraver ebbbfdc559 lr20xx: drop the dead pa-hp-sel / pa-duty-cycle devicetree properties 2026-08-12 16:03:54 +02:00
liquidraver 81d783b732 quad qspi on X1 2026-08-11 14:08:17 +02:00