Other Parts Discussed in Thread: Z-STACK, CC2530
Hi,
I need information on large scale deployment of Zigbee mesh / star networks
Who many units maximum per installation?
Best regards,
Shlomi
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.
Hi Sly,
We are so glad to see this reply. Currently we are using 500nodes in CC2530 for our wireless voting system. We are using Z-stack 2-4-0. Zigbee-Pro, Mesh. But we are not able to get more than 40 nodes in the network. And with these 40 nodes, some of them are not able to send back data after we asking ED and router to send data back to Coordinator.
Could you please help us on the network parameter setting? Currently we are using SimpleApp as our development platform.
Thanks.
Best regards,
chianho
Here are settings you can use for a large network. They may not be suitable for your application, but you can get an idea of what parameters to play with.
ROUTER PRO
MAX_NEIGHBOR_ENTRIES=48
ZIGBEEPRO
ZTOOL_P1
MT_TASK
MT_SYS_FUNC
MT_ZDO_FUNC
LCD_SUPPORTED=DEBUG
TVSA_SRC_RTG=1
SRC_RTG_EXPIRY_TIME=2
BCAST_DELIVERY_TIME=100
LINK_DOWN_TRIGGER=12
TVSA_DATA_CNF=1
ROUTE_DISCOVERY_TIME=13
DEFAULT_ROUTE_REQUEST_RADIUS=8
DEF_NWK_RADIUS=15
PERF_TEST
PACKET_FILTER_STATS
COORDINATOR PRO
ZIGBEEPRO
LCD_SUPPORTED=DEBUG
TVSA_DONGLE=1
HAL_UART=1
HAL_UART_DMA=1
TVSA_SRC_RTG=1
CONCENTRATOR_ENABLE=1
CONCENTRATOR_DISCOVERY_TIME=60
SRC_RTG_EXPIRY_TIME=2
MAX_RTG_SRC_ENTRIES=100
LINK_DOWN_TRIGGER=12
xCONCENTRATOR_ROUTE_CACHE=1
ROUTE_DISCOVERY_TIME=13
BCAST_DELIVERY_TIME=100
DEFAULT_ROUTE_REQUEST_RADIUS=8
DEF_NWK_RADIUS=15
PERF_TEST
F8wConfig.cfg
/*
* f8wConfig.cfg
*
* Compiler command-line options used to define a TI Z-Stack
* ZigBee device. To move an option from here to the project
* file, comment out or delete the option from this file and
* enter it into the "Define Symbols" box under the Preprocessor
* tab of the C/C++ Compiler Project Options. New user defined
* options may be added to this file, as necessary.
*
* Each macro is prefixed with '-D'. The entries are to be constructed
* as if they are to be on the compiler command line invocation (which
* they are).
*
* NOTE: The RHS must be quoted if there are embedded blanks. See
* DEFAULT_KEY for an example.
*/
/* Set to 0 for no security, otherwise non-0 */
-DSECURE=0
-DZG_SECURE_DYNAMIC=0
/* Enable the Reflector */
-DREFLECTOR
/* Default channel is Channel 11 - 0x0B */
// Channels are defined in the following:
// 0 : 868 MHz 0x00000001
// 1 - 10 : 915 MHz 0x000007FE
// 11 - 26 : 2.4 GHz 0x07FFF800
//
//-DMAX_CHANNELS_868MHZ 0x00000001
//-DMAX_CHANNELS_915MHZ 0x000007FE
//-DMAX_CHANNELS_24GHZ 0x07FFF800
//-DDEFAULT_CHANLIST=0x04000000 // 26 - 0x1A
//-DDEFAULT_CHANLIST=0x02000000 // 25 - 0x19
//-DDEFAULT_CHANLIST=0x01000000 // 24 - 0x18
//-DDEFAULT_CHANLIST=0x00800000 // 23 - 0x17
//-DDEFAULT_CHANLIST=0x00400000 // 22 - 0x16
//-DDEFAULT_CHANLIST=0x00200000 // 21 - 0x15
//-DDEFAULT_CHANLIST=0x00100000 // 20 - 0x14
//-DDEFAULT_CHANLIST=0x00080000 // 19 - 0x13
//-DDEFAULT_CHANLIST=0x00040000 // 18 - 0x12
-DDEFAULT_CHANLIST=0x00020000 // 17 - 0x11
//-DDEFAULT_CHANLIST=0x00010000 // 16 - 0x10
//-DDEFAULT_CHANLIST=0x00008000 // 15 - 0x0F
//-DDEFAULT_CHANLIST=0x00004000 // 14 - 0x0E
//-DDEFAULT_CHANLIST=0x00002000 // 13 - 0x0D
//-DDEFAULT_CHANLIST=0x00001000 // 12 - 0x0C
//-DDEFAULT_CHANLIST=0x00000800 // 11 - 0x0B
/* Define the default PAN ID.
*
* Setting this to a value other than 0xFFFF causes
* ZDO_COORD to use this value as its PAN ID and
* Routers and end devices to join PAN with this ID
*/
-DZDAPP_CONFIG_PAN_ID=0xbf2a
/* Minimum number of milliseconds to hold off the start of the device
* in the network and the minimum delay between joining cycles.
*/
-DNWK_START_DELAY=100
/* Mask for the random joining delay. This value is masked with
* the return from osal_rand() to get a random delay time for
* each joining cycle. This random value is added to NWK_START_DELAY.
* For example, a value of 0x007F will be a joining delay of 0 to 127
* milliseconds.
*/
-DEXTENDED_JOINING_RANDOM_MASK=0x007F
/* Minimum number of milliseconds to delay between each beacon request
* in a joining cycle.
*/
-DBEACON_REQUEST_DELAY=100
/* Mask for the random beacon request delay. This value is masked with
* the return from osal_rand() to get a random delay time for
* each joining cycle. This random value is added to DBEACON_REQUEST_DELAY.
* For example, a value of 0x00FF will be a beacon request delay of 0 to 255
* milliseconds.
*/
-DBEACON_REQ_DELAY_MASK=0x00FF
/* in seconds; set to 0 to turn off route expiry */
-DROUTE_EXPIRY_TIME=30
/* This number is used by polled devices, since the spec'd formula
* doesn't work for sleeping end devices. For non-polled devices,
* a formula is used. Value is in 2 milliseconds periods
*/
-DAPSC_ACK_WAIT_DURATION_POLLED=3000
/* Default indirect message holding timeout value:
* 1-65535 (0 -> 65536) X CNT_RTG_TIMER X RTG_TIMER_INTERVAL
*/
-DNWK_INDIRECT_MSG_TIMEOUT=7
/* The number of simultaneous route discoveries in network */
-DMAX_RREQ_ENTRIES=8
/* The maximum number of retries allowed after a transmission failure */
-DAPSC_MAX_FRAME_RETRIES=3
/* Max number of times retry looking for the next hop address of a message */
-DNWK_MAX_DATA_RETRIES=2
/* Number of times retry to poll parent before indicating loss of synchronization
* with parent. Note that larger value will cause longer delay for the child to
* rejoin the network.
*/
-DMAX_POLL_FAILURE_RETRIES=2
/* The number of items in the broadcast table */
-DMAX_BCAST=9
/* The maximum number of groups in the groups table */
-DAPS_MAX_GROUPS=16
/* Number of entries in the regular routing table plus additional
* entries for route repair
*/
-DMAX_RTG_ENTRIES=40
/* Maximum number of entries in the Binding table. */
-DNWK_MAX_BINDING_ENTRIES=4
/* Maximum number of cluster IDs for each binding table entry.
* Note that any value other than the default value may cause a
* compilation warning but Device Binding will function correctly.
*/
-DMAX_BINDING_CLUSTER_IDS=4
/* Default security key. */
-DDEFAULT_KEY="{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0D}"
/* Reset when ASSERT occurs, otherwise flash LEDs */
//-DASSERT_RESET
/* Set the MAC MAX Frame Size (802.15.4 default is 102) */
-DMAC_MAX_FRAME_SIZE=116
/* Compiler keywords */
-DCONST="const __code"
-DGENERIC=__generic
/****************************************
* The following are for End Devices only
***************************************/
-DRFD_RCVC_ALWAYS_ON=FALSE
/* The number of milliseconds to wait between data request polls to the coordinator. */
-DPOLL_RATE=1000
/* This is used after receiving a data indication to poll immediately
* for queued messages...in milliseconds.
*/
-DQUEUED_POLL_RATE=100
/* This is used after receiving a data confirmation to poll immediately
* for response messages...in milliseconds
*/
-DRESPONSE_POLL_RATE=100
/* This is used as an alternate response poll rate only for rejoin request.
* This rate is determined by the response time of the parent that the device
* is trying to join.
*/
-DREJOIN_POLL_RATE=440
Thanks Sly,
Let us have a test and get back to you. By the way, from the video swrc152.flv. They use RF power splitter to lower down the RF power to simulate the distance? Possible for us to test it in our lab without using RF power splitter or go out to field?
Best regards,
chianho
Hello,
If you are using development boards with SMA connectors, you can disconnect the antennas and place boards 20~30 cm apart. Another way is to tweak protocol stack settings in order to limit neighbor table sizes, it forces multi-hop behavior.
Cheers,
Thanks Sly,
We are play around the parameters that you share to us. FYI, our compile option setting as below,
Router-Pro
NWK_AUTO_POLL
RTR_NWK
REFLECTOR
POWER_SAVING
NV_INIT
xNV_RESTORE
xZTOOL_P1
xMT_TASK
xMT_SYS_FUNC
xMT_SAPI_FUNC
xMT_SAPI_CB_FUNC
HAL_UART=FALSE
HAL_LED=FALSE
And we change the -f $PROJ_DIR$\..\..\..\Tools\CC2530DB\f8wRouter.cfg from EnDev and
-C $PROJ_DIR$\..\..\..\Libraries\TI2530DB\bin\Router-Pro.lib from EnDev-Pro.lib.
For Coordinator-Pro
BUILD_ALL_DEVICES
REFLECTOR
NV_INIT
xNV_RESTORE
ZTOOL_P1
MT_TASK
MT_SYS_FUNC
xMT_SAPI_FUNC
xMT_SAPI_CB_FUNC
-f $PROJ_DIR$\..\..\..\Tools\CC2530DB\f8wCoord.cfg and
-C $PROJ_DIR$\..\..\..\Libraries\TI2530DB\bin\AllDevice-Pro.lib
We are using SimpleApp as our development platform.
Best regards,
chianho
Hi Sly,
We play around with the parameters that you share to us. But only 11 routers are able to bind in the Coordinator. The rest might be the child of the router. But we could not see them. Attached the package sniffer data for your reference. Wish you could help us on our issue.
As what you mention above, how do tweak protocol stack setting in order to limit neighbour table size?
The parameter in option;
Router-Pro
NWK_AUTO_POLL
RTR_NWK
REFLECTOR
POWER_SAVING
NV_INIT
HAL_UART=FALSE
HAL_LED=FALSE
MAX_NEIGHBOR_ENTRIES=48
ZIGBEEPRO
ZTOOL_P1
MT_TASK
MT_SYS_FUNC
MT_ZDO_FUNC
TVSA_SRC_RTG=1
SRC_RTG_EXPIRY_TIME=2
BCAST_DELIVERY_TIME=100
LINK_DOWN_TRIGGER=12
TVSA_DATA_CNF=1
ROUTE_DISCOVERY_TIME=13
DEFAULT_ROUTE_REQUEST_RADIUS=8
DEF_NWK_RADIUS=15
PERF_TEST
PACKET_FILTER_STATS
Coordinator-Pro
BUILD_ALL_DEVICES
REFLECTOR
NV_INIT
ZTOOL_P1
MT_TASK
MT_SYS_FUNC
ZIGBEEPRO
TVSA_DONGLE=1
HAL_UART=1
HAL_UART_USB=1
TVSA_SRC_RTG=1
CONCENTRATOR_ENABLE=1
CONCENTRATOR_DISCOVERY_TIME=60
SRC_RTG_EXPIRY_TIME=2
MAX_RTG_SRC_ENTRIES=100
LINK_DOWN_TRIGGER=12
ROUTE_DISCOVERY_TIME=13
BCAST_DELIVERY_TIME=100
DEFAULT_ROUTE_REQUEST_RADIUS=8
DEF_NWK_RADIUS=15
PERF_TEST
The config file are same as what you suggested.
Thanks,
Best regards,
chianho
Hi Sly,
We test the parameters in our lab, with 76 EDs + 12 routers. There is some strange behavior we observed. We test in the lab which is a room size. And we put 12RTR and 36 EDs into the network. The network constructed show in the New Picture(3). After that we test in same setup with 12RTR and 76EDs. The result is same, just the single line network (Snake network) getting longer.
Last, we test with 6 RTR and 10EDs. It look ok without the snake network. But as we test so far with different nwk parameters, we have no seen second layer network in our network analyser yet. Which is Coord -> Router -> End Devices.
Do you know the root of it? Will it be the RF power level are similar to cause the second layer network not able to construct? Please share to us if you have anything in mind. Thanks.
Best regards
chianho