6.3. 8SMC1-USBhF software compatibility


The communication protocols for 8SMC1 and 8SMC4/5 controllers are not compatible. The communication protocol for 8SMC4/5 is described in the Communication protocol specification.
Due to protocol differences certain amount of functionality of both 8SMC1 and 8SMC4/5 cannot be mapped onto each other. The recommended way to work with 8SMC4/5 would be to adapt your software to use libximc library.

XiLab software is designed for 8SMC4 and 8SMC5 controllers, it won’t work with 8SMC1. For 8SMC1 there are two software packs: MicroSMC and SMCVieW.

  • SMCView is a Labview-based GUI for 8SMC1 controllers. It uses one kind of driver to work with 8SMC1.
  • MicroSMC is a program-driver for 8SMC1 controllers. It uses another kind of driver to work with 8SMC1 (not the one which SMCView uses).

New motor controllers can be used with the software written for the 8SMC1-USBhF series. There are two options available to control new motor controllers using 8SMC1-USBhF-compatible software:

  1. Recommended. Use MicroSMC software with support for both 8SMC1-USBhF and new motor controllers. In this case MicroSMC process will open all found motor controllers in exclusive mode to arbitrate access and it will be possible to control them through USMCDLL, which uses MicroSMC. Download MicroSMC with support for new motor controllers on the Software compatibility page.
  2. Use USMCDLL/libximc compatibility library to control motor controllers without MicroSMC software. Use this option if you need to simultaneously run MicroSMC and work with some motor controllers using libximc library. Download USMCDLL/libximc compatibility library here.

When move from the 8SMC1 controller to the 8SMC4/5 we advice to replace your program functions to use the libximc library. The table below shows the mapping from 8SMC1-USBhF to new motor controller functions: first column lists USMCDLL library functions, second column lists corresponding paragraph in 8SMC1-USBhF controller user’s manual, third column contains this function features in the migration library.

Function call 8SMC1-USBhF New motor controller
USMC_Init 7.5.3 Uses libximc enumerate_devices, get_enumerate_device_information, get_enumerate_device_serial, get_device_count, get_device_name, open_device functions. Queries all COM-ports present in the system.
USMC_GetState 7.5.4 Uses libximc get_status and get_engine_settings functions. AReset, EMReset, RotTrErr flags in USMC_State structure are always set to false.
USMC_SaveParametersToFlash 7.5.5 Uses libximc command_save_settings function.
USMC_GetMode 7.5.6 Uses libximc get_edges_settings, get_power_settings, get_control_settings, get_ctp_settings, get_sync_out_settings functions. EMReset, ResetRT, SyncOUTR, EncoderEn, EncoderInv, ResBEnc, ResEnc flags in USMC_Mode are always set to false, SyncINOp flag is always set to true.
USMC_SetMode 7.5.7 Uses all functions used by USMC_GetMode and their “set_” equivalents. Ignores RotTeEn, RotTrOp, ResetRT, SyncOUTR, SyncINOp, EncoderEn flags.
USMC_GetParameters 7.5.8 Uses libximc get_secure_settings, get_engine_settings, get_move_settings, get_feedback_settings, get_power_settings, get_control_settings, get_ctp_settings, get_home_settings, get_sync_out_settings functions. Returns zeroes in BTimeoutR, BTimeoutD, MinP, MaxLoft, StartPos fields.
USMC_SetParameters 7.5.9 Uses all functions used by USMC_GetParameters and their “set_” equivalents. Ignores BTimeoutR, BTimeoutD, MinP, MaxLoft, StartPos parameters.
USMC_GetStartParameters 7.5.10 Uses libximc get_move_settings, get_engine_settings functions. WSyncIN, SyncOUTR, ForceLoft flags in USMC_StartParameters structure are always set to false.
USMC_Start 7.5.11 Uses libximc get_move_settings, get_engine_settings, set_move_settings, set_engine_settings, command_move functions.
USMC_Stop 7.5.12 Uses libximc command_stop function.
USMC_SetCurrentPosition 7.5.13 Uses libximc set_position function.
USMC_GetEncoderState 7.5.14 Uses libximc get_status function.
USMC_GetLastErr 7.5.15 Does not modify its arguments. Error status is indicated by the nonzero return code of the corresponding USMC_ function.
USMC_Close 7.5.16 Uses libximc close_device function.

Migration library does not require and does not interact with background MicroSMC.exe process. It uses libximc.dll library to interface with new motor controllers.

All composite USMC_ functions containing several libximc function calls terminate if any of the underlying libximc functions returns an error. In this case controller may be left with partially saved settings. Nonzero return code of USMC_ functions is equal to the return code of the libximc function which returned an error.

Application example: usmcdll_libximc_test.zip

To make 8SMC1-USBhF work on Windows 10 you would first need to update controller firmware to the latest version (25.05).
All relevant software can be found on this page.
Full Software & Support Package for Windows 8.
Latest Firmware v.2505 - updated for Windows 8 and 10.


To update the firmware you will need Windows 7 or Windows 8.1. Most likely you will not be able to update the firmware running Windows 10

If you want to repair the 8SMC1-USBhF controllers, please contact the manager who sold the equipment. If the manager’s contacts was lost, you can contact sales@standa.lt. Important, the cost of repair can be comparable to the cost of a new controller.