220 likes | 368 Views
Checking Zigbee network. What to do if the system is not working…. Basic system structure. UART Zigbee. 當 zigbee 的系統出現 問題 時 , 必須步一步把東西拆開來驗證 在 arduino 上驗證 sensor 是否正確 , arduino 是否有把資料正確的從 uart 輸出 … 這裡我們要說明如何確認 zigbee 網路有正確的工作. Item needed.
E N D
Checking Zigbee network What to do if the system is not working…
Basic system structure • UART • Zigbee
當zigbee的系統出現問題時, 必須步一步把東西拆開來驗證 • 在arduino上驗證sensor是否正確, arduino是否有把資料正確的從uart輸出… • 這裡我們要說明如何確認zigbee網路有正確的工作
Item needed • We need to connect zigbee to PC, and use terminal to check the network. • USB to 5V UART • here we use a FTDI one • Terminal: here we use docklight 1.9 • Free version can be down load here: http://www.docklight.de/
Connection between 5V FTDI and kittyBee Connect : GND to brown 5V to read orange to FTDI TXD yellow to FTDI RXD
Connecting brown to GNDon kittybee Here we use to GND pin on cc debugger header. You can use also the other GND pins on headers.
Connecting Red to 5V power We use 5V from FTDI and connect to power source as pic. Please notice the pin position, only low 2 pins are usable for power input on kittybee
Connecting UART Connect FTDI TXD(orange) to Z_RX_5V FTDI RXD(yellow) to Z_TX_5V Do not connect any 5V signal to 3.3V signal of zigbee, it could damage zigbee chip.
Plug in FTDI Plug in your FTDI into USB, it should appear in hardware manager as a USBSerial Port (In this case COM115)
Docklight operation • Basic docklight operation and set up can be found here: • https://code.google.com/p/kittybee/wiki/SetUpSimpleZigBeeNetwork
Start up docklight, and press start, we should first send the FE 00 01 , ping node command to see the status of module. Detail of command set can be found in another document. 2013/6/17 11:38:38.764 [TX] - FE 00 01 00 01 2013/6/17 11:38:38.783 [RX] - FE 10 01 0F 6C 69 CB 01 00 4B 12 00 FF FF 02 00 00 00 00 8A Here we can check the PAN ID (FF)and channel (02 00 00 00)of coordinator.And check the byte before checksum(8A in this case). 00 = coordinator 01 = router in connection 02= end device in connection 05= router or end device not connected to network. FF FF is a special PANIDTI zigbee pro stack, it’s better to avoid it. We can use FE 00 F2 to change PAN ID
Example of changing PANID • Here are few example command to change PANID: • Chage to 00 01 • FE 00 F2 02 00 01 F1 • Chagne to 00 02 • FE 00 F2 02 00 02 F2 • Change to 00 03 • FE 00 F2 02 00 03 F3 • For example change to 00 01 • 2013/6/17 11:51:52.322 [TX] - FE 00 F2 02 00 01 F1 • 2013/6/17 11:51:52.362 [RX] - FE 10 F2 02 4F 4B E4 • if module return 4F 4B, which are OK in ASCII, the panIDhas been changed. We can verify with 00 01 command: • 2013/6/17 11:53:24.076 [TX] - FE 00 01 00 01 • 2013/6/17 11:53:24.104 [RX] - FE 10 01 0F 6C 69 CB 01 00 4B 12 00 01 00 02 00 00 00 00 8B • Please note that the PAN ID high low byte is reversed in 00 01 command
Who has been connected? Since coordinator remember connected children,We can use FE 00 13 command to see who has been connected: 2013/6/17 11:55:38.245 [TX] - FE 00 13 00 13 2013/6/17 11:55:38.267 [RX] - FE 10 13 07 03 AB 34 DC 48 BF 20 93 The byte after 10 13 indicate how many devices has been connected to this coordinator and followed by their short address. In this case, there has been 03 device connected, their short address are : AB34, DC48 and BF20. Note: short address is the base of a zigbee network, every one in the network has unique short address. Coordinator has always 00 00 as short address. If the return of coordinator is correct on 00 01 and 00 13, we assume the coordinator is working correctly.
Plug in the child • Connection as same as we did for coordinator. • Open another docklight terminal to connect device.
Com port are different, we can use FE 00 01 command to see which one is coordinator and which one is end device. Make sure they are on the same channel and have the same PAN ID. And if it shows 05 in the return of end device, it means the device is not connected.
To check if device is connected FE 00 05 is used to get the short address of the device, compare to the short address in the child list of coordinator, we can tell if the device has been connected to coordinator. From coordinator • 2013/6/17 12:08:18.873 [TX] - FE 00 13 00 13 • 2013/6/17 12:08:18.890 [RX] - FE 10 13 07 03 AB 34 DC 48 BF 20 93 From device: • 2013/6/17 12:10:35.890 [TX] - FE 00 05 00 05 • 2013/6/17 12:10:35.907 [RX] - FE 10 05 02 BF 20 88
Passing data By default, we can broadcast data from coordinator, and also feedback data from device to coordinator. We should test if data is passing correctly by simply input data through terminal. For example we sent: 2013/6/17 12:18:02.560 [TX] - 11 11 11 11 11 11 11 11 we should see out put from device: 11 11 11 11 11 11 11 11
Trouble shoot There several possibilities that device lost connection, we can know it from the last byte of FE 00 01 return, or the short address in the child list. The easiest way is to issue FE 00 02,network reset command to device, and try to get it connect to network. When sending 00 02 command, module will not return anything, it will erase previous network data, and reset, and start to find correct network to join. So we should check the module with FE 00 01 few seconds after FE 00 02
example • 2013/6/17 12:28:00.014 [TX] - FE 00 02 00 02 • 2013/6/17 12:29:52.975 [TX] - FE 00 01 00 01 • 2013/6/17 12:29:53.007 [RX] - FE 10 01 0F 72 67 CB 01 00 4B 12 00 01 00 02 00 00 00 02 99 Re join network would require few seconds, sometimes, the cause of connection problem is not at device side, so we can slso issue a FE 00 02 on coordinator side to reset the whole network.
Still not working… • If FE 00 02 can’t save the networking, and the PAN ID, channel are all correct, power on/off the module is also worth a try. • If none are working, re load zigbee firmware is often the next step.