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

Smart Bluetooth

ShawnA_01
Employee
250 replies posted 100 likes received 100 replies posted
Employee

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.

0 Replies