1
\$\begingroup\$

As part of my internship, I have to build a home automation solution using zigbee in the BBox( includes both the Set Top Box and the router) that runs linux and has an ARM processor: my idea is to build an RPC application on the zigbee that will play the role of a translator between IP devices and Zigbee devices.

So the first question: is this feasible?

The coordinator will be the BBox. After 2 weeks of studying I find myself completely lost, or at least I think so.
What I did this far:

  • I grasped how cross compilation works and I succeeded in adding my own packages using buildroot.
  • For the hardware part, I chose the cc2531 from Texas Instruments, I see that it comes configured as a coordinator which is what I want.

    so my second question: am I gonna need the debugger to program it?.

  • The Zigbee alliance defines many profiles, for application interoperability, devices have to use the same profile, in my case Home Automation.

  • For the stack, I still hesitate between TI's stack and ZBOSS's stack, I think I should try them both, for now I am using TI's.
  • TI's stack offers services to be used using tcp sockets, I think I will be using the HA gateway server, but I can't find examples on how to connect to those servers.

    Where I am lost:
  • I cannot find clear examples on how to use the servers, I looked into the source code of the examples supplied by Texas Instruments but I could not understand anything.
  • Someone posted this, he said that we can interact with the cc2530 using this library

so the final question: Should I use the library or build my application on the TI's examples?

\$\endgroup\$
1
  • 1
    \$\begingroup\$ BBox?? You mean, Bouygues' ADSL router in France? Please clarify. \$\endgroup\$
    – dim
    Commented Jul 4, 2016 at 10:12

1 Answer 1

3
\$\begingroup\$

Yes this is feasible. A few points though:

For the hardware part, I chose the cc2531 from Texas Instruments, I see that it comes configured as a coordinator which is what I want.

This is not correct, it comes programmed as a packet sniffer. You need a CC-Debugger to program it as a Coord, but the binaries are supplied in the Embedded ZStack SDK download from https://www.ti.com/licreg/docs/swlicexportcontrol.tsp?form_type=2&prod_no=Z-Stack_Home_1.2.2a.exe&ref_url=http://software-dl.ti.com/lprf/z_stack (you'll needa TI account), hen after it is installed the bin is here C:\Texas Instruments\Z-Stack Home 1.2.2a.44539\Projects\zstack\ZAP\ZNP-HexFiles\CC2531\CC2531ZNP-Pro-Secure_LinkKeyJoin.hex

For the stack, I still hesitate between TI's stack and ZBOSS's stack, I think > I should try them both, for now I am using TI's.

The Stack is programmed into the CC2531, you can use the ZNP Host framework (https://git.ti.com/znp-host-framework) to write your code to send ZigBee commands through the CC3531, no need for the stack on Linux. However if you are doing lots of ZCL commands you could port the ZCL from the embedded ZStack to the Linux application. The framework allows you to send/receive raw commands so your application will need to format / parse ZCL packets, you will need to look at the ZCL Spec to format them correctly http://www.zigbee.org/download/standards-zigbee-cluster-library/

I cannot find clear examples on how to use the servers, I looked into the source code of the examples supplied by Texas Instruments but I could not understand anything.

Take a look at: http://www.ti.com/lit/ug/tidu757/tidu757.pdf https://git.ti.com/znp-host-framework#more

The Doc talks about Tiva MCU and CC2531, but the framework has Linux examples and will work with ZNP running on CC2531 USB dongle as well.

Regards, TC.

\$\endgroup\$
1
  • \$\begingroup\$ Thank you for taking the time to post such a complete answer, I will report back once I progress, thank you very much. \$\endgroup\$ Commented Jul 4, 2016 at 13:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.