Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

First-setup pairing window is too short and stays open after the first bond

Open
#53 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@Tichael is already working on this.

Since Oct 23, 2026.

  • #66 by @Tichael — open
  • #67 by @Tichael — open

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

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

enhancement

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) from contracts/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 to pairing_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

Open in Codespaces

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenCarControls/firmware

All issues in OpenCarControls/firmware

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.