Environment Setup

The main tool for building, testing and deploying software is CMake. It is widely accepted and supported by many IDEs, which means that the user is free to choose from various development environments.

To make things more convenient, there are Motorcortex plugins for CLion ( https://www.jetbrains.com/clion ). CLion is an advanced IDE with many tools that make programming a Motorcortex application easier. This IDE is available across platforms and is capable of cross-compiling and deploying Motorcortex applications to the target controller with a click of a button. This guide will show you how to install CLion, Motorcortex plugins from the CLion Marketplace and get started with developing Motorcortex applications.

Installing Motorcortex Template Plugin

After installing CLion the first step is to install the Motorcortex Templates plugin. This plugin will provide you the option to create a new Motorcortex project.

  1. In the Main Menu on the top left corner open: File → Settings, then find the Plugins menu.

  2. In the plugins menu search for Motorcortex.

  3. Install the Motorcortex Templates plugin and restart IDE. After that you can create new Motorcortex projects in the main menu.

    image not found
  4. In the Main Menu open: File → New Project, in the pop-up under C++ choose C++ Motorcortex select the location where you want to save your project and press Create.

    image not found

Set-up Remote Development

  1. In the Main Menu open File → Settings under Build, Execution, Deployment you will find the Toolchains menu.

  2. Add a new toolchain by pressing the + button and select Remote Host.

    image not found
  3. In the Credentials press the ⚙️ button to enter the SSH Configurations menu. Add a new configuration by pressing the + button and fill in the following data:

    • Host:
    • Port: 22
    • User name: admin
    • Password: vectioneer
    image not found
  4. Press the Test Connection button to make sure your connection is Ok. If not, re-check your controller connection.

    image not found
  5. If the connection is good you can press Ok to close the SSH Configurations menu.

  6. Wait for Make and the C/C++ Compiler to be detected then press the Apply button to save the Toolchain settings.

  7. Set Toolchain to Remote Host.

    image not found
  8. Press the Ok button to save the CMake settings and close the Settings window.

  9. Wait for a couple of seconds while remote and local systems are synchronized.

  10. Make sure that your controller is not running a Motorcortex application. Open the Terminal in CLion and run the following command:

    ssh admin@ 'echo vectioneer | sudo -S motorcortex stop'
  11. In CLion set your Run/Debug Configuration to Debug-Remote Host.

    image not found
  12. Press play to build and run the application.

  13. To compile code with the latest modifications press Rebuild Project.

    image not found
  14. Congratulations you are now ready to start remote developing your Motorcortex application.

Set-up Cross Compilation

  1. For Cross compilation you will need a Motorcortex SDK. You can download the SDK (Software Development Kit) from the motorcortex.io store

  2. Extract the archive and place the .sh file in a folder of your preference.

  3. In the terminal browse to the folder and run the .sh file from the terminal, for example:

    sh ./motorcortex-glibc-x86_64-motorcorcortex-image-dev-corei7-64-toolchain-X.X.X.sh
  4. You will be asked to enter the target directory where to install the SDK to. It is a good idea to keep the SDK in the home folder, where administrative rights are not required for example: ~/mcx-sdk

    image not found
  5. Mounting Sysroot on your system.

    Generate a new key pair with the following command.

    ssh-keygen -t rsa
    image not found

    Use ssh-copy-id to install an SSH key on the remote Motorcortex host as an authorized key. Its purpose is to provision access without requiring a password for each login. To copy the SSH key you need to enter the password only once. Default password is vectioneer.

    ssh-copy-id admin@

    Create a folder to mount the remote Motorcortex file system on with the following command.

    mkdir ~/mcx-sysroot

    Mount the Motorcortex file system with the following command.

    sshfs admin@ ~/mcx-sysroot/
  6. Configure toolchain in CLion.

    Open File → Settings → Build Execution Deployment → Toolchains.

    Create a new System Toolchain with the name motorcortex.

    Open Add environment → From file.

    image not found

    Fill the environment file of the Motorcortex SDK.

    image not found

    CLion will fill all the required paths automatically as it shown in the image below.

    image not found

    Press Apply to save the changes.

  7. Install Motorcortex Toolchain plugin.

    image not found
  8. Open File → Settings → Build, Execution, Deployment → Motorcortex SDK and fill in the Sysroot path with the mounted folder: mcx-sysroot.

    image not found
  9. Add the connection to the remote Motorcortex host. Open Tools → Deployment → Configuration, add a new SFTP connection named mcx-host. Press the Autodetect button to set the Root path.

    image not found
  10. In CLion open Run/Debug Configuration, press + to add new configuration, select Motorcortex Remote Application.

    image not found
  11. Fill Name of the new configuration: cross_mcx_example. Fill Program arguments with default path to the active configuration: -c /etc/motorcortex/config/config.json. Select Development profile: mcx-host.

    image not found
  12. To install configuration to the controller press Build → Install.

    image not found
  13. To run a project on the controller press Run icon.

    image not found
  14. To debug the project select CrossDebug configuration and press Debug.

    image not found

image not found

image not found

image not found
Last modified April 8, 2022: Renaming dirs (d6c80339)