BLE connection interval

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

BLE connection interval

1,506 Views
chetan98
Contributor II

Hello NXP team,

Is it possible to set minimum connection interval less than 7.5 MS to send data to central device.

I am using eatt peripheral and eatt central example code of KW45 EVK.

with regards

Chetan

 

Labels (1)
0 Kudos
Reply
11 Replies

1,070 Views
chetan98
Contributor II

Hello Nxp team , 

Can you tell me difference between shell and printf anc is shell uses DMA to print data in teraterm (in eatt cebtral sdk example) because I am now trying to implement dma to handle multiple device data.

I which example sdk to use for implementing dma as of now I used memory to memory transfer with shell but data printed less in teraterm.

I also have query I tried implementing lpuart with edma but it is not working i identified that Debug console I am unable to use in eatt central code.

Thanks 

Chetan

0 Kudos
Reply

1,057 Views
luis_maravilla
NXP Employee
NXP Employee

To work with a Wireless MCU, the connectivity software implements its own serial manager divers, it doesn’t use the SDK debug console and therefore it doesn’t use the semihosting debug console. In addition to this the examples are implemented to work with the normal UART communication; Avoid using printf() directly to prevent blocking the BLE stack or interfering with timing-sensitive operations.

 

Also, will you help us confirm if you are working with the KW45-LOC or the KW45-EVK? As the EVK SDK contains examples for DMA that maybe will help you.

 

Could you help us confirm how are you implementing the lpuart with edma? Are you working with the example [lpuart_edma_transfer] from the KW45-EVK SDK and it is not working? or you made implementations for the eatt central code?

 

Best Regards

Luis

0 Kudos
Reply

1,039 Views
chetan98
Contributor II
Hello Luis,
I am using lpuart_edma_transfer in kw45 LOC board but it is not working, than I used EDMA memory to memory transfer example with shell (I added shell) but data reflecting in UART is very slow.
Can you suggest me what to use for maximum data reception and printing in teraterm for multiple device at 30 ms with 240 byte each. (I am using KW45 loc board for data reception) with loc board sdk example.
Thanks
Chetan
0 Kudos
Reply

992 Views
luis_maravilla
NXP Employee
NXP Employee

Hello,

The example [lpuart_edma_transfer] without modifications could be flashed in the KW45-LOC and execute program sending back received data echo every 8 characters. This example is dedicated for the SDK for the KW45B41Z-EVK, so please take care of your configurations made in KW45-LOC as it is not the intended board.

 

After flashing your board, please do a reset, then you should see a message like this for testing 8 numbers as example.

luis_maravilla_0-1759874551639.png

Could you help us sharing your log or give a description about what you referring with your comment on example not working please?

If you want to perform a BLE connection sending data reception and printing in teraterm with multiple devices, Could you use the Wireless UART example, this device can connect multiple devices, for your data characteristics please consider that, a short connection interval can cause congestion when multiple devices try to communicate with the same central antenna, leading to interference and potential data loss. It's important to note that the data rates advertised in Bluetooth specifications are theoretical; in real-world applications, actual throughput is much lower due to several factors

 

Best Regards, Luis

0 Kudos
Reply

905 Views
chetan98
Contributor II

Hello Luis,

1.I am using wireless uart example for BLE how and when I trying to use lpuartedma example it is not printing anything in teraterm. I took reference of kw45b41zevk_lpuart_edma_transfer but not printing anything could you please guide me how to implement edma in wireless uart.

Board using KW45 LOC

2.can you please confirm whether shell use dma to store data or normal malloc is used to store and send data in teraterm.

Thanks and regards

Chetan

0 Kudos
Reply

406 Views
luis_maravilla
NXP Employee
NXP Employee

Hello Chetan,

To maintain a more organized support flow and ensure the conversation remains focused, could you please help me create this question in a separate NXP Community post?
Thank you for your understanding. 

Best Regards

0 Kudos
Reply

1,250 Views
chetan98
Contributor II

Hello,

I am sending multiple bytes using more than 180 at around 30 ms from 4 devices but as I increase number of device connected I see loss of data even I implemented 4 queue but I am receiving 65 per data only.  I checked teraterm log at maximum baud rate possible.

0 Kudos
Reply

1,229 Views
luis_maravilla
NXP Employee
NXP Employee

Hello Chetan

 

A short connection interval can cause congestion when multiple devices try to communicate with the same central antenna, leading to interference and potential data loss. It's important to note that the data rates advertised in Bluetooth specifications are theoretical; in real-world applications, actual throughput is much lower due to several factors: a limited number of packets per connection interval, a mandatory 150-microsecond Inter Frame Space (IFS) delay between packets, transmission of empty packets to maintain the connection even when no data is sent, and protocol overhead where only part of each packet carries actual payload. These limitations become more pronounced when multiple devices are connected simultaneously to the same central device, further reducing available bandwidth and increasing the chance of data loss.

 

If you want to send the major number of raw data with the highest data transfer rate, NXP provides the example private profile in another MCUs SDK (QN9090) if can reorientate you with your end mission application, just take in consideration multiple devices can also cause data loss.

 

Best Regards

Luis

0 Kudos
Reply

1,478 Views
estephania_mart
NXP TechSupport
NXP TechSupport

Hello, 

 

The minimum connection interval that is allowed by the Bluetooth Core Specification is 7.5 ms.

You can check more details about this topic in the Bluetooth Core Specification, Vol 6, Part B, Section 4.5.1 

So, per standard the connInterval can't be less than the 7.5 ms, would you help us with more details on what are you trying to achieve so that we can check if there is any recommendation we can provide to help you? 

 

Regards

 

 

0 Kudos
Reply

1,476 Views
chetan98
Contributor II

Hii ,

I am trying to connect 4 KW45 chip device to KW45 LOC board and sending 220 bytes data using BLE every 30ms , and I am successfully able to connect 4 devuce but while receiving data Loss observed I took log and analysed from kw45 LOC board output in uart.

Can you tell me the reason?

I am using Wireless uart to receive four device multiple device data in KW45 LOC board.

With regards

Chetan

0 Kudos
Reply

1,401 Views
luis_maravilla
NXP Employee
NXP Employee

Hello,

Could you help us confirm, what example are you using; The EATT or the Wireless Uart?

If you are using the Wireless Uart example, only modifying the number of devices without changing the data size, are you still seeing this issue?

 

Could you help us describe your modifications implemented?

 

While is it recommended to design small attribute value sizes, GATT layers as Wireless UART can only send 23 bytes of data in a radio packet setting the ATT packet default length to 23, The ATT packet length is set to maintain a logical mapping between radio packets and ATT packets.

 

I would recommend checking the series[1-4] of community post  Bluetooth Low Energy - Working with long attributes on a GATT Server - Part 1: ATT_MTU - NXP Communi... if you need to send more bytes of data, as explains how to write long attributes involves writing queues, and modifying the ATT_MTU for both GATT client and server to support larger MTU with MTU exchange.

0 Kudos
Reply