Does Freescale sell any USB dongles that provide ZigBee (or at least 802.15) connectivity without requiring me to develop my own firmware?
From what I gather by looking around on internet, the most common way to use ZigBee is by developing application-specific firmware.
As my current project is a feasibility study only and I have limited experience with firmware development, I would prefer to skip that step. The idea is to plug a USB dongle into an existing embedded computer and modify only the application on that computer to obtain connectivity.
There seem to be some dongles around that communicate with the host computer using an AT style command set. My hope is that that will be sufficient to evaluate important porperties for this project, such as maximum throughput of the ZigBee link, and the performance of automatic network configuration.
已解决! 转到解答。
Hello Johan,
Yes, no problem!!.
You can generate different demo applications from BeeKit wireless toolkit. These demo apps have a feature called ZTC (ZigBee Test Client), which is basically a UART protocol that allows you to monitor and inject messages, in between ZigBee internal layers (AF, APS, ZDO, SS, NWK, MAC). If you enable ZTC, you can make the whole chip to become a "black box" interface. This means you can control ZigBee by UART commands (SPI and IIC are also supported). Of course, you will need to understand the ZigBee API so you know how to create/join network, start a binding process, send data, etc...
I hope this helps.
Best Regards,
Alan Collins
Hello Johan,
Yes, no problem!!.
You can generate different demo applications from BeeKit wireless toolkit. These demo apps have a feature called ZTC (ZigBee Test Client), which is basically a UART protocol that allows you to monitor and inject messages, in between ZigBee internal layers (AF, APS, ZDO, SS, NWK, MAC). If you enable ZTC, you can make the whole chip to become a "black box" interface. This means you can control ZigBee by UART commands (SPI and IIC are also supported). Of course, you will need to understand the ZigBee API so you know how to create/join network, start a binding process, send data, etc...
I hope this helps.
Best Regards,
Alan Collins
Hello,
For prototyping work, I would like to connect the Freescale ZigBee 1322x USB Dongle to a PC running Windows/Linux OS via USB port and then write a program (in C language) on the PC to control the connected ZigBee device by sending commands (e.g Join/Leave ZigBee Network, Discover ZigBee devices, etc.) to it via USB/UART interface. Does Freescale provide a Windows/Linux C library for ZTC which allows Windows/Linux C programs to directly invoke the Freescale ZigBee ZTC APIs over the USB/UART interface?
Hello sumitpabbi
Yes, Freescale provides the TestTool sotfware included in the BeeKit toolkit installer. Basically, you download ZTC enabled firmware to 1322x-USB dongle, then connect it to the PC / Linux so it will be recognized as COM port / TTY serial interface. The TestTool (works only on Windows) includes a command console for you to manually access to all the ZTC available commands at all layers of the protocol. Besides the command console, TestTool includes a scripting client so you can run your Python scripts for more exhaustive testing scenarios. For Linux, you could use Python as resource to reproduce a similar solution.
Hello Alan,
Thanks for this information. I shall explore the Python scripting option that you have described.
Are you aware of any Windows/Linux example program in C Language for sending/receiving ZTC messages over serial interface to the 1322x USB dongle?
Here is a quick example on how to open the serial port and send/receive ZTC commands using python. It works on both Linux and Windows.
import serial
import binascii
GetModeCmd = ('\x02\xA3\x02\x00\x00\xA1') #ZTC-GetMode.Request 02 A3 02 00 00 A1
GetModeRespLenght = 26
#Linux:
#zigbeeUSB = serial.Serial('/dev/ttyACM0')
#Windows
zigbeeUSB = serial.Serial('COM59')
zigbeeUSB.baudrate = 115200
zigbeeUSB.timeout = None # This is important to zigbeeUSB.read is blocking
# until the number of bytes is received
print zigbeeUSB.portstr
print "GetMode request:"
print " ".join(hex(ord(n)) for n in GetModeCmd)
zigbeeUSB.write(GetModeCmd)
RxBuffer = zigbeeUSB.read(GetModeRespLenght)
print "GetMode response:"
print " ".join(hex(ord(n)) for n in RxBuffer)
zigbeeUSB.close()