Commit graph

868 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
180207aa2e Updated readme 2025-12-28 01:07:31 +01:00
Mark Qvist
4564dc3e9e Merge branch 'master' of github.com:markqvist/RNode_Firmware 2025-12-22 22:20:14 +01:00
Mark Qvist
c1efbe727d Updated readme 2025-12-22 22:19:06 +01:00
markqvist
15b8219966
Merge pull request #122 from vehsamrak/fix-readme-heltecv4
Heltec LoRa32 v4 devices added to supported hardware list in README
2025-12-19 14:10:44 +01:00
Petr Karmashev
5ac359ba06
Heltec LoRa32 v4 devices added to supported hardware list in README 2025-12-18 16:46:21 +07: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
9ea2a589cb Updated console image 2025-11-22 02:09:26 +01:00
Mark Qvist
15b3e7f605 Cleanup 2025-11-22 01:12:03 +01:00
Mark Qvist
e0f3ac1aee Cleanup 2025-11-22 00:08:47 +01:00
Mark Qvist
7b0658b197 Handle GC1109 LNA gain variance properly 2025-11-22 00:04:56 +01:00
Mark Qvist
b8ab1caf96 Updated console image 2025-11-21 16:51:43 +01:00
Mark Qvist
6b21940e59 Improved Heltec v4 LNA gain-value threshold parameter 2025-11-21 16:00:40 +01:00
Mark Qvist
8382d4a08d Fixed packet buffer FIFO state mismatch on high-bitrate queue processing if raw underlying byte buffer was full 2025-11-21 14:07:43 +01:00
Mark Qvist
5e98407ee2 Updated console image 2025-11-19 16:12:56 +01:00
Mark Qvist
af904efb9e Updated console build 1.85 2025-11-19 16:05:21 +01:00
Mark Qvist
99481f751c Cleanup 2025-11-19 15:01:43 +01:00
Mark Qvist
c48b7bce4c Cleanup 2025-11-19 14:40:45 +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
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
439bece78e Set hostname on wifi network 2025-11-17 19:18:41 +01:00
Mark Qvist
86ee47bb65 Cleanup 2025-11-17 18:47:50 +01:00
Mark Qvist
c467b82014 Added ability to specify static IP for WiFi STA connection 2025-11-17 18:47:18 +01:00
Mark Qvist
90539caee9 Cleanup 2025-11-17 17:04:54 +01:00
Mark Qvist
3f7a6a8941 Updated version 2025-11-17 16:41:40 +01:00
Mark Qvist
2319813a65 Added support for connecting ESP32S3 RNodes over WiFi 2025-11-17 16:41:25 +01:00
Mark Qvist
5b7b0d3afe Updated makefile 2025-11-14 01:40:06 +01:00
Mark Qvist
aa852f4aed Fixed device name offset in display 2025-11-14 01:16:38 +01:00
Mark Qvist
6d4a48af1f Fixed incorrect display drawing offset 2025-11-10 18:34:23 +01:00
Mark Qvist
c8bb7490a2 Build fixes 1.84 2025-11-10 18:19:55 +01:00
Mark Qvist
3cc2041516 Added device ID to display 2025-11-10 17:27:56 +01:00
Mark Qvist
89ea59bbe6 Added CPU temperature measurement and reporting on ESP32S3 2025-11-10 16:39:09 +01:00
Mark Qvist
8a3db4f0c3 Cleanup 2025-11-10 15:50:46 +01:00
Mark Qvist
59c0a60b33 Reworked battery charge state detection for boards with only ADC-based PMU. Improved battery charge status info on display. 2025-11-10 15:49:52 +01:00
Mark Qvist
427c06bf81 Reverted battery parameters for Heltec v3 to correct values 2025-11-10 12:02:36 +01:00
markqvist
ee9335517e
Merge pull request #109 from alligitor/Heltec_V3_Battery_Status
Fixed reading of battery voltage for Heltec V3.2.
2025-11-10 11:45:15 +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
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
1710740947 Cleanup 2025-11-01 15:34:38 +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
1817137767 Added LR1110 files 2025-10-17 22:44:30 +02:00
Mark Qvist
9d50259946 Updated version 1.83 2025-07-17 20:17:46 +02:00
Mark Qvist
1c87e36ddd Updated console build 2025-07-17 20:16:23 +02: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