Network Servo Interface Adapters for LinuxCNC


LinuxCNC driver v2

LinuxCNC HAL driver module name is nyx. During operation the controller and SSCNET network are synchronized to servo thread of the LinuxCNC. Servo thread period should be set to 888888 ns for YSSC1P, YSSC2P, YMDS3P and to 222222 ns for YSSC3P. Module parameters:

The following HAL commands load the driver and add its callback function to the servo thread:

loadrt motmod servo_period_nsec=888888 ...
loadrt nyx axis=6 param_file=/usr/share/nyx/j2s.bin
addf nyx.0 servo-thread

servo parameter file

Servo parameters are transfered to drives during initialization after LinuxCNC startup. Parameter names and values are written in a text file and converted to a binary format with a script. Sample files for MR-J2S-B, MR-J3-B and MDS are located in /usr/share/nyx. For MR-J2S-B, MR-J3-B, MR-J4-B parameter file is optional - drives will use values from the drive EEPROM. For MDS drives parameter file is mandatory.

Consult servo drive manual for parameters description.


Controller status pins:


Depending on adapter the driver supports up to 16 servo amplifiers, AX number is 00 thru 15. Parameters:



An encoder input channel converts quadrature signals on CN2 Phase A, Phase B, Index Z into 32-bit up/down counter values. The sampling requency is 45 MHz. NN is encoder channel: 00 or 01. Parameter:


The interface is intended for use with motion.spindle-index-enable and motion.spindle-revs.


Digital input signals IN0..IN11 connected to CN1. Pins:

Digital output signals OUT0..OUT7 going to CN3:


2-channel 12-bit digital-to-analog converter on YEX1-A expansion board. Paramaters:



Connected YIO modules are detected, pins are created for each on nyx module load. ID is by DIP switches, 00 thru 15.


Absolute encoder support

All Mitsubishi J2 Super series motors feature absolute encoders. This allows to skip LinuxCNC homing operation on each startup. Patched version of LinuxCNC adds the folloing pins to halui module:

Upon startup a script is executed which inspects if servo amplifiers are in absolute mode and position data is valid. In that case it sets corresponding axes to "homed". Also the patch changes values saved into position.txt file from current position pos_fb to motor_offset. TODO: change to preserve compatibility.

Added INI file parameters MAX_JOG_VELOCITY, MAX_AJOG_VELOCITY to differentiate maximum jogging velocity from absolute maximum velocity that can be used in programs. AXIS UI sliders "Jog Speed" and "Max Velocity" behave consistently.