Hello,
I'm using the nRF device to communicate with a peripheral device I get some characteristic notifications but only 20 bytes for a packet.
When using the 'nRF connect' GUI I manage to update the MTU from 23 to any larger value and get the full notification.
But I cannot alter MTU after connecting a peripheral device using the python library "pc_ble_driver_py".
Iv'e tried many ways like setting the default_mtu and the att_mtu on adapter initialization:
driver = BLEDriver( serial_port=port, auto_flash=auto_flash, baud_rate=baud_rate, retransmission_interval=retransmission_interval, response_timeout=response_timeout, log_severity_level=driver_log_level, ) driver.ble_gattc_exchange_mtu_req adapter = BLEAdapter(driver) adapter.default_mtu = 247 adapter.driver.open() gatt_cfg = BLEConfigConnGatt() gatt_cfg.att_mtu = adapter.default_mtu adapter.driver.ble_cfg_set(BLEConfig.conn_gatt, gatt_cfg) adapter.driver.ble_enable()
And to use the adapter.att_mtu_exchange function to but for no avail.
when i execute tyhe command :self.ble_adapter.att_mtu_exchange(self.conn_handler, 23)
it's running fine but when i try to increece the mtu to a different level like:self.ble_adapter.att_mtu_exchange(self.conn_handler, 247)(or any number greater then 23)
it allways raise the folowing exception:
NordicSemiException: MTU exchange request failed. Common causes are: missing att_mtu setting in ble_cfg_set, different config tags used in ble_cfg_set and connect.
Is there any way to overcome this hurdle?
Thanks,
Uri