diff --git a/router/Z-Stack_3.x.0/CHANGELOG.md b/router/Z-Stack_3.x.0/CHANGELOG.md
index 6ce9d9b..c15edae 100644
--- a/router/Z-Stack_3.x.0/CHANGELOG.md
+++ b/router/Z-Stack_3.x.0/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 20221102
+- Allow to set transmit power
+- Fix directly connected Xiaomi devices disconnecting
+- SimpleLink SDK 6.30.00.84 ([changelog](https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/6.30.00.84/exports/changelog.html))
+
 # 20220125
 - SimpleLink SDK 5.30.01.01 ([changelog](https://software-dl.ti.com/simplelink/esd/simplelink_cc13xx_cc26xx_sdk/5.30.01.01/exports/changelog.html))
 - Increase memory heap
diff --git a/router/Z-Stack_3.x.0/COMPILE.md b/router/Z-Stack_3.x.0/COMPILE.md
index 4dd885e..25ce83d 100644
--- a/router/Z-Stack_3.x.0/COMPILE.md
+++ b/router/Z-Stack_3.x.0/COMPILE.md
@@ -1,23 +1,23 @@
 # Compiling the firmware
 
 ## Setup development environment
-1. Download and install [SIMPLELINK-CC13XX-CC26XX-SDK_5.30.01.01](https://www.ti.com/tool/download/SIMPLELINK-CC13XX-CC26XX-SDK)
-1. Download and install [Code Composer Studio 11.0.0.00012](http://www.ti.com/tool/CCSTUDIO)
+1. Download and install [SIMPLELINK-CC13XX-CC26XX-SDK_6_30_00_84](https://www.ti.com/tool/download/SIMPLELINK-CC13XX-CC26XX-SDK)
+1. Download and install [Code Composer Studio 12.1.0.00007](http://www.ti.com/tool/CCSTUDIO)
 
 ## Compiling
 1. Start Code Composer Studio
-1. Go to *File -> Import -> Code Composer Studio -> CCS Projects -> Select* search-directory: `simplelink_cc13x2_26x2_sdk_5_30_01_01/examples/rtos`. Click OK (or Open) in the file browser window
+1. Go to *File -> Import -> Code Composer Studio -> CCS Projects -> Select* search-directory: `simplelink_cc13xx_cc26xx_sdk_6_30_00_84/examples/rtos`. 
 1. Select:
- - `zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs`
- - `zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs`
- - `zr_genericapp_LP_CC2652RB_tirtos_ccs`. 
+    - `zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang`
+    - `zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang`
+    - `zr_genericapp_LP_CC2652RB_tirtos7_ticlang` 
 4. Press *Finish*.
-1. In Code Composer Studio, expand the 3 projects and for each open `znp.syscfg`, expand `Power Management` and change `Minimal Poll Period (ms)` to `1000`, change it back to `100` immediately and save the file.
+1. In Code Composer Studio, expand the 3 projects and for each open `zr_genericapp.syscfg`, expand `Power Management` and change `Minimal Poll Period (ms)` to `1000`, change it back to `100` immediately and save the file.
 1. Go to your CCS workspace and copy `firmware.patch` to the root.
 1. Open Git Bash, go to your CCS root and apply the patch using `git apply firmware.patch --ignore-space-change`.
 1. Build the 3 projects; right click -> *Build project*.
-    - **Important:** by default the **launchpad** variant of the CC1352P2_CC2652P (= `zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs`) is build. To build the **other** variant comment `#define LAUNCHPAD_CONFIG 1` in `preinclude.h` (located under `Stack/Config/`), don't forget to save.
-1. Once finished, the firmware can be found under `zr_genericapp_[CC26X2R1/CC1352P_2/CC2652RB]_LAUNCHXL_tirtos_ccs/default/zr_genericapp_[CC26X2R1/CC2652RB/CC1352P_2]_LAUNCHXL_tirtos_ccs.hex`
-    - `zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs.hex` -> CC2652R
-    - `zr_genericapp_LP_CC2652RB_tirtos_ccs.hex` -> CC2652RB
-    - `zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs.hex` -> CC1352P-2 and CC2652P
+    - **Important:** by default the **launchpad** variant of the CC1352P2_CC2652P (= `zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang`) is build. To build the **other** variant comment `#define LAUNCHPAD_CONFIG 1` in `preinclude.h` (located under `Stack/Config/`), don't forget to save.
+1. Once finished, the firmware can be found under `zr_genericapp_[CC26X2R1/CC1352P_2/CC2652RB]_LAUNCHXL_tirtos7_ticlang/default/zr_genericapp_[CC26X2R1/CC2652RB/CC1352P_2]_LAUNCHXL_tirtos7_ticlang.hex`
+    - `zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang.hex` -> CC2652R
+    - `zr_genericapp_LP_CC2652RB_tirtos7_ticlang.hex` -> CC2652RB
+    - `zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang.hex` -> CC1352P-2 and CC2652P
\ No newline at end of file
diff --git a/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_router_20220125.zip b/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_router_20220125.zip
deleted file mode 100644
index 8d12a5e..0000000
Binary files a/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_router_20220125.zip and /dev/null differ
diff --git a/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_router_20221102.zip b/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_router_20221102.zip
new file mode 100644
index 0000000..3ad488e
Binary files /dev/null and b/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_launchpad_router_20221102.zip differ
diff --git a/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_other_router_20220125.zip b/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_other_router_20220125.zip
deleted file mode 100644
index 2dd2c40..0000000
Binary files a/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_other_router_20220125.zip and /dev/null differ
diff --git a/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_other_router_20221102.zip b/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_other_router_20221102.zip
new file mode 100644
index 0000000..8f76f3a
Binary files /dev/null and b/router/Z-Stack_3.x.0/bin/CC1352P2_CC2652P_other_router_20221102.zip differ
diff --git a/router/Z-Stack_3.x.0/bin/CC2652RB_router_20220125.zip b/router/Z-Stack_3.x.0/bin/CC2652RB_router_20220125.zip
deleted file mode 100644
index 8aa656b..0000000
Binary files a/router/Z-Stack_3.x.0/bin/CC2652RB_router_20220125.zip and /dev/null differ
diff --git a/router/Z-Stack_3.x.0/bin/CC2652RB_router_20221102.zip b/router/Z-Stack_3.x.0/bin/CC2652RB_router_20221102.zip
new file mode 100644
index 0000000..4864132
Binary files /dev/null and b/router/Z-Stack_3.x.0/bin/CC2652RB_router_20221102.zip differ
diff --git a/router/Z-Stack_3.x.0/bin/CC2652R_router_20220125.zip b/router/Z-Stack_3.x.0/bin/CC2652R_router_20220125.zip
deleted file mode 100644
index 1e9b2e1..0000000
Binary files a/router/Z-Stack_3.x.0/bin/CC2652R_router_20220125.zip and /dev/null differ
diff --git a/router/Z-Stack_3.x.0/bin/CC2652R_router_20221102.zip b/router/Z-Stack_3.x.0/bin/CC2652R_router_20221102.zip
new file mode 100644
index 0000000..3b25ac9
Binary files /dev/null and b/router/Z-Stack_3.x.0/bin/CC2652R_router_20221102.zip differ
diff --git a/router/Z-Stack_3.x.0/firmware.patch b/router/Z-Stack_3.x.0/firmware.patch
index ad94781..39e13b1 100644
--- a/router/Z-Stack_3.x.0/firmware.patch
+++ b/router/Z-Stack_3.x.0/firmware.patch
@@ -1,74 +1,107 @@
-From 41916c4f9b203b779f606244cb5be0748a2412fb Mon Sep 17 00:00:00 2001
+From 3141c9a49a9e763c449b5731487eecaf8e6d56ca Mon Sep 17 00:00:00 2001
 From: Koen Kanters <koenkanters94@gmail.com>
-Date: Tue, 25 Jan 2022 19:51:16 +0100
+Date: Mon, 31 Oct 2022 20:04:41 +0100
 Subject: [PATCH 1/1] Own changes
 
 ---
- .../Application/zcl_genericapp.c              |  33 +-
- .../Application/zcl_genericapp_data.c         |  22 +-
+ .../Application/zcl_genericapp.c              |  43 +-
+ .../Application/zcl_genericapp_data.c         |  50 ++-
+ .../Common/zcl/zcl.c                          |  10 +
  .../Stack/Config/f8wrouter.opts               |   2 +
- .../Stack/Config/preinclude.h                 |  49 +++
- .../app.cfg                                   |   4 +-
- .../cc13x2_cc26x2.cmd                         |   6 +-
- .../ti_devices_config.c                       | 105 +++++
+ .../Stack/Config/preinclude.h                 |  51 +++
+ .../Stack/sys/zcomdef.h                       |   3 +
+ .../Stack/sys/zglobals.c                      |   2 +-
+ .../Stack/zdo/zd_app.c                        |  22 +-
+ .../cc13x2_cc26x2_tirtos7_ticlang.cmd         |   6 +-
+ .../ti_devices_config.c                       | 108 +++++
  .../ti_drivers_config.h                       | 274 +++++++++++++
- .../ti_radio_config.c                         | 387 ++++++++++++++++++
+ .../ti_radio_config.c                         | 385 ++++++++++++++++++
  .../ti_radio_config.h                         |  83 ++++
  .../zr_genericapp.syscfg                      |  11 +-
- .../Application/zcl_genericapp.c              |  33 +-
- .../Application/zcl_genericapp_data.c         |  22 +-
+ .../Application/zcl_genericapp.c              |  43 +-
+ .../Application/zcl_genericapp_data.c         |  50 ++-
+ .../Common/zcl/zcl.c                          |  10 +
  .../Stack/Config/f8wrouter.opts               |   2 +
- .../Stack/Config/preinclude.h                 |  31 ++
- .../app.cfg                                   |   4 +-
- .../cc13x2_cc26x2.cmd                         |   6 +-
+ .../Stack/Config/preinclude.h                 |  33 ++
+ .../Stack/sys/zcomdef.h                       |   3 +
+ .../Stack/sys/zglobals.c                      |   2 +-
+ .../Stack/zdo/zd_app.c                        |  22 +-
+ .../cc13x2_cc26x2_tirtos7_ticlang.cmd         |   6 +-
  .../zr_genericapp.syscfg                      |   7 +-
- .../Application/zcl_genericapp.c              |  33 +-
- .../Application/zcl_genericapp_data.c         |  22 +-
+ .../Application/zcl_genericapp.c              |  43 +-
+ .../Application/zcl_genericapp_data.c         |  50 ++-
+ .../Common/zcl/zcl.c                          |  10 +
  .../Stack/Config/f8wrouter.opts               |   2 +
- .../Stack/Config/preinclude.h                 |  31 ++
- zr_genericapp_LP_CC2652RB_tirtos_ccs/app.cfg  |   4 +-
- .../cc13x2_cc26x2.cmd                         |   6 +-
+ .../Stack/Config/preinclude.h                 |  33 ++
+ .../Stack/sys/zcomdef.h                       |   3 +
+ .../Stack/sys/zglobals.c                      |   2 +-
+ .../Stack/zdo/zd_app.c                        |  22 +-
+ .../cc13x2_cc26x2_tirtos7_ticlang.cmd         |   6 +-
  .../zr_genericapp.syscfg                      |   7 +-
- 25 files changed, 1105 insertions(+), 81 deletions(-)
- create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Stack/Config/preinclude.h
- create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_devices_config.c
- create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_drivers_config.h
- create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_radio_config.c
- create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_radio_config.h
- create mode 100644 zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Stack/Config/preinclude.h
- create mode 100644 zr_genericapp_LP_CC2652RB_tirtos_ccs/Stack/Config/preinclude.h
+ 34 files changed, 1268 insertions(+), 138 deletions(-)
+ create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/preinclude.h
+ create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
+ create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
+ create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
+ create mode 100644 zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
+ create mode 100644 zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/preinclude.h
+ create mode 100644 zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/preinclude.h
 
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp.c
-index 82a4bec..23788ff 100644
---- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp.c
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp.c
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp.c
+index 550be7a..0725b39 100644
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp.c
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp.c
 @@ -53,6 +53,8 @@
   * INCLUDES
   */
  
-+#include <driverlib/sys_ctrl.h>
-+
++#include <driverlib/sys_ctrl.h>
++
  #include "rom_jt_154.h"
  #include "zcomdef.h"
  
-@@ -870,6 +872,7 @@ static void zclGenericApp_processAfIncomingMsgInd(zstack_afIncomingMsgInd_t *pIn
+@@ -68,6 +70,8 @@
+ #include "zcl_genericapp.h"
+ #include "zcl_port.h"
+ 
++#include "osal_nv.h"
++
+ #include <ti/drivers/apps/Button.h>
+ #include "ti_drivers_config.h"
+ #include "util_timer.h"
+@@ -261,6 +265,14 @@ void sampleApp_task(NVINTF_nvFuncts_t *pfnNV)
+   pfnZdlNV = pfnNV;
+   zclport_registerNV(pfnZdlNV, ZCL_PORT_SCENE_TABLE_NV_ID);
+ 
++  // Init the transmit power NV item, this will be skipped if item is already initialized
++  int8_t transmitPower = TXPOWER;
++  osal_nv_item_init( ZCD_NV_TRANSMIT_POWER, sizeof(transmitPower), &transmitPower );
++
++  // Set transmit power
++  osal_nv_read( ZCD_NV_TRANSMIT_POWER, 0, sizeof( transmitPower ), &transmitPower );
++  ZMacSetTransmitPower( (ZMacTransmitPower_t)transmitPower );
++
+   // Initialize application
+   zclGenericApp_initialization();
+ 
+@@ -870,6 +882,7 @@ static void zclGenericApp_processAfIncomingMsgInd(zstack_afIncomingMsgInd_t *pIn
   */
  static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *bdbCommissioningModeMsg)
  {
-+  zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
++  zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
    switch(bdbCommissioningModeMsg->bdbCommissioningMode)
    {
      case BDB_COMMISSIONING_FORMATION:
-@@ -909,6 +912,8 @@ static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *
+@@ -909,6 +922,8 @@ static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *
        }
      break;
      case BDB_COMMISSIONING_INITIALIZATION:
-+      zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
-+      Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
++      zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
++      Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
        //Initialization notification can only be successful. Failure on initialization
        //only happens for ZED and is notified as BDB_COMMISSIONING_PARENT_LOST notification
  
-@@ -1209,28 +1214,16 @@ static void zclGenericApp_changeKeyCallback(Button_Handle _btn, Button_EventMask
+@@ -1209,28 +1224,16 @@ static void zclGenericApp_changeKeyCallback(Button_Handle _btn, Button_EventMask
   */
  static void zclGenericApp_processKey(Button_Handle _btn)
  {
@@ -78,11 +111,11 @@ index 82a4bec..23788ff 100644
 -    {
 -        if(ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE)
 -        {
-+    NLME_LeaveReq_t         req;
-+    memset( &req, 0, sizeof( NLME_LeaveReq_t ) );
-+    NLME_LeaveReq(&req);
-+    // Sleep for 2 seconds, otherwise leave request is not send
-+    Task_sleep(2000 * (1000 / ClockP_getSystemTickPeriod()));
++    NLME_LeaveReq_t         req;
++    memset( &req, 0, sizeof( NLME_LeaveReq_t ) );
++    NLME_LeaveReq(&req);
++    // Sleep for 2 seconds, otherwise leave request is not send
++    Task_sleep(2000 * (1000 / ClockP_getSystemTickPeriod()));
  
 -            zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
 -            Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
@@ -98,32 +131,53 @@ index 82a4bec..23788ff 100644
 -    {
 -        Zstackapi_bdbResetLocalActionReq(appServiceTaskId);
 -    }
-+    zgWriteStartupOptions( ZG_STARTUP_SET,
-+                         ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE);
++    zgWriteStartupOptions( ZG_STARTUP_SET,
++                         ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE);
  
-+    SysCtrlSystemReset();
++    SysCtrlSystemReset();
  }
  
  
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp_data.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp_data.c
-index c0e473d..1446606 100644
---- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp_data.c
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp_data.c
-@@ -96,6 +96,8 @@ const uint16_t zclGenericApp_identify_clusterRevision = 0x0001;
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp_data.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp_data.c
+index c0e473d..4d08810 100644
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp_data.c
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp_data.c
+@@ -49,6 +49,8 @@
+ #include "zcl_general.h"
+ #include "zcl_ha.h"
+ 
++#include "osal_nv.h"
++
+ /* GENERICAPP_TODO: Include any of the header files below to access specific cluster data
+ #include "zcl_poll_control.h"
+ #include "zcl_electrical_measurement.h"
+@@ -96,8 +98,11 @@ const uint16_t zclGenericApp_identify_clusterRevision = 0x0001;
  const uint8_t zclGenericApp_HWRevision = GENERICAPP_HWVERSION;
  const uint8_t zclGenericApp_ZCLVersion = GENERICAPP_ZCLVERSION;
  const uint8_t zclGenericApp_ManufacturerName[] = { 16, 'T','e','x','a','s','I','n','s','t','r','u','m','e','n','t','s' };
 +const uint8_t zclGenericApp_ModelID[] = { 9, 't','i','.','r','o','u','t','e','r' };
-+const uint8_t zclGenericApp_SwBuildID[] = { 8, '2','0','2','2','0','1','2','5' };
++const uint8_t zclGenericApp_SwBuildID[] = { 8, '2','0','2','2','1','1','0','2' };
  const uint8_t zclGenericApp_PowerSource = POWER_SOURCE_MAINS_1_PHASE;
  uint8_t zclGenericApp_PhysicalEnvironment = PHY_UNSPECIFIED_ENV;
++int8_t zclGenericApp_TransmitPower;
  
-@@ -143,10 +145,28 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+ #ifdef ZCL_IDENTIFY
+ // Identify Cluster
+@@ -134,7 +139,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_BASIC_HW_VERSION,            // Attribute ID - Found in Cluster Library header (ie. zcl_general.h)
+       ZCL_DATATYPE_UINT8,                 // Data Type - found in zcl.h
+-      ACCESS_CONTROL_READ,                // Variable access control - found in zcl.h
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),                // Variable access control - found in zcl.h
+       (void *)&zclGenericApp_HWRevision  // Pointer to attribute variable
+     }
+   },
+@@ -143,16 +148,34 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
      { // Attribute record
        ATTRID_BASIC_ZCL_VERSION,
        ZCL_DATATYPE_UINT8,
 -      ACCESS_CONTROL_READ,
-+      (ACCESS_CONTROL_READ | ACCESS_REPORTABLE),
++      (ACCESS_CONTROL_READ | ACCESS_REPORTABLE | ACCESS_CONTROL_AUTH_READ),
        (void *)&zclGenericApp_ZCLVersion
      }
    },
@@ -132,7 +186,7 @@ index c0e473d..1446606 100644
 +    { // Attribute record
 +      ATTRID_BASIC_MODEL_IDENTIFIER,
 +      ZCL_DATATYPE_CHAR_STR,
-+      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
 +      (void *)zclGenericApp_ModelID
 +    }
 +  },
@@ -141,30 +195,131 @@ index c0e473d..1446606 100644
 +    { // Attribute record
 +      ATTRID_BASIC_SW_BUILD_ID,
 +      ZCL_DATATYPE_CHAR_STR,
-+      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
 +      (void *)zclGenericApp_SwBuildID
 +    }
 +  },
    {
      ZCL_CLUSTER_ID_GENERAL_BASIC,
      { // Attribute record
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Stack/Config/f8wrouter.opts b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Stack/Config/f8wrouter.opts
-index b841d60..91eb00e 100644
---- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Stack/Config/f8wrouter.opts
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Stack/Config/f8wrouter.opts
+       ATTRID_BASIC_MANUFACTURER_NAME,
+       ZCL_DATATYPE_CHAR_STR,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)zclGenericApp_ManufacturerName
+     }
+   },
+@@ -161,7 +184,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_BASIC_POWER_SOURCE,
+       ZCL_DATATYPE_ENUM8,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_PowerSource
+     }
+   },
+@@ -170,7 +193,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_BASIC_PHYSICAL_ENVIRONMENT,
+       ZCL_DATATYPE_ENUM8,
+-      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_PhysicalEnvironment
+     }
+   },
+@@ -179,10 +202,20 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_CLUSTER_REVISION,
+       ZCL_DATATYPE_UINT16,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_basic_clusterRevision
+     }
+   },
++  {
++    ZCL_CLUSTER_ID_GENERAL_BASIC,
++    {  // Attribute record
++     ATTRID_BASIC_TRANSMIT_POWER,
++     ZCL_DATATYPE_INT8,
++     (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
++     (void *)&zclGenericApp_TransmitPower
++    }
++  },
++
+ 
+ #ifdef ZCL_IDENTIFY
+   // *** Identify Cluster Attribute ***
+@@ -191,7 +224,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_IDENTIFY_IDENTIFY_TIME,
+       ZCL_DATATYPE_UINT16,
+-      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_IdentifyTime
+     }
+   },
+@@ -201,7 +234,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_CLUSTER_REVISION,
+       ZCL_DATATYPE_UINT16,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_identify_clusterRevision
+     }
+   },
+@@ -276,6 +309,7 @@ void zclGenericApp_ResetAttributesToDefaultValues(void)
+ {
+ 
+   zclGenericApp_PhysicalEnvironment = PHY_UNSPECIFIED_ENV;
++  osal_nv_read( ZCD_NV_TRANSMIT_POWER, 0, sizeof( zclGenericApp_TransmitPower ), &zclGenericApp_TransmitPower );
+ 
+ #ifdef ZCL_IDENTIFY
+   zclGenericApp_IdentifyTime = 0;
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Common/zcl/zcl.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Common/zcl/zcl.c
+index 51902c4..9afcba3 100644
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Common/zcl/zcl.c
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Common/zcl/zcl.c
+@@ -47,6 +47,8 @@
+ #include "zcl.h"
+ #include "zcl_general.h"
+ 
++#include "osal_nv.h"
++
+ #if defined ( INTER_PAN ) || defined ( BDB_TL_INITIATOR ) || defined ( BDB_TL_TARGET )
+   #include "stub_aps.h"
+ #endif
+@@ -4675,6 +4677,14 @@ static uint8_t zclProcessInWriteCmd( zclIncoming_t *pInMsg )
+             status = zclWriteAttrData( pInMsg->msg->endPoint, &(pInMsg->msg->srcAddr),
+                                        &attrRec, statusRec );
+           }
++
++          if((pInMsg->msg->clusterId == ZCL_CLUSTER_ID_GENERAL_BASIC) && (statusRec->attrID == ATTRID_BASIC_TRANSMIT_POWER))
++          {
++              int8_t transmitPower;
++              OsalPort_memcpy((int8_t*)&transmitPower,statusRec->attrData,sizeof(int8_t));
++              ZMacSetTransmitPower( (ZMacTransmitPower_t)transmitPower );
++              osal_nv_write( ZCD_NV_TRANSMIT_POWER, sizeof( transmitPower ), &transmitPower );
++          }
+         }
+         else // Use CB
+         {
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+index b841d60..ed396c2 100644
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
 @@ -9,3 +9,5 @@
  -DADDRMGR_NV_SINGLES
  -DBINDINGTABLE_NV_SINGLES
  -DASSOCLIST_NV_SINGLES
-+
-+--preinclude=preinclude.h 
++
++-include preinclude.h
 \ No newline at end of file
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Stack/Config/preinclude.h b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Stack/Config/preinclude.h
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/preinclude.h b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/preinclude.h
 new file mode 100644
-index 0000000..2a92dd1
+index 0000000..1d0429a
 --- /dev/null
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/Stack/Config/preinclude.h
-@@ -0,0 +1,49 @@
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/Config/preinclude.h
+@@ -0,0 +1,51 @@
 +// Increase MAC buffers
 +#undef MAC_CFG_TX_DATA_MAX
 +#define MAC_CFG_TX_DATA_MAX 20
@@ -202,6 +357,8 @@ index 0000000..2a92dd1
 + */
 +#define TXPOWER 9
 +
++#define ATTRID_BASIC_TRANSMIT_POWER 0x1337
++
 +// Different configs, uncomment for for launchpad firmware
 +#define LAUNCHPAD_CONFIG 1
 +
@@ -214,44 +371,96 @@ index 0000000..2a92dd1
 +#define CONFIG_RF_HIGH_PA                       0x0000005
 +#define SET_CCFG_MODE_CONF_XOSC_CAPARRAY_DELTA  0xfa
 +#endif
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/app.cfg b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/app.cfg
-index 5089a84..146ef06 100644
---- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/app.cfg
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/app.cfg
-@@ -700,7 +700,9 @@ var GateMutexPri = xdc.useModule('ti.sysbios.gates.GateMutexPri');
-  */
- var Memory = xdc.useModule('xdc.runtime.Memory');
- var HEAPMGR_CONFIG = 0;
--var HEAPMGR_SIZE   = 0x1800;
-+// Increase heap to 48kb
-+// https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1052120/cc2652r-mac-no-resources-0x1a-errors-complete-crash-with-simplelink-cc13xx-cc26xx-sdk_5-30-00-56/3897554#3897554
-+var HEAPMGR_SIZE   = 0xc000;
- 
- // The following will create the #define HEAPMGR_CONFIG. It can then be used by include  <xdc/cfg/global.h>
- Program.global.HEAPMGR_CONFIG = HEAPMGR_CONFIG;
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/cc13x2_cc26x2.cmd b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/cc13x2_cc26x2.cmd
-index 2856ad2..031cfeb 100755
---- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/cc13x2_cc26x2.cmd
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/cc13x2_cc26x2.cmd
-@@ -67,9 +67,9 @@
- /* must be located at the beginning of the application.                      */
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/sys/zcomdef.h b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/sys/zcomdef.h
+index 26c0b45..8a338c1 100644
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/sys/zcomdef.h
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/sys/zcomdef.h
+@@ -123,6 +123,9 @@ extern "C"
+ #define ZCD_NV_STARTUP_OPTION             0x0003
+ #define ZCD_NV_START_DELAY                0x0004
+ 
++// Custom transmit power NV item
++#define ZCD_NV_TRANSMIT_POWER             0x0010
++
+ // NWK Layer NV item IDs
+ #define ZCD_NV_NIB                        0x0021
+ #define ZCD_NV_DEVICE_LIST                0x0022
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/sys/zglobals.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/sys/zglobals.c
+index 706736b..b63af7b 100644
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/sys/zglobals.c
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/sys/zglobals.c
+@@ -225,7 +225,7 @@ uint8_t zgEndDeviceConfiguration = END_DEV_CONFIGURATION;
+ //
+ // NOTICE:  Before enabling Child Aging make sure to review all the related
+ // definitions in this file, especially zgNwkParentInformation.
+-uint8_t zgChildAgingEnable = TRUE;
++uint8_t zgChildAgingEnable = FALSE;
+ 
+ //==========    TouchLink NWK configuration    ===============
+ // Values used by Router when starts a network as initiator
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/zdo/zd_app.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/zdo/zd_app.c
+index 1f30180..0fd57f5 100644
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/zdo/zd_app.c
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/Stack/zdo/zd_app.c
+@@ -441,12 +441,11 @@ uint32_t ZDApp_event_loop( uint8_t task_id, uint32_t events )
+           ZDApp_ChangeState( DEV_ROUTER );
+         }
+ 
+-        if ( zgChildAgingEnable == TRUE )
+-        {
+-          // Once the device has changed its state to a ROUTER set the timer to send
+-          // Parent annce
+-          ZDApp_SetParentAnnceTimer();
+-        }
++        // As we cannot enable child aging as Xiaomi devices will drop off
++        // but we stil want to have the parent announces we always enable it here.
++        // Otherwise some end devices could be unreachable when they changed parent
++        // while the coordinator was powered off.
++        ZDApp_SetParentAnnceTimer();
+       }
+       else
+       {
+@@ -907,12 +906,11 @@ void ZDApp_NetworkStartEvt( void )
+         bdb_reportCommissioningState(BDB_INITIALIZATION,TRUE);
+       }
+ 
+-      if ( zgChildAgingEnable == TRUE )
+-      {
+-        // Once the device has changed its state to a COORDINATOR set the timer to send
+-        // Parent annce
+-        ZDApp_SetParentAnnceTimer();
+-      }
++      // As we cannot enable child aging as Xiaomi devices will drop off
++      // but we stil want to have the parent announces we always enable it here.
++      // Otherwise some end devices could be unreachable when they changed parent
++      // while the coordinator was powered off.
++      ZDApp_SetParentAnnceTimer();
+     }
+     else
+     {
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
+index da62af1..234ac56 100755
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
+@@ -71,9 +71,9 @@
+ #endif
  
  #define FLASH_BASE              0x00000000
--#define FLASH_SIZE              0x52000
--#define FLASH_NV_BASE           0x52000
--#define FLASH_NV_SIZE           0x4000
+-#define FLASH_SIZE              (0x56000 - (NVOCMP_NVPAGES * 0x2000))
+-#define FLASH_NV_BASE           (0x56000 - (NVOCMP_NVPAGES * 0x2000))
+-#define FLASH_NV_SIZE           (NVOCMP_NVPAGES * 0x2000)
 +#define FLASH_SIZE              0x50000
 +#define FLASH_NV_BASE           0x50000
 +#define FLASH_NV_SIZE           0x6000
  #define FLASH_LAST_BASE         0x56000
  #define FLASH_LAST_SIZE         0x2000
  
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_devices_config.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_devices_config.c
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
 new file mode 100644
-index 0000000..577e5a0
+index 0000000..c80aafd
 --- /dev/null
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_devices_config.c
-@@ -0,0 +1,105 @@
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
+@@ -0,0 +1,108 @@
 +/*
 + *  ======== ti_devices_config.c ========
 + *  Customer Configuration for CC26XX and CC13XX devices.
@@ -323,9 +532,12 @@ index 0000000..577e5a0
 +// Debug access settings
 +//#####################################
 +
-+// Disable unlocking of TI FA option.
++// Disable unlocking of TI Failure Analysis option
 +#define SET_CCFG_CCFG_TI_OPTIONS_TI_FA_ENABLE           0x00
 +
++// Disable customer key CKEY0-3 to be XOR'ed with TI FA option unlock key
++#define SET_CCFG_CCFG_TI_OPTIONS_C_FA_DIS               0xC5
++
 +// Access enabled if also enabled in FCFG
 +#define SET_CCFG_CCFG_TAP_DAP_0_CPU_DAP_ENABLE          0xC5
 +
@@ -357,11 +569,11 @@ index 0000000..577e5a0
 +
 +#include <ti/devices/DeviceFamily.h>
 +#include DeviceFamily_constructPath(startup_files/ccfg.c)
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_drivers_config.h b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_drivers_config.h
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
 new file mode 100644
 index 0000000..6a57a31
 --- /dev/null
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_drivers_config.h
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
 @@ -0,0 +1,274 @@
 +/*
 + *  ======== ti_drivers_config.h ========
@@ -637,12 +849,12 @@ index 0000000..6a57a31
 +#endif
 +
 +#endif /* include guard */
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_radio_config.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_radio_config.c
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
 new file mode 100644
-index 0000000..c23e14a
+index 0000000..229cea7
 --- /dev/null
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_radio_config.c
-@@ -0,0 +1,387 @@
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.c
+@@ -0,0 +1,385 @@
 +/*
 + *  ======== ti_radio_config.c ========
 + *  Configured RadioConfig module definitions
@@ -650,8 +862,8 @@ index 0000000..c23e14a
 + *  DO NOT EDIT - This file is generated for the CC1352P1F3RGZ
 + *  by the SysConfig tool.
 + *
-+ *  Radio Config module version : 1.11
-+ *  SmartRF Studio data version : 2.23.0
++ *  Radio Config module version : 1.14
++ *  SmartRF Studio data version : 2.27.0
 + */
 +
 +#include "ti_radio_config.h"
@@ -661,7 +873,7 @@ index 0000000..c23e14a
 +// *********************************************************************************
 +//   RF Frontend configuration
 +// *********************************************************************************
-+// RF design based on: LAUNCHXL-CC1352P-2 (CC1352PEM-XD4251-XD24-PA24_10dBm)
++// RF design based on: LAUNCHXL-CC1352P-2
 +
 +// TX Power tables
 +// The RF_TxPowerTable_DEFAULT_PA_ENTRY and RF_TxPowerTable_HIGH_PA_ENTRY macros are defined in RF.h.
@@ -674,27 +886,29 @@ index 0000000..c23e14a
 +// 868 MHz, 13 dBm
 +RF_TxPowerTable_Entry txPowerTable_868_pa13[TXPOWERTABLE_868_PA13_SIZE] =
 +{
-+    {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(0, 3, 0, 2) },
-+    {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(1, 3, 0, 3) },
-+    {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(2, 3, 0, 5) },
-+    {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(4, 3, 0, 5) },
-+    {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 8) },
-+    {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(9, 3, 0, 9) },
-+    {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 9) },
-+    {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(11, 3, 0, 10) },
-+    {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 3, 0, 11) },
-+    {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 3, 0, 14) },
-+    {6, RF_TxPowerTable_DEFAULT_PA_ENTRY(17, 3, 0, 16) },
-+    {7, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 19) },
-+    {8, RF_TxPowerTable_DEFAULT_PA_ENTRY(24, 3, 0, 22) },
-+    {9, RF_TxPowerTable_DEFAULT_PA_ENTRY(28, 3, 0, 31) },
-+    {10, RF_TxPowerTable_DEFAULT_PA_ENTRY(18, 2, 0, 31) },
-+    {11, RF_TxPowerTable_DEFAULT_PA_ENTRY(26, 2, 0, 51) },
-+    {12, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 0, 0, 82) },
++    {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(0, 3, 0, 2) }, // 0x04C0
++    {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(1, 3, 0, 3) }, // 0x06C1
++    {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(2, 3, 0, 5) }, // 0x0AC2
++    {-7, RF_TxPowerTable_DEFAULT_PA_ENTRY(3, 3, 0, 5) }, // 0x0AC3
++    {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(4, 3, 0, 5) }, // 0x0AC4
++    {-3, RF_TxPowerTable_DEFAULT_PA_ENTRY(5, 3, 0, 6) }, // 0x0CC5
++    {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 8) }, // 0x10C8
++    {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(9, 3, 0, 9) }, // 0x12C9
++    {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 9) }, // 0x12CA
++    {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(11, 3, 0, 10) }, // 0x14CB
++    {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 3, 0, 11) }, // 0x16CD
++    {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 3, 0, 14) }, // 0x1CCE
++    {6, RF_TxPowerTable_DEFAULT_PA_ENTRY(17, 3, 0, 16) }, // 0x20D1
++    {7, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 19) }, // 0x26D4
++    {8, RF_TxPowerTable_DEFAULT_PA_ENTRY(24, 3, 0, 22) }, // 0x2CD8
++    {9, RF_TxPowerTable_DEFAULT_PA_ENTRY(28, 3, 0, 31) }, // 0x3EDC
++    {10, RF_TxPowerTable_DEFAULT_PA_ENTRY(18, 2, 0, 31) }, // 0x3E92
++    {11, RF_TxPowerTable_DEFAULT_PA_ENTRY(26, 2, 0, 51) }, // 0x669A
++    {12, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 0, 0, 82) }, // 0xA410
 +    // The original PA value (12.5 dBm) has been rounded to an integer value.
