google / google/bumble

ASUS USB-BT500 not working properly after first use with Bumble, works again after reset

Open
#964 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
555
Forks
138
Avg merge
3d 15h
Merged PRs (30d)
9

Description

I'm doing an ordinary outbound RFCOMM connect that begins with an SDP browse to a Bluetooth Classic accessory. After the first run of my program to successful completion, upon the next run, the controller locks up after establishing the bidirectional ACL link. I have noticed that after re-plugging the dongle, it starts working again. For now, my best idea is to just reset the controller inside my program upon startup.

I'm not sure whether it's a firmware issue, or Bumble does something upon termination that leaves the controller in a bad state, or maybe I'm using Bumble in a way that causes this... Since I'm very new to all of this, I'd appreciate any help.

## Steps to reproduce

1. Physically plug in an ASUS USB-BT500 dongle
2. Run a Bumble script that connects to a Classic peer and does an SDP browse → **works**
3. Let the script exit normally; do not unplug anything
4. Run the same script again → **hangs; no L2CAP channel is ever established**
5. `usb.core.find(idVendor=0x0b05, idProduct=0x190e).reset()`, then run again → **works**

## Environment

| | |
|------------------|--------------------------------------------|
| Bumble | 0.0.233 |
| Python | 3.14.4 |
| OS | macOS 15.7.7 (arm64) |
| Transport | `usb:0` |
| Dongle | ASUS USB-BT500, VID `0x0B05` PID `0x190E` |
| Controller | Realtek (manufacturer 93), RTL8761B |
| ROM firmware | HCI v10 rev 11, LMP v10 subver `0x8761` |
| Patched firmware | HCI v10 rev 57286, LMP v10 subver `0xd922` |

## Details

I've looked at the `BUMBLE_SNOOPER` capture and noted the following:

* The peer **is** reachable and does respond — its `Info_Req` arrives normally. So the ACL link is up and bidirectional at least briefly.

* After the host's `Info_Rsp`, **no further inbound ACL data arrives at all** — 1 inbound packet versus 47 in a working run. The host eventually times out and disconnects.

* The controller reports `Number_Of_Completed_Packets count=1` for each ACL packet the host submits, i.e. it claims to have transmitted them. I cannot tell whether the controller stops transmitting or stops delivering received packets upward.

* `HCI_Reset` (which Bumble does issue) does not clear the condition.

Contributor guide

Open the contributing guide

Research direction

Start by running the listed Bumble script twice with the ASUS USB-BT500 on the stated macOS and Python environment, then compare the BUMBLE_SNOOPER captures from the working and hanging runs. Investigate the USB transport and controller lifecycle around normal exit, HCI_Reset, ACL traffic, and the reported completed-packet events. Done means the repeat-run failure is reproduced and its firmware, Bumble shutdown, or usage cause is identified with a corrective change or documented workaround.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.