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.

Parents
  • 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.

Reply
  • 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.

Children
Related