-+    {13, RF_TxPowerTable_DEFAULT_PA_ENTRY(36, 0, 0, 89) },
++    {13, RF_TxPowerTable_DEFAULT_PA_ENTRY(36, 0, 0, 89) }, // 0xB224
 +    // This setting requires CCFG_FORCE_VDDR_HH = 1.
-+    {14, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 1, 0) },
++    {14, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 1, 0) }, // 0x013F
 +    RF_TxPowerTable_TERMINATION_ENTRY
 +};
 +
@@ -702,42 +916,42 @@ index 0000000..c23e14a
 +// 2400 MHz, 5 dBm
 +RF_TxPowerTable_Entry txPowerTable_2400_pa5[TXPOWERTABLE_2400_PA5_SIZE] =
 +{
-+    {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(6, 3, 0, 2) },
-+    {-18, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 3) },
-+    {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 3) },
-+    {-12, RF_TxPowerTable_DEFAULT_PA_ENTRY(12, 3, 0, 5) },
-+    {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 3, 0, 5) },
-+    {-9, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 3, 0, 5) },
-+    {-6, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 8) },
-+    {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 3, 0, 9) },
-+    {-3, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 2, 0, 12) },
-+    {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 1, 0, 20) },
-+    {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 1, 0, 20) },
-+    {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 1, 0, 25) },
-+    {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(29, 1, 0, 28) },
-+    {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(35, 1, 0, 39) },
-+    {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(23, 0, 0, 57) },
++    {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(6, 3, 0, 2) }, // 0x04C6
++    {-18, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 3) }, // 0x06C8
++    {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 3) }, // 0x06CA
++    {-12, RF_TxPowerTable_DEFAULT_PA_ENTRY(12, 3, 0, 5) }, // 0x0ACC
++    {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 3, 0, 5) }, // 0x0ACF
++    {-9, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 3, 0, 5) }, // 0x0AD0
++    {-6, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 8) }, // 0x10D4
++    {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 3, 0, 9) }, // 0x12D6
++    {-3, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 2, 0, 12) }, // 0x1893
++    {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 1, 0, 20) }, // 0x2853
++    {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 1, 0, 20) }, // 0x2856
++    {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 1, 0, 25) }, // 0x3259
++    {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(29, 1, 0, 28) }, // 0x385D
++    {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(35, 1, 0, 39) }, // 0x4E63
++    {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(23, 0, 0, 57) }, // 0x7217
 +    RF_TxPowerTable_TERMINATION_ENTRY
 +};
 +
 +// 2400 MHz, 5 + 20 dBm
 +RF_TxPowerTable_Entry txPowerTable_2400_pa5_20[TXPOWERTABLE_2400_PA5_20_SIZE] =
 +{
-+    {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(6, 3, 0, 2) },
-+    {-18, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 3) },
-+    {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 3) },
-+    {-12, RF_TxPowerTable_DEFAULT_PA_ENTRY(12, 3, 0, 5) },
-+    {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 3, 0, 5) },
-+    {-9, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 3, 0, 5) },
-+    {-6, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 8) },
-+    {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 3, 0, 9) },
-+    {-3, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 2, 0, 12) },
-+    {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 1, 0, 20) },
-+    {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 1, 0, 20) },
-+    {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 1, 0, 25) },
-+    {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(29, 1, 0, 28) },
-+    {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(35, 1, 0, 39) },
-+    {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(23, 0, 0, 57) },
++    {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(6, 3, 0, 2) }, // 0x04C6
++    {-18, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 3) }, // 0x06C8
++    {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 3) }, // 0x06CA
++    {-12, RF_TxPowerTable_DEFAULT_PA_ENTRY(12, 3, 0, 5) }, // 0x0ACC
++    {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 3, 0, 5) }, // 0x0ACF
++    {-9, RF_TxPowerTable_DEFAULT_PA_ENTRY(16, 3, 0, 5) }, // 0x0AD0
++    {-6, RF_TxPowerTable_DEFAULT_PA_ENTRY(20, 3, 0, 8) }, // 0x10D4
++    {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 3, 0, 9) }, // 0x12D6
++    {-3, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 2, 0, 12) }, // 0x1893
++    {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(19, 1, 0, 20) }, // 0x2853
++    {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(22, 1, 0, 20) }, // 0x2856
++    {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 1, 0, 25) }, // 0x3259
++    {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(29, 1, 0, 28) }, // 0x385D
++    {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(35, 1, 0, 39) }, // 0x4E63
++    {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(23, 0, 0, 57) }, // 0x7217
 +
 +    // CUSTOM: allow transmit power 6 - 13 dbm
 +    {6, .value.rawValue = (0x144f2a), .value.paType = RF_TxPowerTable_HighPA },
