This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2652R: Porting Zigbee Application to New hardware

Part Number: CC2652R
Other Parts Discussed in Thread: , SYSCONFIG

Tool/software:

Hello,

I am developing an application for the CC2652R.  I started with the dmm_zr_light_remote_display OAD application for the CC2652R7 launchpad and got it working on the Launchpad.  Now I would like to port the application to make it work on our custom board, which uses a CC2652R1FRGZ.  Is there any documentation that walks through the process of porting an application from one board to another?

Taking a shot in the dark, I tried the following steps:

1. I created a new board support file in <stack>/ti/boards/.meta and called it cc26x2_prod.syscfg.json

2. I updated the values in the JSON to reflect the actual pin assignments on our hardware.  I changed the "device" field to "CC2652R1FRGZ".

3. I created a new .syscfg file and this is where things start to get icky.  The comment at the top of the file has an @cliArgs and a @v2CliArgs tags.  I changed these from

* @cliArgs --board "/ti/boards/LP_CC2652R7" --device "CC2652R7RGZ" --part "Default" --package "RGZ" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_sdk@8.30.01.01"
* @v2CliArgs --device "CC2652R7" --package "VQFN (RGZ)" --board "/ti/boards/LP_CC2652R7" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_sdk@8.30.01.01"

to 

* @cliArgs --board "/ti/boards/cc13x2_cc26x2" --device "CC2652R1FRGZ" --part "Default" --package "RGZ" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_sdk@8.30.01.01"
* @v2CliArgs --device "CC2652R1FRGZ" --package "RGZ" --board "/ti/boards/cc13x2_cc26x2" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_sdk@8.30.01.01"

I have tried changing the "board" and "device" values to a bunch of different things.  The "device" seems to be valid and working, but I am having immediate problems with the "board".  When I try to run sysconfig with this configuration, I get the following error.

Ignoring the following missing components: /ti/ti_sidewalk/ti_sidewalk.component.js, /ti/ti_wisunfan/ti_wisunfan.component.js, /ti/ti_wisunfan/wsms/wsms.component.js
Error: Exception occurred calling scripting.addModule()
at Object.addModule (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\scriptingGuard.ts:46:10)
at scriptFunc (C:\Development\WattIQ\firmware_4xx_8.30\workspace\dmm_zr_light_remote_display.syscfg:12:32)
at cb (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\runScript.ts:113:7)
at withDeprecatedAccess (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\deprecatedAccessGuard.ts:14:10)
at runAsUserScript (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\scriptingGuard.ts:61:3)
at iteratee (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\runScript.ts:111:5)
at baseEach (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\node_modules\lodash\lodash.js:530:11)
at Function.each (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\node_modules\lodash\lodash.js:9409:52)
at iteratee (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\runScript.ts:109:6)
at Pt (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\node_modules\lodash\lodash.js:530:11)
Caused by: Error: RadioConfig: Unknown board [cc13x2_cc26x2]

I have a folder called cc13x2_cc26x2 in source/ti/boards, and source/ti/devices.  How can I get around this problem?  What should the board be set to?

Also, if there is any general documentation on how to port a project from one board to another, that would be very helpful.  Am I on the right track?

  • Hello Damon Stewart,

    I hope you are doing well. In our SDK we have documented migration paths that you could take, TI Z-Stack Migration Guide

    In this case we should be able to use syscfg to directly migrate the CC2652R project to the new board, here we want to bring up syscfg click on the upper right device icon, and then click the "switch" button to bring up the following menu, where you should be able to chose your new device and then migrate settings automatically.

    Thanks,
    Alex F

  • Assuming a project SysConfig is already configured for "Use Custom Board" then no board file is necessary

     * @cliArgs --device "CC2652R1FRGZ" --part "Default" --package "RGZ" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_source_sdk@8.30.01.01"
     * @v2CliArgs --device "CC2652R" --package "VQFN (RGZ)" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_source_sdk@8.30.01.01"
    

    Make sure to modify your command linker file (.cmd) as well to suit CC2652R1 flash memory sizes.

    Regards,
    Ryan

  • Hi Alex and Ryan - thank you both for your quick responses.  Much appreciated!  I tried these suggestions but didn't get very far.

    1. The Migration Guide reference has a section here on migrating to boards that don't have a Launchpad.  Unfortunately our CC2652R1 part is not mentioned, but I can try to use one of the listed parts as a reference.

    2. I think I followed Alex's recommendation on using syscfg but ran into problems.  I am running Code Composer Studio 12.8.1.  I opened my .syscfg file (for the CC2652R7 Launchpad), clicked on the triple dot icon in the top right, selected "Preferences and Actions", and clicked on the "Switch" button in the "Switch Target" actions section.  This seems like the right screen to migrate to a new product.  The only option I can select for "Board" is "None" - all other boards are grayed out.  And similarly, there are no Devices that I can select - all devices are grayed out.  If I click on the arrow to bring up the list of device options - they are all grayed out (see below).  I tried typing "CC2652R" manually, but this creates an error icon that indicates this migration is not supported.  (See below.)

    3. I tried Ryan's suggestion to remove the --board flag from my .syscfg file and to change the device as he indicated.  Now when I run syscfg, I get the following error:

    TypeError: Cannot read properties of undefined (reading 'components')
    at scriptFunc (C:\Development\WattIQ\firmware_4xx_8.30\workspace\dmm_zr_light_remote_display.syscfg:140:63)
    at cb (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\runScript.ts:113:7)
    at withDeprecatedAccess (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\deprecatedAccessGuard.ts:14:10)
    at runAsUserScript (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\scriptingGuard.ts:61:3)
    at iteratee (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\runScript.ts:111:5)
    at baseEach (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\node_modules\lodash\lodash.js:530:11)
    at Function.each (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\node_modules\lodash\lodash.js:9409:52)
    at iteratee (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\src\pinmux\services\scripting\runScript.ts:109:6)
    at baseEach (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\node_modules\lodash\lodash.js:530:11)
    at Function.va (C:\ti\sysconfig_1.21.1\dist\webpack:\sysconfig\node_modules\lodash\lodash.js:9409:52)

    I have no idea why this is failing or how to fix it.  Is there any option that can give me more verbose output to debug this?  I didn't see anything in the --help context that indicated a "verbose" option.

    Damon

  • Hi Damon,

    I'm surprised since SysConfig accepted my migration from the dmm_zr_light_remote_display_oad_app_LP_CC2652R7_tirtos7_ticlang SysConfig file from R7 to R1 (assumption: USE CUSTOM BOARD is selected in the default SysConfig file before changing cliArgs).  Here is the full SysConfig file I am using:

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/158/dmm_5F00_zr_5F00_light_5F00_remote_5F00_display.syscfg

    Can you please provide your own version for me to try?  I don't know of any options more verbose than the default.

    Thanks,
    Ryan

  • Thank you Ryan - I was able to get my project to compile using the .syscfg file you sent. I'll start testing with it and let you know if I have any more questions.

    Here is the .syscfg file I was using FYI.

    dmm_zr_light_remote_display_LP_cc2652r7.zip

  • Interesting, this line was in my .syscfg file and was not in yours.  When I add it into yours, I get the error I was originally reporting about not being able to read components.

    NVS2.externalFlash.$hardware        = system.deviceData.board.components.MX25R8035F;

    I'll leave it out since there doesn't seem to be a need for it.  Thanks again for your help!

  • That line implies a LaunchPad is being used which has the MX25 external flash memory, although this is no longer the case I've checked to ensure that all of the NVSEXTERNAL and SPI SysConfig settings are the exact same so that your OAD application is not affected.

    Regards,
    Ryan