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

How can I build Wireless sensor network using nRF51422

I have about 200-300 sensors, each requiring to send data at around 0.5-1Kbps to a central node (coordinator/master node), what will be the network configuration/topology using nRF51422 (or any other better suited Nordic IC) to send the data of all the sensors to the central node?

Parents
  • Hi

    If you want to support this many sensors sending that much data you need to implement some kind of timeslot mechanism, where each sensor gets a unique time in which to send data to the central node.

    One way to do this is to have the central node send a beacon packet to all the sensors at a regular interval. Each sensor will have to be configured with a unique ID, and based on this ID each sensor can calculate a unique timeslot some time after the beacon packet was received. The central node will then switch to receive mode to pick up all the packets from the various sensors.

    The beacon packet from the central node will have to be broadcast to all the sensors (ACK's disabled), while the packets sent from the sensors to the central could have ACK's enabled.

    You probably want to use the micro ESB library as a basis, since it introduces less overhead than the standard ESB library available in the SDK:
    https://github.com/NordicSemiconductor/nrf51-micro-esb

    Bets regards
    Torbjørn

Reply
  • Hi

    If you want to support this many sensors sending that much data you need to implement some kind of timeslot mechanism, where each sensor gets a unique time in which to send data to the central node.

    One way to do this is to have the central node send a beacon packet to all the sensors at a regular interval. Each sensor will have to be configured with a unique ID, and based on this ID each sensor can calculate a unique timeslot some time after the beacon packet was received. The central node will then switch to receive mode to pick up all the packets from the various sensors.

    The beacon packet from the central node will have to be broadcast to all the sensors (ACK's disabled), while the packets sent from the sensors to the central could have ACK's enabled.

    You probably want to use the micro ESB library as a basis, since it introduces less overhead than the standard ESB library available in the SDK:
    https://github.com/NordicSemiconductor/nrf51-micro-esb

    Bets regards
    Torbjørn

Children
  • Thanks for your reply, it makes sense however the clocks of all the nodes are not synchronized in such case each node will transmit in their time slot but it will calculate its time slot based on the local clock, will this not cause problem in synchronization? Secondly which radio (BLE or ANT) should the sensor node use for transmission so that all 300 nodes (@ ~0.5-1kbps rate) can successfully able to send their respective data to the central node. What I know is that BLE supports star topology with 1 Master and 7 slaves only (network size limited) and ANT has max. of 20Kbps in burst mode (throughput limited). Thanks.

  • Whatever the local clock is at the time the beacon is received, the sensors will have to calculate the relative delay until their own timeslot occurs. On top of that you will have to add some margin around the timeslots to account for clock drift between the receiver and sensors.
    As an example, if the sum of the clock accuracy in the receiver and sensor is 100ppm you have to add 100us margin after one second, because in the worst case the clocks might have drifted this far apart.

    Every time you receive a beacon packet you can reset the timer, and get back in sync.

    Neither BLE nor ANT will be able to satisfy your requirements. You have to do something proprietary, which means that you get much more control over the radio configuration and timing. Using the micro ESB library I linked to above is easier than configuring the radio directly.

  • Thank you, Which Nordic Proprietary Radio can work for my application? There is a possibility to use 3-4 central nodes (receivers) to collect data from 300 sensors, in which can each central node may need to collect data from 75-100 sensors only, but in this case there will be 3-4 frequency channels required. In case of proprietary radio, what kind of MCS (modulation and coding scheme) is used and how does its co-existence with other radio standards work out? And could you please elaborate further how micro ESB library helps in configuring proprietary radio.

  • Any chip in the nRF24L, nRF51 or nRF52 series will work in proprietary mode, but at the moment the best choice is probably the nRF51822/nRF51422. The nRF51 series has been out for a while, is well supported and has the most examples available for it.
    All the protocols supported by the Nordic devices use GFSK coding. The main difference is that you can use either 250kbps, 1Mbps or 2Mbps on-air bit rates in proprietary modes, while both ANT and BLE use 1 Mbps bit rate only.
    The main strategy to handle interference from other sources (WiFi for instance) is to employ a frequency jumping scheme, where one can avoid interference by jumping to a different part of the 2.4GHz ISM band. One way to do that in a beacon scenario is to have the central send the beacon packet on multiple preconfigured channels, allowing the sensors to send their data on either one.

  • Using the micro ESB library means you don't have to configure the radio registers directly, and you don't have to write your own code to handle packet buffering, acknowledgements, re-transmissions and so forth. The micro ESB library also provides an API similar to the NRF HAL API for the older nRF24L series, so it is easier to use if you have experience with the older Nordic radios.

Related