Apollo III - 1000 Series






14518 County Road 7240, Newburg, MO 65550
(573) 368-7399 • Fax (573) 341-2672



Improper installation of this motion controller can cause DEATH, INJURY or serious PROPERTY DAMAGE. Do not attempt to install this controller until thoroughly reading and understanding this manual.

Do NOT connect DC voltage greater than 48V, or any AC voltage to any part of the Apollo III motion controller.
It could cause serious damage to the controller.

1 Introduction

1.1  Overview

The Apollo III is MachMotion's Ethernet motion controller. It uses differential or single-ended step and direction to control up to 6 axes with full encoder feedback (full closed loop). It also has 16 inputs, 8 outputs, excellent position resolution, two MPG inputs, and spindle encoder feedback.

See the overview video on our youtube channel:

1.2  Tools Required

A small, flat head screwdriver is needed for the I/O terminals.
Small needle nose pliers may be needed to move jumpers for the inputs.

1.3  Reference Diagram

Use the diagram below as a reference throughout the manual.

Figure 1 Apollo III Overview

DO NOT connect 115VAC to any part of the Apollo III motion controller.
It could cause serious damage to the controller.


1.4 Status LEDs

The Apollo III has four status LEDs that show the status of the controller’s processor. The LEDs are located close to the center of the controller. See the figure below.

2 Status LEDs






Power is supplied to Apollo III



Apollo III has an enable signal from control



Apollo III has an error



Apollo III CPU is running (should be flashing when power is supplied)

Table 1 - Apollo III Status LEDs


1.5  Specifications

Below are the specifications for the Apollo III motion controller.



Input Power


Max Power Consumption






      Step and Direction Axis Control

5V Single Ended and Differential


RJ45 Connectors and Terminal Blocks

            Max Pulse Speed

1.6 MHz

      Encoder Feedback

5V Differential


RJ45 Connectors

            Max Frequency

6.25 MHz





      Relay Outputs

Clockwise (CW) and Counterclockwise (CCW)

Analog Signal


Encoder Feedback

5V Differential







Max Current







16 (Sinking or Sourcing)



      Min Current






Enable Circuit


Hardware Enable

Relay Contacts, 5V Enable, 24V Enable

Drive Enable

Relay Contacts



Emergency Stop Circuit

Normally Closed Connection



Ethernet Port

10/100 MHz




8.32"(L) X 5.75"(W) X 2"(H)

Optimal Temperature Range

32° to 100°F (0° to 38°C)

Table 2 – Specifications for the apollo III motion controller

*Only 24V is provided on the motion controller. Any other voltage must be supplied. 

**Commons must be supplied externally. If the commons are using the Apollo III power supply, each output can only source 125mA.

1.6  Drawing

Below is a drawing of the Apollo III.

Figure 3 - Apollo III Mounting Holes

The controller can be mounted on any solid surface that will be protected from dust and dirt. Use a minimum of 3/8 inch standoffs to prevent electrical shorts.

Scale drawing of the Apollo III and mounting bracket is attached

1.7    Hardware Startup

To power the Apollo III, you must supply 24VDC to the power connection located at the top right of the board as shown below. The top orange LED labeled Power will turn on.

Figure 4 24V Power Connector

1.8    Software Startup

On the desktop of your control, there is a Mach4 shortcut for your machine type. Below is an example of the Mach4 shortcut.

Figure 5 Profiles

There is also a shortcut for Mach4 Loader. This allows any of the profiles to be loaded from one location. Double clicking on the Mach4 Loader shortcut opens the following window: 

Figure 6 Loader

After double clicking on a profile or opening a profile from Mach4 Loader, a window will come up (Figure 7) asking to Press Cycle Start to Enable Mach and Home All Axes. Select [Cancel] since motion is not yet possible.


Figure 7 Enable and Home All axes

On subsequent startups, once motion and limit switches are set, press [Cycle Start] and the control will enable and home all axes. This prompt can be turned off in the machmotion plugin if desired. 

2 Axis Setup

2.1    Apollo lll Cover Removal

All of the drives and external I/O will be wired into the Apollo III. Begin by removing the cover by loosening the black knobs on the sides.


Figure 8 Apollo III Cover Removed

