Table of Contents
Operating the CNC Seating Buck with the Controller Software
The CNC seating buck can be operated directly from the CNC Seating Buck Controller Software as documented below. Alternatively, it can be operated from the nVIZ Ergonomics Plugin for Autodesk VRED Professional as documented here : Ergonomics Plugin
For any support issues, please contact nVIZ and send the log file to nVIZ. The CNC seating buck controller software will write a log file to: C:/Users/<userName>/AppData/Roaming/nVIZ/Ergonomics/<version>/CNCSeatingBuck.log

The Controller Software parses it’s configuration file when launched:
C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
The entry “NAMING-CONVENTION” needs to match the ID of the connected CNC Seating Buck (see label on the Seating Buck). This entry should match if you have correctly selected the combo box entries on the automatic installation option of the Controller Software. The entry “SETTING-NETWORK_INTERFACE” needs to be edited after the first installation to match the network interface ID to which your Seating Buck is connected – see chapter “Connecting the Seating Buck to the Host PC” below. Please mail your network interface ID to nVIZ so that we can include it in your config file for the next updates.
NB: Do not change any other entries in the config file without consulting nVIZ.
Importing Ergonomics Data

- File > Import Ergo Data: Imports ergonomics data for multiple vehicles from an Excel data base – for more details see: Importing ergonomics data from an Excel data base
After the successful data import, all the imported vehicles are shown in the “Vehicle” combo box and the ergonomics reference points coordinates are shown in the corresponding spin boxes. The spin boxes will be activated or deactivated according to the seating buck configuration.
Connecting the Seating Buck to the Host PC

- Connect: Starts the EtherCAT connection to the servo controllers of the connected seating buck, opens an UDP connection to communicate with the Virtual Reality software, e.g. Autodesk VRED Professional – see: Ergonomics Plugin and starts the MQTT client.
This function will also parse the configuration file of the connected Seating Buck: C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
The correct configuration file should be available after the installation, if you have selected the correct Seating Buck name on the installer screen. After the first installation, you will need to edit the configuration file. Please open the file and check the line “NAMING-CONVENTION” to make sure it corresponds to your Seating Buck ID – to be seen on the label of your Seating Buck. Go to the line “SETTING-NETWORK_INTERFACE” and edit it to match the ID of your network interface connection from your host PC’s EtherCAT master to the EtherCAT slaves (=controllers) on the Seating Buck. If you do not know the correct network interface ID, read the next paragraph. When a successful connection is established, the status table will show the status of every EtherCAT slave (= controller on the seating buck).
NB: Do not modify any other entries in the configuration file without consulting nVIZ! - Disconnect: Closes the EtherCAT connection to the EtherCAT slaves (= controllers on the seating buck), the UDP connection for the Virtual Reality session and the MQTT client.
- EtherCAT Cycletime Traffic light: The traffic light next to the “Connect” button gives an indication for the cycle time of the EtherCAT bus. The cycle time is critical for the EtherCAT communication. If the cycle times is to slow, all the Seating Buck controllers will go into error state.
- Green traffic light = EtherCAT cycle time is within the EtherCAT specification.
- Orange traffic light = EtherCAT cycle time is near the limit of the EtherCAT specification.
- Red Traffic Light = EtherCAT cycle exceeds the EtherCAT specification. Seating Buck controllers are at risk of switching to an error state.

If you do not know the correct network ID for your EtherCAT Master, click the connect button and see the error messages printed to the terminal window. Copy the correct ID from the terminal window and paste it to the configuration file. Save the configuration file and restart the application. Retry “Connect” and check the terminal window.
Putting the Seating Buck into Operation

- NB: Make sure it is safe to operate the Seating Buck before enabling the power stages!
- Enable: Enables all power stages of the electric actuators on the Seating Buck and releases the brakes of the drives. This is the first step to take after connecting to the CNC Seating Buck.
- Disable: Disables the power stages of the electric actuators and applies the brakes to all drives. The brakes will hold all drives in their current position.
- STOP: Stops all electric drives immediately and applies the brakes.
Positioning the Seating Buck

