This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Data throughput mesh

Hi guys I m trying to send a simple message every time a gpio interrupt occurs on the client in order to receive that on the server. I m using the ble mesh protocol and I used in particular the light switch example. I modified the client code in order to send a message on the gpio interrupt and it works fine with a good data throughput.. I will expect to receive the data on the server but here there is the problem. If the data frequency is bigger than about 6/7 Hz the server does not receive all the data. There is a way to overcome this limit? Which is for ble mesh the limit? Is there in the server software some elements I can change in order to overcome the receiving frequency? 

Parents
  • Hi.

    The throughput limit of BLE Mesh is 31 bytes per packet (11 byte payload), which is about 11.6 kbps p2p.

    How much data are you transmitting?

    Do you do any hopping with the data?

    Best regards,

    Andreas

  • Actually I don't transimitt anything. I say better : I used the same send function in the client to have a message start from the client to the server. What before was made by the button now was obtained by a gpio interrupt:on both the edge resulting in the sending to the server. I m only interested in the interrupt and which is the fastest frequency the server can receive. I tested that client can send also 200 Hz but now the server could not receive 200 Hz packet.. Which is the problem? 

  • That is the gpio interrupt function i added in the client script in order to send every time the input changes to the server. As i said before client could change the input state with a very high  frequency but the server doesn't follow it. I didn't change any thing in the server script...I only defined for the net 1 client e 1 server to increase the speed of recognition and then sending

  • Hi again.

    Could I ask what you're trying to achieve here?

    Are you interested in knowing the state right now?

    Are you interested in receiving all the changed states?

    It is not optimistical to expect BLE Mesh to run with a low and consistent latency, there will atleast be 15 ms per hop. And you are sampling each 5 ms?

    I don't think you can achieve 5ms latency.

    Best regards,

    Andreas

  • yes i only  interested in receiving all the changed states,and understand which is the max frequency...what should i do? thanks

Reply Children
  • Hi.

    Well, you can either try to buffer up some data if you want to keep that sample rate, or you have to lower the sample rate.

    Anyway, I still think that aiming for 15ms latency is quite difficult.

    Best regards,

    Andreas

  • what does it mean buffer up? the scope is to understand which is the fastes frequency the server can receive. there is a limit on the server?

  • Hi.

    Sorry if that was confusing.

    What I mean is you said:

    marikalp said:
    all the changed states,

     So I understand you sample multiple GPIO's?

    You can have 11byte per packet you send, so if you make sure that you send 11 bytes each time you send a message.

    Best regards,

    Andreas

  • hi..can I ask you if the problem could be I m using the nrf52840 board ,but for ble mesh I don't use the softdevice like for ble (s140) and ant (s340)..have i to flash it before to run my code?

    Thanks a lot.

  • trying to flash before the s140 softdevice i had this error:

    <t:      13105>, app_error_weak.c,  108, Mesh assert at 0x0002D682 (:0)

    what do i schould  do?