Next, plug the drive control and encoder cables into the Apollo III motion controller. The drive control connections are located on the bottom row of the large RJ45 block. The encoder control connections are located on the top row of the large RJ45 block. See the picture below.


Figure 9 Differential Step and Direction, and Encoder Feedback RJ45 Connections

2.2    Enabling Axes

After the drives are connected to the Apollo III, open up the motion software, and enable the axes as follows:

Note: This may already be setup depending on your system.

  1. On the menu bar, click Configure->Control. Then select the Motors tab (pictured below).
    • Note, if menu options are greyed out (not active/selectable), click the button to disable the system
  2. Enable all the motors that are to be controlled by setting the respective boxes in the right pane to checks. In the example below, motors 0, 1, and 2 are enabled.

Figure 10 motor Setup

  1. Press [Apply] to save any changes.
  2. Next, select the Axis Mapping tab as pictured below. Associate the enabled motors to the applicable axis. In the below example, Motor0 is the X master, Motor1 is the Y master, and Motor2 is the Z master.



Figure 11 Axis Mapping

  1. Press [Apply] and [OK] to save and close.

The system is now set up for motion, however,....

The machine can be crashed very easily. No limit switches have been set up and the units have not been configured yet.


2.3    Axis Calibration

For the machine to move the correct distance, the axes need to be calibrated. To get the units perfect, they must be calculated automatically from the machine specifications. However, you can get them extremely close if you manually calibrate especially if you measure at greater distances of travel.

Go to Configure-> Plugins -> Machine Calibration.

Note, if menu options are greyed out (not active/selectable), click the button to disable the system

Select the type of configuration you would like to perform from the window:

  1. Manual; Calculate the steps per by comparing distance traveled vs. distance commanded. See the next section for instructions.
  2. Automatic; Calibrate motors using specifications of your motor type. Continue for instructions.
  3. Screw Mapping; currently unreleased.

2.3.1    Automatic Calibration 

  1. Select the type of configuration you would like to perform
    1. Manual - Calculate the steps per by comparing distance traveled vs. distance commanded. See the next section for instructions.
    2. Automatic - Calibrate motors using specifications of your motor type. Continue for instructions.
    3. Linear Compensation - Also known as screw mapping. Allows you to adjust travel distance with setting offsets to improve accuracy over different parts or sections of the travel. This is often only needed for high precision machining and typically requires the use of laser for determine very accurate positions. Contact MachMotion for information on setting this up.
  2. Select the drive type of the axis being configured.
  3. Select the max motor RPM.
  4. Verify the correct drive ratio.
    Drive Ratio Apollo III Drive Type
    1 Teco
    8 Mitsubishi
    64 Yaskawa
    1 Stepper
    Table 3 - Default Drive Ratio Value

    Figure 13 - MachMotion Plugin Calibration Calculator
  5. Choose the machine configuration for the axis from the following three options.
    • Enter the ball screw pitch
    • Enter the ball screw pulley # teeth and motor pulley # teeth

      Note: If the system has a pulley ratio and a gear box use this equation to get the total gear ratio: [Gear Box Ratio] x [Pulley Ratio] = [Total Gear Ratio] Ex: [10:1 Gear Box] x [30 Motor Pulley Teeth/15 Ball Screw Pulley Teeth] = [10] x [30/15] = [20 Total Gear Ratio](20 Motor Pulley Teeth, 1 Ball Screw Pulley Teeth)
    • Enter pinion diameter
    • Enter the gearing ratio between the shaft and the motor
    • Enter number of teeth on pinion
    • Enter the rack pitch
    • Enter the gearing ratio between the shaft and the motor
    1. Ball Screw
    2. Rack and Pinion – Pinion Diameter
    3. Rack and Pinion – Rack Pitch
  6. Select the axis to calibrate.
  7. Press the [Calculate] button.
  8. Choose [Accept] or [Ignore] to save or discard the changes.
  9. Repeat starting at step 2 for each additional axis.
  10. Press [OK] and restart the software to save the calibration settings.

2.3.2    Manual Calibration


