First-setup pairing window is too short and stays open after the first bond
Maintainers usually reply within 1 day
@Tichael is already working on this.
Since Oct 23, 2026.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust
- Domain
- authentication, embedded-iot
Research direction
Start by reading contracts/opencar/core/v1/transport.toml, core_interface::close_pairing_window(), and docs/ble.md; then trace where the first bond is stored and check whether the app setup wizard displays the timeout. Confirm how buttonless boards use the pairing timer and what can trigger a second bond. Done when first setup has a longer finite window, the button window remains 60 seconds, the window closes after the first bond, and any affected wizard guidance and BLE documentation are updated.
Written by the indexing model from the issue text.
Description
Problem
- After #18 (PR #46), a board without a pairing button opens the pairing window at boot only while no phone is bonded (first setup). It uses the shared
pairing_window_seconds(60 s) fromcontracts/opencar/core/v1/transport.toml, the same value as the button window. - 60 s is tight for first setup: the owner has to plug the device in, open the app and get through the wizard before it runs out. On a WiCAN, a retry means unplugging it from the OBD port.
- The window also doesn't close when a phone bonds:
core_interface::close_pairing_window()has no callers, so the window runs its full timer even after the owner has paired, and a second phone can bond during that time.
Ideas
- Give the first-setup window its own, longer duration (around 5 min). That needs a new key in
transport.toml(append-only), next topairing_window_seconds. Keep the button window at 60 s. - Close the window as soon as the first bond is stored on a buttonless board. A stranger who bonds first then makes the owner's pairing fail visibly, instead of both phones ending up bonded.
- Don't make the first-setup window unlimited: a device whose setup was abandoned would stay open to any phone in range for as long as it's powered (pairing is Just Works).
- Check whether the app's setup wizard shows the timeout, and update it if so.
- Update
docs/ble.md.
Done when
First setup on a buttonless board has enough time to finish comfortably, and the window closes once the first phone is bonded.
- Dominant language
- Rust
- Stars
- 1
- Forks
- 0
- Avg merge
- 10h 56m
- Merged PRs (30d)
- 15
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
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 OpenCarControls/firmware
-
Clean up E-GMP leftoversPossibly taken @Tichael claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
OpenCarControls/firmware#34 ·
Maintainers usually reply within 1 day
-
BLE: send the current state when the app subscribesPossibly taken @Tichael claimed this today. Open
Difficulty 3/5 1-2 days Newbie friendliness 35/100
OpenCarControls/firmware#58 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
OpenCarControls/firmware#55 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
OpenCarControls/firmware#54 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
OpenCarControls/firmware#51 ·
Maintainers usually reply within 1 day
All issues in OpenCarControls/firmware
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
foxglove/mcap#1907 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
good first issue help wanted r-feature
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
servo/rust-smallvec#792 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day