Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL



Intended Audience

ZigBee Wireless Networking is for developers who are interested in learning more about ZigBee. The developer who actually has a project at hand may benefit the most from the text and examples, but managers considering using ZigBee on a project will also benefit, especially from Chapter 1, “Hello ZigBee,” and Chapter 2, “Deciding on ZigBee.”

No prior experience with embedded programming, 802.15.4, or networking is required, but a working knowledge of the C programming language is helpful.

Most of the examples use the Freescale ZigBee platform, but the ideas apply to all ZigBee platform vendors. Occasionally, an example or solution is specific to the Freescale platform. Where this occurs, the text makes it clear that the solution is Freescale-specific, and not a ZigBee requirement, in general.

Formatting Conventions

Various elements in this book are specially formatted for easier identification while reading. Code samples are printed in a different style on a light gray background. Variables in the text are printed in bold. Each section ends in a brief summary, indicating the key points. For example, Code samples look like this:

void BeeAppDataIndication(void)


apsdeToAfMessage_t *pMsg;

zbApsdeDataIndication_t *pIndication;

zbStatus_t status = gZclMfgSpecific_c;


The Book's Structure

This book is designed to be read from cover-to-cover, tutorial style. Each chapter introduces concepts that are used in later chapters. However, the reader is encouraged to skip ahead if the concepts of any section are already familiar. To keep the reader oriented in each section, some overlap is necessary.

While it is not required, it is helpful to have the ZigBee and IEEE 802.15.4 specifications available when reading this book. I'll sometimes refer to a section or a concept in those specifications for further reading.

To obtain the ZigBee specification, go to and click on “Download the Specification.” It is free, and comes in PDF format.

Go to and select “IEEE 802.15.2-2003” to obtain the 802.15.4 standard in PDF format. There is a new draft standard, IEEE 802.15.2-2006, but ZigBee does not currently use that specification.

The chapters are organized as follows.

Chapter 1, “Hello ZigBee,” lays out the basics of ZigBee and its intended use. It describes the ZigBee Alliance, which is the standards body which defines and promotes the ZigBee standard worldwide. This chapter also provides the developer with several ZigBee networking examples, complete with source code.

Chapter 2, “Deciding on ZigBee,” helps the developer make technical and marketing choices about ZigBee, and even helps determine whether ZigBee is the right solution for any given problem. It provides a concise checklist, with all of the ZigBee factors that must be considered throughout the entire product life cycle, from inception through development, deployment, and maintenance.

Chapter 3, “The ZigBee Development Environment,” covers the basics of the ZigBee development environment, and walks the reader through an example, step-by-step, to help gain a full understanding of what's involved in the development and debug phase. This chapter contains information necessary if the reader plans to follow along with the examples using actual hardware.

Chapter 4, “ZigBee Applications,” goes in-depth into application development, including the fundamentals of ZigBee networks, nodes, addressing, Application Profiles, and the features provided to the application by the Application Framework (AF) and Application Support Sub-layer (APS).

Chapter 5, “ZigBee, ZDO, and ZDP,” describes the ZigBee Device Object (ZDO) and how it interacts with and is used by applications, including how to achieve maximum battery life from ZigBee nodes.

Chapter 6, “The ZigBee Cluster Library,” covers the library of common clusters used for profile and device development. It describes Home Automation in some detail.

Chapter 7, “The ZigBee Networking Layer,” goes in-depth into how ZigBee actually delivers packets from one node to another, including mesh and tree networking. It also discusses some of the table management that must occur for ZigBee nodes to last for years (and decades) in the field with no required maintenance. This chapter also describes security in detail.

Chapter 8, “Commissioning ZigBee Networks,” describes the commissioning process with ZigBee. This topic is critical to the successful deployment and maintenance of ZigBee networks.

Chapter 9, “ZigBee Gateways,” introduces gateways and describes techniques for retrieving information from a ZigBee network, as well as controlling and configuring sensors and actuators from outside the ZigBee network.

Appendix A, “ZigBee 2007 and ZigBee Pro,” is a quick reference to the ZigBee application API.

Appendix B, “ZigBee Quick Reference,” is a quick reference to ZigBee architecture and commands.

Appendix C, “ZigBee Cluster Library Quick Reference,” covers some of the new features in ZigBee to be found in the upcoming ZigBee 2007, a specification that was not quite ready for publication at the time of this writing.

Example Source Code

Each chapter contains examples designed to enhance understanding of the ZigBee concepts introduced. Only partial source code is included in the text of this book.

For full source code, including Freescale CodeWarrior project files, go to the web site:

The home page of this site is just an advertisement for the book, so remember to type in /code after the site name. The sample code may be freely used in applications. A standard author's disclaimer applies:

No warrantee is implied or expressed and it's probably not suitable for anything other than instructional purposes, and maybe not even that. If you use the source code, keep the copyright text intact.

The code on the Web site is organized by chapters. Each example, except for the two in Chapter 1, contain only the application source code, and assume that you use Freescale's BeeKit to generate the project. The whole process of taking small source code samples and incorporating them into the Freescale solution is described, step-by-step, in Chapter 3, “The ZigBee Development Environment.”

  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint