This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ZigBee or 6LoWPan for a large scale network

Other Parts Discussed in Thread: CC2650, Z-STACK

We develop our product with CC2650 for an outdoor application that may aim for tens of thousands nodes on the network.

Could you please help me to decide if Z-Stack (ZigBee) or Contiki (6LoWPAN) is better to deploy on the modules? I heard many times that ZigBee is problematic to form large scale networks and the product examples rates Gateway to node ration as 1 to 200-400. I wonder what is the hinder on ZigBee that limits the node size on practice (is it internal memory limitaiton) although the 16 bit addressing should allow 65 000ish nodes. 

Is there any practical issues that may cause problem on very large ad-hoc mesh network if I go for Contiki?

  • Yes, the problem is on internal memory. Even you use Contiki (6LoWPAN) is the same. You can refer to the discussion at e2e.ti.com/.../412541
  • Thank you for the reply and the link. Is it the routing mechanism that consumes more internal memory as the network size increases? Is it possible to solve the problem by implementing a new routing mechanism and route storage mechanism?
  • Yes, it is the routing mechanism that consumes memory. However, routing mechanism is in Z-Stack library and it is not open to application programmer from TI.
  • If one uses Contiki, then it is possible to develop a new routing mechanism, right?
  • I don't think it will make big difference if you have a look at TheDarkSide's replies.

    1) the answer to this question depends on several factors: the application layers, the traffic profile on top of the 6LoWPAN stack, the physical topology and the resources available on the device. The more lenient the protocols are on top of IP, the bigger the network can be. On the other side the bulkier the protocols are (like XML on HTTP transactions), then the more complicated it is to handle intense traffic profile on the network. In terms of over the air utilization, the most efficient combination in terms of over the air resource utilization is CoAP over UDP. Then as mentioned it depends on how much data you exchange and how frequently. Typical deployment can go beyond hundreds of node in the network. 1500 in a single deployment looks a bit of a stretch
  • Hi Serdar,

    In regards to your original question "Could you please help me to decide if Z-Stack (ZigBee) or Contiki (6LoWPAN) is better to deploy on the modules?"

    I'd like to raise the main difference which might help you decide between ZigBee or 6LoWPAN.

    Telemetry (From Device to Cloud or Server)

    With 6LoWPAN, you are on an IP network, so if you are wanting to communicate directly over the Internet to the Cloud or a LAN to a local server, this makes life much easier as you will not need to develop a Gateway to translate your packets from Zigbee to IP. You just need a Edge Router that routes the IP packets from the 6LoWPAN network to Wi-Fi or Ethernet.

    With ZigBee you will need to develop a Gateway that translate ZigBee packets to IP packets. This may be preferred if you are performing some sort of compression or other forms of manipulation of your data before sending to the Cloud or a server, as this will reduce the number and size of packets. This works well when you are interested in the sum/average etc of the nodes and not the individual node data.

    Command (From Cloud or Server to Device)

    With 6LoWPAN you can either communicate directly with the Device (port forwarding for example) or preferably you can have the Device open the connection and then communicate directly using that connection. This provides a simple mechanism for individual control of a device, if you need group control you can initiate this from the Cloud or Sever also. 

    With ZigBee, if you want to send commands to individual Devices then you will need some way to manage that process and identify each node. This will mean your Gateway will require a fair bit of code to make this all work. However if your solution does not need individual control, but group control, then ZigBee may be a better a choice if you would like the group to be managed by the Gateway.

    There may be other points to this discussion that highly knowledgeable ZigBee developers like YiKai could add.

    Glenn.

  • I second Glenn's statements. Though you anyway need a physical bridge to translate from IP (Wi-Fi, Eth, cellular) to 802.15.4 in both cases, the idea behind 6LoWPAN is that the gateway is much thinner as you don't need to proxy between servers and nodes when you are communicating between them, translating from instance IP to ZigBee addressing or telegrams.
    Both ends can speak IP protocols.
    Other things though need to be considered: while gateways in ZigBee are more complex, the traffic exchange between nodes in the network is with packets that are transporting ZigBee protocol-based application data, which is typically smaller than application layer protocols and headers designed to run over IP (imagine TCP, HTTP, etc). This has several implications in terms of traffic OTA (as you would need to transmit more segmented packets at 802.15.4 level to build a complete application frame), power consumption of the nodes (the more packets you send, the longer the radio is active) and also therefore indirect effects on the network size and latency for end-to-end communication.

    Considering the OTA traffic, I believe a ZigBee large network would be less congested than a 6LoWPAN one. For the simple reason that the bulky IP traffic happens outside of the 802.15.4 link in the first case.
    Please remember 802.15.4 modulation at 2.4 Ghz gives 250 kbit/sec and frames are 127 bytes.

    Thanks.
    TheDarkSide
  • Can't agree anymore to TheDarkSide and this is why I stick to Zigbee mesh now.
  • 6LoWPAN is basically a toolbox, a set of protocols and open standards. So it is up to your specific application/use case what protocols to actually implement. COAP over UDP is very efficient, with low overhead and good compression rates in 6lowpan layer.

    ZigBee is however a more mature product which fits very well with your described application scenario.

    /Jonas
  • This is a really interesting discussion. On a practical note, trying to manage a network with thousands upon thousands of nodes would be a nightmare. I've deployed 1000+ Zigbee nodes across hospitals, and we found that dividing this into smaller networks is much better. It helps the network be more resilient in case a Coordinator gets kicked or stolen.
  • It is wonderful that you can deploy 1000+ Zigbee nodes across hospitals. Do these Zigbee node under the same Zigbee network? Or you seperate them to many Zigbee network?