[Feature request] Optional BLE repeater observer transport with bounded queues
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- c, github
- Domain
- embedded-iot
Research direction
Read the proposed implementation at https://github.com/throny/meshcore-ble-observer and its source/provenance tooling, then review MeshCore's CONTRIBUTING guidance for the maintainer discussion. The request leaves API boundaries and PR split undecided, and validation is incomplete across long duration, RF, energy, recovery, security and other hardware. Done means maintainer agreement on scope and boundaries before a feature PR.
Written by the indexing model from the issue text.
Description
Problem
A repeater observer normally needs a permanent USB connection to forward the
repeater's own packet observations to a host. A nearby Companion observes its
own RF reception, not the repeater's internal observations. An opt-in BLE export
would support installations where a permanent USB data cable is impractical.
Proposed approach
- Default-off repeater observer feature selected through a separate custom build
target; no automatic replacement or update of stock firmware. - Physical enrollment, bonded/encrypted BLE, one pinned observer peer and explicit
revocation. No automatic or open enrollment after reboot. - Bounded packet/log callbacks, record queues and fragmentation with session and
sequence identifiers, complete-record ACKs and explicit loss counters. - ACK means host RAM reassembly, not MQTT delivery; no lossless/durable replay
claim. RF forwarding must remain the primary responsibility. - Shared protocol/queue primitives, with an initial nRF52/SenseCAP Solar P1-Pro
binding. Other boards need reviewed transport bindings and actual validation;
no generic cross-board compatibility claim.
An experimental implementation, source/provenance tooling and independently
maintained optional meshcoretomqtt BLE adapter are at:
https://github.com/throny/meshcore-ble-observer
Validation and limits
The current implementation cleanly replays against official repeater-v1.18.0.
Hosted CI builds the custom image and runs native/exact-source tests. Initial
P1-Pro/Linux-host checks exercised identity-preserving application updates,
bonded BLE packet reception, parsing and MQTT connections. Long-duration,
matched RF, energy, recovery and full interruption/security acceptance remain
incomplete; other hardware is unvalidated. This is not an official release or
an unattended/solar-readiness claim.
Following CONTRIBUTING, this issue seeks maintainer agreement before a large
feature PR. Would you consider this as a default-off repeater capability, and
what API boundaries/PR split would you prefer before a port to dev?
- Dominant language
- C
- Stars
- 3.9k
- Forks
- 1.5k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 24
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from meshcore-dev/MeshCore
-
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
meshcore-dev/MeshCore#3622 ·
Maintainers usually reply within 1 day
-
[Feature Request] Set Australia (Mid) Preset to automatically enable 2 byte default path hash sizeOpen
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
meshcore-dev/MeshCore#3571 · 5 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
meshcore-dev/MeshCore#3567 · 1 comment ·
Maintainers usually reply within 1 day
-
RTC_RX8130CE writes and reads the one-hot WEEK register as a numberPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
meshcore-dev/MeshCore#3549 ·
Maintainers usually reply within 1 day
-
Repeater: CLI reply to 'setperm <key> 0' is lost when the removed ACL entry sits before the requester (stale ClientInfo* after array shift)Possibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
meshcore-dev/MeshCore#3513 ·
Maintainers usually reply within 1 day
All issues in meshcore-dev/MeshCore
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
valkey-io/valkey#4979 · 1 reaction ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
colbymchenry/codegraph#2770 ·
Maintainers usually reply within 1 day
-
area/ysql kind/enhancement priority/medium status/awaiting-triage
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
yugabyte/yugabyte-db#35578 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
test_announce_and_connect_via_dns binds a fixed port that other tests' nodes can be handedPossibly taken @ksedgwic claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
ElementsProject/lightning#9642 ·
Maintainers usually reply within 2 days