Figure 14 manual Calibration

  1. Select Manual Calibration from the Machine Calibration Selector menu.
  2. Select the axis to calibrate.
  3. Select either Jog Distance or Commanded Distance.
    • Typically commanded distance is used. This is where you enter the distance you want it to move and then record how far it actually moved.
  4. Enable the system and either press [Move] or [Record Jog]. 
    • For Jog Distance mode, manually jog the axis a distance that can be accurately measured.
  5. Measure how far the axis moved.
  6. Enter in the distance the axis moved and press [Submit].
  7. Choose [Accept] or [Ignore] to save or discard the changes.
  8. Repeat this procedure until the axis is within the required accuracy.

If you want to adjust your velocity, select Configure on the top menu bar, then Control. Select the Motors tab as shown below. 

Figure 15 Motor Setup

In the right pane, click on the motor you want to set up (Click the word to highlight and select the axis). The checkbox is for enabling/disabling the motor). The selected motor’s parameters will be loaded and the velocity or acceleration settings can be adjusted.  For stepper motors, max acceleration is typically 15-20 if in standard units. For servo motors, a value of 30-40 is typically best. The max velocity is limited by several factors, including the motor. If you want an axis rapid speed to be limited or lowered, adjust the velocity for that motor to the max speed you want the rapid to be. 

Press [Apply] before clicking on another motor or closing out the Mach Configuration window. NOTE: If you change the counts per unit, the velocity and acceleration values will adjust accordingly. If you do not want them to change, type in the current values shown. Verify by clicking another motor and then coming back to the adjusted motor.

No limits have been set up.  DEATH, INJURY or serious PROPERTY DAMAGE can occur if the system is not operated carefully.

2.4    Backlash Calculation

The Apollo III has backlash compensation. Use the MDI line to enter G-Code to move the axes. To calculate the machine’s backlash, follow the steps below.

        1. Move an axis in one direction farther than the maximum possible backlash.
        2. Mount a dial indicator and zero it.
        3. Move the axis again in the same direction for a specific distance (it doesn’t matter how far).
        4. Move the axis backwards the same distance.
        5. Note how far the dial indicator was off from zero to see the axis’s backlash value.
        6. Backlash is configured in the HiCON plugin. On the menu bar, go to Configure->Plugins and select [Configure] next to the HiCON plugin.
        7. Select the desired motor tab and enter the value (see explanation below). Select [OK] to save settings.

Backlash – This field sets the backlash amount in inches or millimeters, depending on the setup units. If there is more than .002" of backlash there will likely be noticeable accuracy issues. Compensating for backlash is not a preferred method of resolution. It is better to remove or greatly reduce backlash from the mechanics of the system.

Backlash Speed % – This field adjusts the maximum acceleration that the backlash counts can be applied. The Apollo III takes the max acceleration of the motor and multiplies it by this percentage. Valid values are 10-400 (0.1 to 4 times max acceleration).  A common value is 20%.

Figure 16 Backlash Settings


Do not leave the backlash speed zero if you enter in a backlash distance. The Apollo III will not function.

For best performance, backlash should be less than .0015 inches.


2.5    Reversing Direction

If a motor moves the wrong direction, it can be reversed in the software.

  1. From the main menu bar, click Configure->Control and then select the Motors tab to display the following:


    Figure 17 Reversing Direction
  2. Select the motor (not the checkbox) from the list on the Right.
  3. Check the Reverse? box if the motor direction needs to be reversed.
  4. After making all the changes, press [OK].

The motor will now move the opposite direction than it did before. If the homing direction was already set, it will need to be reversed as well. (see the homing section).

2.6    Slaving a Motor

To configure a motor as a slave:

  1. From the main menu bar, select Configure->Control  and then select the Axis Mapping tab.
  2. Select the motor from the dropdown menu for the axis that the motor will be slaved to. Each enabled axis must have one master and up to 5 slave motors. For example, the configuration below is used to slave Motor3 to Motor0 on the X axis.

    Figure 18 Motor3 slaved to Motor0
  3. Press [OK] to save changes.

3  Spindle Setup

The Apollo III spindle control consists of a 0-10V analog signal for spindle speed and two relays (CW and CCW) for spindle direction. Below the spindle terminals there are two LEDs: forward (FWD) and reverse (REV).

Figure 19 Spindle LEDs

3.1    Wiring a Spindle

3.1.1    VFD from MachMotion

The process for setting up a VFD from MachMotion is extremely simple. Simply plug the control cable into the Spindle Control RJ45 jack located on the bottom row of the large RJ45 block.

Figure 20 Spindle Control RJ45 Jack

3.1.2    VFD Other Than from MachMotion

Almost all VFDs can be wired into the Spindle Control RJ45 jack. Please see the following Knowledge Base article for additional information:

3.1.3    No VFD

If the system does not use a VFD to control the spindle, a FWD/REV Contactor circuit can be used and is available from MachMotion. Wire the spindle according to the diagram below. Notice that 24V is wired to the CW and CCW relay contacts on the top row of the green terminals (the terminals on your Apollo board will likely be black, not green).



Figure 21 No VFD Spindle Wiring

3.2    Spindle Configuration

3.2.1    Spindle Range Setup

For the control to know how to scale the analog voltage output, the maximum RPM for the spindle motor must be defined.

If only one range will be used for your machine (no pulley adjustments or different gears), enter the minimum and maximum RPM for the spindle in the Range "1" row.

If the machine has different ranges, the software can have multiple maximum speeds. The software uses a different range for each different speed configuration. For example, one range could be set as 75 to 300 RPM for a low speed. A medium speed range could go from 300 to 1200 RPM and high speed range could run from 1200 to 2400 RPM. The control will output 10V when the Max RPM is called for any speed range. 0V is always at 0 RPM. In the example above, the 1200 to 2400 range would output 5V at 1200 RPM.

To define the range(s), go to Configure->Control. Select the Spindle tab as shown below.

Figure 22 Pulley Speed Setup

Enter in the maximum and minimum speeds for each range. The accel and decel time should also be defined for each range (seconds to max rpm). Press [OK] to save changes.

Note: Only set up multiple ranges if the machine has different gears/pulleys.

Note: If the spindle is turning the wrong direction check the reversed box in the applicable range.

The ranges can be changed from the control by using M40-M45. The macros can be used to just change ranges or they can be used to automatically change gears on the machine. To shift the machine range 0, run M40. M41 is range 1, M42 is range 2, and so on.

3.3    Turning on the Spindle

To control the spindle use the on-screen forward and reverse buttons if applicable. For turning on and off in the gcode file use the following M-Codes with an S word for spindle RPM in the MDI line (Ex. M3 S2000).









Table 5 Spindle M-Codes

3.3    Spindle Speed Accuracy

If the commanded speed does not match the actual speed (based on an encoder feedback or tachometer), there can be various reasons. Here are the most common things to check:

  1. Spindle override setting (knob on the operator/control panel) not at 100%.
  2. If using encoder feedback, is it 1:1 with the spindle? Sometimes they may be mounted in a way that it is not on the same ratio as the spindle. It needs to be 1:1.
  3. Max speed not accurate. Set max RPM for the range to double what maximum should be. In this example, we will use 1,000 as the expected maximum but we were getting a reading of 1,150. So, we will change the max to 2,000 and command the spindle to run at 2,000 (ensure spindle override is at 100%). Whatever the max number it actually is going will be the max number you should set. It may still be 1,150, or could be even higher in this example. If you had a maximum of 1,000 but were only getting 925, then you would change your maximum to 925. Do this for each range.
  4. If the above is correct and still having accuracy issues there are some adjustments in the HiCON plugin that can be made, or there could be some settings/parameters that are not set correctly in the VFD. Contact MachMotion support for further assistance.

4 Limits and Homing Setup

4.1 General Info

There are helpful videos on our youtube channel:


  Note: See section 5 for more specifics on wiring inputs such as limit/home switches

4.2 Wiring Switches

The Apollo III motion controller has up to 16 inputs that can be used for the limit and home switches. To maximize the number of inputs available for other functions, wire multiple switches for the same axis in series as shown below.

Figure 23 Limit Switches in Series

Note: For the highest level of safety, wire the limit switches Normally Closed.

The standard limit input allocation is show below. Input X0 on the Apollo board should NOT be used.


Apollo Input













Table 6 Input Numbers