@@ -749,13 +963,13 @@ index 0000000..c23e14a
 +    {12, .value.rawValue = (0x3f27cc), .value.paType = RF_TxPowerTable_HighPA },
 +    {13, .value.rawValue = (0x3fc3cd), .value.paType = RF_TxPowerTable_HighPA },
 +
-+    {14, RF_TxPowerTable_HIGH_PA_ENTRY(22, 3, 1, 19, 27) },
-+    {15, RF_TxPowerTable_HIGH_PA_ENTRY(26, 3, 1, 23, 27) },
-+    {16, RF_TxPowerTable_HIGH_PA_ENTRY(30, 3, 1, 28, 27) },
-+    {17, RF_TxPowerTable_HIGH_PA_ENTRY(37, 3, 1, 39, 27) },
-+    {18, RF_TxPowerTable_HIGH_PA_ENTRY(32, 3, 1, 35, 48) },
-+    {19, RF_TxPowerTable_HIGH_PA_ENTRY(34, 3, 1, 48, 63) },
-+    {20, RF_TxPowerTable_HIGH_PA_ENTRY(53, 3, 1, 58, 63) },
++    {14, RF_TxPowerTable_HIGH_PA_ENTRY(22, 3, 1, 19, 27) }, // 0x1B27D6
++    {15, RF_TxPowerTable_HIGH_PA_ENTRY(26, 3, 1, 23, 27) }, // 0x1B2FDA
++    {16, RF_TxPowerTable_HIGH_PA_ENTRY(30, 3, 1, 28, 27) }, // 0x1B39DE
++    {17, RF_TxPowerTable_HIGH_PA_ENTRY(37, 3, 1, 39, 27) }, // 0x1B4FE5
++    {18, RF_TxPowerTable_HIGH_PA_ENTRY(32, 3, 1, 35, 48) }, // 0x3047E0
++    {19, RF_TxPowerTable_HIGH_PA_ENTRY(34, 3, 1, 48, 63) }, // 0x3F61E2
++    {20, RF_TxPowerTable_HIGH_PA_ENTRY(53, 3, 1, 58, 63) }, // 0x3F75F5
 +    RF_TxPowerTable_TERMINATION_ENTRY
 +};
 +
