Commit Graph
55 Commits
Author SHA1 Message Date
liquidraver d5bb275e01 update example board and porting guide 2026-10-05 10:24:36 +02:00
liquidraver 38f815a0a1 server roles, event loops, companion transports, storage and prefs.json
Server roles (slice 7)
- CommonCLI split into upstream's shape; region CLI moved into CommonCLI;
  ClientACL, RegionMap, TransportKeyStore and both server meshes in
  upstream shape over an Arduino compat shim (helpers/compat: Arduino.h,
  Stream/Print, Serial, SHA256, FILESYSTEM/File over Zephyr fs)
- room server processAck port; `get acl` prints as upstream
- room: default name Room-XXXX, display/input rotation, live radio UI refresh

Event loops (slice 7b)
- repeater and room server share server_main_common with a ServerRole
  descriptor; shared event bits in src/mesh_events.h
- room server deadline-driven (idle wakes 2.2/s -> 0.08/s); companion
  loop() runs on housekeeping (closes the lazy contact-flush gap)
- `get loop.wakes` in debug builds (CONFIG_ZEPHCORE_LOOP_WAKE_STATS)

Companion transports and WiFi (slice 8)
- upstream MultiSerialInterface: BLE, USB/UART and TCP are each a
  BaseSerialInterface, every connected transport gets every frame;
  CompanionSerial holds a lossless reply; shared frame_txq for BLE/TCP
- SerialCompanionTransport and LinuxTCPTransport replaced by
  TcpCompanionTransport; ZephyrBLE split (gatt layout, DFU)
- WiFi companion (upstream wifi.ssid/pwd/enabled CLI, TCP port 5000) on
  boards declaring `capabilities: wifi` in zephcore.yml: the PSRAM
  ESP32-S3 boards, plus Heltec V3 (140 contacts), Wireless Tracker (130)
  and both C6 boards (280); ESP32-S3 without PSRAM gets bounded WiFi
  buffers and a measured 72 KB heap; PSRAM boards' internal heap 72 KB
- TCP queues: own depth (ZEPHCORE_TCP_QUEUE_SIZE=8), RX waits instead
  of dropping
- RAM: companion ClientACL dropped; main/BT-TX/TCP stacks sized from
  measured peaks (-7 KB nRF companions, -9 KB ESP32 companions)
- ESP32 WiFi stopped working under ~200 frames/s unicast. Fixed by:
  patches/zephyr/0017 never block the WiFi task in the RX callback;
  patches/zephyr/0018 lock shared_multi_heap (heap corruption with the
  WiFi heap in PSRAM); patches/modules/hal_espressif/0001 backport of
  hal_espressif af97fb02df (PSRAM realloc)

Storage and prefs (slice 9)
- prefs are now prefs.json through upstream's ConfigSerializer (ported
  verbatim), with upstream's key names for shared fields and ZephCore's
  own under "zc"; on first boot the binary new_prefs / repeater prefs is
  migrated and kept, so a downgrade still boots with the old settings
- helpers/PrefsCodec: both legacy binary layouts (companion 272 B,
  server 311 B) as Zephyr-free codecs; sanitizeNodePrefs is the only
  validator
- fix: server prefs could be replaced by a truncated file when a write
  failed; identity, prefs and channel writes go through one checked
  atomic replace (ZephyrFsUtil)
- fix: a corrupt cad_auto byte turned adaptive CAD off instead of the
  default on
- fix: a deliberate 300 s GPS duty on a repeater was rewritten to 48 h
  on every boot (that migration now runs on legacy files only)
- one identity loader for all roles (IdentityFile); an unusable key
  file is always parked as .bad before regenerating
- server store no longer stamps repeater defaults on room server and
  observer; companion first-boot volume policy moved into the store
  (adoptVolume)
- ZephyrDataStore 1435 -> ~850 lines
2026-09-25 08:34:21 +02:00
liquidraver 2e2d852f29 build: board manifests, shared board resolver, manifest-driven release matrix
- boards/**/zephcore.yml: one manifest per board/preset (release roles,
  variants, catalog metadata, capabilities); scripts/board_manifest.py
  validates and serves them to build.sh, gen_provider_catalog.py and
  docs/supported_boards.md
- cmake/zephcore_board.cmake: board dir -> platform, shared by app and
  sysbuild; removes the board-name regex lists and 7 separate globs
- conf chain: exact-name role/debug classification checked against
  Kconfig, idempotent across non-pristine reconfigures, version string
  single-sourced (BT DIS rev generated), day-granular build epoch
- Doom easter egg: Kconfig default for the wio_tracker_l1 companion
  instead of a build.sh-only flag
- catalog: maker for the LR2021 EVK (KeyError before); CI installs PyYAML
- user -DEXTRA_DTC_OVERLAY_FILE overlays now take precedence over derived overlays

