BCM20736S - change ATT_MTU

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
StSm_298421
Level 3
Level 3
10 replies posted 5 replies posted 10 questions asked

Is it possible to change the ATT_MTU (in order to support larger MTUs than the default 23 octets after an EXCHANGE_MTU request)?

There's a #define in bleapp/lestack/att/leatt.h:

#define LEATT_ATT_MTU 23

I can change this, but it has no affect for some targets (e.g. the sample target "automation_io-BCM920737TAG_Q32 download" is unaffected, probably because it is all in ROM). Presumably the in-ROM profiles have a hard-coded MTU size which cannot be renogiated. Does the BT stack for this module support EXCHANGE_MTU at all?

thanks Stuart

0 Likes
1 Solution

It's possible that you need to login again as this material is in the same forum as where you posted this message.

Here's a cut and paste for convenience (you can also type MTU in the search box above and see it that way):

------------------

This question arose from a customer and I thought others "out there" might have the same curiosity:


For iOS 7, Apple has increased the available MTU size.  This allows for larger payloads to be sent and can help simplify the application software.

I was wondering how large of payloads are possible using the Broadcom BLE stack.  For example, I am using the bleprofile_sendNotification() API function.

Here are my questions.

1 - What is the maximum MTU for the BCM20732?

2 - How many packets can be sent in parallel for a given connection event?


Answer:

#1. Max MTU is 23 bytes by default.

#2. Depends on how you define 'in parallel'. You cannot send more than one packet per RX/TX pair. You can have up to 255 RX/TX pairs per connection event (assuming that the other side is also BRCM silicon), default is 4, but whether it really uses all available RX/TX pairs depends on whether the master schedules more polls, other tasks like ADV/scans/connections that need to be serviced or the amount of data available to transmit on either side. If you define it as how many packets can be outstanding (unacked), then this is 15, before flow control kicks in. This is configurable, though at the cost of available RAM.


Note: There is a strong relationship between battery life and size of the MTU.  Typically a smaller MTU = longer battery life but ultimately depends on how much data the application needs to send and how often.

View solution in original post

9 Replies