- Home Seating Buck: Moves all drives to their home position and references all encoders.
- Position Seating Buck: Moves the seats, steering, center console and pedals to the defined position. The position is given by the data imported from Excel for the selected vehicle.
- Home HMI Cobot: Launches a batch file to start the application for homing the HMI Cobot.
- Position HMI Cobot: Launches a batch file to start the application for positioning the HMI Cobot.

- Vehicle: After you have imported an Excel data base, you can select one of the imported vehicles from the “Vehicle” combo box and the spin boxes will be filled with the values retrieved from Excel.
- Spin Boxes: The spin boxes will be activated or deactivated according to your Seating Buck configuration. If you do not have an Excel Data base available to import, fill in the spin boxes with the seat reference point, steering reference point, center console reference point, heal point and ball of foot coordinates as well as the pedals reference points. All values are expected to be in millimeters and in the vehicle coordinate system.
- Sliders: Sliders are available for driver specific adjustments of seat and steering, adding to the design position of seat and steering reference point. After import of an Excel database, the slider ranges will be scaled, according to the travel envelopes given in Excel.
Steering Wheel Encoder Angle

- Reset Steering Angle Zero: Only for Seating Bucks which are not equipped with a SENSO Wheel. These will have an angle encoder to transmit the steering angle. Turn the steering wheel to zero angle and then click this button to align the physical steering wheel angle with the virtual scene. For Seating Bucks equipped with a SENSO Wheel, see the SENSO Wheel documentation in Related Documents for resetting the zero angle position.
- Invert steering angle: Only for seating bucks which are not equipped with a SENSO Wheel. Check this checkbox if the physical steering wheel and the virtual scene are turning in opposite direction. For Seating Bucks equipped with a SENSO Wheel, see the “SENSO Drive” tab.
- Terminal Verbosity Level: Set to 0 for a minimal terminal printout and maximum responsiveness of the application. This is especially desired when controlling the application via MQTT or UDP port from a 3rd party app. Set to 1 for detailed terminal printout to better understand the behavior of the software.
Controller Status Table

- Status Table: The status table continuously reports the state of all EtherCAT slaves (= controllers on the seating buck).
For detailed information, hold the mouse over one of the cells. This will display tool tips with information, such as the name of the electric drive or the meaning of the displayed code value.
NB: Keep an eye on the forces reported in the table. All forces should continuously remain below 80%. Higher forces can cause an overload of the actuator due to blocked slider mechanisms.

Hold the mouse over one of the header cells to see the name of the connect electric drive.
Hold the mouse over one of the “Status” or “Referenced” cells to get additional information on the status code.
Command Line Input

- Command Line Input: For nVIZ’ debugging purposes only.
- Clear Terminal: Clears the printout from the terminal window.
Advanced Operation Mode

NB: Be very careful with these options! Contact nVIZ, if you are uncertain about these functions!
- Advanced Homing Option: Some of the actuators need to move synchronized (LH-side/RH-side) to not jam the mechanism. The servo controllers will stop, if the difference between left and right position exceeds a certain value. Only! in cases where homing is no longer possible because the pairing distance check interrupts the homing, first! remove the cause for the blocked actuator, then uncheck “Enable Pairing Distance Check” and try homing again.
- D-Box Motion System: Launches a console application for testing the D-Box Motion system, only for seating bucks equipped with the D-Box Motion system.
- Enable Selected: Enables only the electric drives of the sub-system selected from the combo box to the right. This option is useful for moving only a single sub-system.
- Step Selected Actuator: If a pair of actuators, which need to move in sync (LH-side/RH-side), get jammed, the forces will exceed their maximum value and the controllers will go into error state. In this case, remove the cause for the blocked actuator and then carefully align the stroke of both actuators again by incrementing the stroke of the LH-side or the RH-side actuator individually. NB: The stepping direction is in the stroke direction for each actuator. After aligning the stroke for paired actuators, perform a homing operation to reset the seating buck!
- Jog Selected Actuator: Click the button to move the actuator, release the button to stop the movement. The jog command is also available if the drives are not referenced. The jog command is only available for non-paired actuators. NB: The jogging direction is in the stroke direction for each actuator.
- Move Selected Seat Forward / Backward / Up / Down: Select the seat from the combo box to the right. Press the button to move the seat position. Release the button to stop the movement. This command is only available if the drives are referenced. NB: The direction of movement is in drivers view.
- Move Steering Forward / Backward / Up / Down / Pitch Up / Pitch Down: Press the button to move the steering position. Release the button to stop the movement. This command is only available if the drives are referenced. NB: The direction of movement is in drivers view.
- Move Center Console Forward / Backward / Left / Right / Up / Down: Press the button to move the arm rest position. Release the button to stop the movement. This command is only available if the drives are referenced. NB: The direction of movement is in drivers view.
Controller Diagnosis

