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?

Option 1
CC253x: Re-flash firmware
Option 2
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.
Option 3
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:

  1. The firmware type matches your chip type. For example, the firmware for CC2530 does not work on CC2530 with a CC259x amplifier.
  2. Your coordinator accepts new connections (joining is enabled).
  3. 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 :-).
  4. Check that another open Zigbee network does not exist closely because the device joins the first opened network.
  5. Try to place a new device close to the coordinator and re-pair it. The good distance is 0.5-1.0 m.
  6. 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.
  7. 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).