cancel
Showing results for 
Search instead for 
Did you mean: 

[STM32L4xx] How to increase BlueNRG-MS ATT_MTU

Mick Avery
Associate II
Posted on July 06, 2017 at 01:27

The BlueNRG-MS library for BLE v4.1 sets ATT_MTU to 23 bytes. Is it possible to increase this limit as long as it's less than the 255 character value length limit?

I am working with the SensorTile eval board with an STM32L4xx MCU, and I working with a modified version of the BlueMicrosystem2 example.

I've done the following:

  1. Set ATT_MTU to 46 bytes (or any number that's less than 255).
  2. I pair with the SensorTile using the ST BlueMS iPhone app.
  3. Immediately after receiving a EVT_LE_CONN_COMPLETE event that tells me that connection was successful, I call aci_gatt_exchange_configuration() to exchange ATT_MTU configurations.
  4. I then get back a EVT_BLUE_ATT_EXCHANGE_MTU_RESP event telling me that exchanging configurations was successful. The event also comes with a data packet that tells me what the new server_rx_mtu is. However, this is still set to 23 bytes.

Am I missing anything? Or is it not possible to increase the ATT_MTU?

#bluenrg-ms #stm32l4 #sensor-tile #ble
1 ACCEPTED SOLUTION

Accepted Solutions
Posted on August 23, 2017 at 01:38

There's nothing you can do to increase ATT_MTU over 20 bytes for BlueNRG-MS, you'd have to upgrade your bluetooth module to something that supports an ATT_MTU of more than 20 bytes.

My team upgraded to BlueNRG-2, which can give us an ATT_MTU of up to 158 bytes according to the datasheet.

View solution in original post

9 REPLIES 9
kishore R
Associate II
Posted on August 05, 2017 at 11:26

Hi,

I also facing the same problem. please help some one to solve this issue.

Mick Avery
Associate II
Posted on August 06, 2017 at 08:25

After getting in touch with an ST representative, I've verified that it is not possible to increase the ATT_MTU of the BlueNRG-MS module.

Posted on August 22, 2017 at 10:00

Hi Mick,

Thanks for the reply. 

Our application required to transfer 60bytes per packet. is there any way to transfer more than 20bytes per packet using BlueNRG-MS module to android device?

Posted on August 23, 2017 at 01:38

There's nothing you can do to increase ATT_MTU over 20 bytes for BlueNRG-MS, you'd have to upgrade your bluetooth module to something that supports an ATT_MTU of more than 20 bytes.

My team upgraded to BlueNRG-2, which can give us an ATT_MTU of up to 158 bytes according to the datasheet.

Posted on February 12, 2018 at 02:09

Hi Mick,

I'm having this same problem and trying to verify whether the 20byte limit is mentioned somewhere in documentation. Can you point me to the correct documentation location.

I have a 93 byte characteristic. If I trigger a read from the central side I get the full 93 bytes at the central. But if I try to push as an update from peripheral side I only get 20 bytes at the central. The problem seems to occur only when sending data as updates.

Regards,

Asela.

Posted on February 13, 2018 at 00:35

Got further information about documentation, in this thread.

https://community.st.com/0D50X00009XkWi6SAF

 

/Asela

Selva_emcus
Associate

hi .

I am using bluenrg-2a1 module with nuclel476rg .

Problem 1:

while sending the data from central to peripheral , i am always rx 20 bytes only but central and peripheral has accepted for 220bytes exchange at the time of mtu exchange.

problem 2:

from peripheral to central i am sending 200bytes of data but i am able to rx only 183 bytes of data 

 

Note:

mtu exchange acceptance value between central and peripheral is 220bytes of data.

ble stack init with the max mtu size as 220.

 

i have tried in many ways , but i was not able to fix it. if anyone knows it how to fix it/ any document related to this  , kindly revert back asap.

Hallo,

in BLUENRG-2, how to increase ATT_MTU to more than 158 bytes?to the maximum (247)?

Thank you.

 

if you are using network co-processor example code then you have to set the att mtu size for each characteristics while configuration else you have to increase the MTU ATT size macro which used to init the ble stack