CC2674P10: CC2674P10: ZDSECMGR_TC_DEVICE_MAX upper limit

Part Number: CC2674P10

Hi team:

env:
1. SDK: SimpleLink™ CC13xx CC26xx SDK 8.30.01.01

2. project: znp_LP_EM_CC2674P10_tirtos7_ticlang

3. chip: CC2674P10


I read a post on E2E (https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1385908/lp-em-cc1354p10-zdsecmgr_tc_device_max-upper-limit?tisearch=e2e-sitesearch&keymatch=NVOCMP_NVPAGES#), and after setting:

1. ZDSECMGR_TC_DEVICE_MAX to 200

2. NVOCMP to 0xA, HEAPMGR_SIZE to 4096, and recompiling the ZNP project, I flashed the firmware to a CC2674P10, using the CC2674P10 as the coordinator, but zigbee2mqtt still failed to boot.

I don't know why zigbee2mqtt failed to boot. However, when I set ZDSECMGR_TC_DEVICE_MAX to 100, zigbee2mqtt started successfully again.

Could a TI technician help me analyze this?

  • Hello jun cao,

    coordinator, but zigbee2mqtt still failed to boot

    When debugging was there a specific place where it failed? 

    I don't know why zigbee2mqtt failed to boot. However, when I set ZDSECMGR_TC_DEVICE_MAX to 100, zigbee2mqtt started successfully again.

    After applying the modifications in Ryans linked thread did you clean then rebuild the project? 

    Thanks,
    Alex F

  • Hi  :

    Thank you for you reply.

    I can provide the logs from the zigbee2mqtt startup failure, as follows:

    Starting Zigbee2MQTT without watchdog.
    [2026-09-09 10:16:32] info: 	z2m: Logging to console, file (filename: log.log)
    [2026-09-09 10:16:32] info: 	z2m: External JS (converters/extensions) is disabled
    [2026-09-09 10:16:32] info: 	z2m: Starting Zigbee2MQTT version 2.12.1 (commit #aa909a8a)
    [2026-09-09 10:16:32] info: 	z2m: Starting zigbee-herdsman (10.6.1)
    [2026-09-09 10:16:33] info: 	zh:adapter:discovery: Matched adapter: {"path":"/dev/ttyUSB1","manufacturer":"SONOFF","serialNumber":"d0c758260312f0118fd40314773d9da9","pnpId":"usb-SONOFF_SONOFF_Dongle_Plus_CC2674P10_d0c758260312f0118fd40314773d9da9-if00-port0","vendorId":"10c4","productId":"ea60"} => zstack: 4
    [2026-09-09 10:16:33] info: 	zh:zstack:znp: Opening SerialPort with {"path":"/dev/ttyUSB1","baudRate":115200,"rtscts":false,"autoOpen":false}
    [2026-09-09 10:16:33] info: 	zh:zstack:znp: Serialport opened
    [2026-09-09 10:17:07] error: 	z2m: Error while starting zigbee-herdsman
    [2026-09-09 10:17:07] error: 	z2m: Failed to start zigbee-herdsman
    [2026-09-09 10:17:07] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
    [2026-09-09 10:17:07] error: 	z2m: Exiting...
    [2026-09-09 10:17:07] error: 	z2m: Error: network commissioning failed - timed out waiting for nib to settle

    Note: When I change ZDSECMGR_TC_DEVICE_MAX to 100, zigbee2mqtt does not produce this error log and starts up normally.

    I perform a "rebuild" operation every time I compile the project. Therefore, the project is definitely cleaned first and then built.

  • Hello jun cao,

    Since we are trying to set the device max to 200 devices, lets try at least 8192 or 16384 bytes for the HEAPMGR_SIZE. Current thought is that during the Network Information base it runs out of space in the heap. 

    Thanks,
    Alex F

  • Hi  :

    I have tried setting HEAPMGR_SIZE to 8192 or 16384, but the zigbee2mqtt error remains the same.
    The HEAPMGR_SIZE configuration is as follows:

    --stack_size=0x600   /* C stack is also used for ISR stack */
    
    HEAPSIZE = 0x4000;  /* Size of heap buffer used by HeapMem */
    
    /* Retain interrupt vector table variable                                    */
    --retain=g_pfnVectors
    /* Allow main() to take args                                                 */
    --args 0x8
    /* Suppress warnings and errors:                                             */
    /* - 10063: Warning about entry point not being _c_int00                     */
    /* - 16011, 16012: 8-byte alignment errors. Observed when linking in object  */
    /*   files compiled using Keil (ARM compiler)                                */
    --diag_suppress=10063,16011,16012
    
    /* The following command line options are set as part of the CCS project.    */
    /* If you are building using the command line, or for some reason want to    */
    /* define them here, you can uncomment and modify these lines as needed.     */
    /* If you are using CCS for building, it is probably better to make any such */
    /* modifications in your CCS project and leave this file alone.              */
    /*                                                                           */
    /* --heap_size=0                                                             */
    // --stack_size=1024
    --stack_size=16384
    /* --library=rtsv7M3_T_le_eabi.lib                                           */
    
    // #define NVOCMP_NVPAGES          5
    #define NVOCMP_NVPAGES          0xA
    
    /* The starting address of the application.  Normally the interrupt vectors  */
    /* must be located at the beginning of the application.                      */
    #define FLASH_PAGE_SIZE		    0x800 /* 2 KB per TRM */
    #define FLASH_BASE              0x0
    #define FLASH_SIZE              (0x100000 - (NVOCMP_NVPAGES * FLASH_PAGE_SIZE))
    #define FLASH_NV_BASE           (0x100000 - (NVOCMP_NVPAGES * FLASH_PAGE_SIZE))
    #define FLASH_NV_SIZE           (NVOCMP_NVPAGES * FLASH_PAGE_SIZE)
    #define RAM_BASE                0x20000000
    #define RAM_SIZE                0x40000
    #define GPRAM_BASE              0x11000000
    #define GPRAM_SIZE              0x2000
    #define CCFG_BASE               0x50000000
    #define CCFG_SIZE               0x800

    Is there an issue with this configuration?

  • Hello jun cao,

    To confirm your setup is similar to the below pictures:

    As a separate question do you plan to go to production with the CC2674P10 with zstack? 

    Thanks,
    Alex F

  • Hi  :

    I have configured the settings based on the screenshot you provided, as shown below:

    However, zigbee2mqtt is reporting the same error as before, as shown below:

    As a separate question do you plan to go to production with the CC2674P10 with zstack? 

    Yes, but during our testing, we found that when the CC2674P10 is used as the coordinator, only 40 devices can be added to the Zigbee network. This number is too low, so we submitted the issue to E2E to see if a solution could be provided.

  • Hello jun cao,

    Thanks for confirming with the pictures, on my end after compiling a ZNP example and flashing it to a CC2674P10 device the following is what I see in the PuTTY window:

    I also tested the z-tool to see if it can find and control the device and it unfortunately did not. 

    From what I can conclude here the ZNP project for the CC2674P10 does not currently work, at least when attempting to open the project with z-tool (what was recommended in the readme). Though it's interesting that zigbee2mqtt can seem to work with it from what you report. 

    We currently do not recommend developers to develop on (or go to production) with the F2 devices (such as the CC2674P10) and instead recommend the F3 (CC23, CC27) devices. 

    Thanks,
    Alex F

  • Hi  :

    Simply compiling the `znp_LP_EM_CC2674P10_tirtos7_ticlang` project does not allow zigbee2mqtt to start. However, after consulting this document (github.com/.../firmware.patch) and modifying some configurations before recompiling the firmware, zigbee2mqtt was able to start successfully.


    Are there any other ways to address the maximum device limit for the Zigbee network when using the CC2674P10 as a coordinator? Currently, the limit is 100 devices, which is a bit low; I need to increase this to 200 or 400.


    I look forward to your reply.

  • Hello jun cao,

    Thank you for sharing the document that showed how you modified the config, I took a quick look at this document to see if there could be something affecting the device and there was one section for now that we can try to modify.

    At around line 160 of the patch, I see the following below, we possibly need to also set this to 10 for the NVPAGES if you had not already in your process before. 

    +#ifndef EM_CC2674P10_LP
    + #undef NVOCMP_NVPAGES
    + #define NVOCMP_NVPAGES 3

    Thanks,
    Alex F

  •  :

    Thank you for your reply.


    I added '#define NVOCMP_NVPAGES 10', but the error in zigbee2mqtt remained the same.


    Initially, when NVOCMP_NVPAGES was at the default value of 5, zigbee2mqtt would throw an error after I changed ZDSECMGR_TC_DEVICE_MAX from 40 to 100. However, when I changed NVOCMP_NVPAGES from 5 to 10 and ZDSECMGR_TC_DEVICE_MAX from 40 to 100, zigbee2mqtt started successfully. I believe NVOCMP_NVPAGES determines the maximum value for ZDSECMGR_TC_DEVICE_MAX.


    Consequently, I changed NVOCMP_NVPAGES to 15 and ZDSECMGR_TC_DEVICE_MAX to 200, but this resulted in a compilation error. Could you please take a look at this?