The motionPro 6600 motion controller is powered by the high power Toshiba TB6600 bipolar stepper drivers capable of putting out an impressive 5A of current per phase at upto 40V of input voltage. This controller can be used in a multitude of applications such as milling machines, laser engravers, robotics, pick-n-place machines etc. However, this one is particularly usefuly for beefed up heavy builds that need that extra power drive.
The motionPro 6600 motion controller is a four-axes motion system for stepper motor-driven machines and comes with integrated, high-powered motor drivers. The hardware is designed to be software agnostic and will work with any logic that puts out TTL-level step and direction signals.
The motionPro 6600 comes integrated with the latest version of grbl firmware, but it can also be controlled using any external software such as the popular Mach 3, LinuxCNC, or even custom softwares for bespoke applications. The controller eliminates the need for any external drivers and comes equipped with four high-powered, independently configurable Toshiba stepper motor drivers.
Active cooling for the heatsink through a fan maybe needed depending on how hard you plan to drive your drivers. You can use standard 120mm computer fans for this purpose and these can be powered using the onboard 12V power outputs.
No specialised tools are need to get started with the controller. You will need:
A flat head screwdriver
Some wire cutters
A small nose plier
A soldering iron (optional)
The motionPro 6600 CNC controller uses a USB to UART bridge from Silicon Labs to connect to your computer. Before you connect the controller to your PC you will need to download the virtual com port (VCP) drivers. Once the drivers are installed your PC should auto-detect the hardware and create a numbered virtual serial port. This port can be used to connect the frontend GUI to your machine.
In Windows, this should be visible under Device Manager and in OSX you should be able to see this by typing ‘lsusb’ in the Terminal window.
The motionPro 6600 can be powered using a 15-36V power supply capable of delivering at least 15A. Two types of connectors are available – A screw type terminal and a JST VH 3.96mm pitch header. Both of them are located on the far left of the board.
Driver current limiting
All stepper drivers need to have current limiting set to prevent excessive current draw that can damage the motors and the drivers. By default, the current limit is set to 2A per phase.
150 milliohm current sense resistors are used. The board has separate 1-pin headers next to presets on the board marked as Vref. Connect a multimeter between this header and GND and turn the preset to change the reference voltage. A chart on the board shows the Vref voltages for currents in increments of 500mA.
Driver torque and resolution settings
Each axes is independently configurable for current limits, stepper resolution and torque settings.
A 3-pin header controls the available torque that the drivers can supply. Setting it to AUTO will work in most situations. This setting looks at the stream of step pulses and adjusts torque accordingly. For a steady stream of pulses, the torque is consistently held high. The other setting is 100% torque. This setting enables the driver to supply 100% torque all the time.
The stepper resolution is set using a 3 way micro slide switch. A chart showing the micro-step value and the corresponding switch value is shown on the board. The driver used here supports upto 16 micro steps.
Logic control inputs
Three different control inputs can be used to control the drivers.
The USB connection controls the drivers using the native grbl firmware. Simply plugin in your cable to the computer, install the drivers and use any grbl-compatible GUI.
Parallel port and 14-pin IDC header
A complete set of STEP, DIR and LIMIT control signals for each axis is broken out on the board in the form of a 14-pin header and a parallel/printer port. All inputs are opto-isolated. To select the external control input, simply slide the input selector switch to the position marked as DB25.
Parallel port pin map
The parallel port pins are mapped as shown below. A pin map is also available on the underside of the board.
1 – ENABLE
2 – X STEP
3 – X DIR
4 – Y STEP
5 – Y DIR
6 – Z STEP
7 – Z DIR
8 – A STEP
9 – A DIR
10 – X LIMIT
11 – Y LIMIT
12 – Z LIMIT
13 – PROBE IN
14 – EXPANSION HEADER
15 – ESTOP IN
16 – EXPANSION HEADER
17 – EXPANSION HEADER
18 TO 25 GND/COM
Parallel port expansion
The unused parallel port pins are expanded into a single header on the left of the port. These also include the A step and A dir pins which can be used to control an external driver (except when the AUX axis driver is being used as the 4th axis).
Jog control input
The 14-pin IDC header is also used for the bundled jog controller. This controller allows the user to jog the machine without any control input. To use the jog controller, simply plugin in the jogger using the cable provided.
Please note that while using the 14-pin header as a control input you will need to short the pins titled IDC EN on the board. These pins are located at the very top next to the parallel port.
At any given time, any one of the inputs is active.
Using the onboard grbl firmware
The motionPro 6600 ships with the following default settings
- The default current limit for each stepper motor is configured at 2A.
- Limit switch mode is set to active HIGH i.e. NC switches can be connected in this mode.
- Stepper resolution is set at 1/16 steps for all drivers
- Clone axis is set to clone the Y-axis
- All default values set by grbl are left untouched (except $4 as described below)
Using the controller with the onboard grbl firmware is quite simple.
- Switch the selector switch below the main expansion header in the middle of the board to ‘Select grbl’. This essentially ignores any input through the DB25/parallel port.
- Set the current limit for the drivers.
- Set the stepper resolution and make sure the micro step value selected is the same reflected in your grbl steps/mm settings ($100, $101 and $102).
- Set the torque adjustment jumpers. For most cases, you’d want to leave this on AUTO.
- Make sure neither of the ends top indicators or the emergency stop indicator is ON. If either is lighted it means that either the machine has tripped any of your limit switches or is a weird state where the emergency stop was activated.
- Now plug in the USB cable and connect to your suitable choice of grbl control software and test each of the axis. If they do not move in the direction you think is correct, then power off the board and reverse the connectors on the board. You can also do this by settings the axes direction mask in grbl. Refer the grbl wiki for more information on this.
The expansion header
Standard outputs from the grbl firmware have also been made available in the form an expansion header. This header also includes the Spindle PWM and Spindle Direction outputs. These are typically used to control the spindle speed and direction on a mill. However, they can also be used to control a laser driver for laser engravers and cutters.
Before connecting the motors you’ll need to identify which wires represent the coils. This guide explains in detail how to identify connections for a 4 and 6-wire stepper motor.
This controller comes with two 4-pin connectors for connecting the motors. The smaller connector is a standard 0.1 inch pitch connector for connecting smaller NEMA 17 motors. The larger header is for connecting beefier NEMA 23 and 34 motors.
Configure the AUX axis
The AUX axis is a custom configurable axis that can be used for a variety of purposes. Its function can be selected using a selector switch.
As a 4th axis
Simply slide the switch to the A axis position to use the AUX axis as a 4th axis. This feature is available only through the parallel port input.
To clone the X or Y axis
The AUX axis can also act as a duplicate driver for the X or Y axes. This is particularly useful for machines that use two motors for these axes.
Note that all current, torque and stepper resolutions are independently configurable for the AUX axis.
Endstop switch configuration
A host of limit switch options are available.
Limit switches are either normally open (NO) or normally closed (NC). When normally open switches are used, set the limit switch mode to ACTIVE LOW. With NC switches set the limit switch mode to ACTIVE HIGH.
On the board, there is a 2×4 header with numbers around the pins. Pins 1 and 3 and 2 and 4 are shorted. Also, pins 2 and 4 are common pins. Connect your limit switch common terminals here.
For configuring limit switches with grbl refer this post.
Various grbl maintenance operations
To change the default grbl settings connect to your controller board using the USB cable and open the serial monitor. Once connected you should see a message such as this:
Grbl v0.Xx [‘$’ for help]
This confirms that you are able to access all control settings for grbl. A full list of settings and their description is available here. To view the settings type $$ and grbl should respond with the settings that are pre-configured. To change any of the settings type $ followed by the associated number and the setting value. The grbl wiki here describes in detail the settings, its values and how to change them.
Typical values that you would need to change are the steps/mm, max travel distance, the acceleration rates and homing.
Updating the grbl firmware
This controller comes pre-installed with grbl 1.1f. Whenever a new release comes in you can update the firmware yourself using the Arduino IDE. Download the grbl zip or clone the git repository into a new folder. You should find a new folder called grbl inside this main folder (usually named grbl-master). Copy the grbl folder to the Arduino libraries folder. This is usually under your ‘Documents/Arduino’ folder.
Restart the IDE and you should now see the grbl item under File > Examples menu. Please make a note of your existing settings, mask values etc. This is important!
Clear the EEPROM and upload the new firmware
Before you update the firmware, you’ll need to clear all existing settings and values. From the Arduino IDE menu, open the eeprom_clear program (File > Examples > EEPROM). Now upload this program to the controller as you would any other program.
Now open the grblUpload sketch and simply upload the sketch to get the updated firmware.
The other way is to upload a pre-compiled HEX file (also available on the grbl page) using a HEX uploader and an AVR programmer (there are plenty of cheaper clones of these programmers).
If the above method does not work, use the 10-pin ISP header next to the AVR processor to program the board. You will need one an AVR programmer such as this or this. Please install any 3rd party drivers that would be needed by your programmer before attempting this. Make sure you line up the red wire from the programmer with pin 1 of the header (marked on the board).
This controller requires a heatsink for the drivers. This is mounted on the underside of the board. The driver chips also dissipate heat through the PCB (though not very efficiently).
Working with LinuxCNC is simple to setup and easy to use with the motionPro 6600.
Here is a handy checklist:
- Slide the selector switch below the breakout header in the middle of the board to ‘Select DB25’.
- Hookup your end stop switches to the appropriate inputs. Read this section on how to do this.
- Make sure your ESTOP and other endstop switches are not triggered.
The direction inverts for X, Y and Z are specific to my machine and yours may not need them. The ESTOP input has to be inverted though.
Here is what the Stepconf configuration screen looks like