Warnings and error messages from the Festo servo controllers will be reported per actuator on this tab. Any error will put the servo controller into error mode and stop the actuator. Further operation is only possible after removing the cause for the error and acknowledging the error.
Additional documentation to each error code can be found in the FESTO CMMT-ST manual supplied with your Seating Buck User Manual.
- Acknowledge: The “Acknowledge” button will reset the servo controller’s state machine and put the actuator back into the operational mode. The Seating Buck will be disabled for error acknowledgement and need to be re-enabled to continue work.
MQTT Client

MQTT is an OASIS standard messaging protocol for the Internet of Things (IoT). It is designed as an extremely lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth. MQTT today is used in a wide variety of industries, such as automotive, manufacturing, telecommunications, oil and gas, etc.
The integrated MQTT client allows you to connect the Controller Software to any internet device supporting MQTT and control the CNC Seating Buck via the subscribed and published topics.
- MQTT Broker Host: IP address of the host computer running the MQTT broker.
- MQTT Broker Port: Port number for connection to the MQT broker.
- MQTT Broker Username: Username for connection to the MQTT broker.
- MQTT Broker Password: Password for connection to the MQT broker.
- Subscribed Topic: Topic defined by the remote app which the client will subscribe to for controlling the CNC Seating Buck. Please contact nVIZ to agree on the subscription topic and the subscribed parameters.
- Published Topic: The MQTT client publishes the current seat, steering wheel and pedals positions under the topic nVIZ/cncSB/#. All published values are in mm and in reference to the vehicle coordinate system.
ART DTrack Connection

In ART DTrack > Output, define an additional channel and configure it to send data to the UDP port 23765. Activate at least the 6d identifier for the Varjo HMD target and the locator target – as depicted.

Make sure the correct Excel data file is loaded and the correct vehicle is selected in the CNC Controller App. The seat reference point data and the vector from the SRP to the ART locator are required for the calculation of the HMD position in the vehicle reference system!

- Verify the data of the vector from the sest reference point to the ART locator.
- Check the listener on UDP port 23765 = Active.
- Select the correct body ID of the ART locator – see DTrack.
- Select the correct body ID of the ART HMD – see DTrack.
- Compare the received data with the positions reported in DTrack.
- Verify that the HMD position is plausible in the vehicle reference system.

- State Machine: After clicking “On”, the SENSO Wheel state machine should transition to its operational state – displayed by the progress bar at 100%
- Bypass Safe Torque Off: The SENSO Wheel thread checks the Safe-Torque-Off (STO) state of the PILZ safety relay and will only turn on if the PILZ confirmation switch is held in operational position. For debugging tasks by trained personell, this safety function can be bypassed by activating the check box. NB: This is a potential safety hazard!
- Invert Angle: Check this check mark if virtual and physical steering wheel are turning in opposite direction.
- Friction: Adjust the slider for steering friction to achieve a realistic steering force feed back.
- Damping: Adjust the slider for steering damping to achieve a realistic steering force feed back.
- Spring Stiffness: Adjust the slider for spring stiffness to achieve a realistic steering force feed back.
- End Stops: This function is currently not implemented.
Generation A: CNC Seating Buck Configuration File – Seat Constants

The Controller Software parses it’s configuration file when launched:
C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
The relevant parameters for the seat kinematics are dimensioned in the configuration file. All parameters are initially defined by nVIZ, based on the CAD model of the specific seating buck and normally do not need to be changed.
The seat kinematics reference system is located in the revolute joint axis of the seat carrier.
The parameters only need to be updated in the event of a hardware modification. For this case, all relevant seat kinematics parameters are documented here.
NB: Do not change the SEAT-VELOCITY entry! This value is critical for the seating buck safety!
NB: Should any dimension entry be changed, carefully verify the seating buck kinematics in all extreme positions before working with the seating buck!
The configuration file entry SEAT-SRFP defines a vector to a seat rail fixed point and is used by nVIZ for debugging purposes only.
The configuration file entries SEAT-TRACKER_1 and SEAT-TRACKER_2 are currently not being used.
Generation A: CNC Seating Buck Configuration File – Steering Constants

