Hi,
Device: NRF53
I'm trying to send 3 notify packets in a 15ms connection internal but I can send 2.
I'm using Nrf connect and Zephyr. is there a limit or a define to set this.
Thank you for any guidance and help
Regards
Hi,
I will try to get you a sniifer trace but I do remember the more data flag being set to false on the second packet.
I also thought that Simon had tried this test with two nrf dk's. Could you do a sniifer trace of it working with an nrf dk central please. If it's a limitation of the central then I can explain this to my customer.
Thanks
There is a chance that it's hitting the limit of the stack. But we do need a sniffer trace to really understand the situation.
Please also look at the throughput example. As far as I know you can reach around 700kbps at 1Mbps.given that the ATT_MTU is configured correctly and Data length extension is applied.
I've created the same issue that i've been having with a basic hr example using NCS 1.6.1. in the 1st example I loop round 3 packets then sleep 5ms the other I sleep 30ms. See attached 2 sniffer traces. You can see in the 4ms trace it sends two packets per connection interval to one with 30ms sleep it sends 3 per con interval.hr_example_3packetLoop30ms_sleep.pcapnghr_example_3packetLoop5ms_sleep.pcapng
Hi Neil,
Attached you can find my example of sending 25 notifications in a 15ms interval connection.
It's not the maximum limit I believe. If you increase CONFIG_BT_CONN_TX_MAX you should have more but the CONFIG_BT_CTLR_RX_BUFFERS is limited to 18.
I found that what slowing down the rate in the original centralhr example was the printk inside notify_func() that causing the central to NACK the packet from the peripheral.
In my test with my Galaxy S10 it achieved similar number of packets.
Please try the example I provided here and if it works please follow the configuration in my projects.
Hi Neil,
Attached you can find my example of sending 25 notifications in a 15ms interval connection.
It's not the maximum limit I believe. If you increase CONFIG_BT_CONN_TX_MAX you should have more but the CONFIG_BT_CTLR_RX_BUFFERS is limited to 18.
I found that what slowing down the rate in the original centralhr example was the printk inside notify_func() that causing the central to NACK the packet from the peripheral.
In my test with my Galaxy S10 it achieved similar number of packets.
Please try the example I provided here and if it works please follow the configuration in my projects.
Hi,
Sorry for the delay but I been on vacation..
I've spent some time this week trying to re-create the performance that you've managed to find but i've not been able to. I tried with the central and also on my phone but no success.
I've attached your projects with my build folders in. If you could please verify on a nrf5340-dk that would be great.
I've also looked at the log for the rpmsg and the messages seem to also be groups of two.3264.hr_mp_NC.zip
Hi
Hung is on leave, and I will help you out in the mean time.
Normally issues with throughput on the nRF53 are caused by not configuring the hci_rpmsg application running on the network core properly.
If you take a look at the throughput example in the nrf repository you can see that they define a separate config file for this application, in a folder called child_image:
https://github.com/nrfconnect/sdk-nrf/tree/master/samples/bluetooth/throughput/child_image
Can you try something similar for your project and see if it improves the number of notifications you can achieve?
Best regards
Torbjørn
Thanks for the reply, I've checked the "nrf connect SDK project.." in hci_rpmsg_menuconfig and they seem to be correct, If there a good way to verify that the values have been built into the project?
if I add the child image folder do I need to regenerate the project in nrf Connect?
Thanks
Neil
Hi Neil
Neil_CPD said:If there a good way to verify that the values have been built into the project?
If you open your build folder, and navigate to the subfolder \hci_rpmsg\zephyr, there should be a file called .config which contains all the pre-compiled configuration settings:
In this file you can search for the config parameter you are interested in (such as CONFIG_BT_CTLR_RX_BUFFERS), and verify that it is set as you expect.
Neil_CPD said:if I add the child image folder do I need to regenerate the project in nrf Connect?
Yes. This is not picked up by the build automatically, and you need to re-run cmake in order for these settings to be included.
You can do this from the command line by running west build with the -c parameter:
west build -c
If you use Segger Embedded Studio there is a menu option to rerun cmake:
Menu -> Project -> Run CMake...
Best regards
Torbjørn
Hi Torbjørn,
Thank you for the advice. I can see all the config values that Hung has set in the project that he has attached but this hasn't made any difference I still only get 2 notify packets per connection.
Do you have a nrf5340-dk that you could test with and attach the build folder so I could program the hex as a test please?
Or if you have any other suggestions to try next that would be great.
Thank you.
Neil