### What happened?
Same issue as [https://github.com/Koenkk/Z-Stack-firmware/…issues/243](url) and [https://github.com/Koenkk/zigbee2mqtt/issues/18798](url)
I have a CC2531 USB dongle with SMA connector [CC2531 USB stick](https://www.amazon.com/dp/B081WRGL31?psc=1&ref=ppx_yo2ov_dt_b_product_details) as the Zigbee coordinator.
It's loaded with the 20211115 version of CC2531ZNP-Prod.hex and it's working for Zigbee devices.
According to the ZHA Visualization diagram, the only connections to the CC2531 coordinator are 3 Zigbee routers (two IKEA TRADFRI and one Sonoff S31). Thus, it should not be at or near it's Zigbee connection limit.
I have another CC2531 USB dongle and loaded it with the 2020_09_29 version of router-cc2531-std.hex.
The CC2531 USB board with router firmware in it blinks the red LED once per second when powered up - indicating it's in pairing mode. When I activate Zigbee pairing from withint the ZHA addon in Home Assistant, the CC2531 with router firmware never pairs with the CC2531 coordinator!
To try and debug the setup, I loaded the CC2531 router with the 2020_09_29 version of router-cc2531-diag-usb.hex.
I put the CC2531 USB board with router firmware into a USB port on my Windwos 10 machine and a COM5 port showed up in the Windows Device Manager....good.
When I open PUTTY to view the serial port info, I see this over and over.
PANID:F5B,Ch:15,Join:0
PANID:F5B,Ch:15,Join:0
PANID:F5B,Ch:15,Join:0
To rule out a hardware problem with the CC2531 USB router, I bought another one to test. That arrived this week and I programmed it with the 2020_09_29 version of router-cc2531-diag-usb.hex.
SAME RESULTS - it blinked the red LED indicating pairing mode but did not pair with the CC2531 coordinator and I saw the Join:0 message over an over from the serial port.
I checked and all of my CC2531 USB sticks have different IEEE addresses, so address conflict can't be the problem.
The IEEE address of the coordinator is:
0x00 12 4B 00 19 49 B6 20
The IEEE address of the routers I'm testing are:
0x00 12 4B 00 1C DD 44 0D
0x00 12 4B 00 01 43 3D 5A
Here are my Home Assistant component versions:
Home Assistant 2023.9.3
Supervisor 2023.10.0
Operating System 11.0
Frontend 20230911.0 - latest
### What did you expect to happen?
I expected the CC2531 USB dongle with router firmware loaded to pair with the CC2531 USB dongle with coordinator firmware loaded into it, when the coordinator was put into pairing mode.
### How to reproduce it (minimal and precise)
Load two CC2531 USB dongles with custom [Z-Stack-firmware](https://github.com/Koenkk/Z-Stack-firmware#z-stack-firmware):
load 20211115 version of CC2531ZNP-Prod.hex in the coordinator
load 2020_09_29 version of router-cc2531-std.hex into the router
Try and Zigbee pair the router to the coordinator.
### Zigbee2MQTT version
not sure where to find in Home Assistant
### Adapter firmware version
2020_09_29 version of router-cc2531-std.hex into the router
### Adapter
CC2531 USB dongle with SMA connector
### Debug log
**zha log after clicking "Add Devices to this device" in Home Assistant:**
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=0, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=0, source_route=None, extended_timeout=False, tsn=3, profile_id=0, cluster_id=32822, data=Serialized[b'\x03\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=None, rssi=None)
[0x0000:zdo] ZDO request ZDOCmd.Mgmt_Permit_Joining_rsp: [<Status.SUCCESS: 0>]
[0x0000:zdo] No handler for ZDO request:ZDOCmd.Mgmt_Permit_Joining_rsp([<Status.SUCCESS: 0>])
[0xA35B](TH01): Device seen - marking the device available and resetting counter
[0xA35B](TH01): Update device availability - device available: True - new availability: True - changed: False
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x6F26), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=2, source_route=None, extended_timeout=False, tsn=0, profile_id=49246, cluster_id=6, data=Serialized[b'\x08\x86\n\x00\x00\x10\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0x6F26:1:0x0006] Received ZCL frame: b'\x08\x86\n\x00\x00\x10\x00'
[0x6F26:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=134, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0x6F26:1:0x0006] Decoded ZCL frame: OnOff:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
[0x6F26:1:0x0006] Received command 0x0A (TSN 134): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
[0x6F26:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
[0x6F26:1:0x0006] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=134, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>)
[0x6F26:1:0x0006] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x6F26), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=6, data=Serialized[b'\x08\x86\n\x00\x00\x10\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0x6F26:1:0x0006] Received ZCL frame: b'\x08\x86\n\x00\x00\x10\x00'
[0x6F26:1:0x0006] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=134, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0x6F26:1:0x0006] Decoded ZCL frame: OnOff:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
[0x6F26:1:0x0006] Received command 0x0A (TSN 134): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=Bool, value=<Bool.false: 0>))])
[0x6F26:1:0x0006] Attribute report received: on_off=<Bool.false: 0>
[0x6F26:1:0x0006] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=134, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>)
[0x6F26:1:0x0006] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
Duplicate 134 TSN
[0x3B80](TRADFRI Signal Repeater): Device seen - marking the device available and resetting counter
[0x3B80](TRADFRI Signal Repeater): Update device availability - device available: True - new availability: True - changed: False
[0x4F3B](TH01): Device seen - marking the device available and resetting counter
[0x4F3B](TH01): Update device availability - device available: True - new availability: True - changed: False
[0x6B1C](MS01): Attempting to checkin with device - missed checkins: 2
[0x6B1C:1:0x0000] Sending request header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=10, command_id=<GeneralCommand.Read_Attributes: 0>, *direction=<Direction.Server_to_Client: 0>)
[0x6B1C:1:0x0000] Sending request: Read_Attributes(attribute_ids=[4])
[0x6b1c] Extending timeout for 0x0a request
[0x6685](TH01): Device seen - marking the device available and resetting counter
[0x6685](TH01): Update device availability - device available: True - new availability: True - changed: False
[0x6C77](SML001): Device seen - marking the device available and resetting counter
[0x6C77](SML001): Update device availability - device available: True - new availability: True - changed: False
[0x268C](TH01): Device seen - marking the device available and resetting counter
[0x268C](TH01): Update device availability - device available: True - new availability: True - changed: False
[0xCB61](TH01): Device seen - marking the device available and resetting counter
[0xCB61](TH01): Update device availability - device available: True - new availability: True - changed: False
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x6C77), src_ep=2, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=25, data=Serialized[b'\x01\xe7\x01\x00\x0b\x10\r\x01\xe0I\x00B'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0x6C77:2:0x0019] Received ZCL frame: b'\x01\xe7\x01\x00\x0b\x10\r\x01\xe0I\x00B'
[0x6C77:2:0x0019] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Server_to_Client: 0>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=231, command_id=1, *direction=<Direction.Server_to_Client: 0>)
[0x6C77:2:0x0019] Decoded ZCL frame: Ota:QueryNextImageCommand(field_control=<FieldControl: 0>, manufacturer_code=4107, image_type=269, current_file_version=1107315168)
[0x6C77:2:0x0019] Received command 0x01 (TSN 231): QueryNextImageCommand(field_control=<FieldControl: 0>, manufacturer_code=4107, image_type=269, current_file_version=1107315168)
[0x6C77:2:0x0019] OTA query_next_image handler for 'Philips SML001': field_control=0, manufacturer_id=4107, image_type=269, current_file_version=1107315168, hardware_version=None, model='SML001'
[0x6C77:2:0x0019] No OTA image is available
[0x6C77:2:0x0019] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=231, command_id=2, *direction=<Direction.Client_to_Server: 1>)
[0x6C77:2:0x0019] Sending reply: query_next_image_response(status=<Status.NO_IMAGE_AVAILABLE: 152>, manufacturer_code=None, image_type=None, file_version=None, image_size=None)
[0x7F43](TH01): Device seen - marking the device available and resetting counter
[0x7F43](TH01): Update device availability - device available: True - new availability: True - changed: False
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xA35B), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=1026, data=Serialized[b'\x18q\n\x00\x00)\x95\x08'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0xA35B:1:0x0402] Received ZCL frame: b'\x18q\n\x00\x00)\x95\x08'
[0xA35B:1:0x0402] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=113, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0xA35B:1:0x0402] Decoded ZCL frame: TemperatureMeasurement:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=int16s, value=2197))])
[0xA35B:1:0x0402] Received command 0x0A (TSN 113): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=int16s, value=2197))])
[0xA35B:1:0x0402] Attribute report received: measured_value=2197
[0xE1F6](MS01): Device seen - marking the device available and resetting counter
[0xE1F6](MS01): Update device availability - device available: True - new availability: True - changed: False
[0xC2EE](TRADFRI signal repeater): Device seen - marking the device available and resetting counter
[0xC2EE](TRADFRI signal repeater): Update device availability - device available: True - new availability: True - changed: False
[0x6F26](S31 Lite zb): Device seen - marking the device available and resetting counter
[0x6F26](S31 Lite zb): Update device availability - device available: True - new availability: True - changed: False
[0xA35B](TH01): Device seen - marking the device available and resetting counter
[0xA35B](TH01): Update device availability - device available: True - new availability: True - changed: False
[0x3B80](TRADFRI Signal Repeater): Device seen - marking the device available and resetting counter
[0x3B80](TRADFRI Signal Repeater): Update device availability - device available: True - new availability: True - changed: False
[0x4F3B](TH01): Device seen - marking the device available and resetting counter
[0x4F3B](TH01): Update device availability - device available: True - new availability: True - changed: False
[0x6B1C](MS01): last_seen is 70018.7224559784 seconds ago and ping attempts have been exhausted, marking the device unavailable
[0x6B1C](MS01): Update device availability - device available: False - new availability: False - changed: False
[0x6685](TH01): Device seen - marking the device available and resetting counter
[0x6685](TH01): Update device availability - device available: True - new availability: True - changed: False
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x6C77), src_ep=2, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=1030, data=Serialized[b'\x08\xe8\n\x00\x00\x18\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=28, non_member_radius=0, lqi=0, rssi=None)
[0x6C77:2:0x0406] Received ZCL frame: b'\x08\xe8\n\x00\x00\x18\x00'
[0x6C77:2:0x0406] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=False, *is_general=True), tsn=232, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0x6C77:2:0x0406] Decoded ZCL frame: PhilipsOccupancySensing:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=bitmap8, value=<bitmap8: 0>))])
[0x6C77:2:0x0406] Received command 0x0A (TSN 232): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=bitmap8, value=<bitmap8: 0>))])
[0x6C77:2:0x0406] Attribute report received: occupancy=<bitmap8: 0>
[0x6C77:2:0x0406] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=232, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>)
[0x6C77:2:0x0406] Sending reply: Default_Response(command_id=10, status=<Status.SUCCESS: 0>)
Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x268C), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=1029, data=Serialized[b'\x18\x13\n\x00\x00!\x15\x16'], tx_options=<TransmitOptions.NONE: 0>, radius=27, non_member_radius=0, lqi=0, rssi=None)
[0x268C:1:0x0405] Received ZCL frame: b'\x18\x13\n\x00\x00!\x15\x16'
[0x268C:1:0x0405] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=19, command_id=10, *direction=<Direction.Client_to_Server: 1>)
[0x268C:1:0x0405] Decoded ZCL frame: RelativeHumidity:Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=uint16_t, value=5653))])
[0x268C:1:0x0405] Received command 0x0A (TSN 19): Report_Attributes(attribute_reports=[Attribute(attrid=0x0000, value=TypeValue(type=uint16_t, value=5653))])
[0x268C:1:0x0405] Attribute report received: measured_value=5653
[0x6C77](SML001): Device seen - marking the device available and resetting counter
[0x6C77](SML001): Update device availability - device available: True - new availability: True - changed: False
[0x268C](TH01): Device seen - marking the device available and resetting counter
[0x268C](TH01): Update device availability - device available: True - new availability: True - changed: False
[0xCB61](TH01): Device seen - marking the device available and resetting counter
[0xCB61](TH01): Update device availability - device available: True - new availability: True - changed: False
**setup details from Home Assistant "zha-#############-Zigbee Coordinator-#########" json file:**
"data": {
"ieee": "**REDACTED**",
"nwk": 0,
"manufacturer": "Texas Instruments",
"model": "CC2531, Z-Stack Home 1.2 (build 20211115)",
"name": "Texas Instruments CC2531, Z-Stack Home 1.2 (build 20211115)",
"quirk_applied": false,
"quirk_class": "zigpy_znp.zigbee.device.ZNPCoordinator",
"manufacturer_code": 0,
"power_source": "Mains",
"lqi": null,
"rssi": null,
"last_seen": "2023-10-24T08:43:43",
"available": true,
"device_type": "Coordinator",
"signature": {
"node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Coordinator: 0>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AlternatePanCoordinator|FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 143>, manufacturer_code=0, maximum_buffer_size=80, maximum_incoming_transfer_size=160, server_mask=1, maximum_outgoing_transfer_size=160, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=True, *is_coordinator=True, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=False, *is_security_capable=False)",
"endpoints": {
"2": {
"profile_id": "0xc05e",
"device_type": "0x0820",
"input_clusters": [
"0x0000"
],
"output_clusters": []
},
"1": {
"profile_id": "0x0104",
"device_type": "0x0400",
"input_clusters": [
"0x0000",
"0x0006",
"0x000a",
"0x0019",
"0x0501"
],
"output_clusters": [
"0x0001",
"0x0020",
"0x0500",
"0x0502"
]
}
setup details from Home Assistant "config_entry-ZHA-#########" json file:
},
"manufacturer": "Texas Instruments",
"model": "CC2531, Z-Stack Home 1.2 (build 20211115)"
"custom_components": {},
"integration_manifest": {
"domain": "zha",
"name": "Zigbee Home Automation",
"after_dependencies": [
"onboarding",
"usb"
"config_entry": {
"entry_id": "6e327245e37dd80a063e444635565745",
"version": 3,
"domain": "zha",
"title": "TI CC2531 USB CDC, s/n: __0X00124B001949B620 - Texas Instruments",
"data": {
"device": {
"path": "/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001949B620-if00",
"flow_control": null,
"baudrate": 115200
},
"radio_type": "znp"