Commit graph

137 commits

Author SHA1 Message Date
GlassOnTin
09d1f6409f Add R-Watch (T-Watch Ultra) board support with LoRa, GPS, PMU, RTC, and deep sleep
Board definition (BOARD_TWATCH_ULT = 0x45) for LilyGo T-Watch Ultra
with verified pin mapping from LilyGoLib hardware docs.

Working subsystems:
- SX1262 LoRa radio: online at 868 MHz, tested with rnsd/Reticulum
- AXP2101 PMU: all power rails configured, battery monitoring, charging
- MIA-M10Q GPS: UART at 38400 baud, TinyGPSPlus NMEA parsing
- PCF85063A RTC: time read/write, GPS sync infrastructure
- XL9555 GPIO expander: I2C driver, LoRa antenna switch
- BLE: initialized, KISS protocol responsive
- Deep sleep: button wake (PMU IRQ GPIO 7), timer wake for beacon
- Beacon sleep cycle: periodic wake for GPS beacon TX in standalone mode

New files:
- VISION.md: R-Watch product vision document
- XL9555.h: minimal I2C GPIO expander driver
- CO5300.h: QSPI AMOLED display driver (not yet functional)

Display driver (CO5300.h) is written but disabled (HAS_DISPLAY=false).
QSPI init succeeds but pixel writes don't reach the display controller.
Suspected XL9555/BHI260AP GPIO expander pin mapping issue under investigation.
2026-03-27 12:18:46 +00:00
GlassOnTin
033ddd6757 Add GPS beacon and LXMF telemetry for T-Beam Supreme and Heltec V4
Standalone GPS beacon mode: when no KISS host is connected for 15s,
the RNode transmits position and battery telemetry over LoRa.

Two beacon paths:
- LXMF (recommended): encrypted per-packet messages with announces,
  compatible with Sideband and any LXMF application. Supports IFAC
  network authentication.
- Legacy JSON: plaintext or encrypted raw packets for simple collectors.

Key changes:
- GPS support for T-Beam Supreme S3 (L76K) and Heltec V4 (external)
- SX1262 radio fixes: IQ polarity, DCD preamble lockup, RX reliability
- LXMF identity management with NVS-backed Ed25519/X25519 keys
- IFAC authentication (CMD_IFAC_KEY 0x89) for private networks
- Per-channel serial isolation (USB, BLE, WiFi)
- GPS status page in OLED display rotation
- Provisioning via rnlog: provision-lxmf, provision-ifac
- Documentation in Documentation/BEACON.md
2026-03-12 17:01:29 +00:00
Mark Qvist
121f9e79e8 Added support for handling noise floor calculations on devices with LNA gain variance during LNA recalibration. Fixed potential incoming packet buffer corruption on split packet reception at high bitrates. 2025-11-19 14:40:34 +01:00
Mark Qvist
1e054097dd Added WiFi host read timeout and automatic disconnect. Added automatic WiFi reconnect in STA mode. Improved host reconnection reliability and responsiveness. 2025-11-18 03:03:49 +01:00
Mark Qvist
2319813a65 Added support for connecting ESP32S3 RNodes over WiFi 2025-11-17 16:41:25 +01:00
Mark Qvist
c8bb7490a2 Build fixes 2025-11-10 18:19:55 +01:00
Mark Qvist
89ea59bbe6 Added CPU temperature measurement and reporting on ESP32S3 2025-11-10 16:39:09 +01:00
Mark Qvist
e2c1cd3766 Added support for LoRa PAs and output power mapping according to PA gain curve 2025-11-07 19:11:56 +01:00
Mark Qvist
2947df3349 Added Heltec v4 board defines and scaffold 2025-11-01 15:33:24 +01:00
Mark Qvist
0a95f6f107 Added nRF hardware RNG 2025-04-13 14:45:31 +02:00
Mark Qvist
7d868b4db6 Support for XIAO ESP32S3 2025-04-13 00:11:21 +02:00
Kevin Brosius
c3fe3713b0 Seeed ESP32S3 - Enable user button, tied to yellow LED on
ESP32S3 board.  Can be shared, but configure as button
input only for now.  Top LED for TX indication.
2025-02-23 16:57:36 -05:00
Kevin Brosius
bc97e513e8 Initial support for Seeed ESP32S3 with Wio-SX1262
Work in progress
Status: Boots, display works on Xiao espansion base,
radio is recognized
Todo:
  PMU
  Firmware hash fails even if generated and then written
  Radio testing
  Buttons / LEDs
  other?