@@ -807,8 +1021,6 @@ index 0000000..c23e14a
 +    (uint32_t)0x050206C3,
 +    // Set TXRX pin to 0 in RX and high impedance in idle/TX. 
 +    HW_REG_OVERRIDE(0x60A8,0x0401),
-+    // Tx: Set DCDC settings IPEAK=3, dither = off
-+    (uint32_t)0x00F388D3,
 +    (uint32_t)0xFFFFFFFF
 +};
 +
@@ -827,8 +1039,6 @@ index 0000000..c23e14a
 +    (uint32_t)0x010206C3,
 +    // Set TXRX pin to 0 in RX/TX and high impedance in idle. 
 +    HW_REG_OVERRIDE(0x60A8,0x0001),
-+    // Tx: Set DCDC settings IPEAK=7, dither = off
-+    (uint32_t)0x00F788D3,
 +    (uint32_t)0xFFFFFFFF
 +};
 +
@@ -1030,11 +1240,11 @@ index 0000000..c23e14a
 +};
 +
 +
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_radio_config.h b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_radio_config.h
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
 new file mode 100644
-index 0000000..9d58da3
+index 0000000..870127b
 --- /dev/null
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/ti_radio_config.h
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_radio_config.h
 @@ -0,0 +1,83 @@
 +/*
 + *  ======== ti_radio_config.h ========
@@ -1043,8 +1253,8 @@ index 0000000..9d58da3
 + *  DO NOT EDIT - This file is generated for the CC1352P1F3RGZ
 + *  by the SysConfig tool.
 + *
-+ *  Radio Config module version : 1.11
-+ *  SmartRF Studio data version : 2.23.0
++ *  Radio Config module version : 1.14
++ *  SmartRF Studio data version : 2.27.0
 + */
 +#ifndef _TI_RADIO_CONFIG_H_
 +#define _TI_RADIO_CONFIG_H_
@@ -1056,12 +1266,12 @@ index 0000000..9d58da3
 +#include <ti/drivers/rf/RF.h>
 +
 +/* SmartRF Studio version that the RF data is fetched from */
-+#define SMARTRF_STUDIO_VERSION "2.23.0"
++#define SMARTRF_STUDIO_VERSION "2.27.0"
 +
 +// *********************************************************************************
 +//   RF Frontend configuration
 +// *********************************************************************************
-+// RF design based on: LAUNCHXL-CC1352P-2 (CC1352PEM-XD4251-XD24-PA24_10dBm)
++// RF design based on: LAUNCHXL-CC1352P-2
 +#define LAUNCHXL_CC1352P_2
 +
 +// High-Power Amplifier supported
@@ -1078,7 +1288,7 @@ index 0000000..9d58da3
 +#define SUPPORT_FREQBAND_2400
 +
 +// TX power table size definitions
-+#define TXPOWERTABLE_868_PA13_SIZE 20 // 868 MHz, 13 dBm
++#define TXPOWERTABLE_868_PA13_SIZE 22 // 868 MHz, 13 dBm
 +#define TXPOWERTABLE_2400_PA5_SIZE 16 // 2400 MHz, 5 dBm
 +// CUSTOM: account for extra entities in ti_radio_config.c txPowerTable_2400_pa5_20
 +#define TXPOWERTABLE_2400_PA5_20_SIZE 31 // 2400 MHz, 5 + 20 dBm
@@ -1119,13 +1329,13 @@ index 0000000..9d58da3
 +extern uint32_t pOverrides_ieee154Tx20[];
 +
 +#endif // _TI_RADIO_CONFIG_H_
-diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/zr_genericapp.syscfg b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/zr_genericapp.syscfg
-index 3a3068f..b356b04 100644
---- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/zr_genericapp.syscfg
-+++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos_ccs/zr_genericapp.syscfg
+diff --git a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
+index 1b16340..f700be5 100644
+--- a/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
++++ b/zr_genericapp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
 @@ -4,6 +4,10 @@
