Mach4 SimpleMotion drive plugin

From Granite Devices Knowledge Wiki
Jump to: navigation, search

Mach4 is a CNC motion control software developed by Newfangled Solutions. The Mach4 SimpleMotion drive plugin is provided by Granite Devices to run any SimpleMotion compatible motor drivers, such as IONI or ATOMI with Mach4.

Mach4 main screen
Typical usage of Mach4, Mach4 plugin and ATOMI drive

Features[edit | edit source]

The plugin seamlessly integrates Granite Device drives into Mach4 CNC software. The supported features are:

  • Control up to 6 independent motor axes
  • Direct USB connection to drives by using with highly reliable built-in FTDI USB chipset on the drives
  • Uses non-real-time dependent Buffered motion stream in SimpleMotion V2 method to feed trajectory points to drives
  • Support axis homing/referencing with built-in homing functions of the drive, including Hard-stop homing
  • Support spindles in various operating modes
    • Velocity controlled spindle
    • Position controlled spindle with rigid tapping
  • Continuous error & fault monitoring on communication link and on each drive individually

Requirements[edit | edit source]

The following things are needed for building a CNC machine using Mach4 and motor drivers connected with SimpleMotion bus:

  • Atomi, IONI or Argon-based motion system, e.g. CNC mill, connected with SimpleMotion bus
  • Mach4 software + license
  • SimpleMotion adapter depending on selected motor drivers
  • Granity software for configuring the motor drivers

Motor driver configuration with Granity software[edit | edit source]

NOTE: The SimpleMotion motor drivers must be configured before trying to control them with Mach4!

This section shows the basic configuration for motor drivers with Granity software. More support for using this software can be found from the Granity user guide. The following subsection titles are links to corresponding guide pages. Download the Granity software from its wiki page, launch it and follow these steps:

Connect to the motor driver[edit | edit source]

Connect to a motor from the "Connect" tab by selecting the interface device, and clicking "Connect to drive".


From the opening list, select a motor driver and click "Open"


Goals[edit | edit source]

The goals tab contains the driver function, input signal, motion dynamics, homing and soft limit settings.The following table shows the most important settings in the goals tab. All settings are explained in Granity software in more depth.

Setting Value
Control modeCM Position control in motion drivers, position or velocity control in spindle driver
Require software enableCEN Enable this if you don't want the motor driver to be enabled automatically during the startup
Electrical interfaceCEI Standard
Setpoint inputCRI Serial only
Homing enabledHME Select "Homing on external command" if you want to home the axis from Mach4 GUI

If homing is enabled, the position soft limits can also be used to limit the axis motion. The soft limits can be set by following:

  1. Home the axis by pressing button "Start homing now". After homing, the axis stops and it's setpoint is zero
  2. Set the position low limit to zero
  3. Go to Testing tab and find a good high limit position by incrementing the setpoint
  4. Read the current setpoint, go to the Goals tab and set it to the position high limit

Machine[edit | edit source]

The machine tab lets you to choose the axis type and scale, the motor type and properties and the feedback device type and properties. The values can be anything depending on the system, so any good values can't be shown here.

Tuning[edit | edit source]

In the tuning tab you can set the torque, velocity and position controller settings.

Fault limits[edit | edit source]

In this tab, you can set the fault triggering levels and tolerances

Testing[edit | edit source]

This tab lets you to test your motor by changing its setpoint. It also shows the device state.

NOTE: Ensure that the motors work correctly before trying to control them with Mach4!

Mach4 installation & configuration[edit | edit source]

Mach4 installation[edit | edit source]

  • Download and install Mach4
  • Download the plugin files to the Mach4 plugin folder that is located inside of its installation folder (i.e. C:\Mach4\Plugins). The download link can be found at the end of this page.
  • Read the Mach4 installation, configuration and operation manuals before use

Open the Mach4 Configuration dialog[edit | edit source]


Enable the SimpleMotion drive plugin from the plugins tab[edit | edit source]


