Didn’t find the answer to your question? Please check the documentation included in the download package or contact us.


Q: Is X2C freeware?

A: To a large extent, X2C is open source, distributed under the BSD 3-Clause License. See the features table for a detailed overview.


Q: How can I get access to the advanced features?

A: Please see the different available versions in the Features section and feel free to contact us for licensing questions.


Q: Do I need Matlab® to run X2C?

A: No. The open-source version of X2C runs with Scilab. If you want to use X2C with Matlab®, you need to get an X2C license.


Q: Where do I get Scilab / Xcos?

A: You can download Scilab here.


Q: Does X2C work with Linux?

A: Yes, since nightly build v639, X2C code generation works under Linux. However, some things have to be considered:

  • Prior to executing X2C setup, the environment variable has to be set manually.
    This can be done by adding the line

    export X2C_Root=/home/<user>/X2C


  • Pre-compiled libraries for simulation in Xcos are not available.
  • Some USB to serial converters are not recognized automatically by X2C Communicator. To get recognized, the name has to be either /dev/ttySx or /dev/ttyUSBx.
    The following example shows how to get the Microstick Plus demo board recognized:

    ls -l /dev/ttyACM0

    gives the ouput

    crw-rw---- 1 root dialout 166, 0 Feb 11 08:56 /dev/ttyACM0

    With this information, a new device can be created:

    sudo mknod /dev/ttyUSB0 c 166 0
    sudo chown root:dialout /dev/ttyUSB0
    sudo chmod 660 /dev/ttyUSB0

    This device should be recognizable by the Communicator.

  • The Communicator can only be started within Scilab/Xcos. Starting Communicator.jar as standalone application will not work.


Q: So where do I set up my control scheme?

A: The control scheme is set up in Scilab’s Xcos by dragging the control blocks into the current diagram.


Q: How do I get the code from my control scheme?

A: You can create the compilation ready c-code representing your control scheme by clicking the create code button in the Communicator GUI.


Q: How can I connect to my target?

A: The easiest and fastest way is to use the Communicator GUI. It provides a convenient way to set the communication parameters and connect to the target.


Q: I can’t connect to the target with the X2C Communicator, what’s the problem?

A: To get a connection with the Communicator, an X2C application has to be running on the target. So the target has to be programmed prior to any connection attempts. Also the Interface and Port in the “Setup”-tab have to be selected according to the target’s setup.


Q: How can I download the compiled code to my target?

A: The new application has to be downloaded with the built-in programming feature of the target’s IDE. With X2C Pro and its bootloader support a new application can be downloaded via the Communicator GUI.


Q: Does X2C support the target XYZ?

A: Please check the list of supported targets. If your device is not among the listed targets but is a member of either the C28X, ARMV7 or DSPIC series, you can use a generic processor type.


Q: Why can’t I simulate my model in Linux?

A: Unfortunately, simulation out of the box doesn’t work in Linux yet. However, simulation is possible if these steps are followed:

  1. Install gcc
  2. Download and install the latest X2C nightly build
  3. re-create the libraries in Scilab:
    – createLibrary(‘General)
    – createLibrary(‘Math’)
    – createLibrary(‘Control’)
  4. compile the libraries in Scilab:
    – compileLibs()
  5. execute loadLibs() after every start of Scilab or execute initProject.sce prior opening an X2C Xcos model


Do you know HOTINT? Find out more on our open source tool for flexible multibody system dynamics simulation!X2C and HOTINT are developed at LCM Gmbh
which is funded within the FFG COMET programCOMETof the ministry BMVIT and BMWFJ of the Austrian government and the regional government of Upper Austria

Land OOeParts of the development have been funded within the regional development program Regio13 of the European Union