To set up and wire 24V limit/home switches, follow the steps outlined below.

  1. Pick two limit switches closest to the end of the axis’ maximum and minimum travel.
  2. Wire the two switches normally closed in series as shown in Figure 23.
  3. Wire the remaining side of the first switch to C0+ from the Apollo III motion controller.
  4. Wire the remaining side of the limit/home switch into the correct input (see Table 6) depending on which axis is being wired.
  5. On the menu bar at the top of the screen select Configure->Control. Select the Input Signals
  6. Scroll down through the list until you find the different motor sections (Home, -- , and ++). The example image below shows the inputs scrolled down to the motor home section. Further down is ++ and --.
  7. Enable the limit and home switches by clicking the red [X] by the signal to make it a green check.
    • Note: Each motor has three signals, the max travel (motor ++), the min travel (motor --), and the home (motor home). All three must be enabled and set to the correct device and input name for everything to work correctly using the wiring description above.
  8. Set the device and input name to the desired input. All input signals use [P11] and the input name corresponds to the X number it is wired to (Ex. An input wired into X3 will be [P11] Input3).
  9. Set up the active low checkbox to a green check for a normally closed switch.
    • Note: Under the active low column the active state can be changed by clicking on the [X] or check mark. If the limit switches are normally open the red X should be used. However, this is not recommended as it is not as safe.
  10. When the limit and home switches for each motor are completely configured, press [Apply] and then [OK].

Figure 24 Input Signals

In the example above, motor 0, 1, and 2 home switches are enabled. All of them are wired normally closed. The device and input name for motor 0 is HiCON [P11] Input1 (X1). Since the switches for each motor are wired in series, the motor ++ and motor -- signals lower down in the list would also have the same corresponding device and input names. Manually trigger each limit switch and make sure they disable Mach before continuing.

4.3    Homing Setup

If the limit switches are not set up correctly or if an axis moves in the opposite direction of the home switch, the machine could crash. Make sure to keep a hand on the Emergency Stop button the first time the machine homes.

    1.  From the menu bar click Configure->Control. Select the Homing/SoftLimits tab as shown below.



  • homing-config.JPG
    Figure 25 Homing setup
  • Select the direction each axis should home toward (positive or negative).
  • Configure the home order, with 1 being first, 2 being second, etc…
  • Set the homing speed of the axis by changing the percentage under the Speed % (20% is maximum for most systems for optimal performance. Slower speeds can prevent over-travel. Jogging in rapid or faster speeds to move maching closer to home position prior to homing can save time).
  • Ensure Home In Place column is a red X. If green check mark, click on it to change to red X. If it is a green checkmark it will not move to the home switches.
  • Press [OK] to save changes.


Homing on the machine should now be completely set up. Home each axis individually to verify the configuration. Press the [Home All] button again to make sure that everything works correctly.

4.4    Soft Limits Setup

With machine homed correctly and soft limits set, the machine will not hit a physical limit switch. If at any time a command is made for the machine to move outside of the soft limits (while they are enabled), an error will appear in the status line and motion will stop. To set up the soft limits, follow the procedure outlined below.

  1. Home the machine.
  2. Select to view Machine Coordinates on the Locked screen view so that the DRO’s are orange.
    • machine-coordinates.JPG
    • Figure 26 Machine Coordinates
  3. Jog the machine to the maximum distance from the homing switches.
    • Note: Make sure to stay inside the physical limit switches. If the machine is jogged outside of the limit switches, it completely defeats the purpose of soft limits.
  4. Record the machine coordinates at the end of the travel.
  5. Open the menu bar and click Configure->Control and select the Homing/SoftLimits tab as previously shown.
  6. Enable soft limits on each desired axis by setting the Soft Enable column to a green check mark, and enter in the recorded values.
    • Note: If the value is positive, place it into the Soft Max limit and set the Soft Min limit to zero. Otherwise, with a negative value, set the Soft Max to zero and the Soft Min to the recorded value.
  7. Press [OK] to save changes. Test the soft limits by jogging the axes to maximum amounts in all directions.

Note: When loading a G-code file, the tool path display will show the soft limits as dashed lines. If any part of the tool path renders outside the soft limits, check your file.

5  Input Setup

5.1    Generic Inputs

There are 16 inputs on the Apollo III (15 available for your use as X0 is reserved for the drive fault signal). These can be used for limit/home switches, tool changer signals, alarm conditions, or most anything else.

Note: To learn how to set up limit switches, go to Setting up Limits and Homing.

As shown below, the inputs are located on the main green terminal block (note: your apollo board should have black colored terminals for the outputs, not green as shown on the right side of this board).

