Commit Graph

12 Commits

Author SHA1 Message Date
DeFiDude 8947b636fc Fix LoRa presets: true max range BW 62.5kHz/22dBm, shift balanced and fast down
Long Range: SF12, 62.5 kHz, CR 4/8, 22 dBm (~37 bps)
Balanced:   SF9, 125 kHz, CR 4/5, 17 dBm (~1.8 Kbps)
Fast:       SF7, 250 kHz, CR 4/5, 14 dBm (~11 Kbps)

Previous Long Range used 125 kHz (3rd highest BW) and 17 dBm — not
actually max range. SX1262 supports 62.5 kHz BW and 22 dBm TX power.
2026-03-08 03:45:33 -06:00
DeFiDude 6cb3118230 v1.5.2: Fix TCP client failures on WiFi reconnect
- TCP connect timeout 500ms → 5000ms (matches RatCom)
- Always recreate TCP clients on WiFi reconnect (stale socket fix)
- Stop TCP clients cleanly on WiFi disconnect
2026-03-07 22:22:47 -07:00
DeFiDude 9ec2984d4f v1.5.1: Fix messaging failures, stale timestamps, retry logic
- Add NTP time sync on WiFi STA connect (fixes --:-- timestamps)
- Throttle LXMF send retries to 2s intervals, increase max to 30 (~60s window)
- Restore message status re-save to disk after send completes (QUEUED→SENT/FAILED)
- Update GitHub org URLs to ratspeak
2026-03-07 21:05:19 -07:00
dude.eth a32182140d v1.4.2: LXMF interop fix, UI redesign, radio defaults
- Fix LXMF wire format: standardize on opportunistic [src:16][sig:64][content]
- Fix LXMF signature: sign(dest||src||packed) per spec, remove message_hash
- Fix MsgPack interop: handle both str and bin types for title/content
- Radio defaults changed to Balanced preset (SF9/BW250k/CR5/TX14)
- Messages screen: sorted by most recent, preview with You:/Them:, green unread dot, timestamps
- Status bar: replace LoRa/BLE/WiFi text with signal bars (green=connected, red=offline)
- Home screen: remove Unread info (shown in Messages tab)
- Contacts screen added (Friends tab)
- Identity manager: multi-slot identity support with per-slot display names
- Message store: fix peer hash truncation, SD directory creation, .bak file leak
- Settings: check for updates, active identity display, info diagnostics
2026-03-07 17:03:34 -07:00
DeFiDude 07025bfa23 v1.4.0: LVGL UI, async radio TX, live TCP management, input fixes
- Migrate all screens to LVGL v8.4 widget system
- Non-blocking radio TX (async endPacket via LoRaInterface)
- Live TCP server switching with transient node cleanup
- Fix UI freeze during radio transmit
- Trackball long-press delete, deferred click with debounce
- Pin microReticulum to 392363c, fix list_directory API
- Fix CI build: portable include path, remove hardcoded local path
2026-03-07 13:00:59 -07:00
DeFiDude 9b7980665c v1.3.1: Chat bubbles, identity management, transport mode fix, performance
- Rewrite MessageView with word-wrapped chat bubbles, timestamps,
  incoming/outgoing alignment, pixel-based scrolling
- Add IdentityManager for multi-identity support (create/switch/delete,
  8 slots max, per-identity display names)
- Fix transport mode: default to endpoint (no rebroadcast) — was acting
  as transport node, rebroadcasting every TCP announce over LoRa causing
  5-11 second UI freezes per TX. Loop time: 11146ms → 6ms
- Add Transport Node toggle in Settings > Network
- TCP interface now drains up to 10 frames per loop (was 1)
- Reduce LoRa debug polling from 5s to 30s
2026-03-06 22:32:54 -07:00
DeFiDude 4c55c3ee6c v1.3.0: Major stability, settings redesign, WiFi scanner, TCP support
Stability fixes:
- Fix message duplication (8x repeat) via messageId-based filenames
- Fix message ordering with epoch timestamps (NTP-aware fallback)
- Fix device freezes: MessageView caches messages instead of reading
  disk every frame at 20fps (now refreshes every 500ms)
- Fix .bak file cascade: filter all file ops to .json only, cleanup junk
- Fix radio presets not persisting across reboots (removed force-override)

Settings redesign:
- Collapsible category navigation (6 categories with summaries)
- Enter to drill into category, Backspace to return
- WiFi network scanner with signal bars and RSSI display
- WiFi SSID/Password fields for STA mode
- TCP server preset (None / Ratspeak Hub / Custom) with host/port
- Frequency selector (868/906/915/923 MHz) and Preamble setting
- Factory reset with confirmation step
- Reboot device action
- Merged small categories (Input into Display, Actions into System)

New features:
- TCP network support for rns.ratspeak.org connectivity
- Preamble stored/applied in config and radio at boot
- Version bumped to 1.3.0
2026-03-06 22:09:17 -07:00
DeFiDude dbc33c7926 Fix LXMF message duplication: add messageId deduplication
- Add seen messageId set to processIncoming() to prevent duplicate
  processing of the same message arriving via multiple callbacks
- Remove redundant save at QUEUED stage (only save after send attempt)
- Cap dedup set at 100 entries to prevent memory growth
2026-03-06 16:32:59 -07:00
DeFiDude d518921eed v1.2.2: Fix trackball, add display name support, announce with app_data
- Fix trackball completely dead: remove gpio_reset_pin() calls that
  prevented GPIO interrupts from registering on ESP32-S3
- Add trackball left/right tab cycling when screen doesn't consume event
- Add NameInputScreen: Ratspeak-branded first-boot name input
- Add display name to all announces as MessagePack app_data
- Add TEXT_INPUT setting type; expose Display Name in Settings
- HomeScreen Enter key sends announce with toast notification
- Bump version to 1.2.2
2026-03-06 16:28:18 -07:00
DeFiDude 5d038aec9e Fix trackball dead after USB web flash
After ESP32-S3 USB download mode, GPIO peripheral state may persist
across soft reset. The trackball interrupts silently fail because
pins are in an unknown state from the bootloader.

Fix: call gpio_reset_pin() and detachInterrupt() before configuring
the trackball GPIOs, ensuring a clean state regardless of how the
device was reset (power cycle, RTS toggle, or software reset).
2026-03-06 15:43:13 -07:00
DeFiDude 80d4cd45f6 v1.1.0: UI polish, LXMF messaging fixes, keyboard cleanup
- Remove boot display test (color bars + 1.5s delay)
- Show identity hashes on NodesScreen (colon-formatted, matching own identity display)
- Show node names in MessagesScreen and MessageView instead of raw hex
- Add message status indicators in chat (*/!/~ for sent/failed/queued)
- Fix LXMF send: retry Identity::recall() up to 5 times before failing
- Add LXMF logging throughout send/receive/queue drain
- Remove Alt+IJML arrow key mapping (obsolete with trackball)
- Filter own node from discovered nodes list
- Update troubleshooting docs with SetModulationParams STDBY fix
2026-03-06 13:34:15 -07:00
DeFiDude 1255f0db51 Initial release: Ratdeck v1.0.0
Reticulum transport node + LXMF encrypted messenger for LilyGo T-Deck Plus.
ESP32-S3, 16MB flash, SX1262 LoRa, LovyanGFX display, NimBLE BLE.
2026-03-06 12:40:34 -07:00