-  * @cliArgs --board "/ti/boards/CC1352P_2_LAUNCHXL" --rtos "tirtos" --product "simplelink_cc13xx_cc26xx_sdk@5.30.01.01"
-  * @versions {"tool":"1.10.0+2163"}
+  * @cliArgs --board "/ti/boards/CC1352P_2_LAUNCHXL" --rtos "tirtos7" --product "simplelink_cc13xx_cc26xx_sdk@6.30.00.84"
+  * @versions {"tool":"1.14.0+2667"}
   */
 +scripting.excludeFromBuild("ti_devices_config.c");
 +scripting.excludeFromBuild("ti_radio_config.c");
@@ -1134,15 +1344,15 @@ index 3a3068f..b356b04 100644
  
  /**
   * Import the modules used in this configuration.
-@@ -50,6 +54,7 @@ CCFG.enableBootloaderBackdoor = true;
+@@ -65,6 +69,7 @@ CCFG.enableBootloaderBackdoor = true;
  CCFG.dioBootloaderBackdoor    = 15;
  CCFG.levelBootloaderBackdoor  = "Active low";
  CCFG.forceVddr                = true;
 +CCFG.enableDCDC               = false;
- CCFG.ccfgTemplate.$name       = "ti_devices_CCFGTemplate0";
+ CCFG.ccfgTemplate.$name       = "ti_devices_CCFG_CCFGCC26XXTemplate0";
  
  rfdesign.rfDesign = "LAUNCHXL-CC1352P-2";
-@@ -72,8 +77,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
+@@ -87,8 +92,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
  
  NVS1.$name                    = "CONFIG_NVSINTERNAL";
  NVS1.internalFlash.$name      = "ti_drivers_nvs_NVSCC26XX0";
@@ -1153,7 +1363,7 @@ index 3a3068f..b356b04 100644
  
  NVS2.$name                          = "CONFIG_NVSEXTERNAL";
  NVS2.nvsType                        = "External";
-@@ -125,6 +130,8 @@ zstack.deviceTypeReadOnly                    = true;
+@@ -179,6 +184,8 @@ zstack.deviceTypeReadOnly                    = true;
  zstack.touchlink.$name                       = "ti_zstack_touchlink_zstack_touchlink0";
  zstack.pm.$name                              = "ti_zstack_pm_zstack_pm0";
  zstack.rf.$name                              = "ti_zstack_rf_zstack_rf0";
@@ -1162,37 +1372,61 @@ index 3a3068f..b356b04 100644
  zstack.rf.radioConfig.$name                  = "ti_devices_radioconfig_settings_ieee_15_40";
  zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
  zstack.rf.coexSettings.$name                 = "ti_zstack_rf_zstack_coex_mod0";
-diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp.c b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp.c
-index 82a4bec..23788ff 100644
---- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp.c
-+++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp.c
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp.c b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp.c
+index 550be7a..0725b39 100644
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp.c
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp.c
 @@ -53,6 +53,8 @@
   * INCLUDES
   */
  
-+#include <driverlib/sys_ctrl.h>
-+
++#include <driverlib/sys_ctrl.h>
++
  #include "rom_jt_154.h"
  #include "zcomdef.h"
  
-@@ -870,6 +872,7 @@ static void zclGenericApp_processAfIncomingMsgInd(zstack_afIncomingMsgInd_t *pIn
+@@ -68,6 +70,8 @@
+ #include "zcl_genericapp.h"
+ #include "zcl_port.h"
+ 
++#include "osal_nv.h"
++
+ #include <ti/drivers/apps/Button.h>
+ #include "ti_drivers_config.h"
+ #include "util_timer.h"
+@@ -261,6 +265,14 @@ void sampleApp_task(NVINTF_nvFuncts_t *pfnNV)
+   pfnZdlNV = pfnNV;
+   zclport_registerNV(pfnZdlNV, ZCL_PORT_SCENE_TABLE_NV_ID);
+ 
++  // Init the transmit power NV item, this will be skipped if item is already initialized
++  int8_t transmitPower = TXPOWER;
++  osal_nv_item_init( ZCD_NV_TRANSMIT_POWER, sizeof(transmitPower), &transmitPower );
++
++  // Set transmit power
++  osal_nv_read( ZCD_NV_TRANSMIT_POWER, 0, sizeof( transmitPower ), &transmitPower );
++  ZMacSetTransmitPower( (ZMacTransmitPower_t)transmitPower );
++
+   // Initialize application
+   zclGenericApp_initialization();
+ 
+@@ -870,6 +882,7 @@ static void zclGenericApp_processAfIncomingMsgInd(zstack_afIncomingMsgInd_t *pIn
   */
  static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *bdbCommissioningModeMsg)
  {
-+  zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
++  zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
    switch(bdbCommissioningModeMsg->bdbCommissioningMode)
    {
      case BDB_COMMISSIONING_FORMATION:
-@@ -909,6 +912,8 @@ static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *
+@@ -909,6 +922,8 @@ static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *
        }
      break;
      case BDB_COMMISSIONING_INITIALIZATION:
-+      zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
-+      Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
++      zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
++      Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
        //Initialization notification can only be successful. Failure on initialization
        //only happens for ZED and is notified as BDB_COMMISSIONING_PARENT_LOST notification
  
-@@ -1209,28 +1214,16 @@ static void zclGenericApp_changeKeyCallback(Button_Handle _btn, Button_EventMask
+@@ -1209,28 +1224,16 @@ static void zclGenericApp_changeKeyCallback(Button_Handle _btn, Button_EventMask
   */
  static void zclGenericApp_processKey(Button_Handle _btn)
  {
@@ -1202,11 +1436,11 @@ index 82a4bec..23788ff 100644
 -    {
 -        if(ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE)
 -        {
-+    NLME_LeaveReq_t         req;
-+    memset( &req, 0, sizeof( NLME_LeaveReq_t ) );
-+    NLME_LeaveReq(&req);
-+    // Sleep for 2 seconds, otherwise leave request is not send
-+    Task_sleep(2000 * (1000 / ClockP_getSystemTickPeriod()));
++    NLME_LeaveReq_t         req;
++    memset( &req, 0, sizeof( NLME_LeaveReq_t ) );
++    NLME_LeaveReq(&req);
++    // Sleep for 2 seconds, otherwise leave request is not send
++    Task_sleep(2000 * (1000 / ClockP_getSystemTickPeriod()));
  
 -            zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
 -            Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
@@ -1222,32 +1456,53 @@ index 82a4bec..23788ff 100644
 -    {
 -        Zstackapi_bdbResetLocalActionReq(appServiceTaskId);
 -    }
-+    zgWriteStartupOptions( ZG_STARTUP_SET,
-+                         ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE);
++    zgWriteStartupOptions( ZG_STARTUP_SET,
++                         ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE);
  
-+    SysCtrlSystemReset();
++    SysCtrlSystemReset();
  }
  
  
-diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp_data.c b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp_data.c
-index c0e473d..1446606 100644
---- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp_data.c
-+++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Application/zcl_genericapp_data.c
-@@ -96,6 +96,8 @@ const uint16_t zclGenericApp_identify_clusterRevision = 0x0001;
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp_data.c b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp_data.c
+index c0e473d..4d08810 100644
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp_data.c
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Application/zcl_genericapp_data.c
+@@ -49,6 +49,8 @@
+ #include "zcl_general.h"
+ #include "zcl_ha.h"
+ 
++#include "osal_nv.h"
++
+ /* GENERICAPP_TODO: Include any of the header files below to access specific cluster data
+ #include "zcl_poll_control.h"
+ #include "zcl_electrical_measurement.h"
+@@ -96,8 +98,11 @@ const uint16_t zclGenericApp_identify_clusterRevision = 0x0001;
  const uint8_t zclGenericApp_HWRevision = GENERICAPP_HWVERSION;
  const uint8_t zclGenericApp_ZCLVersion = GENERICAPP_ZCLVERSION;
  const uint8_t zclGenericApp_ManufacturerName[] = { 16, 'T','e','x','a','s','I','n','s','t','r','u','m','e','n','t','s' };
 +const uint8_t zclGenericApp_ModelID[] = { 9, 't','i','.','r','o','u','t','e','r' };
-+const uint8_t zclGenericApp_SwBuildID[] = { 8, '2','0','2','2','0','1','2','5' };
++const uint8_t zclGenericApp_SwBuildID[] = { 8, '2','0','2','2','1','1','0','2' };
  const uint8_t zclGenericApp_PowerSource = POWER_SOURCE_MAINS_1_PHASE;
  uint8_t zclGenericApp_PhysicalEnvironment = PHY_UNSPECIFIED_ENV;
++int8_t zclGenericApp_TransmitPower;
  
-@@ -143,10 +145,28 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+ #ifdef ZCL_IDENTIFY
+ // Identify Cluster
+@@ -134,7 +139,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_BASIC_HW_VERSION,            // Attribute ID - Found in Cluster Library header (ie. zcl_general.h)
+       ZCL_DATATYPE_UINT8,                 // Data Type - found in zcl.h
+-      ACCESS_CONTROL_READ,                // Variable access control - found in zcl.h
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),                // Variable access control - found in zcl.h
+       (void *)&zclGenericApp_HWRevision  // Pointer to attribute variable
+     }
+   },
+@@ -143,16 +148,34 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
      { // Attribute record
        ATTRID_BASIC_ZCL_VERSION,
        ZCL_DATATYPE_UINT8,
 -      ACCESS_CONTROL_READ,
-+      (ACCESS_CONTROL_READ | ACCESS_REPORTABLE),
++      (ACCESS_CONTROL_READ | ACCESS_REPORTABLE | ACCESS_CONTROL_AUTH_READ),
        (void *)&zclGenericApp_ZCLVersion
      }
    },
@@ -1256,7 +1511,7 @@ index c0e473d..1446606 100644
 +    { // Attribute record
 +      ATTRID_BASIC_MODEL_IDENTIFIER,
 +      ZCL_DATATYPE_CHAR_STR,
-+      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
 +      (void *)zclGenericApp_ModelID
 +    }
 +  },
@@ -1265,30 +1520,131 @@ index c0e473d..1446606 100644
 +    { // Attribute record
 +      ATTRID_BASIC_SW_BUILD_ID,
 +      ZCL_DATATYPE_CHAR_STR,
-+      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
 +      (void *)zclGenericApp_SwBuildID
 +    }
 +  },
    {
      ZCL_CLUSTER_ID_GENERAL_BASIC,
      { // Attribute record
-diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Stack/Config/f8wrouter.opts b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Stack/Config/f8wrouter.opts
-index b841d60..91eb00e 100644
---- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Stack/Config/f8wrouter.opts
-+++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Stack/Config/f8wrouter.opts
+       ATTRID_BASIC_MANUFACTURER_NAME,
+       ZCL_DATATYPE_CHAR_STR,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)zclGenericApp_ManufacturerName
+     }
+   },
+@@ -161,7 +184,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_BASIC_POWER_SOURCE,
+       ZCL_DATATYPE_ENUM8,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_PowerSource
+     }
+   },
+@@ -170,7 +193,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_BASIC_PHYSICAL_ENVIRONMENT,
+       ZCL_DATATYPE_ENUM8,
+-      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_PhysicalEnvironment
+     }
+   },
+@@ -179,10 +202,20 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_CLUSTER_REVISION,
+       ZCL_DATATYPE_UINT16,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_basic_clusterRevision
+     }
+   },
++  {
++    ZCL_CLUSTER_ID_GENERAL_BASIC,
++    {  // Attribute record
++     ATTRID_BASIC_TRANSMIT_POWER,
++     ZCL_DATATYPE_INT8,
++     (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
++     (void *)&zclGenericApp_TransmitPower
++    }
++  },
++
+ 
+ #ifdef ZCL_IDENTIFY
+   // *** Identify Cluster Attribute ***
+@@ -191,7 +224,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_IDENTIFY_IDENTIFY_TIME,
+       ZCL_DATATYPE_UINT16,
+-      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_IdentifyTime
+     }
+   },
+@@ -201,7 +234,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_CLUSTER_REVISION,
+       ZCL_DATATYPE_UINT16,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_identify_clusterRevision
+     }
+   },
+@@ -276,6 +309,7 @@ void zclGenericApp_ResetAttributesToDefaultValues(void)
+ {
+ 
+   zclGenericApp_PhysicalEnvironment = PHY_UNSPECIFIED_ENV;
++  osal_nv_read( ZCD_NV_TRANSMIT_POWER, 0, sizeof( zclGenericApp_TransmitPower ), &zclGenericApp_TransmitPower );
+ 
+ #ifdef ZCL_IDENTIFY
+   zclGenericApp_IdentifyTime = 0;
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Common/zcl/zcl.c b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Common/zcl/zcl.c
+index 51902c4..9afcba3 100644
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Common/zcl/zcl.c
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Common/zcl/zcl.c
+@@ -47,6 +47,8 @@
+ #include "zcl.h"
+ #include "zcl_general.h"
+ 
++#include "osal_nv.h"
++
+ #if defined ( INTER_PAN ) || defined ( BDB_TL_INITIATOR ) || defined ( BDB_TL_TARGET )
+   #include "stub_aps.h"
+ #endif
+@@ -4675,6 +4677,14 @@ static uint8_t zclProcessInWriteCmd( zclIncoming_t *pInMsg )
+             status = zclWriteAttrData( pInMsg->msg->endPoint, &(pInMsg->msg->srcAddr),
+                                        &attrRec, statusRec );
+           }
++
++          if((pInMsg->msg->clusterId == ZCL_CLUSTER_ID_GENERAL_BASIC) && (statusRec->attrID == ATTRID_BASIC_TRANSMIT_POWER))
++          {
++              int8_t transmitPower;
++              OsalPort_memcpy((int8_t*)&transmitPower,statusRec->attrData,sizeof(int8_t));
++              ZMacSetTransmitPower( (ZMacTransmitPower_t)transmitPower );
++              osal_nv_write( ZCD_NV_TRANSMIT_POWER, sizeof( transmitPower ), &transmitPower );
++          }
+         }
+         else // Use CB
+         {
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+index b841d60..ed396c2 100644
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/f8wrouter.opts
 @@ -9,3 +9,5 @@
  -DADDRMGR_NV_SINGLES
  -DBINDINGTABLE_NV_SINGLES
  -DASSOCLIST_NV_SINGLES
-+
-+--preinclude=preinclude.h 
++
++-include preinclude.h
 \ No newline at end of file
-diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Stack/Config/preinclude.h b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Stack/Config/preinclude.h
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/preinclude.h b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/preinclude.h
 new file mode 100644
-index 0000000..8a7300b
+index 0000000..1ce7b56
 --- /dev/null
-+++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/Stack/Config/preinclude.h
-@@ -0,0 +1,31 @@
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/Config/preinclude.h
+@@ -0,0 +1,33 @@
 +// Increase MAC buffers
 +#undef MAC_CFG_TX_DATA_MAX
 +#define MAC_CFG_TX_DATA_MAX 20
@@ -1313,6 +1669,8 @@ index 0000000..8a7300b
 +#define MAX_RTG_ENTRIES         150
 +#define ZDO_API_ADVANCED
 +
++#define ATTRID_BASIC_TRANSMIT_POWER 0x1337
++
 +// From https://www.ti.com/lit/an/swra650b/swra650b.pdf
 +#define LINK_DOWN_TRIGGER 12
 +#define NWK_ROUTE_AGE_LIMIT 5
@@ -1320,51 +1678,103 @@ index 0000000..8a7300b
 +#define DEFAULT_ROUTE_REQUEST_RADIUS 8
 +#define ZDNWKMGR_MIN_TRANSMISSIONS 0
 +#define ROUTE_DISCOVERY_TIME 13
-diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/app.cfg b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/app.cfg
-index 5089a84..146ef06 100644
---- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/app.cfg
-+++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/app.cfg
-@@ -700,7 +700,9 @@ var GateMutexPri = xdc.useModule('ti.sysbios.gates.GateMutexPri');
-  */
- var Memory = xdc.useModule('xdc.runtime.Memory');
- var HEAPMGR_CONFIG = 0;
--var HEAPMGR_SIZE   = 0x1800;
-+// Increase heap to 48kb
-+// https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1052120/cc2652r-mac-no-resources-0x1a-errors-complete-crash-with-simplelink-cc13xx-cc26xx-sdk_5-30-00-56/3897554#3897554
-+var HEAPMGR_SIZE   = 0xc000;
- 
- // The following will create the #define HEAPMGR_CONFIG. It can then be used by include  <xdc/cfg/global.h>
- Program.global.HEAPMGR_CONFIG = HEAPMGR_CONFIG;
-diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/cc13x2_cc26x2.cmd b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/cc13x2_cc26x2.cmd
-index 2856ad2..031cfeb 100755
---- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/cc13x2_cc26x2.cmd
-+++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/cc13x2_cc26x2.cmd
-@@ -67,9 +67,9 @@
- /* must be located at the beginning of the application.                      */
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/sys/zcomdef.h b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/sys/zcomdef.h
+index 26c0b45..8a338c1 100644
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/sys/zcomdef.h
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/sys/zcomdef.h
+@@ -123,6 +123,9 @@ extern "C"
+ #define ZCD_NV_STARTUP_OPTION             0x0003
+ #define ZCD_NV_START_DELAY                0x0004
+ 
++// Custom transmit power NV item
++#define ZCD_NV_TRANSMIT_POWER             0x0010
++
+ // NWK Layer NV item IDs
+ #define ZCD_NV_NIB                        0x0021
+ #define ZCD_NV_DEVICE_LIST                0x0022
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/sys/zglobals.c b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/sys/zglobals.c
+index 706736b..b63af7b 100644
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/sys/zglobals.c
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/sys/zglobals.c
+@@ -225,7 +225,7 @@ uint8_t zgEndDeviceConfiguration = END_DEV_CONFIGURATION;
+ //
+ // NOTICE:  Before enabling Child Aging make sure to review all the related
+ // definitions in this file, especially zgNwkParentInformation.
+-uint8_t zgChildAgingEnable = TRUE;
++uint8_t zgChildAgingEnable = FALSE;
+ 
+ //==========    TouchLink NWK configuration    ===============
+ // Values used by Router when starts a network as initiator
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/zdo/zd_app.c b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/zdo/zd_app.c
+index 1f30180..0fd57f5 100644
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/zdo/zd_app.c
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/Stack/zdo/zd_app.c
+@@ -441,12 +441,11 @@ uint32_t ZDApp_event_loop( uint8_t task_id, uint32_t events )
+           ZDApp_ChangeState( DEV_ROUTER );
+         }
+ 
+-        if ( zgChildAgingEnable == TRUE )
+-        {
+-          // Once the device has changed its state to a ROUTER set the timer to send
+-          // Parent annce
+-          ZDApp_SetParentAnnceTimer();
+-        }
++        // As we cannot enable child aging as Xiaomi devices will drop off
++        // but we stil want to have the parent announces we always enable it here.
++        // Otherwise some end devices could be unreachable when they changed parent
++        // while the coordinator was powered off.
++        ZDApp_SetParentAnnceTimer();
+       }
+       else
+       {
+@@ -907,12 +906,11 @@ void ZDApp_NetworkStartEvt( void )
+         bdb_reportCommissioningState(BDB_INITIALIZATION,TRUE);
+       }
+ 
+-      if ( zgChildAgingEnable == TRUE )
+-      {
+-        // Once the device has changed its state to a COORDINATOR set the timer to send
+-        // Parent annce
+-        ZDApp_SetParentAnnceTimer();
+-      }
++      // As we cannot enable child aging as Xiaomi devices will drop off
++      // but we stil want to have the parent announces we always enable it here.
++      // Otherwise some end devices could be unreachable when they changed parent
++      // while the coordinator was powered off.
++      ZDApp_SetParentAnnceTimer();
+     }
+     else
+     {
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
+index da62af1..234ac56 100755
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
+@@ -71,9 +71,9 @@
+ #endif
  
  #define FLASH_BASE              0x00000000
--#define FLASH_SIZE              0x52000
--#define FLASH_NV_BASE           0x52000
--#define FLASH_NV_SIZE           0x4000
+-#define FLASH_SIZE              (0x56000 - (NVOCMP_NVPAGES * 0x2000))
+-#define FLASH_NV_BASE           (0x56000 - (NVOCMP_NVPAGES * 0x2000))
+-#define FLASH_NV_SIZE           (NVOCMP_NVPAGES * 0x2000)
 +#define FLASH_SIZE              0x50000
 +#define FLASH_NV_BASE           0x50000
 +#define FLASH_NV_SIZE           0x6000
  #define FLASH_LAST_BASE         0x56000
  #define FLASH_LAST_SIZE         0x2000
  
-diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/zr_genericapp.syscfg b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/zr_genericapp.syscfg
-index 4b1ea23..b60ec66 100644
---- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/zr_genericapp.syscfg
-+++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos_ccs/zr_genericapp.syscfg
-@@ -47,6 +47,7 @@ CCFG.enableBootloader         = true;
+diff --git a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
+index 7af3313..300960f 100644
+--- a/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
++++ b/zr_genericapp_CC26X2R1_LAUNCHXL_tirtos7_ticlang/zr_genericapp.syscfg
+@@ -62,6 +62,7 @@ CCFG.enableBootloader         = true;
  CCFG.enableBootloaderBackdoor = true;
  CCFG.dioBootloaderBackdoor    = 13;
  CCFG.levelBootloaderBackdoor  = "Active low";
 +CCFG.enableDCDC               = false;
- CCFG.ccfgTemplate.$name       = "ti_devices_CCFGTemplate0";
+ CCFG.ccfgTemplate.$name       = "ti_devices_CCFG_CCFGCC26XXTemplate0";
  
  Display1.$hardware  = system.deviceData.board.components.XDS110UART;
-@@ -67,8 +68,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
+@@ -82,8 +83,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
  
  NVS1.$name                    = "CONFIG_NVSINTERNAL";
  NVS1.internalFlash.$name      = "ti_drivers_nvs_NVSCC26XX0";
@@ -1375,7 +1785,7 @@ index 4b1ea23..b60ec66 100644
  
  NVS2.$name                          = "CONFIG_NVSEXTERNAL";
  NVS2.nvsType                        = "External";
-@@ -118,6 +119,8 @@ zstack.deviceTypeReadOnly                    = true;
+@@ -172,6 +173,8 @@ zstack.deviceTypeReadOnly                    = true;
  zstack.touchlink.$name                       = "ti_zstack_touchlink_zstack_touchlink0";
  zstack.pm.$name                              = "ti_zstack_pm_zstack_pm0";
  zstack.rf.$name                              = "ti_zstack_rf_zstack_rf0";
@@ -1384,37 +1794,61 @@ index 4b1ea23..b60ec66 100644
  zstack.rf.radioConfig.$name                  = "ti_devices_radioconfig_settings_ieee_15_40";
  zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
  zstack.rf.coexSettings.$name                 = "ti_zstack_rf_zstack_coex_mod0";
-diff --git a/zr_genericapp_LP_CC2652RB_tirtos_ccs/Application/zcl_genericapp.c b/zr_genericapp_LP_CC2652RB_tirtos_ccs/Application/zcl_genericapp.c
-index 82a4bec..23788ff 100644
---- a/zr_genericapp_LP_CC2652RB_tirtos_ccs/Application/zcl_genericapp.c
-+++ b/zr_genericapp_LP_CC2652RB_tirtos_ccs/Application/zcl_genericapp.c
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Application/zcl_genericapp.c b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Application/zcl_genericapp.c
+index 550be7a..0725b39 100644
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Application/zcl_genericapp.c
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Application/zcl_genericapp.c
 @@ -53,6 +53,8 @@
   * INCLUDES
   */
  
-+#include <driverlib/sys_ctrl.h>
-+
++#include <driverlib/sys_ctrl.h>
++
  #include "rom_jt_154.h"
  #include "zcomdef.h"
  
-@@ -870,6 +872,7 @@ static void zclGenericApp_processAfIncomingMsgInd(zstack_afIncomingMsgInd_t *pIn
+@@ -68,6 +70,8 @@
+ #include "zcl_genericapp.h"
+ #include "zcl_port.h"
+ 
++#include "osal_nv.h"
++
+ #include <ti/drivers/apps/Button.h>
+ #include "ti_drivers_config.h"
+ #include "util_timer.h"
+@@ -261,6 +265,14 @@ void sampleApp_task(NVINTF_nvFuncts_t *pfnNV)
+   pfnZdlNV = pfnNV;
+   zclport_registerNV(pfnZdlNV, ZCL_PORT_SCENE_TABLE_NV_ID);
+ 
++  // Init the transmit power NV item, this will be skipped if item is already initialized
++  int8_t transmitPower = TXPOWER;
++  osal_nv_item_init( ZCD_NV_TRANSMIT_POWER, sizeof(transmitPower), &transmitPower );
++
++  // Set transmit power
++  osal_nv_read( ZCD_NV_TRANSMIT_POWER, 0, sizeof( transmitPower ), &transmitPower );
++  ZMacSetTransmitPower( (ZMacTransmitPower_t)transmitPower );
++
+   // Initialize application
+   zclGenericApp_initialization();
+ 
+@@ -870,6 +882,7 @@ static void zclGenericApp_processAfIncomingMsgInd(zstack_afIncomingMsgInd_t *pIn
   */
  static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *bdbCommissioningModeMsg)
  {
-+  zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
++  zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
    switch(bdbCommissioningModeMsg->bdbCommissioningMode)
    {
      case BDB_COMMISSIONING_FORMATION:
-@@ -909,6 +912,8 @@ static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *
+@@ -909,6 +922,8 @@ static void zclGenericApp_ProcessCommissioningStatus(bdbCommissioningModeMsg_t *
        }
      break;
      case BDB_COMMISSIONING_INITIALIZATION:
-+      zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
-+      Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
++      zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
++      Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
        //Initialization notification can only be successful. Failure on initialization
        //only happens for ZED and is notified as BDB_COMMISSIONING_PARENT_LOST notification
  
-@@ -1209,28 +1214,16 @@ static void zclGenericApp_changeKeyCallback(Button_Handle _btn, Button_EventMask
+@@ -1209,28 +1224,16 @@ static void zclGenericApp_changeKeyCallback(Button_Handle _btn, Button_EventMask
   */
  static void zclGenericApp_processKey(Button_Handle _btn)
  {
@@ -1424,11 +1858,11 @@ index 82a4bec..23788ff 100644
 -    {
 -        if(ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE)
 -        {
-+    NLME_LeaveReq_t         req;
-+    memset( &req, 0, sizeof( NLME_LeaveReq_t ) );
-+    NLME_LeaveReq(&req);
-+    // Sleep for 2 seconds, otherwise leave request is not send
-+    Task_sleep(2000 * (1000 / ClockP_getSystemTickPeriod()));
++    NLME_LeaveReq_t         req;
++    memset( &req, 0, sizeof( NLME_LeaveReq_t ) );
++    NLME_LeaveReq(&req);
++    // Sleep for 2 seconds, otherwise leave request is not send
++    Task_sleep(2000 * (1000 / ClockP_getSystemTickPeriod()));
  
 -            zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
 -            Zstackapi_bdbStartCommissioningReq(appServiceTaskId,&zstack_bdbStartCommissioningReq);
@@ -1444,32 +1878,53 @@ index 82a4bec..23788ff 100644
 -    {
 -        Zstackapi_bdbResetLocalActionReq(appServiceTaskId);
 -    }
-+    zgWriteStartupOptions( ZG_STARTUP_SET,
-+                         ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE);
++    zgWriteStartupOptions( ZG_STARTUP_SET,
++                         ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE);
  
-+    SysCtrlSystemReset();
++    SysCtrlSystemReset();
  }
  
  
-diff --git a/zr_genericapp_LP_CC2652RB_tirtos_ccs/Application/zcl_genericapp_data.c b/zr_genericapp_LP_CC2652RB_tirtos_ccs/Application/zcl_genericapp_data.c
-index c0e473d..1446606 100644
---- a/zr_genericapp_LP_CC2652RB_tirtos_ccs/Application/zcl_genericapp_data.c
-+++ b/zr_genericapp_LP_CC2652RB_tirtos_ccs/Application/zcl_genericapp_data.c
-@@ -96,6 +96,8 @@ const uint16_t zclGenericApp_identify_clusterRevision = 0x0001;
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Application/zcl_genericapp_data.c b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Application/zcl_genericapp_data.c
+index c0e473d..4d08810 100644
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Application/zcl_genericapp_data.c
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Application/zcl_genericapp_data.c
+@@ -49,6 +49,8 @@
+ #include "zcl_general.h"
+ #include "zcl_ha.h"
+ 
++#include "osal_nv.h"
++
+ /* GENERICAPP_TODO: Include any of the header files below to access specific cluster data
+ #include "zcl_poll_control.h"
+ #include "zcl_electrical_measurement.h"
+@@ -96,8 +98,11 @@ const uint16_t zclGenericApp_identify_clusterRevision = 0x0001;
  const uint8_t zclGenericApp_HWRevision = GENERICAPP_HWVERSION;
  const uint8_t zclGenericApp_ZCLVersion = GENERICAPP_ZCLVERSION;
  const uint8_t zclGenericApp_ManufacturerName[] = { 16, 'T','e','x','a','s','I','n','s','t','r','u','m','e','n','t','s' };
 +const uint8_t zclGenericApp_ModelID[] = { 9, 't','i','.','r','o','u','t','e','r' };
-+const uint8_t zclGenericApp_SwBuildID[] = { 8, '2','0','2','2','0','1','2','5' };
++const uint8_t zclGenericApp_SwBuildID[] = { 8, '2','0','2','2','1','1','0','2' };
  const uint8_t zclGenericApp_PowerSource = POWER_SOURCE_MAINS_1_PHASE;
  uint8_t zclGenericApp_PhysicalEnvironment = PHY_UNSPECIFIED_ENV;
++int8_t zclGenericApp_TransmitPower;
  
-@@ -143,10 +145,28 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+ #ifdef ZCL_IDENTIFY
+ // Identify Cluster
+@@ -134,7 +139,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_BASIC_HW_VERSION,            // Attribute ID - Found in Cluster Library header (ie. zcl_general.h)
+       ZCL_DATATYPE_UINT8,                 // Data Type - found in zcl.h
+-      ACCESS_CONTROL_READ,                // Variable access control - found in zcl.h
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),                // Variable access control - found in zcl.h
+       (void *)&zclGenericApp_HWRevision  // Pointer to attribute variable
+     }
+   },
+@@ -143,16 +148,34 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
      { // Attribute record
        ATTRID_BASIC_ZCL_VERSION,
        ZCL_DATATYPE_UINT8,
 -      ACCESS_CONTROL_READ,
-+      (ACCESS_CONTROL_READ | ACCESS_REPORTABLE),
++      (ACCESS_CONTROL_READ | ACCESS_REPORTABLE | ACCESS_CONTROL_AUTH_READ),
        (void *)&zclGenericApp_ZCLVersion
      }
    },
@@ -1478,7 +1933,7 @@ index c0e473d..1446606 100644
 +    { // Attribute record
 +      ATTRID_BASIC_MODEL_IDENTIFIER,
 +      ZCL_DATATYPE_CHAR_STR,
-+      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
 +      (void *)zclGenericApp_ModelID
 +    }
 +  },
@@ -1487,30 +1942,131 @@ index c0e473d..1446606 100644
 +    { // Attribute record
 +      ATTRID_BASIC_SW_BUILD_ID,
 +      ZCL_DATATYPE_CHAR_STR,
-+      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
 +      (void *)zclGenericApp_SwBuildID
 +    }
 +  },
    {
      ZCL_CLUSTER_ID_GENERAL_BASIC,
      { // Attribute record
-diff --git a/zr_genericapp_LP_CC2652RB_tirtos_ccs/Stack/Config/f8wrouter.opts b/zr_genericapp_LP_CC2652RB_tirtos_ccs/Stack/Config/f8wrouter.opts
-index b841d60..91eb00e 100644
---- a/zr_genericapp_LP_CC2652RB_tirtos_ccs/Stack/Config/f8wrouter.opts
-+++ b/zr_genericapp_LP_CC2652RB_tirtos_ccs/Stack/Config/f8wrouter.opts
+       ATTRID_BASIC_MANUFACTURER_NAME,
+       ZCL_DATATYPE_CHAR_STR,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)zclGenericApp_ManufacturerName
+     }
+   },
+@@ -161,7 +184,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_BASIC_POWER_SOURCE,
+       ZCL_DATATYPE_ENUM8,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_PowerSource
+     }
+   },
+@@ -170,7 +193,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_BASIC_PHYSICAL_ENVIRONMENT,
+       ZCL_DATATYPE_ENUM8,
+-      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_PhysicalEnvironment
+     }
+   },
+@@ -179,10 +202,20 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_CLUSTER_REVISION,
+       ZCL_DATATYPE_UINT16,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_basic_clusterRevision
+     }
+   },
++  {
++    ZCL_CLUSTER_ID_GENERAL_BASIC,
++    {  // Attribute record
++     ATTRID_BASIC_TRANSMIT_POWER,
++     ZCL_DATATYPE_INT8,
++     (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
++     (void *)&zclGenericApp_TransmitPower
++    }
++  },
++
+ 
+ #ifdef ZCL_IDENTIFY
+   // *** Identify Cluster Attribute ***
+@@ -191,7 +224,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     { // Attribute record
+       ATTRID_IDENTIFY_IDENTIFY_TIME,
+       ZCL_DATATYPE_UINT16,
+-      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_IdentifyTime
+     }
+   },
+@@ -201,7 +234,7 @@ CONST zclAttrRec_t zclGenericApp_Attrs[] =
+     {  // Attribute record
+       ATTRID_CLUSTER_REVISION,
+       ZCL_DATATYPE_UINT16,
+-      ACCESS_CONTROL_READ,
++      (ACCESS_CONTROL_READ | ACCESS_CONTROL_AUTH_READ),
+       (void *)&zclGenericApp_identify_clusterRevision
+     }
+   },
+@@ -276,6 +309,7 @@ void zclGenericApp_ResetAttributesToDefaultValues(void)
+ {
+ 
+   zclGenericApp_PhysicalEnvironment = PHY_UNSPECIFIED_ENV;
++  osal_nv_read( ZCD_NV_TRANSMIT_POWER, 0, sizeof( zclGenericApp_TransmitPower ), &zclGenericApp_TransmitPower );
+ 
+ #ifdef ZCL_IDENTIFY
+   zclGenericApp_IdentifyTime = 0;
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Common/zcl/zcl.c b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Common/zcl/zcl.c
+index 51902c4..9afcba3 100644
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Common/zcl/zcl.c
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Common/zcl/zcl.c
+@@ -47,6 +47,8 @@
+ #include "zcl.h"
+ #include "zcl_general.h"
+ 
++#include "osal_nv.h"
++
+ #if defined ( INTER_PAN ) || defined ( BDB_TL_INITIATOR ) || defined ( BDB_TL_TARGET )
+   #include "stub_aps.h"
+ #endif
+@@ -4675,6 +4677,14 @@ static uint8_t zclProcessInWriteCmd( zclIncoming_t *pInMsg )
+             status = zclWriteAttrData( pInMsg->msg->endPoint, &(pInMsg->msg->srcAddr),
+                                        &attrRec, statusRec );
+           }
++
++          if((pInMsg->msg->clusterId == ZCL_CLUSTER_ID_GENERAL_BASIC) && (statusRec->attrID == ATTRID_BASIC_TRANSMIT_POWER))
++          {
++              int8_t transmitPower;
++              OsalPort_memcpy((int8_t*)&transmitPower,statusRec->attrData,sizeof(int8_t));
++              ZMacSetTransmitPower( (ZMacTransmitPower_t)transmitPower );
++              osal_nv_write( ZCD_NV_TRANSMIT_POWER, sizeof( transmitPower ), &transmitPower );
++          }
+         }
+         else // Use CB
+         {
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/f8wrouter.opts b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/f8wrouter.opts
+index b841d60..ed396c2 100644
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/f8wrouter.opts
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/f8wrouter.opts
 @@ -9,3 +9,5 @@
  -DADDRMGR_NV_SINGLES
  -DBINDINGTABLE_NV_SINGLES
  -DASSOCLIST_NV_SINGLES
-+
-+--preinclude=preinclude.h 
++
++-include preinclude.h
 \ No newline at end of file
-diff --git a/zr_genericapp_LP_CC2652RB_tirtos_ccs/Stack/Config/preinclude.h b/zr_genericapp_LP_CC2652RB_tirtos_ccs/Stack/Config/preinclude.h
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/preinclude.h b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/preinclude.h
 new file mode 100644
-index 0000000..8a7300b
+index 0000000..1ce7b56
 --- /dev/null
-+++ b/zr_genericapp_LP_CC2652RB_tirtos_ccs/Stack/Config/preinclude.h
-@@ -0,0 +1,31 @@
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/Config/preinclude.h
+@@ -0,0 +1,33 @@
 +// Increase MAC buffers
 +#undef MAC_CFG_TX_DATA_MAX
 +#define MAC_CFG_TX_DATA_MAX 20
@@ -1535,6 +2091,8 @@ index 0000000..8a7300b
 +#define MAX_RTG_ENTRIES         150
 +#define ZDO_API_ADVANCED
 +
++#define ATTRID_BASIC_TRANSMIT_POWER 0x1337
++
 +// From https://www.ti.com/lit/an/swra650b/swra650b.pdf
 +#define LINK_DOWN_TRIGGER 12
 +#define NWK_ROUTE_AGE_LIMIT 5
@@ -1542,51 +2100,103 @@ index 0000000..8a7300b
 +#define DEFAULT_ROUTE_REQUEST_RADIUS 8
 +#define ZDNWKMGR_MIN_TRANSMISSIONS 0
 +#define ROUTE_DISCOVERY_TIME 13
-diff --git a/zr_genericapp_LP_CC2652RB_tirtos_ccs/app.cfg b/zr_genericapp_LP_CC2652RB_tirtos_ccs/app.cfg
-index 5089a84..146ef06 100644
---- a/zr_genericapp_LP_CC2652RB_tirtos_ccs/app.cfg
-+++ b/zr_genericapp_LP_CC2652RB_tirtos_ccs/app.cfg
-@@ -700,7 +700,9 @@ var GateMutexPri = xdc.useModule('ti.sysbios.gates.GateMutexPri');
-  */
- var Memory = xdc.useModule('xdc.runtime.Memory');
- var HEAPMGR_CONFIG = 0;
--var HEAPMGR_SIZE   = 0x1800;
-+// Increase heap to 48kb
-+// https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1052120/cc2652r-mac-no-resources-0x1a-errors-complete-crash-with-simplelink-cc13xx-cc26xx-sdk_5-30-00-56/3897554#3897554
-+var HEAPMGR_SIZE   = 0xc000;
- 
- // The following will create the #define HEAPMGR_CONFIG. It can then be used by include  <xdc/cfg/global.h>
- Program.global.HEAPMGR_CONFIG = HEAPMGR_CONFIG;
-diff --git a/zr_genericapp_LP_CC2652RB_tirtos_ccs/cc13x2_cc26x2.cmd b/zr_genericapp_LP_CC2652RB_tirtos_ccs/cc13x2_cc26x2.cmd
-index 2856ad2..031cfeb 100755
---- a/zr_genericapp_LP_CC2652RB_tirtos_ccs/cc13x2_cc26x2.cmd
-+++ b/zr_genericapp_LP_CC2652RB_tirtos_ccs/cc13x2_cc26x2.cmd
-@@ -67,9 +67,9 @@
- /* must be located at the beginning of the application.                      */
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/sys/zcomdef.h b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/sys/zcomdef.h
+index 26c0b45..8a338c1 100644
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/sys/zcomdef.h
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/sys/zcomdef.h
+@@ -123,6 +123,9 @@ extern "C"
+ #define ZCD_NV_STARTUP_OPTION             0x0003
+ #define ZCD_NV_START_DELAY                0x0004
+ 
++// Custom transmit power NV item
++#define ZCD_NV_TRANSMIT_POWER             0x0010
++
+ // NWK Layer NV item IDs
+ #define ZCD_NV_NIB                        0x0021
+ #define ZCD_NV_DEVICE_LIST                0x0022
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/sys/zglobals.c b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/sys/zglobals.c
+index 706736b..b63af7b 100644
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/sys/zglobals.c
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/sys/zglobals.c
+@@ -225,7 +225,7 @@ uint8_t zgEndDeviceConfiguration = END_DEV_CONFIGURATION;
+ //
+ // NOTICE:  Before enabling Child Aging make sure to review all the related
+ // definitions in this file, especially zgNwkParentInformation.
+-uint8_t zgChildAgingEnable = TRUE;
++uint8_t zgChildAgingEnable = FALSE;
+ 
+ //==========    TouchLink NWK configuration    ===============
+ // Values used by Router when starts a network as initiator
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/zdo/zd_app.c b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/zdo/zd_app.c
+index 1f30180..0fd57f5 100644
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/zdo/zd_app.c
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/Stack/zdo/zd_app.c
+@@ -441,12 +441,11 @@ uint32_t ZDApp_event_loop( uint8_t task_id, uint32_t events )
+           ZDApp_ChangeState( DEV_ROUTER );
+         }
+ 
+-        if ( zgChildAgingEnable == TRUE )
+-        {
+-          // Once the device has changed its state to a ROUTER set the timer to send
+-          // Parent annce
+-          ZDApp_SetParentAnnceTimer();
+-        }
++        // As we cannot enable child aging as Xiaomi devices will drop off
++        // but we stil want to have the parent announces we always enable it here.
++        // Otherwise some end devices could be unreachable when they changed parent
++        // while the coordinator was powered off.
++        ZDApp_SetParentAnnceTimer();
+       }
+       else
+       {
+@@ -907,12 +906,11 @@ void ZDApp_NetworkStartEvt( void )
+         bdb_reportCommissioningState(BDB_INITIALIZATION,TRUE);
+       }
+ 
+-      if ( zgChildAgingEnable == TRUE )
+-      {
+-        // Once the device has changed its state to a COORDINATOR set the timer to send
+-        // Parent annce
+-        ZDApp_SetParentAnnceTimer();
+-      }
++      // As we cannot enable child aging as Xiaomi devices will drop off
++      // but we stil want to have the parent announces we always enable it here.
++      // Otherwise some end devices could be unreachable when they changed parent
++      // while the coordinator was powered off.
++      ZDApp_SetParentAnnceTimer();
+     }
+     else
+     {
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
+index da62af1..234ac56 100755
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/cc13x2_cc26x2_tirtos7_ticlang.cmd
+@@ -71,9 +71,9 @@
+ #endif
  
  #define FLASH_BASE              0x00000000
--#define FLASH_SIZE              0x52000
--#define FLASH_NV_BASE           0x52000
--#define FLASH_NV_SIZE           0x4000
+-#define FLASH_SIZE              (0x56000 - (NVOCMP_NVPAGES * 0x2000))
+-#define FLASH_NV_BASE           (0x56000 - (NVOCMP_NVPAGES * 0x2000))
+-#define FLASH_NV_SIZE           (NVOCMP_NVPAGES * 0x2000)
 +#define FLASH_SIZE              0x50000
 +#define FLASH_NV_BASE           0x50000
 +#define FLASH_NV_SIZE           0x6000
  #define FLASH_LAST_BASE         0x56000
  #define FLASH_LAST_SIZE         0x2000
  
-diff --git a/zr_genericapp_LP_CC2652RB_tirtos_ccs/zr_genericapp.syscfg b/zr_genericapp_LP_CC2652RB_tirtos_ccs/zr_genericapp.syscfg
-index d137337..d9e3ef6 100644
---- a/zr_genericapp_LP_CC2652RB_tirtos_ccs/zr_genericapp.syscfg
-+++ b/zr_genericapp_LP_CC2652RB_tirtos_ccs/zr_genericapp.syscfg
-@@ -48,6 +48,7 @@ CCFG.enableBootloaderBackdoor = true;
+diff --git a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/zr_genericapp.syscfg b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/zr_genericapp.syscfg
+index 94e3ede..3d2f361 100644
+--- a/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/zr_genericapp.syscfg
++++ b/zr_genericapp_LP_CC2652RB_tirtos7_ticlang/zr_genericapp.syscfg
+@@ -63,6 +63,7 @@ CCFG.enableBootloaderBackdoor = true;
  CCFG.dioBootloaderBackdoor    = 13;
  CCFG.levelBootloaderBackdoor  = "Active low";
  CCFG.srcClkLF                 = "Derived from HF XOSC";
 +CCFG.enableDCDC               = false;
- CCFG.ccfgTemplate.$name       = "ti_devices_CCFGTemplate0";
+ CCFG.ccfgTemplate.$name       = "ti_devices_CCFG_CCFGCC26XXTemplate0";
  
  Display1.$hardware  = system.deviceData.board.components.XDS110UART;
-@@ -68,8 +69,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
+@@ -83,8 +84,8 @@ ECDSA1.$name = "CONFIG_ECDSA_0";
  
  NVS1.$name                    = "CONFIG_NVSINTERNAL";
  NVS1.internalFlash.$name      = "ti_drivers_nvs_NVSCC26XX0";
@@ -1597,7 +2207,7 @@ index d137337..d9e3ef6 100644
  
  NVS2.$name                          = "CONFIG_NVSEXTERNAL";
  NVS2.nvsType                        = "External";
-@@ -119,6 +120,8 @@ zstack.deviceTypeReadOnly                    = true;
+@@ -173,6 +174,8 @@ zstack.deviceTypeReadOnly                    = true;
  zstack.touchlink.$name                       = "ti_zstack_touchlink_zstack_touchlink0";
  zstack.pm.$name                              = "ti_zstack_pm_zstack_pm0";
  zstack.rf.$name                              = "ti_zstack_rf_zstack_rf0";
@@ -1607,5 +2217,5 @@ index d137337..d9e3ef6 100644
  zstack.rf.radioConfig.codeExportConfig.$name = "ti_devices_radioconfig_code_export_param0";
  zstack.rf.coexSettings.$name                 = "ti_zstack_rf_zstack_coex_mod0";
 -- 
-2.34.0
+2.37.0