Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Z zigbee-dongle-kw2x
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 4
    • Issues 4
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Gianmarco Garrisi
  • zigbee-dongle-kw2x
  • Wiki
  • Home

Home · Changes

Page history
Writing wiki authored May 11, 2017 by Gianmarco Garrisi's avatar Gianmarco Garrisi
Hide whitespace changes
Inline Side-by-side
home.md
View page @ deb75386
This page explains how zigbee4java works in relation with the hardware used to perform the communication in the ZigBee network.
This page explains how zigbee4java works referring to the hardware used to perform the communication in the ZigBee network.
ZigBee Alliance defines some packets in their format. In particular it specifies anything regarding the ZigBee Cluster Library (ZCL) and some packets of the ZigBee Device Object (ZDO, Zigbee Device Profile for BeeStack) (at least in main contents).
The ZigBee Alliance defines some packets in their format. In particular it specifies anything regarding the ZigBee Cluster Library (ZCL) and some packets of the ZigBee Device Object (ZDO, Zigbee Device Profile for BeeStack) (at least in main contents).
The dongle vendor adds to these primitives the Test Library (ZigBee Test Client, ZTC, for BeeStack).
The library uses the Test Client to perform some actions on the dongle, like CPU reset or set/get channel, PAN-ID, and so.
The library uses the Test Client to perform some actions on the dongle, like CPU reset or set/get channel, PAN-ID, and so. This is strongly dependent on hardware.
The ZDO is used to perform actions mainly related to network management.
The packets defined by the ZigBee Alliance are defined in the *zigbee-common* package that is the higher level, hardware independent part of the library.
The packets defined by the ZigBee Alliance are defined in the *zigbee-common* package that is the higher level, hardware independent part of the library.
The parts that are dependent on dongle are inside the *zigbee-dongle-x* packages. Although not everything inside these packages is hardware dependent, in fact it is possible to isolate some classes that have a stronger dependency then others. I extracted a UML class diagram that highlights these parts.
![SimplifiedUMLClassesDiagram.svg](/uploads/3dda3058fa989cd1af4c0d9b6996084f/SimplifiedUMLClassesDiagram.svg)
A more complete (and very complex) UML class diagram is available in the repository. It has been extracted through an automatic tool.
A more complete (and very complex) UML class diagram is available in the repository. It has been extracted through an automatic tool.
To go on with the implementation I suggest working with the BeeStack BlackBox Reference that you can get from https://www.nxp.com/assets/documents/data/en/reference-manuals/BSBBZTCRM.pdf. In the repository there are 2 files ("BlackBox Reference table" and "ordered_by_OpCode") that are the table extracted from Appendix A of that document. They are useful for searching.
You can get the ZigBee Specification document from the following link http://contech.suv.ac.kr/contech/courses/11h2wsn/1_053474r17ZB_TSC-ZigBee-Specification.pdf. This is also very useful.
You can get the ZigBee Specification document from the following link http://contech.suv.ac.kr/contech/courses/11h2wsn/1_053474r17ZB_TSC-ZigBee-Specification.pdf. This is also very useful.
The zigbee4java library creates a log file which reports useful information for debugging.
Also Wireshark was useful to see the packets exchanged between computer and dongle through the Serial Port. To use it that way, if you are running the Linux kernel, just load the usbmon module in the kernel (sudo modprobe usbmon) and allow the common users to use it, so you don't have to run Wireshark as Super User (sudo setfacl -m u:$USER:r /dev/usbmon*).
\ No newline at end of file
Also Wireshark was useful to see the packets exchanged between computer and dongle through the Serial Port. To use it that way, if you are running the Linux kernel, just load the usbmon module in the kernel (sudo modprobe usbmon) and allow the common users to use it, so you don't have to run Wireshark as Super User (sudo setfacl -m u:$USER:r /dev/usbmon*).
Clone repository
  • bug dongle ti
  • clusters and endpoins
  • differences nxp ti
  • Home
  • long term plan
  • setup
  • short term plan
  • start
  • state of impl