Figure 27 Inputs

Each input has an LED that shows the current state of the input. Both the LED and input are labeled with the input name. The inputs run from X0, up to X15. If the LED is on, then the input is activated. Different configurations can be selected for each input by using the jumpers near the bottom right of Apollo III. Each jumper corresponds to an input. For example, the jumper labeled X10 corresponds to the input terminal abeled X10 and the LED X10.

Figure 28 Input Jumpers

There are 3 jumper positions. Position 1 is the jumper in the lower position across the bottom 2 pins. Position 2 is the jumper in the upper position across the top 2 pins. Position 3 is the jumper removed (can be placed on jst the top or bottom pin with the other side of jumper not connected to any pin so that you can easily use it again if needed).

Figure 29 Jumper Positions

Input X0 is configured as drive fault by default.
DO NOT connect anything to X0. It could damage your drives or Apollo III motion controller.

5.2    Wiring Inputs

There are helpful videos on our youtube channel:


5.2.1    Standard 24V Inputs

For a standard 24V input, place the jumper on the bottom two pins. Next, connect C0+ to 24V and C0- to GND on the input terminals (should already be jumper in place from factory for this). In the example below, all the inputs are set up as standard 24V inputs.

Figure 30   24V Configuration

Then connect the input to the input terminal on the middle row (X1, X2, etc.). See the diagram below.

Figure 31 Standard 24V Input

To activate the input, 24V must be supplied to the input. A floating signal or a ground will not turn on the input. The LED corresponding to the input will turn on brightly when the input is activated.

5.2.2    Sinking Inputs (NPN)

For most NPN proxies place the jumper on the top two pins. Then connect the signal into the corresponding input. See the example below.

Figure 32 Standard NPN Proxy

If the proxy has an internal pull-up resistor, depending on its size, it could require the jumper to be completely removed. Use a 3.9k ohm resistor and connect it between XSL and C0+.

Below is an example of a 24V NPN proxy with an internal pull-up resistor. The jumper on the Apollo III must be completely removed for this to work.

Figure 33 NPN Proxy with Internal Pullup

5.2.3    Sourcing Inputs (PNP)

For PNP proxies place the jumper on the bottom two pins. Then connect the signal into the corresponding input.


Figure 34 24V Proxy Example

5.3    Configuring Inputs

    1. On the menu bar click on Configure->Control. Then select the Input Signals




  • input-configuration.JPG
    Figure 35 Input Configuration
  • Enable the desired input by clicking on the red “X”. If it is a green check mark, it is already enabled.
  • Set the device and input name to the desired input.
    Note: Device will be HiCON and Input Name will be [P11] Input X number (X4 would be Input 4)
  • To change when the input is active, click on the Active Low A green check mark means that the input is active low and a red X means that the input is active high.
  • Press [OK] to save changes. The inputs are now set up.


5.4 Supplemental Information: Input Circuit

The image below shows the schematic of an input where S is the input number. The jumper pin 3 is on the top and the pin 1 is on the bottom.



6  Output Setup

6.1    Generic Outputs

The Apollo III has 8 logic outputs that can be used for any low current application. They are located on the terminal block of the board as shown below (note-the output terminals are likely black in color for your board).

Figure 36 Outputs

The outputs and associated LEDs are labeled Y0 through Y7. If the LED is on, the output is activated.

6.2    Wiring Outputs

There are two separate commons for the outputs. The common C1+ is for outputs Y0-Y3 and C2+ is for Y4-Y7. Each common can take 7-48VDC. If the outputs being used are using the voltage supply from Apollo III, each output can only supply 125mA. However, if they are supplied using a separate voltage source, each output can source up to 250mA. For standard operation the output commons are jumpered to 24V on the Apollo III. At that point simply connect the load between the output and GND. See the figure below.

Figure 37 Standard 24V 125mA Outputs

6.3    Configuring Outputs

To configure an output, follow the procedure below.

  1. On the menu bar click on Config->Control.
  2. Select the Output Signals
  3. Scroll down to the desired output (There are 64 output signals available).
  4. Enable the output by setting the Mapping Enabled box to a green check.
  5. Set the Device to HiCON and the Output Name to [P11] and the corresponding Y number (Y3 would be Output3).
  6. Set the Active Low column to a green check for a normally closed signal or red x for normally open.
  7. Press [OK] to save changes.



Figure 38 Output Configuration

6.4    Using Outputs

Outputs 0-5 can be controlled with M-Codes. One M-Code turns an output on, and the other M-Code turns the output off. Use the table below for a reference.

Custom M-Codes


Default Output


Output 0 on



Output 0 off


Output 1 on



Output 1 off


Output 2 on



Output 2 off


Output 3 on



Output 3 off


Output 4 on



Output 4 off


Output 5 on



Output 5 off

Table 7 M-Codes for Outputs

6.5    Mist and Flood Control

Mist is already preconfigured in the software to be wired into Y0 and flood into Y1output terminals.


ON M-Code

OFF M-Code

Preconfigured Output




Mist On – [P11 Output0]



Coolant On – [P11 Output1]

Table 8 Mist and Flood Control

7  Advanced Options and Information

7.1 MachMotion Plugin

A number of advanced features can be accessed and configured in the MachMotion plugin such as periodic oiler control and custom user messages (Global Messaging). Begin by going to Configure->Plugins to open the MachMotion plugin.

Figure 39 - MachMotion Plugin Options

The Machine Parameters tab contains custom options for the control, including dialogue options, lube system, tool measurement/offsets, and tool changer options.

7.1.1    Lube System Setup

The system may require an oiler. Enable the lube system, choose an action trigger, set the lube output, set the time run time of the oiler, and the time between cycles. In the example below the lube output will turn on when the spindle is running for 10 seconds every 15 minutes.



Figure 40 Lube System Setup

7.1.2    Tool Setter Setup

Before you measure tool to setup your tool table, the tool setter options must first be defined. Begin by going to Configure->Plugins to open the MachMotion plugin.

Figure 41 tool Setter options

The Tool Setter Type options are manual or automatic. The Tool Setter/Gage-Block Position Type options are fixed (e.g., a bed mill) and random (e.g., a knee mill). If fixed, the tool setter/gage block position should be determined. In machine coordinates, the Z-axis position of the table should recorded and saved.

To use the automatic tool setter, the remaining tool setter options must be configured. A probe input must also be wired in and setup as the Digitize input signal.

Figure 42 Digitize input signal

7.2    Global Messaging System

Global Messaging is used to setup user alerts or messages as well as to control I/O functionality based on certain conditions. To access the Global Messaging System, go to Configure -> Plugins -> MachMotion and select the Global Messaging System tab. The system allows the machine to watch for specified conditions, and take action when those conditions are met. For information on creating, editing, or deleting a message, visit our global message knowledge base online at: https://support.machmotion.com/books/knowledge-base/page/global-messaging.  

7.3  Emergency Stop (E-stop Circuit)

The emergency stop connector is located right below the power connector on the Apollo III. When the emergency stop terminals are connected together, the red E-Stop LED turns on and the controller can then enable.


Figure 43 Emergency Stop Connection

Note: Nothing will work on the Apollo III motion controller unless the Emergency Stop terminals are connected together!

Our control has an estop button wired into this terminal on the apollo board.  If you would like to add additional e-stop buttons you can wire them in series to the existing estop circuit.

Emergency stop input is set up inside the software by setting the E-Stop Input Signal to HiCON [P14] Input5 and should be pre-configured for you. When it is set up correctly, any time the emergency stop terminals are disconnected, the system will be disabled.

Figure 44 Software E-Stop Setup

  7.4 Motors

To set up the motors, the drives must be connected to the controller, the Apollo III controller must be configured, and the control software must be set up as defined below.

7.4.1    Connecting Drives

The Apollo III motion controller uses step and direction to control the axes. It can use differential or single-ended outputs. For differential outputs there are two signals for step (step + and step -) and two signals for direction (direction + and direction -). For single-ended there is only one signal for both step and direction. All MachMotion products use differential outputs.

7.4.2    Differential Control

Most systems use differential step and direction. The step and direction outputs are located on the bottom row of RJ1, the large RJ45 jack block. See the diagram below.

Figure 45 Differential Step and Direction RJ45 Jacks

 The pinout for the RJ45 jacks is shown below.



Drive Error

Direction +

Drive Enable


Direction -

Step +

Step -

RJ45 Pins










White & Orange


White & Green


White & Blue