The program should ask to restart Mach4 after enabling the plugin. Restart Mach4 before continuing.

Select the SimpleMotion drive plugin to be used as a motion device[edit | edit source]



Configure the motors[edit | edit source]

Open the Mach configuration again, and select the motors tab.

Select each used motor and configure them as following:

  • The motor indexes are always one smaller than the SimpleMotion axis numbers. For example, Motor0 means drive 1 in the SimpleMotion bus.
  • How many steps the motors should move for each unit of measure
  • The maximum velocity of each motor
  • The maximum acceleration of each motor
  • Motors can also be reversed here


Axis mapping[edit | edit source]

Enable the axes used in your machine in the Axis Mapping tab. The following picture shows configuration for a 3-axis machine where the spindle motor is also controlled by Mach4. The axes X-C (0-5) are for motion axes, and any of the OB axes (6-11) can be used for controlling a spindle motor.

  • Enable used axes
  • The motor indexes are always one smaller than the SimpleMotion drive numbers. For example, Motor0 means drive 1 in the SimpleMotion bus
  • Select a motor for each axis. Slave motors can also be set for an axis if they use more than one motor
  • Do not enable axes without motors
  • The spindle control type (velocity or position-controlled) will be set later


Homing / Soft limits[edit | edit source]

  • Set the homing order. If some axes have the same number, they will be homed at the same time
  • Enable soft limits for motion axes
  • Set the soft limits to prevent axes from hitting their physical limits. If you don't know what to put here, you can also configure them later. NOTE: these soft limits are not same as the limits configured for the motor drivers in Granity software!
  • The homing direction, offset and speed are selected in Granity software, the values here don't have any effect in motion.


Spindle configuration[edit | edit source]

  • Set min. and max. rpm for the spindle motor if it is controlled by Mach4.
  • The max. rpm set here doesn't have effect to the real speed of velocity-controlled spindle. Running a velocity-controlled spindle by here configured max. speed runs the spindle motor at the maximum speed configured in the SimpleMotion drive.
  • If the spindle is position-controlled, the spindle motor should be selected in the "Step/Dir Spindle Axis"-dropdown. The axis must be enabled and mapped before this.


SimpleMotion drive plugin configuration[edit | edit source]

Save the Mach4 configuration by pressing the OK button. Then open the SimpleMotion drive plugin configuration:


Set the following settings. The default values work in most cases.

  • SimpleMotion V2 adapter FTDI COM port number
  • SimpleMotion V2 buffer max. fill percentage
  • In the case of using a velocity-controlled spindle, its axis should be selected here. The list shows only mapped and enabled axes that are not selected as position-controlled spindle


Save the SimpleMotion drive plugin configuration by pressing "OK", and start using the software!

Downloads[edit | edit source]

Versions[edit | edit source]

Version Comments Download
0.9.0b The first beta release

Known issues[edit | edit source]

  • A possible small bump after disabling or stopping motion due to aborted buffered motion

Giving ideas, bug reports, general discussion[edit | edit source]

To discuss about the plug-in and it's features, join the community at:

In no event the Product Information or parts hereof shall be regarded as guarantee of conditions or characteristics. The Product Information or any part thereof may also not be regarded as a warranty of any kind. No liability of any kind shall be assumed by Author with respect to Product Information or any use made by you thereof, nor shall Author indemnify you against or be liable for any third party claims with respect to such information or any use thereof.

As content of this Wiki may be edited by user community, Granite Devices Oy or it's affiliates do not take any responsibility of the contents of this Wiki. Use information at your own risk. However, Granite Devices staff attempts to review all changes made to this Wiki and keep information trustworthy.

Without written consent, Granite Devices' Products or Intellectual Property shall not be used in situations or installations where living beings, material property, or immaterial property could be harmed by the operation, features or failures of Product. Products may only be used in a way where hazards like moving parts, electric shock, laser radiation, or fire can't be realized even if the content of this Wiki would suggest otherwise.