The Controller Software parses it’s configuration file when launched:
C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
The relevant parameters for the steering kinematics are dimensioned in the configuration file. All parameters are initially defined by nVIZ, based on the CAD model of the specific seating buck and normally do not need to be changed.
The steering kinematics reference system is located in the revolute joint axis of the steering carrier.
The parameters only need to be updated in the event of a hardware modification. For this case, all relevant steering kinematics parameters are documented here.
NB: Do not change the STEERING-VELOCITY entry! This value is critical for the seating buck safety!
NB: Should any dimension entry be changed, carefully verify the seating buck kinematics in all extreme positions before working with the seating buck!
The configuration file entry STEERING-SCFP defines a vector to a steering column fixed point and is used by nVIZ for debugging purposes only.
The following configuration file entries are used only for seating bucks with steering yaw CNC adjustment:
STEERING-CYL_TY_HOME_POS = 50% of the TY actuator nominal stroke.
STEERING-CYL_RZ_HOME_POS = 50% of the RZ actuator nominal stroke.
STEERING-TURNTABLE_R1 = radius from turntable center to RZ actuator attachment axis.
STEERING-TURNTABLE_R2 = radius from turntable center to steering reference point.
Generation A: CNC Seating Buck Configuration File – Center Console Constants

The Controller Software parses it’s configuration file when launched:
C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
The relevant parameters for the center console kinematics are dimensioned in the configuration file. All parameters are initially defined by nVIZ, based on the CAD model of the specific center console and normally do not need to be changed.
The center console kinematics reference system is located in the right-hand revolute joint axis of the arm rest carrier.
The parameters only need to be updated in the event of a hardware modification. For this case, all relevant center console kinematics parameters are documented here.
NB: Do not change the CENTERCONSOLE-VELOCITY entry! This value is critical for the seating buck safety!
NB: Should any dimension entry be changed, carefully verify the center console kinematics in all extreme positions before working with the seating buck!
The configuration file entries CENTERCONSOLE-DISTANCE_L3 and CENTERCONSOLE-DISTANCE_H2 are currently not being used.
Generation A: CNC Seating Buck Configuration File – Pedals Constants

The Controller Software parses it’s configuration file when launched:
C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
The relevant parameters for the pedals kinematics are dimensioned in the configuration file. All parameters are initially defined by nVIZ, based on the CAD model of the specific seating buck and normally do not need to be changed.
The pedals kinematics reference system is located in the revolute joint axis of the pedal carrier.
The parameters only need to be updated in the event of a hardware modification. For this case, all relevant pedals kinematics parameters are documented here.
The definition of all parameters is identical for the accelerator pedal, the brake pedal and the footrest.
NB: Do not change the ACCELERATOR-VELOCITY, BRAKE-VELOCITY or FOOTREST-VELOCITY entry! These values are critical for the seating buck safety!
NB: Should any dimension entry be changed, carefully verify the seating buck kinematics in all extreme positions before working with the seating buck!
The ACCELERATOR-TZ_EXTEND and BRAKE-TZ_EXTEND entries define the length of a piston extension which can optionally be mounted on to the TZ actuator of the accelerator or brake pedal.
Generation D: CNC Seating Buck Configuration File – Seating row 1 Constants

The Controller Software parses it’s configuration file when launched:
C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
- SEAT_GEND-CSYS_HOME_X_ROW1: Projected X-distance from seating buck ref. point to row 1 seat carrier ref. system in homed position.
- SEAT_GEND-CSYS_HOME_Z: Projected Z-distance from seating buck ref. point to seat carrier ref. system in homed position.
- SEAT_GEND-CSYS_HOME_RY: Seat carrier top plate incline angle in homed position.

- SEAT_GEND-DIM_L1_ROW1: Projected (to seat plate surface) horizontal distance from row 1 seat plate pivot axis to seat reference point.
- SEAT_GEND-DIM_H1_ROW1: Projected (to seat plate surface normal) vertical distance from row 1 seat plate pivot axis to seat reference point.
Generation D: CNC Seating Buck Configuration File – Seating row 2 Constants

The Controller Software parses it’s configuration file when launched:
C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
- SEAT_GEND-CSYS_HOME_X_ROW2: Projected X-distance from seating buck ref. point to row 2 seat carrier ref. system in homed position.
- SEAT_GEND-DIM_L1_ROW2: Projected (to seat plate surface) horizontal distance from row 2 seat plate pivot axis to seat reference point.
- SEAT_GEND-DIM_H1_ROW2: Projected (to seat plate surface normal) vertical distance from row 2 seat plate pivot axis to seat reference point.

- SEAT_GEND-CSYS_HOME_Y_ROW2_RH: Projected Y-distance from seating buck center plane to row 2 RH seat ref. point in homed position.
- SEAT_GEMD-CSYS_HOME_Y_ROW2_LH: Projected Y-distance from seating buck center plane to row 2 LH seat ref. point in homed position.
Generation D: CNC Seating Buck Configuration File – Seat carrier Constants

The Controller Software parses it’s configuration file when launched:
C:/ProgramFiles/nVIZ/Ergonomics/<version>/cncSeatingBuck.config.
- SEAT_GEND-DIM_R1: Lifting arm long lever length from pivot axis center to pivot axis center.
- SEAT_GEND-DIM_DX0: Distance from rear lever pivot axis to front lever pivot axis.

- SEAT_GEND-DIM_R2: Lifting arm short lever length from pivot axis center to pivot axis center.
- SEAT_GEND-DIM_GAMMA: Outer angle between short lever and long lever of lifting arm.

- SEAT_GEND-DIM_SH0: Homed stroke of TZ rear actuator.
- SEAT_GEND-COORD_XA: X coordinate of TZ rear actuator pivot axis.
- SEAT_GEND-COORD_ZA: Z coordinate of TZ rear actuator pivot axis.

- SEAT_GEMD-DIM_SV0: Homed stroke of TZ front actuator.
- SEAT_GEND-COORD_XB: X coordinate of TZ front actuator pivot axis.
- SEAT_GEND-COORD_ZB: Z coordinate of TZ front actuator pivot axis.
Generation D: CNC Seating Buck Configuration File – Footplate Constants

- SEAT_GEND-DIM_SL_FP: Footplate lifting lever length, pivot axis to pivot axis.
- SEAT_GEND-DIM_H0_FP: Vertical distance from seating buck reference point to footplate top in homed position.

- SEAT_GEND-DIM_HR0_FP: Vertical distance between both footplate rail guides in homed position.
- SEAT_GEND-COORD_P2X_FP: X coordinate of actuator piston connection point.
- SEAT_GEND-COORD_P3X_FP: X coordinate of actuator pivot axis.

- SEAT_GEND-COORD_P3Z_FP: Z coordinate of actuator pivot axis.
- SEAT_GEND-COORD_P2Z_FP: Z coordinate of actuator piston connection point.
Generation D: CNC Seating Buck Configuration File – Center Console Constants

- CENTERCONSOLE_GEND-CSYS_HOME_X: Projected X-distance of seating buck ref. point to center console ref. point in homed position.
- CENTERCONSOLE_GEND-CSYS_HOME_Y: Projected Y-distance of seating buck ref. point to center console ref. point in homed position.
- CENTERCONSOLE_GEND-CCFP_X: Projected X-distance from center console ref. point to armrest ref. point.
- CENTERCONSOLE_GEND-CCFP_Y: Projected Y-distance from center console ref. point to armrest ref. point.

- CENTERCONSOLE_GEND-CSYS_HOME_Z: Projected Z-distance of seating buck ref. point to center console reg. point in homed position.
- CENTERCONSOLE_GEND-CCFP_Z: Projected Z-distance from center console ref. point to armrest ref. point.
Ergonomics Plugin for Autodesk VRED Professional
Alternatively to controlling the CNC Seating Buck with the CNC Controller Software as documented above, it can also be operated from the nVIZ Ergonomics Plugin for Autodesk VRED Professional. For detailed Information please refer to: Ergonomics Plugin
