Janez T
8da69705ee
fix: Align contact sorting labels #0
2026-03-19 14:06:05 +01:00
Janez T
140088fe2f
fix: Improve message signal chip behavior
2026-03-18 14:29:33 +01:00
Janez T
b48139964a
feat: RSSI trilateration from multiple repeaters
...
When a contact has no GPS, estimate their position from RSSI
observations through multiple repeaters:
- 1 repeater: offset by RSSI distance in deterministic direction
- 2 repeaters: weighted midpoint between circle intersections
- 3+ repeaters: weighted centroid with inverse-square weighting
(closer repeater observations dominate)
Observations stored per-repeater (latest wins), max 8 per contact,
expire after 30 minutes. Each incoming message updates the estimate.
2026-03-17 11:15:51 +01:00
Janez T
d29b85feb8
feat: Estimate contact location from RSSI + last-hop repeater
...
For contacts without GPS, estimate their position by:
1. Finding the first-hop repeater from their routing path
2. Estimating distance from RSSI using log-distance path loss model
3. Placing them at a deterministic offset from the repeater
Uses LoRa outdoor path loss exponent (n=3.0) with reference RSSI
-30dBm at 1m. Distance clamped to 10m-50km range. Bearing derived
from contact public key hash for stable positioning.
2026-03-17 11:08:56 +01:00
Janez T
cfd233d38e
fix: Remove relay labels, add signal bars #123
2026-03-16 22:01:41 +01:00
Janez T
fedd7b9a2b
Add custom cave map mode
2026-03-16 10:50:44 +01:00
Janez T
e502bc23b7
Update changelog to drop LPCNet
2026-03-14 21:35:57 +01:00
Janez T
e7a481f97b
Warn channels for delayed log rx
2026-03-13 20:32:07 +01:00
Janez T
9f31f50e61
Warn channels about delayed message
2026-03-13 20:14:07 +01:00
Janez T
d4237b7569
Add channel echo warning tracking
2026-03-13 20:07:39 +01:00
Janez T
1e70f52069
Allow overriding contact name
2026-03-13 10:16:04 +01:00
Janez T
53daf2c9a7
Add packet filter stats and hex
2026-03-12 20:54:04 +01:00
Janez T
69ec2dfdb5
Add live mesh traffic view
2026-03-12 20:12:25 +01:00
Janez T
2d1e6c0ca4
Fix tracing path and display issues
2026-03-12 14:08:00 +01:00
Janez T
ca872f2049
Add LPCNet voice mode support
2026-03-11 21:16:08 +01:00
Janez T
15ac3e2798
Align channel avatars and compact
2026-03-10 09:13:24 +01:00
Janez T
025bd737e7
Group contacts by last seen
2026-03-10 08:54:55 +01:00
Janez T
d675ce18dd
Use LogRxRouteDecoder in AppProvider
2026-03-10 08:43:58 +01:00
Janez T
9f62055eef
Enable route hash settings
2026-03-08 17:00:54 +01:00
Janez T
17d7c43745
Implement meshcore-open route reload
2026-03-08 14:26:05 +01:00
Janez T
1c3af4f927
Upgrade flutter packages and limit
2026-03-07 20:59:01 +01:00
Janez T
0e4f727e26
Add swarm mode transport doc
2026-03-07 14:13:54 +01:00
Janez T
f6c5a3a4ca
Add transmission timing details
2026-03-07 09:05:55 +01:00
Janez T
f1d56e2000
Refactor messages tab UI
2026-03-07 08:16:28 +01:00
Janez T
0e1a56d765
Log contact data without revealing
2026-03-06 20:47:02 +01:00
Janez T
43f5702666
Add conservative ACK timeout
2026-03-06 20:27:05 +01:00
Janez T
85d0b26c67
Add retransmission handling
2026-03-06 20:12:12 +01:00
Janez T
96feb75712
feat: save all pending work
...
ref:
2026-03-06 20:01:56 +01:00
Janez T
2482f94cd0
Push meshcore_client and refresh pub
2026-03-05 20:58:29 +01:00
Janez T
ab0c531a4b
Add toast for image fetch failures
2026-03-05 13:07:53 +01:00
Janez T
234edf5bb0
Add message clear option
2026-03-05 11:04:41 +01:00
Janez T
55a85659d3
Add tic tac toe DM game
2026-03-05 09:05:18 +01:00
Janez T
c176bd92a9
Tweak AVIF tuning and preferences
2026-03-02 09:42:14 +01:00
Janez T
a0c4cdeede
Add voice image packet retry
2026-03-01 19:25:19 +01:00
Janez T
0e7ba5572d
Improve image zoom quality
2026-03-01 19:17:09 +01:00
Janez T
474fd02635
fix: retain voice codec settings now
...
ref:
2026-03-01 11:00:30 +01:00
Janez T
f96d8022ac
feat: add Codec2 voice messages over LoRa mesh (iOS/macOS only)
...
Push-to-talk voice messaging using the Codec2 ultra-low-bitrate speech
codec, transmitted as V: prefixed packets over the existing MeshCore
LoRa mesh pipeline.
Voice recording UI (long-press send button or + menu) is gated behind
Platform.isIOS || Platform.isMacOS since the `record` package only
supports microphone capture on those platforms in this build.
Key changes:
- VoiceRecorderService: streams 8kHz mono PCM chunks via `record` package
- VoicePlayerService: decodes Codec2 bytes to WAV and plays via audioplayers
- VoiceCodecService: async Codec2 encode/decode in background isolates
- VoiceProvider: reassembles multi-packet sessions, drives playback
- VoiceMessageBubble: shows packet progress, play/stop controls
- MessagesProvider: detects V: prefix, routes to VoiceProvider
- MessagesTab: PTT long-press gesture + recording indicator (iOS/macOS)
- Message model: isVoice + voiceId fields for session tracking
- Auto-selects codec mode from radio bandwidth (700C/1200/1300 bps)
- codec2_flutter + meshcore_client switched from path to git deps
2026-02-28 19:19:46 +01:00
Janez T
c39e0e1344
refactor: extract BLE protocol stack into meshcore_client package
...
Move BLE communication layer (command queue, frame parser/builder,
protocol constants, data models) into a standalone reusable Dart package
at ../meshcore_client. App model files become thin re-export wrappers,
keeping all existing consumers working without import changes.
2026-02-28 14:09:30 +01:00
Janez T and Claude Sonnet 4.6
baf49d27d8
feat: MeshCore SAR - Flutter BLE mesh radio companion app
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-28 10:11:33 +01:00