Hi, I am coding an application on nrf connect sdk 1.9.1. which requires to send some data at 25packets per second. and each packet will be ~37 bytes. On the receiver side in my particular use case, it may not be possible to update mtu size everytime
So to make the data streaming work with any mtu sizes, In the code, I am checking the mtu size before sending any data and if mtu size is larger i am sending the data packet as it is. if not, splitting the packet into two each of with 20bytes size with additional headers and numbers and sending one packet after the other.
When I run the application on 52840 eval board and use nrf52dk_52832 eval board with nrf connect desktop app as receiver or vice versa the app receives all the packets in order without any error (first pack then second pack which are split in the application).
But if i use android mobile app as the receiver and run the streaming then, it works fine for a couple of seconds and then the second packet starts missing. This is only happening with the android app. on the desktop app it works fine as long it is run.
I am attaching the modified peripheral uart code file. To reproduce,
1. flash the code to nrf52840 or 52832 eval board.
2. connect to the board with android nrf connect app.
3. give the command 'S' to start the streaming. without updating the mtu.
4. you will notice alternating data packet with headers 'X' and 'c' and after a while you will only receive 'X' packets
5. command 'S' also stops the streaming.
2728.peripheral_uart_data_stream_test.zip