bluerobotics / bluerobotics/ping-firmware

Support device ID filtering

Open
#32 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
7
Forks
8
PR merge metrics
No merged PRs in 30d

Description

The [message format](https://docs.bluerobotics.com/ping-protocol/#message-format) includes fields for receiver and sender IDs, but using them is [documented as "not currently implemented"](https://docs.bluerobotics.com/ping-protocol/#negotiation-example), and they just get hardcoded to 0.

This is a valuable feature for people wanting to communicate with multiple devices on the same bus, as [raised in this forum thread](https://discuss.bluerobotics.com/t/parallel-uart-connection-for-2-ping2-sonars/17228).

This seems conceptually straightforward to implement, with a `msg.dst_device_id in (0, 255, self.device_id)` check in the receiving code, and including the sender ID if there is one set, although full support would require also updating Ping Viewer and the various ping libraries to make use of the feature.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in the receiving code and inspect how message receiver and sender IDs are represented, using the linked message format and negotiation example as context. Verify the proposed destination-ID filtering and sender-ID handling against the firmware behavior; done means devices can communicate selectively on a shared bus, with the broader Ping Viewer and library updates identified as follow-up work.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.