The result
The challenge showed that the 1000+ meters Zigbee (over Bluetooth long range) link is possible. The of-the-shelf set was working as if both devices were placed close to each other, only with a larger delay. The solution met all requirements and was confirmed by the field test.
The firmware, the source code
If you want to check how this solution will work in your environment, you may find the firmware file attached at the end of this blog. The device implements a simple Zigbee router without a Touchlink functionality, so please use a coordinator example from Nordic's SDK to get it running with your smart lightning set. This firmware is based on Thread and Zigbee SDK v3.1.0. It should also integrate with any hub-based Zigbee network without issues.
LEDs assignment:
- LED1: Bluetooth connection is established.
- LED3: Zigbee connection is established.
- LED2: A frame was received from Nordic's UART service.
- LED4: A frame was sent through Nordic's UART service.
Buttons assignment:
- Button 3: Activate Bluetooth peripheral role.
- Button 4: Activate Bluetooth central role.
As the code used to perform those tests is at a very poor quality, I am not going to publish it in the current form. I have learned which features of the implemented modules are required and which were absolutely unnecessary, so the next step would be rather to redesign and reimplement it than trying to clean and stabilize it. If the code will be improved or I will see a huge interest in it, I will publish it on github and place a link here.