Skip to content

Channel Capture

tools/channel_capture.py connects to multiple RFCOMM channels and captures traffic from each.

Terminal window
python tools/channel_capture.py [channels...]

If no channels are specified, the tool defaults to channels 14, 27, 8, and 9.

  • Connects to each specified channel sequentially
  • Sends probe commands in both based-connect and ff55 formats
  • Captures and displays all responses with hex dump, including ASCII representation
  • Analyzes packet structure (identifies headers, lengths, known patterns)
  • Generates a per-channel message summary

Several focused tools exist for specific channels:

ch14_session.py — Focused channel 14 probe. Connects, captures the initial ff55 traffic for 5 seconds, then sends test commands with various request types.

ch27_session.py — Focused channel 27 probe. Captures the fe03 beacon and tests cross-protocol commands.

grab_ch14.py — Fast channel 14 reconnect tool that polls with 120 retries over a 2-minute window. Designed for power-cycle capture: start the tool, then power-cycle the headphones to catch the connection window.

Terminal window
# Start grab_ch14.py, then power-cycle the headphones
python tools/grab_ch14.py

The grab_ch14.py tool is particularly useful because channel 14 is only available briefly after the headphones power on. The 120-retry loop with short intervals gives a reliable way to catch that window without manual timing.