White & Brown


Table 9 Axis Control RJ45 Jack Pinouts

Any drive from MachMotion can be plugged directly into the motor control RJ45 jacks.

7.4.3     Single-Ended Control

To use single-ended control use the terminals on TB1 (the large green input terminal block). The top row is for the direction signals and the middle row is for the step signals. The first letter on each terminal is the axis name and the second letter is the function (D for direction and S for step). See the picture below.

Figure 46 Singled-Ended Step and Direction Terminals

With the drives connected it is time to connect the encoder feedback. Skip the next section if the system does not have encoder feedback or if it is not going to be set up at this time.

7.4.4   Encoder Feedback

The encoder feedback inputs are located on the top of RJ1. The encoder signal for each axis is directly above the control signal. See the diagram below.

Figure 47 Encoder Feedback RJ45 Jacks

The Apollo III uses a 5V encoder signal. See the pinout below.










RJ45 Pins










White & Orange


White & Green


White & Blue


White & Brown


Table 10 Encoder Feedback RJ45 Jack Pinout


7.5   Axis Mapping and Slaving a Motor

To map motors to axes or to configure a motor as a slave, follow the steps outlined below.

  1. Click Configure->Control on the main menu bar and select the Axis Mapping
  2. Each enabled axis must have one master motor and up to five slave motors
  3. Press [OK] and then restart the software

Figure 48 Axis Mapping Tab


7.6   Spindle

For most systems from MachMotion, the following is not needed. However, to adjust spindle the spindle voltage, use encoder feedback, or connect your devices not purchased from MachMotion, use the following section for additional information.

7.6.1 Spindle Voltage Adjustment

On the Systems tab of the HiCON plugin, the spindle voltage can be adjusted by changing the percentage (10-200%). Most systems will not require this value to be changed. However, if the voltage is not close enough, the percentage adjustment can be calculated with the following formula:

Analog Spindle Scale % = Commanded Voltage/Actual Voltage*100

7.6.2  RPM Feedback

If the spindle has encoder feedback, set up the Threading section of the HiCON Plugin. Set the RPM Sync Source to Encoder, the RPM Sync Index to 6, and the RPM Counts/Rev to the number of encoder pulses per revolution.

Figure 49 Spindle Feedback Settings

7.6.3  Turning on the Spindle

In addition to the screen controls the spindle can also be controlled using M-codes. Use the table below as a reference.









 Table 11 Spindle M-Codes

8  Appendices

8.1    Default Factory Settings

These are default settings but are not required for the system to function correctly.


Mapping Enabled


Input Name

Active Low

Input #0


[P11] Input0


Motor 0 Home


[P11] Input1

Motor 1 Home


[P11] Input2

Motor 2 Home


[P11] Input3

Motor 0 ++


[P11] Input1

Motor 1 ++


[P11] Input2

Motor 2 ++


[P11] Input3

Motor 0 – – 


[P11] Input1

Motor 1 – – 


[P11] Input2

Motor 2 – – 


[P11] Input3



[P14] Input5

Table 12 – Default Inputs Signals


Mapping Enabled


Input Name

Active Low

Output #0


[P11] Output2


Output #1


[P11] Output3


Output #2


[P11] Output4


Output #3


[P11] Output5


Output #4


[P11] Output6


Output #5


[P11] Output7


Spindle FWD


[P14] Output6


Spindle REV


[P14] Output7


Coolant On


[P11] Output0


Mist On


[P11] Output1


Table 13 – Default Outputs

 8.2 Enable Circuit

The Apollo III has a hardware enable and a drive enable circuit. However, before they will work, the emergency stop circuit must be set up. Use the table below as a quick reference for the different signals.

Mach4 Name

Signal Name




Input / Output

Hardware Enable






Drive Enable










Low (Green Check)


 8.3    Apollo III Drawing

There is a PDF of the following drawing attached to this document (online) so you can print and use as a template if needed.


8.4   Apollo III Case Mount Drawing

There is a PDF of the following drawing attached to this document (online) so you can print and use as a template if needed.


Warranty Information

MachMotion warranty policy is subject to change. Updated information is available at our website:


The MachMotion Team
14518 County Road 7240, Newburg, MO 65550
(573) 368-7399 • Fax (573) 341-2672


Back to top