Transmission times of connection event? - Part2

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

cross mob
Anonymous
Not applicable

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

SDK: 2.2.2

Hardware: Tag3(Master) + Our  Custom PCB-BCM20737S(Slave)

Firmware: hello_client + hello_sensor

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

Hi BRCM FAE,

As a continuation of this thread: Transmission times of connection event?

I'm sorry about my poor English,but  I will describe my problem as much as possible.

I can got 1~4 packets in each connection event. The results are shown in fig. 1. You can see that the master send 4 packets to the slave in one connection event. The slave send 1 or 4 packets to the master . This is the result after I download the hello_client and hello_sensor to the chip.

Reset前.png.jpg

     fig.1 After download the firmware

But when I reset the master and slave, and I got different result. The results are shown in fig. 2. You can see that the master just send 1 packet in connection event, and some connection event didn't send any packet.

Reset後.jpg

fig.2 After reset the MCU

The result of fig.1 and fig.2 is the same firmware. But I got different packet amount in connection event. Why has this phenomenon?

Hello_client firmware:

1. add GATT service

2. add auto scan(Because I disable GPIO interrupt)

1.jpg

3.change connection  parameter in hello_client_create.

2.jpg

4.add puart function

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

Hello_sensor firmware:

1. add GATT service

2. add notification callback function

3. send 15 notification packets to hello_client

3.jpg

4.change the Connection parameter update requeset

4.jpg

5. add puart function

0 Likes
1 Solution

My colleague from Avnet (Taipei) will get in touch with you on this query.

View solution in original post

0 Likes
17 Replies
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

Adding boont

0 Likes
BoonT_56
Employee
Employee
500 likes received 250 likes received 100 likes received

All I can say at this juncture is that Fig 1 and 2 do make sense to me. Take the 4-packet transmission in Fig 1 for example, the MD bit was 1 from M to S for the first three packets and 0 in the 4th and last packet. This implied that the master must maintain the connection event and slave shall listen (and not by default end the connection) after sending its packet. Then, in Fig 2, the reason that only one packet was transmitted was because the MD bit was absent from both M and S. S will end the connection after sending its packet and that will be one complete connection event.

As to why only one packet (instead of four) was sent after performing a reset, it is not obvious to me. I will dig a little deeper into the speed_test app.

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Hi boont,

Thanks for the quick response. The speed_test is a good sample so that we can  know data rate of bcm20737s. But the master and slave isn't same chip(Mater-BCM20702 & Slave-BCM20737S in my test).  I do not know that the different hardware(chip)will not affect the packet amount in connection event. So I use the hello_client and hello_sensor to test packet amount in connection event because both sides are the same hardware(chip).

We can call API to send the notification packet, and the BRCM BLE stack will store the packet into the TX queue. But we can't use the API to set the MD bit. The MD bit is set by BRCM BLE stack. So in what situation the MD will be set to "1"?

The attached is my code.  I hope the situation(different packet amount in connection event) can be copied. Maybe you can found the reason.

Michelle,

0 Likes

Is there a reason why you are investigating this issue of 4-packet per connection event? Are you trying to send a long characteristic?

0 Likes
Anonymous
Not applicable

Hi boont,

Thanks for the quick response.^^

Is there a reason why you are investigating this issue of 4-packet per connection event?

>I need a higher transmission speed in my application, and my project is base on hello_client and hello_sensor.  How many packets  that you can send in the connection event, it will affect the transmission speed. This is  the reason why I investigating this issue.

Are you trying to send a long characteristic?

>I know sample code(long_char_big_mtu & long_characteristic) can send bulk data.

Michelle,

0 Likes

I tried out on my PC setup with a 20702 dongle and a tag3 eval board with the speed test app and I consistently get about 80kbps. FYI.

0 Likes
Anonymous
Not applicable

Hi boont,

Thank you for the test. ^^

But I would like to know why MD bit will set different pattern after reset.

As to why only one packet (instead of four) was sent after performing a reset, it is not obvious to me

>Can you find the reason?  Is the firmware bug? Is the BLE stack limit the packet amout?

Michelle,

0 Likes
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

The speed test application represents the best case scenario for throughput that we can support in the broad market. There are probably ways in which the throughput could be improved upon, but it would require customizations and development support that is not available.

0 Likes
Anonymous
Not applicable

Hi mwf_mmfae,

I still want to know the reason. Why the MD bit will set different pattern after performing a reset?

Is the bug in my firmware?  Incorrect connection parameters or the other reasons cause this problem? 😕

Michelle,

0 Likes
Anonymous
Not applicable

Hi mwf_mmfae,

According to Michelle's previous test: 

                           Tag3(Master, hello_client) <==BLE==> Custom PCB-BCM20737S(Slave, hello_sensor)

(1) Both applications are run immediately after they are downloaded to the boards by WICED smart SDK =>  4 packets in one connection event.

(2) Then, power cycle both boards => 1 packet in one connection event.

It doesn't make sense.  Is there any solution to the problem? 

Bruce

0 Likes
Anonymous
Not applicable

Any solution to solve my problem?

0 Likes

I honestly do not know the answer.

0 Likes
Anonymous
Not applicable

Hi mwf_mmfae,

Can you ask the development team to find the answer?

Thank you.

Michelle,

0 Likes

Are you using "notification" as opposed to "indication"? As there is no acknowledgement required, this can speed up things a little.

0 Likes
Anonymous
Not applicable

Hi boont,

Thank you for comment.

Are you using "notification" as opposed to "indication"?

>Yes, I use writeCmd or notification to send the packet. I got same result(4 packets before reset,1 packet after reset) in my experiment.

Michelle,

0 Likes

My colleague from Avnet (Taipei) will get in touch with you on this query.

0 Likes
Anonymous
Not applicable

Hi boont,

Thank you!

This is my phone number.

07-2517688 #7107 (Jack)

boont

Michelle,

0 Likes