3.6. Possible problems and solutions

Here is a list of common problems and possible solutions that we offer to our users. Your case may be the same mentioned below, then you will quickly find a solution, otherwise, send your questions with a detailed description of the problem to tech support:

3.6.1. Controller is not found

XiLab or other software can not find the controller.

  • The PC does not detect the controller via USB:

Comment to the diagram:

The most common cause for such type of problem is bad work of the usb-hub, cables or the virtual COM-port identification problem of the operation system on the used PC. Try to reproduce the problem on the another PC or another usb-hub if it is used.


“Can’t open device” error or “open_device()” function returns -1. Libximc library opens the controller in exclusive access mode. Any controller opened with libximc (XiLab also uses this library) needs to be closed before it may be used by another process. So at first check that you have closed XiLab or other software dealing with the controller before trying to reopen the controller.

The following decision maps show the actions for different operating systems.



Comments to the diagram:

  • Check whether the COM-port corresponding to your controller presents in the Device manager. It should be displayed as “XIMC Motor Controller (COMn)”. In case the controller has not been recognized, try to reinstall the driver for the controller manually.
  • Try to open the COM-port of the controller in any simple serial emulator (Putty for example) and just send the simple command to the controller (like “stop”, “sstp”, “zero”). The connection parameters are described here. The absence of errors means that the controller is operating correctly and the problem should be caused by the used software.



Comment to “Can’t open device” problem solution:

When working with USB-UART converter (as well as USB-Ethernet, USB-Bluetooth etc.) in Linux it appears as /dev/ttyUSB device. XiLab shows it in a list, but when you try to open it, an error “can’t open device” occurs due to the lack of permissions to the device.

To solve this problem, create a file: /etc/udev/rules.d/31-ximc.rules and add the next line into it:

SUBSYSTEM=="usb", ATTR{idVendor}=="067b", MODE="0666"

idVendor identifier can be found by executing lsusb command.

Mac OS:


3.6.2. Unable to rotate the motor by the controller Controller has Alarm state


Click Stop in the main window of XiLab. Controller must return to its normal state.

If this approach was not helpful and Alarm state emerged again, do the following:

  • Being in XiLab go to the Maximum ratings tab.
  • Mark Sticky Alarm flags option. Click Ok.
  • Press Stop in the main window of XiLab, it will temporary return controller to its normal state. Repeat the sequence of actions leading to Alarm state.
  • Make the screenshot of XiLab main window and send it to the technical support with detailed description of your problem. Motor vibrates without rotation

This problem has several reasons:

  • Installed incorrect profile for your motor/stage.

    • Search for a better match for the title of profile used by your motorized stage in XiLab folder.
    • It is recommended to save your current configuration to file. To do this, in the Settings window of XiLab click Save to file (see XiLab settings), choose path where you want to save the settings. Then send this file in technical support with detailed description of the problem.
  • Incorrect configuration of limit switches, as result the stage rests the limit switch. This can usually be seen by the indicator lights in XiLab.


    The main reason for the incorrect setting of limit switches is incorrect configuration file for your positioner (see previous item). Information about manual setting is located in manual profile setting. When such problem is emerged it is recommended to contact the technical support for further assistance.

    • It is also one of the consequences of problems with limit switches can be mechanical jamming (see the next item).
  • Broken winding of the motor, problems with bad contact in connector etc. It is possible to diagnose this kind of problems independently. For this purpose, we recommend to get XiLab graphs of voltage and current during the operation of motor. The proper motor current in the winding varies according to a sine or cosine. In the broken motor much stronger differences of the current from harmonic form can be noticed.


    Working case

    In the charts below you can see the problems. For example, winding B is open circuit. Probably it is broken. Also, voltage and current forms are distorted.


    There are problems with motor

To diagnose the problem set very low speed (1 s/sec is optimal) and send movement command. Then turn on graphs of current and voltage for windings A and B in XiLab and the Power current (button Charts, then mark correspond fields). Wait for a while until the graphs are built. Then it is recommended to send them (Click Save in the same window with graphs) in technical support with a detailed description of the problem. Sometimes, when winding is broken, it is impossible to use XiLab due to permanent loss of device. In this case also contact technical support with description of the problem. Mechanical jamming

There are two ways to deal with jamming:

  • Turn the motorized stage by hands if it is possible.
  • Increase the winding current 2-3 times for a short time (about 5-10 seconds) and send movement command to the stage in the right direction at the low speed (about 50-100 s/sec will be enough). A few seconds after rotation, press stop button (small black square) until power off status appears in the main window of XiLab in order to prevent motor overheating. After this do not forget to return the settings back! The motor does not react on move commands

The controller looks OK but the motor does not move, leaving error messages in the log, the controller reboots. This bug can arise due to extremely wrong calibration setting of the controller. This happen when the predicted values of the electrical parameters of the motor differ for several orders from the right ones. The wrong calibration sometimes could be caused by the mechanical load on the motor or by differ of mechanical friction in both directions of moving that affects the calibration. So the controller tryes to make a little movement to calibrate the motor (the calibration is performed before the motor power on) and goes down due to the overcurrent protection.

If you encounter this problem just do the following:

  • Open XiLab, load the profile for used motor.
  • On the Stepper motor tab of Settings menu change the nominal current to 200 mA, change the working speed to 1 step/s, click Apply and Save to flash.
  • Try to start moving, watch the current parameters of the motor via Charts like it was described above.
  • If the charts look OK, then load the normal setting for used motor and work with it as usual.

3.6.3. When using the libximc library and Linux with kernel version less than 3.16, there are possible hanging of the operating system

Comment: above-mentioned problem stems from the error in serial port driver cdc-acm. It is observed with frequent sequential opening and closing of some devices. Operation system hanging was shown on Debian 7 (3.2 kernel version) and worked correctly on Debian 8 (3.16 kernel version). For additional information about problem please refer to the next link.

Solution: update your current version of Linux.

3.6.4. Short-term controller loss

The controller to go down due to the overcurrent protection (the hard stop of the motor can lead to the current surge due to recuperation). In cases of using the big motors (which require the winding current up to 3A) or the big mechanical load on the motor a current surge may exceed the safe value that triggers the protection.

The possible solution: is to decrease the acceleration and deceleration values of stepper motor settings (XiLab -> Settings menu -> Stepper motor tab).