Verified: identical .config, DTS and source lists for 97 board/role
configs; identical images for 4 reference builds; identical build.sh
command/artifact set and catalog content.
2026-09-23 10:24:40 +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 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 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 a1b5cfc724 semtech lr2021 evaluation kit port 2026-09-12 14:54:03 +02:00
liquidraver efa5240b69 add meshnology w12 2026-08-30 22:29:21 +02:00
liquidraver 174bce80d9 cleanup/bugfix run 2026-08-23 09:45:14 +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 41cc786496 the repo is radiating seeed X1 vibes 2026-08-08 15:19:20 +02:00
liquidraver c28ae21555 rng cleanup 2026-07-22 22:00:37 +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 3c4c548c8e add lilygo t-impulse plus 2026-07-04 15:47:27 +02:00
liquidraver 74aa3810ee Merge pull request #47 from matthew73210/master
Reworked the screen pages
2026-07-04 12:51:15 +02:00
liquidraver 487693f669 update documentation 2026-07-04 09:41:09 +02:00
Matthew Burton 955acca8b0 Added the WTv2 2026-07-04 07:28:17 +02:00
liquidraver 6ef03fb10e Merge branch 'master' into dev 2026-07-03 19:58:07 +02:00
liquidraver a725a8ce9a update readme 2026-07-01 23:11:47 +02:00
Matthew Burton 8b5eab4657 First try at T096 port 2026-06-29 17:36:40 +02:00
liquidraver 2f86310500 port lora e5 mini 2026-06-21 20:38:57 +02:00
liquidraver 28f1c3af05 fix build and update readmes 2026-06-17 22:31:47 +02:00
liquidraver f6c7ca8ec4 fixup wireless tracker 2026-06-16 13:40:31 +02:00
liquidraver bf71542751 Make Rxdutycycling Great Again 2026-06-13 08:23:01 +02:00
rlwilliamson-dev 79afecf11b docs: document the Room Server role
- README: add Room Server to "Device Roles" + a build command in "Building"
- ARCHITECTURE.md: role list two -> four (add Room Server + the
  previously-undocumented Observer)
- Repeater_CLI_commands.md: note the room server shares this CLI
- boards/example_board/README.md: add the room_server.conf build snippet
2026-06-02 15:53:27 -05:00
rlwilliamson-dev 568d311ab0 boards: add GAT562 30S Mesh Kit (nRF52840, RAK4631 core)
The GAT562 30S Mesh Kit is an nRF52840 + SX1262 board built on the
RAK4631 WisBlock core module with a 30 dBm (1 W) external PA, so it
reuses the proven rak4631 LoRa path. Deltas vs rak4631: 1.8 V TCXO
(per the MeshCore variant), battery multiplier 6232, buzzer on P1.01,
an AT6558R UART GPS, active-high LEDs, and a 5-way joystick that
selects the joystick companion menu UI.

A single board serves both the full kit and the screenless solar
repeater pod; absent peripherals (OLED, GPS, joystick, buzzer) are
optional in devicetree and skipped at runtime.

Board-specific notes:
- GPS: AT6558R NMEA on UART0 @ 9600 (P0.15 RX / P0.16 TX), powered by a
  WB_IO2/P1.02 gpio-hog and parsed by gnss-nmea-generic. Uses
  CONFIG_UART_ASYNC_API (DMA receive); nRF UARTE interrupt-driven RX did
  not feed the modem backend.
- The 6 button/joystick inputs are routed to GPIO SENSE (sense-edge-mask
  on &gpio0) so they don't consume the GPIOTE channel the SX1262 DIO1
  "done" IRQ needs.

Registration: board definition, CMakeLists.txt platform-conf match,
build.sh (nRF_boards), supported_boards.md, the top-level README board
table, and the porting-guide board table.

Hardware-tested on the kit, companion and repeater: LoRa TX/RX with BLE
active (no CAD errors), BLE pairing (PIN 123456) and two-way messaging,
joystick menu UI, SSD1306 OLED, buzzer, battery %, UF2 + DFU-zip
flashing, and a 14-satellite GPS fix.
2026-06-02 11:28:44 -05:00
liquidraver a9f3b8ef3b cleanup t114, add build 2026-05-19 07:00:03 +02:00
liquidraver b271179cc9 activate PSRAM in capable devices to fit OTA 2026-05-18 22:31:04 +02:00
liquidraver 66f7b8508f add/fix promicro_sx1262 build 2026-05-07 22:35:30 +02:00
liquidraver 1dde69c653 add t-echo board
fix e-ink displays
fix one-button confirmation bug (eg shutdown)
2026-04-24 10:10:58 +02:00
liquidraver 3c2ba020c8 Add simple xiao nrf support 2026-04-14 13:29:42 +02:00
liquidraver 085b1a7ce5 Wismesh pocket update to RAK overlay 2026-04-14 10:41:26 +02:00
liquidraver d03ab90be6 LED refactor + RAK reversed polarity fix 2026-04-14 09:11:58 +02:00
liquidraver a716d2478f port seeed solar p1 + gps command fixes 2026-04-13 11:48:34 +02:00
liquidraver ee0892831f update supported boards 2026-04-09 14:08:30 +02:00
liquidraver 530565d02f update readme 2026-04-08 13:12:19 +02:00
liquidraver 3b3eff7aab initial port of heltec v4 and v4.3 boards 2026-04-08 11:21:44 +02:00
liquidraver 7acd08cbd9 add espc6 fix heltec v3 2026-04-05 21:38:33 +02:00
liquidraver 1a20cdb4ea add xiao esp32-s3 2026-04-05 20:08:40 +02:00
liquidraver 31f0901606 port RAK3401 1W 2026-03-26 22:02:11 +01:00
liquidraver 9abe5b142d port heltec v3 2026-03-20 09:00:09 +01:00
liquidraver 1b3dd4e6fa update docs about lilygo c6 2026-03-19 09:15:01 +01:00
liquidraver c938cb88b9 linux sdk fix and readme update for esp 2026-03-18 21:03:38 +01:00
liquidraver 71684af590 rework buttons, add quintuple press for disabling leds 2026-03-16 12:56:10 +01:00
liquidraver d794b57e31 APC second test
This reverts commit 4bd84ddf7e.
2026-03-14 21:15:57 +01:00
liquidraver 4bd84ddf7e APC first test 2026-03-14 14:01:10 +01:00