Zigbee Development Tips

Develop like a pro! Here are some tips that we have found helpful when developing Zigbee applications:
 * It goes without saying, but use a version control system! There are many good ones out there including Subversion, Git, even the venerable CVS. There are also many hosted solutions, some less than $5 per month. These examples were developed using Subversion. A good Subversion client for Windows is TortoiseSVN (free); a good Subversion client for Mac is Cornerstone (not free).
 * Use multiple monitors. It's handy to have at least two since while developing you'll likely have the Integrated Development Environment (IDE) for compiler, Version Control System client, multiple terminal windows (one for each device), and of course this awesome wiki.
 * If you are planning on porting the Zigbee Modules libraries or examples to other hardware platforms, you'll need access to a logic analyzer and oscilloscope. We've created some utilities to make this easier. See hal_helper.c in the HAL directory for more information.
 * Buy the following:
 * Decent Logic Analyzer with SPI bus analysis. The examples were written with the Salae Logic Analyzer
 * Book, ZigBee Wireless Networks and Transceivers by Shahin Farahani
 * A Packet Sniffer. A very low cost one uses the CC2531 USB Evaluation Module - install TI Packet Sniffer
 * CC Debugger
 * 7-port USB hub - to prevent COM ports from changing, label each port (e.g. "Logic Analyzer", "Coordinator", "Router", "Packet Sniffer", etc.)
 * Multiple development kits – hardware is cheap. Time is not. In project options, configure your Coordinator project to use one USB board and configure your Router or End Device project to use a different board. That way you don't have to keep changing this. It also helps to have extras on hand in case you let the magic smoke escape.
 * When debugging basic communications between two devices it is handy to monitor the radio signals (CS, MOSI, SOMI, SCLK if using SPI) on both devices. That way you can see if the other device received the message.