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

Point to multipoint Gazelle sensor project, help needed.

Hello, I would like to build a sensor array that communicate with one master in a star topology. I have played with the Gazelle protocol example (gzll_ack_payload examples) on the SDK Rev12. I was able to set payload to 3 bytes and use the first byte as the device id and other bytes as useful info about the sensor state. on one sensor and one host I got what I wanted, however, once I programmed 2 sensors with different ID everything stopped working. I am well aware that both sensors cannot operate with only payload variation, and I am stuck here. what is required to do in order to sync both sensors/multi sensors (even on expense of throughput)? Sensors do not need to supply a stream of data, a keep-alive and IO change at 50mS rate would do pretty OK. I do not use a softdevice, I have my own HW version, quite similar to PCA10028. HW is working OK. Any help is much appreciated, thanks.

  • Hi Avi,

    The Gazell host has 8 pipes each with different address. You don't need to use the first byte in the payload as the device id if you don't plan to have more than 8 sensors. Each of the sensor communicate with the host via its own "pipe" or address.

    To setup the pipe address you can set the base 0 and base 1 and the prefix for each of the address. Please find the addressing policy in the nRF52 spec (BASE0, BASE1, and prefix). In gazell you can use nrf_gzll_set_base_address_0(), nrf_gzll_set_base_address_1() and nrf_gzll_set_address_prefix_byte() to setup the pipes.

  • Hello and thank you for the swift reply. I would like to use up to 50 sensors, what can be done in this case?

  • If your plan is to have more than 8 sensors then you have to go back to what you already doing, use one byte as extra address for the sensors.

    It's important that you have to implement something to avoid collision. If 2 or more sensors transmitting at the same time it will cause interference (the same applies if you have less than 8 sensors and have different pipe for them).

    Gazell was not made for multiple device (more than 2) connect simultaneously. I think you should consider to try ESB.

    How could you expect to have up to 50 sensors which has 50ms interval ? If each occupies 1ms for communication, we already don't have enough time domain for all of them.

    To avoid collision you would need much slower interval.

  • Hello Hung and thank you for the reply. You are right about the time budget, I will reduce sensors or time. I will look into ESB

Related