Skip to content

Conversation

@kareltucek
Copy link
Collaborator

@kareltucek kareltucek commented Jan 30, 2026

Summary

  • Proactively initiate ATT MTU exchange in the connected callback for all BLE connections
  • Previously, HID connections relied on the host to initiate MTU exchange, which sometimes failed after host switching
  • This fixes "No ATT channel for MTU 32" and "No buffer available to send notification" warnings

Background

The default ATT MTU is 23 bytes (20 bytes payload). When HID reports exceed 20 bytes, notifications fail if MTU hasn't been negotiated higher. NUS connections already performed MTU exchange, but HID connections did not.

Test plan

  • Test BLE HID connection to multiple hosts
  • Test switching between BLE hosts multiple times
  • Verify "MTU exchange done" log appears for connections
  • Verify no more "No ATT channel for MTU" warnings after switching

🤖 Generated with Claude Code

@kareltucek
Copy link
Collaborator Author

This seems to significantly reduce the number of ble hid interface fails (mouse or keys not working).

@kareltucek kareltucek merged commit ce917df into master Jan 30, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants