If you have an existing |DEVICE| software project and you want to start 
developing with SysConfig, follow the steps below. This guide assumes you 
have a stack project from the SimpleLink |DEVICE| 2.40 SDK or newer. If this 
is not the case, please look at the Stack Porting Guides to see how to update 
to SimpleLink |DEVICE| 2.40 SDK.

.. note:: 

  If you are starting development with a fresh project, you don't need to 
  migrate from non-SysConfig to SysConfig-enabled project. In |SDK| v. 2.40 and 
  later, SysConfig-enabled projects are found in the syscfg_preview folder.

1. Add a .syscfg File to Your Project
-------------------------------------

In this guide, we will start with a |STACK| project, then apply necessary changes
to start using SysConfig.

You can use the standalone SysConfig tool to make this file. Please see the 
`SysConfig Standalone Installer Download Page`_.

* Choose the "Start a new Design" option. Choose your device, part and package.
  For the ``product`` path, add the following for your SDK:
  ``{SDK_INSTALL_DIR}\.metadata\product.json``.

* Add an RF stack according to your existing project (|STACK|). Add any TI
  Drivers configuration that your project requires. If applicable, add one or
  more Radio Configuration. You can find guidelines for configuring each of these
  in the :ref:`SysConfig-SysConfig` chapter.

* Save the file and add it to your project.

If you are using |CCS|, you can add the file by dragging it into your CCS
workspace. When you add the file, the following dialog box will appear and allow
you to add SysConfig to your project:

.. figure:: resources/enable_dialog.png
    :align: center

If you are using |IAR|, follow the steps in :ref:`sysconfig-use-iar` before you 
add the ``.syscfg`` file. The steps for adding the file are as follows:

* Include the .syscfg file you want to use in the project (right click on the 
  project |rarr| Add Files |rarr| Navigate to the .syscfg file and add it).

* Create a custom build step: Right click on project |rarr| Options |rarr| 
  Custom Build |rarr| Populate the following:

+--------------------------------------+--------------------------------------------------------------------------+
| Option                               | Populate with the following:                                             |
+--------------------------------------+--------------------------------------------------------------------------+
| File Name Extensions                 | .syscfg                                                                  |
+--------------------------------------+--------------------------------------------------------------------------+
| Command Line                         | $SYSCONFIG_ROOT$/nw/nw.exe                                               |
|                                      | $SYSCONFIG_ROOT$/dist/cli.js -o $PROJ_DIR$ -s "$                         |
|                                      | COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR$/.metadata/product.json" |
|                                      | --compiler iar $FILE_PATH$                                               |
+--------------------------------------+--------------------------------------------------------------------------+
| Output files (one per line)          | SysConfig_Generated_Files.ipcf                                           |
+--------------------------------------+--------------------------------------------------------------------------+
| Run this tool before all other tools | Checked                                                                  |
+--------------------------------------+--------------------------------------------------------------------------+


2. Add SysConfig Options
------------------------

If you are using CCS, open the Project Properties and do the following:

* In System Configuration Tool |rarr| Basic Options |rarr| Name of the board file
  (-b, --board), set it to ``/ti/boards/.meta/<BOARD_NAME>``. (E.g., if you are
  using a CC1312R LaunchPad, set the name to
  ``/ti/boards/.meta/CC1312R1_LAUNCHXL``). It is not necessary to set the name of
  the device.

* In System Configuration Tool |rarr| Basic Options |rarr| Root system config
  meta data file in a product or SDK (-s, --product), add
  ``${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}/.metadata/product.json``.

3. Remove Board Files From Your Project
---------------------------------------

These are not needed as the board configuration is done in SysConfig. E.g. if
you are using a `CC1352R LaunchPad`_, delete the ``Board.h``,
``CC1352R1_LAUNCHXL.h``, and ``CC1352R1_LAUNCHXL.c`` from the project. If your
project contains board files ending with ``*_fxns.c`` or ``*.cmd``, don't
delete them.

You can see how to configure your board files and TI driver instances with
SysConfig in :ref:`sysconfig-board-files`. If you're not exactly sure what 
peripherals are on your board and you have a TI development board, you can check 
the ``.syscfg`` file from an existing syscfg project for your board. E.g. 
if you're using a `CC26X2R LaunchPad`_ board, you can check the ``.syscfg`` file 
in one of the projects in ``${COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_INSTALL_DIR}
/examples/rtos/CC26X2R1_LAUNCHXL``.