2025-02-23 06:52:27 -05:00
Mark Qvist
7066b4de6f Fixed single-byte configuration changes not working on nRF 2025-01-15 21:09:30 +01:00
Mark Qvist
6b815c47d4 LED config on T-Echo 2025-01-15 21:00:02 +01:00
Mark Qvist
2d2d90847a Initial T-Echo support 2025-01-15 18:38:14 +01:00
Mark Qvist
7e30648968 Fixed nRF52 soft-brick on device EEPROM wipe 2025-01-15 12:42:24 +01:00
Mark Qvist
2119d381b3 Refactored T3S3 board name variable 2025-01-15 10:21:15 +01:00
Mark Qvist
6eaacb7f99 Cleanup 2025-01-13 20:06:51 +01:00
Mark Qvist
8cf6e9cb40 Added battery support to Heltec T114 2025-01-13 18:05:35 +01:00
Mark Qvist
7a505f73e3 Added signalling of detected interference. Added channel stats output on nRF. 2025-01-13 17:02:07 +01:00
Mark Qvist
6e7370acdc Added interference avoidance option 2025-01-09 17:58:46 +01:00
Mark Qvist
06b4fba603 Added noise floor monitoring and reporting to host 2025-01-09 14:46:13 +01:00
Mark Qvist
218a38adb7 Optimise packet handling for SX1280 fast data rates 2025-01-09 00:01:49 +01:00
Mark Qvist
ae47b89b53 Added banded contention window allocation 2025-01-08 16:46:16 +01:00
Mark Qvist
08651f92f7 Reworked SX1262 LoRa carrier detection 2025-01-07 15:14:44 +01:00
Mark Qvist
c39164e272 Accurate preamble and airtime calculations on SX1280. Fix airtime calculation on SX1262 when LDRO is enabled. 2025-01-05 22:55:32 +01:00
Mark Qvist
b02989e07a Cleanup 2025-01-03 21:58:59 +01:00
Mark Qvist
4e251cd186 T3S3 SX1280 model codes 2025-01-03 21:22:37 +01:00
Mark Qvist
6bf06ca94e T3S3 SX1280 support 2025-01-03 19:16:19 +01:00
Mark Qvist
315bcb02a0 SX1280 EEPROM checks 2025-01-03 12:52:01 +01:00
liamcottle
abde6561b5 use neopixel on heltec t114 2025-01-02 23:39:54 +13:00
liamcottle
f9234733e2 add support for heltec t114 2025-01-02 15:14:18 +13:00
Mark Qvist
6c82de161c Added display reconditioning function 2024-12-31 14:20:43 +01:00
Mark Qvist
2604b44d64 Added ability to configure display rotation 2024-12-31 13:23:48 +01:00
Mark Qvist
d012c37146 Added missing PA output pin configs 2024-12-10 15:34:57 +01:00
Mark Qvist
4b48f41c38 Added display read command 2024-12-08 13:49:07 +01:00
Mark Qvist
76eaae8554 Cleanup 2024-10-11 16:39:38 +02:00
Mark Qvist
c51335a1df Cleanup 2024-10-11 14:46:03 +02:00
Mark Qvist
2e6db2f818 Merge branch 'master' of github.com:markqvist/RNode_Firmware 2024-10-11 14:43:46 +02:00
Mark Qvist
16b06406f2 Changed standby LED color 2024-10-11 14:35:45 +02:00
Mark Qvist
2ede362cb3 Adjusted CSMA parameters and P-curve. Added dynamic CSMA slot time. 2024-10-10 23:26:12 +02:00
jacob.eva
03893c2793
nRF52 BLE improvements 2024-10-10 14:40:57 +01:00
Mark Qvist
9556f0b91b Added support for T3S3 boards with SX127x modems 2024-10-05 02:47:54 +02:00
Mark Qvist
6974a50d10 Added T-Beam Supreme support 2024-10-05 00:42:19 +02:00
Mark Qvist
8bdd85e648 Added T-Deck support 2024-10-03 00:38:49 +02:00
Mark Qvist
5ecbe95980 Display blanking 2024-10-02 01:10:02 +02:00
Mark Qvist
dfd62f4d94 Cleanup 2024-09-30 13:49:40 +02:00
Mark Qvist
59e1836975 Cleanup 2024-09-29 03:10:32 +02:00
Mark Qvist
a4ecc0d6f3 Added display blanking timeout 2024-09-29 02:33:02 +02:00