Zigbee kernel driver

6.9k views Asked by At

I'm trying to understand how to implement a Zigbee module(TI CC2530) into Linux. This module will be connected through SPI to a development card (A80 Pro from Merrii).

At this point, I'm not sure exactly what I have to do. Do I have to write a kernel driver for the CC2530 ? Or just a simple SPI controller driver ?

Also if you have any website that I can look for more informations, it will be great.

2

There are 2 answers

0
t.c. On BEST ANSWER

You have a number of options here:

  1. The ZigBee Linux HA Gateway reference design (HW/SW):

http://www.ti.com/tool/CC2531EM-IOT-HOME-GATEWAY-RD

http://www.ti.com/tool/z-stack - Z-STACK-LINUX-GATEWAY

Out of the Box this connects to CC2531 via CDC USB. However by modifying the NPI_Gateway.cfg and the zigbeeHAgw script files you can reconfigure it to use UART or SPI. The CC2530 will need to by preogrammed with the ZNP FW available in http://www.ti.com/tool/z-stack - Z-STACK-HOME SDK under Z-Stack Home 1.2.2.42930\Projects\zstack\ZNP\CC253x, prebuilt binaries are in Z-Stack Home 1.2.2.42930\Projects\zstack\ZAP\ZNP-HexFiles\CC2530.

This option is specifically for Linux, it uses 4 application space servers to manage the Data Plane, Control Plan and Field Upgrade, offering a high level Home Automation API through protobuf over local sockets. It uses the existing CDC, UART or SPI kernel drivers. It would not lend its self to a kernel space driver.

  1. The open source ZNP Host framework reference design. This is cross platform framework and could be ported to a kernel space driver, however it does not support SPI, UART only. The CC2530 FW would be the same as above and does support SPI, so you would need to port the ZNP framework to use SPI.

http://www.ti.com/tool/TIDC-ZNP-HOST-SW3

https://git.ti.com/znp-host-framework/znp-host-framework

Regards, TC.

0
alemv On

New solutions appeared:

  1. Zigbee 3.0 Linux Gateway Sensor to Cloud Solution (USB-CDC-ACM/UART/SPI support included). http://www.ti.com/tool/download/ZIGBEE-LINUX-SENSOR-TO-CLOUD

  2. Zigbee2mqtt. It bridges events and allows you to control your Zigbee devices via MQTT (USB-CDC-ACM support only). https://github.com/Koenkk/zigbee2mqtt