Where is the sources? Could you share it?
Sorry, but I do not plan to share my sources. If you want to create your device, you can download TI Z-Stack for the corresponding device and build firmware from included examples.
How to reset (re-join) a device?
CC253x: Re-flash firmware
CC2530: Power on, wait 2 seconds, power off, repeat this cycle three times.
CC2531: Power on, press and hold down the S2 button for 5 seconds.
CC2530 device with my configurable firmware: Power on, press and hold down the button on “Input 1” for 10 seconds.
Does your router for CC2530 or CC2531 have a status LED?
The standard firmware supports LED for CC2531 only. You may download a configurable firmware, disable all inputs and outputs, but configure a status LED pin. That firmware also works as a router.
The device does not connect to a coordinator. What should I do?
Check the following points:
- The firmware type matches your chip type. For example, the firmware for CC2530 does not work on CC2530 with a CC259x amplifier.
- Your coordinator accepts new connections (joining is enabled).
- Your coordinator has free slots for a new device (it depends on a coordinator’s hardware and firmware). It is a floating problem. Devices in a Zigbee mesh network can migrate between routers and a coordinator, but the coordinator has a limited number of direct connections. Therefore you may connect one device without any problems, but another one can make you crazy :-).
- Check that another open Zigbee network does not exist closely because the device joins the first opened network.
- Try to place a new device close to the coordinator and re-pair it. The good distance is 0.5-1.0 m.
- Check electrical problems with your device (power voltage, short circuits, antenna connection, antenna type). A LED indicator may help here. It should blink while the device is joining.
- The coordinator’s database is broken and contains bad device information from your previous experiments or used firmware. Try to remove the device in a high-level system (e.g. Zigbee2MQTT) or manually remove database entries (carefully!) (e.g. database.db in Z2M).