105 Commits
Author SHA1 Message Date
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 27ea7e41a5 flash cleaning improvements 2026-08-28 09:41:43 +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 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 cb4863e4bd T1000e full sensors 2026-08-21 20:28:03 +02:00
liquidraver 5c4ac21bd4 refactor patches and bump to 1.17.2 2026-08-20 17:50:48 +02:00
liquidraver 50b5fc3aba bump to 1.17.1 and merge upstream 2026-08-14 14:52:05 +02:00
liquidraver 557aef1883 qspi probe 2026-08-11 13:43:53 +02:00
liquidraver 3494411f83 x1 debug 2026-08-10 19:15:26 +02:00
liquidraver 41cc786496 the repo is radiating seeed X1 vibes 2026-08-08 15:19:20 +02:00
liquidraver 4e880df81a set leds on/off 2026-07-31 08:27:10 +02:00
liquidraver aa14944a93 enable PM on ESP repeaters that support it 2026-07-30 17:14:05 +02:00
liquidraver ab4ea6d87c ESP power saving p1 2026-07-30 09:33:03 +02:00
liquidraver 394eefec51 bump to 1.16.7 2026-07-25 14:46:04 +02:00
liquidraver 076fbb7ff3 m9 and rng polishing 2026-07-21 22:49:48 +02:00
liquidraver 16041b0f3a M9 keys P1 2026-07-21 15:55:51 +02:00
liquidraver 47f24a0b1c M9 SD card settle 2026-07-21 15:29:05 +02:00
liquidraver 3c62747ca7 add muziworks R1 Neo 2026-07-21 15:04:25 +02:00
liquidraver 13b5e2fcf3 scrub APC and bump to 1.16.6 2026-07-20 09:55:32 +02:00
liquidraver 16c7ae506a port thinknode m9 2026-07-18 20:30:38 +02:00
liquidraver c897d1a1ca normalize builds 2026-07-16 19:12:01 +02:00
liquidraver 9d204db5c7 bump to 1.16.5 2026-07-12 14:23:37 +02:00
liquidraver dc1239537e SmartCAD p1 2026-07-12 10:48:37 +02:00
liquidraver 603f0e15f6 refactor all ESP partitioning 2026-07-09 22:16:54 +02:00
liquidraver 3c4c548c8e add lilygo t-impulse plus 2026-07-04 15:47:27 +02:00
liquidraver fe14c73f52 bump version 2026-07-04 11:55:24 +02:00
liquidraver 487693f669 update documentation 2026-07-04 09:41:09 +02:00
liquidraver 6ef03fb10e Merge branch 'master' into dev 2026-07-03 19:58:07 +02:00
liquidraver 14cb8c61f9 meshtimesync p1 2026-07-03 09:11:43 +02:00
Matthew Burton 8b5eab4657 First try at T096 port 2026-06-29 17:36:40 +02:00
liquidraver bd363781ac companion hybrid refactor v1 2026-06-23 22:45:25 +02:00
liquidraver 2f86310500 port lora e5 mini 2026-06-21 20:38:57 +02:00
liquidraver 2771872886 bump to 1.16.3 2026-06-17 15:52:57 +02:00
John MillingtonandClaude Opus 4.8 ece01b4f7c fix(esp32): init controller encryption so LE Secure Connections pairing works
The ESP32 BLE controller glue guards ble_enc_funcs_reset() on
CONFIG_BT_CTRL_BLE_SECURITY_ENABLE, an ESP-IDF sdkconfig symbol that is never
defined in a Zephyr build. The call is therefore compiled out and the
controller's LE Secure Connections encryption table is left uninitialised, so
SC pairing derives a wrong session key and the link is terminated with HCI
reason 0x3D (MIC failure).

This breaks pairing for SC-capable centrals (e.g. Pixel 7 / recent Android);
legacy-pairing centrals use a different path and are unaffected. The existing
CONFIG_ESP32_BT_CTLR_LE_SECURITY_ENABLE=y only sets .enc_en and does not reach
this guard.

Correct the guard to BLE_SECURITY_ENABLE, which esp_bt.h already derives from
CONFIG_ESP32_BT_CTLR_LE_SECURITY_ENABLE (the Zephyr knob) and already uses for
.enc_en. Carried as a managed hal_espressif patch via the existing
zephcore_apply_patches() mechanism (mirrors the loramac-node patch).

Verified on Heltec Wireless Tracker (ESP32-S3): device reaches security
level 4, pairing complete bonded=1; Pixel 7 bonds over SC and the companion app
communicates; older Samsung still pairs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:28:29 +12:00
liquidraver f2d2876637 no OTA on t-beam repeaters 2026-06-15 11:59:49 +02:00
liquidraver 68147dba86 lilygo debug trims and BT back to 8dBm 2026-06-15 11:35:41 +02:00
liquidraver 979f60163d bump to 1.16.2 2026-06-15 11:15:44 +02:00
liquidraver 18b63bd6f5 Add Lilygo T-beam 1.2 (SX1262) 2026-06-14 14:00:51 +02:00
liquidraver a43f46f942 bump to 1.16.1 2026-06-08 12:23:46 +02:00
liquidraver 2ad185bab4 license "refactor" :) 2026-06-07 22:47:17 +02:00
liquidraver 01fd56a573 wire up RTC to out-of-the-box capable nodes 2026-06-07 12:00:05 +02:00
liquidraver ffe9ea652d sync to vanilla 1.16 2026-06-06 16:42:39 +02:00
liquidraver f508c14dbb display improvements 2026-06-05 14:56:11 +02:00
liquidraver eda46166b4 companion CLI 2026-06-04 22:43:01 +02:00
liquidraver 136bfd5c85 fix battery curve not compiling 2026-06-03 14:06:00 +02:00
liquidraver d37b401033 battery: centralized LiPo OCV curve + ADC multiplier corrections
Add a board-aware battery SOC system replacing the two independent
linear approximations that existed in the UI helpers.

New helpers/battery_curve.{h,c}: a 21-point (5% step) OCV lookup table
with integer linear interpolation. The default generic LiPo curve is a
weak symbol — any board can override it by dropping a battery_curve.c
into its board directory. CMakeLists.txt selects the board-specific file
when present, falling back to the generic.

Board.h gains getBattPercent() (default 0); ZephyrBoard implements it
via battery_curve_lookup().

Board-specific curves added for boards with measured cell data:
t1000_e, rak_wismesh_tag, thinknode_m6, sensecap_solar, wio_tracker_l1.

ADC multiplier corrections applied across all nRF52840 boards:
- Boards using a correctly-derived 3600×ratio formula get +0.5% to
  compensate for nRF SAADC gain error (7200→7236, 6300→6332, etc.)
- rak_wismesh_tag, rak3401_1watt, gat562_30s had multipliers copied
  from Arduino's 3.0V AREF formula; corrected to 3600×1.73×1.005=6259
- xiao_nrf52840 (10911) left unchanged — empirically calibrated value
  above the theoretical, assumed already correct for that hardware

get adc.multiplier now reports current mV reading and the board's
curve 100% target, making field calibration self-guiding.
2026-06-03 13:21:06 +02:00