Skip to content

ACL buffer cannot be changed; and enables broken MTUs as client #1041

@VisaJE

Description

@VisaJE

/** @brief ACL Buffer size */
#define CONFIG_BT_NIMBLE_TRANSPORT_ACL_SIZE 255

In nimconfig.h this variable is not guarded, so it cannot be redefined in compile flags. I would like to understand why?

I have a problem with esp32dev and esp32-s3 platforms working as BLE clients: By setting
#define CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU 512
and calling
NimBLEDevice::setMTU(CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU)
I enable receiving notifications longer than the default 255, but the bytes in the notifications are nonsense beyond 255 (mostly nulls).

NimBLE version is 2.3.6, also tested 1.4.3.

I manually hacked #define CONFIG_BT_NIMBLE_TRANSPORT_ACL_SIZE 512 in the nimconfig.h and the packets seem to come through correctly.

Interestingly these issues do not exist on server side: I have another esp32-s3 communicating with the MTU==512, and at least Android platforms receive all data without issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions