Commit graph

79 commits

Author SHA1 Message Date
GlassOnTin
f024489aee Add T-Watch Ultra PCB reference photos
Three photos from disassembly session:
- PCB overview with back cover removed
- PCB closeup showing component labels
- Battery connector detail

Factory firmware reflashed to verify hardware integrity. I2C bus and
display confirmed working under LilyGo firmware. RNode firmware I2C
init needs debugging — Wire.begin succeeds but no slaves respond.
2026-03-27 15:53:18 +00:00
GlassOnTin
6ad9abe74d Debug display + fix I2C bus bricked by deep sleep GPIO config
Key finding: deep sleep GPIO OPEN_DRAIN configuration persists in the
battery-backed RTC domain, corrupting the I2C bus across reboots.
Wire.begin() returns false after deep sleep has been entered once.

I2C bus recovery attempt added (SCL clock-out + STOP condition) but
Wire (I2C0) peripheral remains stuck. Wire1 (I2C1) works on same pins
but no slave devices respond — bus lines may be held by stuck slaves.

Found from schematic: XL9555 DOES control VC_EN (display VCI power).
Display QSPI pins confirmed correct from schematic (sheet 4).
BHI260AP SensorLib removed (was causing boot failure due to firmware blob size).
Beacon wake cycle still disabled pending I2C fix.

Critical TODO: fix deep sleep to not set I2C pins to OPEN_DRAIN,
or add robust I2C bus recovery in early boot before PMU init.
2026-03-27 13:46:00 +00:00
GlassOnTin
ae02c5c4af Add BHI260AP sensor hub integration for display GPIO expansion
Added SensorLib dependency (v0.3.1) with BHI260AP GPIO firmware
for controlling display power gate, haptic driver, and touch reset
via the sensor's auxiliary GPIO pins.

Fixed beacon wake cycle triggering on cold boot — disabled pending
proper deep sleep vs cold boot discrimination.

Display status: BHI260AP begin() returns false (firmware upload
failing). CO5300 QSPI driver still cannot reach display controller.
Both issues under investigation.
2026-03-27 13:01:20 +00:00
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
7f868c6c28 Added interference display to waterfall. Improved Heltec V4 false interference rejection. 2025-11-22 14:19:23 +01:00
Mark Qvist
15b3e7f605 Cleanup 2025-11-22 01:12:03 +01:00
Mark Qvist
6b21940e59 Improved Heltec v4 LNA gain-value threshold parameter 2025-11-21 16:00:40 +01: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
2319813a65 Added support for connecting ESP32S3 RNodes over WiFi 2025-11-17 16:41:25 +01:00
markqvist
1e9654012f
Merge pull request #116 from Am0g-us/patch-1
Fix generic esp32 reset pin
2025-11-10 11:43:06 +01:00
Mark Qvist
d06ec065de Implemented support for Heltec V4 with PA 2025-11-07 19:13:29 +01:00
Mark Qvist
2947df3349 Added Heltec v4 board defines and scaffold 2025-11-01 15:33:24 +01:00
Am0g-us
3eae317cdf
Fix generic esp32 reset pin
Fix for critical Issue: GPIO 36 on the ESP32 is an input-only pin (part of the ADC1 group along with GPIO 34, 35, and 39). This is a hardware limitation of the ESP32 microcontroller. These pins cannot be configured as outputs.

This means the current pin assignment in the firmware will not work correctly for the reset functionality, as pinMode(_reset, OUTPUT) and digitalWrite(_reset, LOW/HIGH) calls will fail to actually drive the pin. The reset pin for a generic ESP32 board should be reassigned to a GPIO that supports output mode (any GPIO that is not 34, 35, 36, or 39).

This appears to be a configuration error in the board definition that would prevent proper initialization of the SX1278 LoRa module on these board configurations.
2025-10-19 01:30:57 +00:00
Mark Qvist
eab0284700 Lowered OCP limits to counteract brownout crash when sending at high TX power on some boards 2025-07-17 19:44:54 +02:00
Mark Qvist
9d2da569c9 Cleanup 2025-04-13 01:28:19 +02:00
Mark Qvist
7d868b4db6 Support for XIAO ESP32S3 2025-04-13 00:11:21 +02:00
Kevin Brosius
cbedd72993 Seeed ESP32S3 - enable button sleep, stopRadio at sleep
to sleep sx1262 also.
2025-02-23 18:52:17 -05: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
ea33f0cba7 T-Echo pin definitions 2025-01-15 21:10:01 +01:00
Mark Qvist
2d2d90847a Initial T-Echo support 2025-01-15 18:38:14 +01:00
Mark Qvist
2119d381b3 Refactored T3S3 board name variable 2025-01-15 10:21:15 +01:00
Mark Qvist
8cf6e9cb40 Added battery support to Heltec T114 2025-01-13 18:05:35 +01:00
Mark Qvist
71e73580f7 Cleanup 2025-01-09 18:41:35 +01:00
Mark Qvist
218a38adb7 Optimise packet handling for SX1280 fast data rates 2025-01-09 00:01:49 +01:00
Mark Qvist
254225e917 Cleanup 2025-01-08 16:50:29 +01:00
Mark Qvist
5ec063c939 Reworked CSMA algorithm 2025-01-07 20:15:26 +01:00
Mark Qvist
08651f92f7 Reworked SX1262 LoRa carrier detection 2025-01-07 15:14:44 +01:00
Mark Qvist
217db4bcd3 Update release builds to include T3S3 SX1280 PA 2025-01-04 20:20:35 +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
Mark Qvist
470f4f4d09 Merge branch 'master' of github.com:markqvist/RNode_Firmware 2025-01-03 12:01:33 +01:00
Mark Qvist
9174dbd34a Board defines for T3S3-SX1280 2025-01-03 11:54:48 +01:00
liamcottle
abde6561b5 use neopixel on heltec t114 2025-01-02 23:39:54 +13:00
liamcottle
6a43bf51ef remove unused rx switch 2025-01-02 15:28:10 +13:00
liamcottle
f9234733e2 add support for heltec t114 2025-01-02 15:14:18 +13:00
Mark Qvist
2263b20b81 Set default OCP 2024-12-10 18:42:13 +01:00
Mark Qvist
d599109562 Set default OCP 2024-12-10 16:37:55 +01:00
Mark Qvist
aba9a317dd Set default OCP 2024-12-10 16:05:08 +01:00
Mark Qvist
d88f231332 Added ability to specify per-board transceiver OCP limit 2024-12-10 15:35:29 +01:00
Mark Qvist
94215c4bce Added input button and sleep config to T-Beam and Heltec v2 boards 2024-10-05 22:20:34 +02:00
Mark Qvist
bfc215b2a3 Fix T3S3 SX1262 dio pin and build config 2024-10-05 20:55:48 +02:00
liamcottle
e4deac3060 add support for user button on rak wismesh pocket which uses RAK4630 internally 2024-10-05 19:12:26 +13:00
liamcottle
49a524e8d5 add support for rak1921 oled display on rak4631 boards 2024-10-05 16:07:22 +13:00
Mark Qvist
9556f0b91b Added support for T3S3 boards with SX127x modems 2024-10-05 02:47:54 +02:00
Mark Qvist
1ac3a6c2c8 Remove boot-mode/reset requirements for T3S3 flashing 2024-10-05 01:07:44 +02:00
Mark Qvist
6974a50d10 Added T-Beam Supreme support 2024-10-05 00:42:19 +02:00
Mark Qvist
bd887f7de2 Disable T-Deck display until functional 2024-10-03 02:53:11 +02:00
Mark Qvist
fef27b194c Basic T-Deck display support 2024-10-03 02:51:54 +02:00