PMDX-SmartBOB-USB
Mach4 Plug-in Release Notes
Version 0.49.237
6 Jan 2017


Table of Contents

  1. Support and Updates
  2. Latest Plug-in Version Release Notes
  3. M6 Tool Change Macro Notes
  4. Screen Set Notes
  5. Issue with Input Signals and Mach4 Startup
  6. Encoder/MPG Configuration
  7. Step Pulse Frequency Spindle Speed Control
  8. Spindle RPM Calculation and Configuration
  9. Probing Features and Restrictions
  10. Threading Information and Restrictions
  11. Real-Time Signal Display
  12. Homing Features and Restrictions
  13. PMDX-126 Expanded Inputs
  14. Sample Mach4 Profiles (Optional)
  15. Previous Plug-In Versions

(1) Support and Updates

Support for the PMDX-SmartBOB line of products is available on our support forums here: http://www.pmdx.com/pmdx-forums/

Plug-In Updates: We announce new versions of both Mach4 and the SmartBOB Mach4 Plug-In software on our forums. You can subscribe to receive an email whenever we post an annoucement so that you always have the latest features and bug fixes. We also post plug-in releases on the SmartBOB-USB Mach4 Plug-in page.

Documentation Updates: We also announce new versions of the PMDX-SmartBOB Quick Start Guide and the upcoming User's Manual on our forums.

(2) Latest Plug-In Version Release Notes

(2.1) M6 Tool Change Macro Notes:

Please see this section regarding the M6 macro file shipped with older versions of the PMDX-SmartBOB Plug-In.

(2.2) Screen Set Note:

Please see this section regarding using the older "wxMach" based screen sets vs. the newer "wx4" based screens.

(2.3) New features since Version 0.48.235:

(2.4) Bug Fixes Since Version 0.48.235:

(2.5) Known Issues:

**WARNING**

If your profile contains macros for M3, M4 or M5 like the ones installed by the Mach4Hobby installer in the "Mach4Mill" profile, you MUST delete these files in order for the PWM spindle speed control to function. The macros as provided with the "Mach4Mill" profile DO NOT WORK, and they are not needed for the PMDX-SmartBOB-USB to function. See the instructions below on how to delete these files.

If you used the Mach4 Loader's "Copy Profile" button to copy the "Mach4Mill" profile to a new profile, that new profile will contain these macro files. If you copied the "PMDX-Sample" profile to a new profile, that new profile will not contain these macro files (see note below). If instead of copying an existing profile, you clicked on the "Create Profile" button to create a new profile, that new profile should not contain these macro files.

NOTE that if you installed the PMDX sample profile from plug-in version 0.13.63 (Nov 2014) or earlier, that profile may contain these macro files. You will need to manually delete them (see below for instructions). EVEN IF YOU TOLD THIS LATEST INSTALLER TO INSTALL THE SAMPLE PROFILE! The installer does NOT overwrite an existing copy of the sample profile.

If you have created custom versions of the M3, M4 or M5 macros, or have Lua code that affects that functionality, you will need to test them with the PMDX-SmartBOB-USB plug-in to see if the plug-in still works with your macros.

To delete the M3/M4/M5 Macro files: Presuming that you intalled Mach4 in the default "C:\Mach4Hobby" directory, these macros files are stored in the "C:\Mach4Hobby\Profiles\YourProfileName\Macros" directory. If you installed Mach4 into a different directory (for example, "C:\MyMach4"), the substitute that directory name for the "Mach4Hobby" directory in the directory path mentioned above (it now becomes "C:\MyMach4\Profiles\YourProfileName\Macros"). You should see two files for each M-code. For example, "M3.mcc" and "M3.mcs". You must remove both of these files for each M-code, either by deleting them or by moving them to another directory.


(3) M6 Tool Change Macro Notes

The M6 macros provided in our sample profiles in PMDX SmartBOB plug-in versions 0.43.213 and earlier DO NOT WORK due to a file name corruption. Plug-in release 0.44.214 and later releases (including this release) fixes this file name problem if you are installing the sample profiles for the first time. It WILL NOT fix any existing sample profiles, nor will it fix any profiles that you have copied from the sample profiles.

The issue has to do with upper case vs. lower case "M" the "M6" part of the file name. In order for the macros to be called by Mach4, the case of the file name must match the case of the function name. If the file name is "m6.mcs" then the function name inside the file must be "m6()". Likewise, if the file name is "M6.mcs" then the function name must be "M6()". The sample M6 macros that we provide use upper case in the function name, but the file name got changed to lower case.

This problem does not affect the upper or lower case used to call the "M6" macro from your GCode files or MDI commands. You may still use either upper or lower case (i.e. "M6" or "m6").

There are two ways to fix this in your existing profiles:

  1. EXIT MACH4! In the "YourProfileName/Macros" directory, rename the "m6.mcs" file to "M6.mcs" (i.e. using upper case "M" as the first character of the file name). Then you must also delete the "m6.mcc" file to force Mach4 to re-compile the M6 macro.
  2. Or... EXIT MACH4! Edit the "m6.mcs" file in the "YourProfileName/Macros" directory and change the function name from "M6()" to "m6()" (i.e. now using a lower case "m"). You will need to do this in two places. The first is at the top of the file where the line reads "function M6()". The second place is near the end of the file where there are 3 lines that tell the debugger to call this function.

(4) Screen Set Notes

If you are using the older "wxMach" screen set and have NOT made any modifications to it, we strongly urge you to update your profiles to use the newer "wx4" screen set. The "wxMach" screen set is no longer under active development, and does not include any of the probing support that is in the newer "wx4" screen set. Furthermore, the "wx4" screen set is being actively improved and enhanced.

How do I know which screen set I an using? The "wx4" screen set has "Probing" and "Offsets" tabs along the top of the Mach4 window, next to the "Program Run", "Tool Path" and "Machine Diagnostics" tabs. It also shows you the screen set name in the lower right corner of the Mach4 window, at least in the wx4 screen set as installed with Mach4 build 2914. This might change in future releases or if someone has edited the screen set. The "wxMach" does not have the "Probing" or "Offsets" tabs, and does not show the screen set name.

Changing the Screen Set: To change the screen set:

  1. start Mach4 and load your profile
  2. Go to the "View" menu and select "Load Screen"
  3. When the "Select Screen File" dialog appears, change into the "Screens" folder if it is not already there.
  4. Select/highlight the "wx4.set" file and click on "Open"

(5) Issue with Input Signals and Mach4 Startup

Symptoms of Mach4 Startup Input Signal Problem

Sometimes, when you start Mach4 with a PMDX-SmartBOB connected and enabled, the input signals from the SmartBOB will not be properly handled by Mach4. If you display the "Machine Diagnostics" tab in Mach4, some of the input signals that come from the SmartBOB will show as active when they are in fact NOT active. If any of these signals are assigned to limit switches then Mach4 will not allow motion towards those limits until the inputs are properly synchronized. Toggling that input signal will cause Mach4 to then display the proper input signal state.

NOTE: This only happens on Mach4 startup. Once Mach4 and the SmartBOB plug-in and device are running, the input signals function as they should.

This happens only on some computers, and only on input signals from the SmartBOB are defined as "Active Low". Even then, this does not always happen.

Work-Around

Our work-around for this problem was for PMDX to add a delay to our plug-in. During startup, the plug-in inserts a delay between the time Mach4 tells us it is OK to start reporting signal values and when we actually start reporting them. By default this delay is set to 250 milliseconds. This works for a variety of computers here at PMDX, but it may not work for you. If not, see the steps below to adjust the delay.

If you see the symptoms described above, then try changing the startup delay as follows:

If you still see the input sigals displaying incorrectly on startup, increase the delay some more and try again. If you reach the maximim startup delay and you still see the input signals displaying incorrectly, contact PMDX support. Meanwhile you should be able to use the "Manual" work-around described below.

Manual Work-Around

Opening and closing the "Mach Configuration" dialog will also correct this problem. Go to the Mach "Configure" menu and select "Mach". When the "Mach Configuration" appears, click on either "OK" or "CANCEL". This causes the SmartBOB plug-in and the Mach4 core to resynchronize and Mach4 will display the correct input signal states.

(6) Encoder/MPG Configuration

Section contents:
    (6.1) Encoder Overview
    (6.2) Connecting the Encoder to the PMDX-SmartBOB
    (6.3) Configuring the Encoder in Mach4
    (6.4) Displaying and Changing the Encoder Position
    (6.5) Configuring the Encoder as an MPG
    (6.6) Configuring the Encoder for Spindle RPM

(6.1) Encoder Overview

The following PMDX-SmartBOB boards support an encoder or single-line tach interface:

The encoder can be used as an MPG (Manual Pulse Generator) for jogging axes or changing parameters (such as "Feed Rate Override"). The encoder can also be used to measure the spindle RPM (see the Spindle RPM section for more information) or for spindle position for threading (see the Threading Information section for more information). Note that using an encoder to jog axes or change Mach4 parameters currently requires custom Lua code to select the axis to jog, or to update the Mach4 parameter from changes in the encoder position. Once an axis has been selected for MPG jogging, Mach4 will handle converting encoder position changes into jog motion.

Encoder and Tach inputs on the PMDX-SmartBOB can operate in one of three modes:

(6.2) Connecting the Encoder to the PMDX-SmartBOB:

To connect a quadrature encoder (with or without index):

  1. Connect the "A" and "B" phases to the "A" and "B" input terminals on the encoder connector.
  2. If the encoder has an "index" signal, connect the "index" wire to the "C" terminal on the encoder connector. While it is possible to connect the "index" wire to any input on the PMDX-410 and PMDX-422 boards, the "C" input has a faster response time. On boards with isolated inputs (the PMDX-416 and PMDX-424, for example), you must use the "C" input because the other inputs do not share the same ground as the encoder connector and all signals from the encoder must use the same ground reference.

To connect a single-line encoder (with or without index):

  1. The encoder input must be connected to the "B" input on the encoder connector.
  2. If the encoder has an "index" signal, connect it to the "C" input on the encoder connecter as described above in the quadrature encoder section.

(6.3) Configuring the Encoder in Mach4

To configure the encoder or tach for use with Mach4:

  1. Display the PMDX SmartBOB configuration dialog. In Mach4 go to the "Configure" menu and select "Plugins..." and then select the "PMDX SmartBOB-USB".
  2. Click on the "Encoder Config" tab.
  3. Select one of the six available encoder or tach modes:
    • Bi-directional (quadrature) Encoder without Index
    • Bi-directional (quadrature) Encoder with Index
    • Bi-directional (quadrature) Encoder with Synthetic Index
    • Uni-directional (tach mode) Encoder without Index
    • Uni-directional (tach mode) Encoder with Index
    • Uni-directional (tach mode) Encoder with Synthetic Index
  4. Fill in the "Encoder Counts per Revolution" field with the number of encoder lines per revolution. Note that this is not "quadrature" lines (which is 4x the number of lines). This field is only available when using encoder modes with an index pulse or synthetic index.
  5. For bi-directional (quadrature) encoder modes, there is a checkbox that reverses the direction of the encoder. Check this if the encoder values decrement when you think they should increment. This item is not available for uni-directional (tach) encoders.
  6. For uni-directional (tach) encoder modes, there is a selection for "Uni-Directional Pulse Polarity". Select "Active High" or "Active Low" as appropriate.
    NOTE: This setting is independent of the "Active Low" setting for the INDEX input signal in the Mach4 "Input Signals" configuration tab.
  7. Click on the "OK" button to save the changes and close the plug-in configuration dialog.
  8. If your encoder has an index signal that you have connected to the SmartBOB, you must also configure Mach4 for that input. See the Configuring an Index Input section for information on how to do this.

The encoder is now configured.

(6.4) Displaying and Changing the Encoder Position

If the encoder is enabled, the SmartBOB's real-time display will show the current encoder position. To display the real-time status window, go to the "Diagnostics" menu and select "PMDX-SmartBOB-USB", then click on the "Show Real-Time Input/Output Status"button.

If you wish to create a DRO on your screen set to display the encoder position, use the following steps.

NOTE: What follows is not a detailed step-by-step process for editing the screen set. It just outlines the major steps needed. Please refer to the "Scripting Manual" in the Mach4Hobby\Docs directory and the MachSupport forums for more help with editing the screen sets.

  1. Enter the screen editor by going to the Mach4 "Operator" menu and selecting the "Edit Screen".
  2. Add a DRO somewhere on your screen.
  3. Click once on the DRO to display its properties in the lower left corner of the Mach4 window.
  4. Set the "Register" parameter to "SmartBOBUSB/EncoderDRO". DO NOT SET TO "SmartBOBUSB/Encoder&MPG"! Doing so can cause spurious jog motion when you edit the DRO value to change the encoder position. The plug-in will also ignore external changes made to the "SmartBOBUSB/Encoder&MPG" register and will overwrite any changes with the actual value from the SmartBOB device the next time the encoder is rotated.
  5. Set the "Format" field to "%d" (without the quotes).
  6. Set the "Editor" field to "In Place" if you want to be able to change the encoder position by editing the DRO value (see below). If all you want to do is display the encoder position, then set the "Editor" field to "Read Only".
  7. Close the screen editor by again going to the Mach4 "Operator" menu and selecting the "Edit Screen". When asked if you want to save the changes, answer "Yes"

Changing the Encoder Position: If you allowed the DRO to be edited, the plug-in will allow you to change the current encoder position only in the following circumstances:

If the encoder mode is one with a physical index pulse, the plug-in will not allow you to change the encoder position. Instead it relies on the index pulse to set the zero location. If the encoder is mapped to an MPG and Mach4 is enabled the plug-in will not allow changing the encoder position because that could cause spurious (and quite large) jog motions from the MPG system.

(6.5) Configuring the Encoder as an MPG

WARNING: When using an encoder for jogging an axis or changing a Mach4 parameter, DO NOT use an encoder mode with index. If you use an encoder mode with an index input, you will get unexpected behavior (very large jog motion) when the encoder position rolls over from "max count" to zero at the index pulse.

To configure the encoder for use as an MPG:

  1. Enable the encoder as described in Encoder Configuration above.
  2. Go to the Mach4 "Configuration" menu and select "Mach...", and then click on the "MPG" tab.
  3. Use the row marked "Mpg #0" unless you have other encoders already configured using that row.
  4. Click on the red "X" in the "Enabled" column to change it to a green check mark.
  5. Click in the box in the "Encoder" column, then click on the down arrow to display a list of available encoders. Select "SmartBOBUSB/Encoder&MPG".
  6. Leave the "Counts per Detent" set to "1". The current plug-in version ignores this field.
  7. Enter a non-zero value in both the "Accel%" and "Velocity%" columns. These numbers represent the acceleration and velocity used for jogging motion from this MPG. They are a percentage of the velocity and acceleration values entered in the "Motors" tab. For example, if you enter "50" in both columns, MPG jog motion will use 50% of the axis' maximum velocity and 50% of the axis' acceleration.
    NOTE: If you leave these set to zero, the PMDX-SmartBOB plug-in will not allow you to enable Mach4. These must be set to non-zero values.
  8. The "Reversed" column should only be checked if rotating the MPG causes the axis to jog in the opposite direction from what you expect. Normally this is not needed, and you should use the "Quadrature Encoder Reversed" setting in our plug-in encoder configuration tab.
  9. Click on the "OK" button to save the changes.

The encoder is now configured to act as an MPG. You will need either custom buttons on you screen set, or custom Lua code in order to select which axis the MPG will jog (it defaults to the "X" axis).

WARNING: In Mach4 builds up through 2914 (at least), the default screen sets (both the "wx4" and "wxMach" screens) do not provide a way to disable MPG jogging. It is enabled by default. When an encoder is configured as an MPG, if Mach4 is enabled and you turn the encoder, Mach4 will jog the current axis. The only way to be able to turn the encoder/MPG without jogging an axis is to disable Mach4, or use the "Jog MPG" output signal as described below.

Using the "Jog MPG" Output: In the Mach configuration dialog on the "Output Signals" tab is a signal names "Jog MPG". If that signal is enabled and in-active (i.e. set to zero), then Mach4 will ignore the MPG and not jog the current axis. If the "Jog MPG" output is active (i.e. set to one), then Mach4 will attempt to jog the current axis if the MPG changes and Mach4 is enabled. The "Jog MPG" output is special in that any Lua script or screen control may control its output value using mc.mcIoSetState(), the Mach4 core does not control it.

(6.6) Configuring the Encoder for Spindle RPM

WARNING: If the encoder will be mounted on the spindle, DO NOT also configure the encoder as an MPG! Doing so will cause Mach4 to attempt to jog the current axis whenever the spindle is turning.

To configure the encoder for spindle RPM calculations, follow the steps in the How to Configure an Encoder for Spindle RPM in the Spindle section.

(7) Step Pulse Frequency Spindle Speed Control

In addition to PWM (pulse width modulation) spindle speed control, the PMDX-SmartBOB also supports "step pulse frequency" mode. In this mode the PMDX-SmartBOB outputs a series of step pulses whose frequency is related to the desired spindle speed. The pulse frequency is calculated by:

Pulse Freq (Hz) = (CommandedRPM / MaxRPM) * MaxPulseFrequency

The "MaxRPM" value is the value entered in the Mach4 spindle configuration tab as described below.

The step pulses are always 50% duty cycle, meaning that the pulse width is one-half of the pulse period. In other words:

pulse width (in seconds) = 1 / [ 2 * (pulse frequency in Hz) ]

To configure an output pin for step pulse frequency mode:

  1. Go to the plug-in configuration dialog and click on the "Spindle Config" tab. To bring up the plug-in configuration dialog go to the Mach4 "Configuration" menu and select "Plugins...", then select "PMDX-SmartBOB-USB".
  2. In the top section labeled "Spindle Speed Control" click on the "Pulse Frequency" radio button.
  3. Select the output pin that you wish to use for the step pulse output.
  4. In the "Max Pulse Frequency" field enter the pulse frequency that corresponds to your spindle controller's maximum RPM. The plug-in will accept values between 100 Hz and 25,000 Hz (25 KHz). Consult the documentation for your spindle controller to find out the frequency value to enter here.
  5. There is also a "PWM/Pulse Freq Output Polarity" field. Normally you can leave this (or set this) to "Active High". Since the PMDX-SmartBOB outputs a 50% duty cycle waveform, the polarity does not matter when we are outputting pulses (i.e. when the spindle is moving). The only time that the polarity MIGHT matter is when the spindle is idle. If "Active High" does not work with your spindle controller, try the "Active Low" setting.
  6. Click on the "OK" button to save your changes.
  7. Now configure your spindle speed range. Go to the Mach4 "Configuration" menu and select "Mach...". Then click on the "Spindle" tab.
  8. In the first row (labeled "0"), enter the minimum RPM (usually zero) and maximum RPM of the actual spindle. This is NOT the same as the maximum step pulse frequency that you entered above! Rather, this is the spindle RPM that will (or should) result from the PMDX-SmartBOB outputting that maximum step pulse frequency.
  9. If you wish to fill in the "Accel Time" and "Decel Time" fields, enter the maximum time (in seconds) that it takes your spindle controller to go from stopped to max RPM, and from max RPM to stopped. Mach4 will then add a delay after each M3, M4 or M5 command. The delay (in seconds) is calculated as:
    Acceleration delay: [(CommandedRPM - CurrentRPM) / (MaxRPM)] * AccelTime
    Deceleration delay: [(CurrentRPM - CommandedRPM) / (MaxRPM)] * DecelTime
  10. The PMDX-SmartBOB plug-in currently ignores the "Feedback Ratio" and "Reversed" fields.
  11. The PMDX-SmartBOB plug-also in ignores the "Max Spindle Motor RPM" setting near the bottom of this dialog.
  12. We usually recommend leaving the "Wait onspindle to stabilize to" box un-checked.
  13. Click on the "OK" button to save these changes.

You should now be ready to run your spindle.

WARNING: Step Pulse Frequency control is NOT the same as using a Mach4 "Out of Band" motor for spindle speed control. Out of Band motors are controlled by the Mach4 motion planner and are not currently supported by the PMDX-SmartBOB plug-in. Step pulse frequency speed control is controlled entirely by the PMDX-SmartBOB plug-in in the same manner as PWM speed control.

(8) Spindle RPM Calculation and Configuration

Section contents:

(8.1) Spindle RPM Overview
(8.2) Limitations
(8.3) Configuring an Index Input
(8.4) Configuring a 1 Pulse per Revolution Spindle Sensor
(8.5) Configuring an Encoder for Spindle RPM
(8.6) Estimating the Spindle RPM from PWM Duty Cycle or Pulse Frequency

(8.1) Spindle RPM Overview

The PMDX-SmartBOB supports four methods of measuring or estimating the spindle RPM and reporting that to Mach4:

(8.2) Limitations

(8.3) Configuring an Index Input

To configure Mach4 to use a SmartBOB input as an index pulse input (i.e. a 1 pulse per revolution input):

  1. Connect your sensor (usually an optical or proximity sensor) to one of the SmartBOB's input terminals. You may use any of the SmartBOB inputs. If you are using a PMDX-410 (revision B or higher), PMDX-422 (revision B or higher), PMDX-416 or PMDX-424, we recomment using the "C" input on the encoder connector as that input has a faster response than the regular input terminals.
  2. In Mach4, go to the "Configure" menu and select "Mach...".
  3. Click on the "Input Signals" tab and scroll down almost to the bottom to find the "Index" signal.
  4. On the "Index" line, click on the red "X" in the "Mapping Enabled" column to change it to a green check mark to enable that input. In the "Device" column select the "SmartBOBUSB". Then in the "Input Name" column select the SmartBOB input pin that you have the sensor connected to. Depending on your sensor configuration you may also have to change the "Active Low" setting.
  5. Click on "OK" to apply the new configuration.
  6. To test your spindle sensor, click on the Mach4 "Machine Diagnostics" tab (in older screen sets this was also called "Diagnostics"). Then slowly rotate the spindle by hand. You should see the "Index" indicator in the upper left section of the screen light up when the sensor triggers. If the indicator is "on" most of the time and only turns off when the sensor triggers, then change the "Active Low" setting on the "Input Signals" tab as mentioned above.

(8.4) Configuring a 1 Pulse Per Revolution Spindle Sensor

To configure Mach4 to use a SmartBOB input as a 1 pulse per revolution spindle speed sensor input:

  1. Configure the Index input as shows in How to Configure an Index Input (above)
  2. Bring up the SmartBOB plug-in configuration dialog by going to the "Configure" menu, selecting "Plug-Ins..." and then clicking on the "PMDX-SmartBOB-USB" line.
  3. Click on the "Spindle Config" tab.
  4. In the "Spindle RPM Measurement and Reporting" section, select the "Measure RPM from INDEX" item.
  5. Click on "OK" to apply the new configuration.

You should now be able to see the measured spindle RPM if your screen set has a DRO that displays the "Spindle True RPM" (this is usually in the "Spindle" section in the lower right corner of the Mach4 screen).

(8.5) Configuring an Encoder for Spindle RPM

To configure the plug-in and Mach4 to use the encoder for spindle RPM:

  1. Connect your encoder as described in the Connecting the Encoder section.
  2. Configure Mach4 for your encoder as described in the Configuring the Encoder for Mach4 section.
  3. If your encoder has an index signal, configure the "Index" input as described above in How to Configure a 1 Pulse Per Revolution Spindle Sensor, except do not set the spindle RPM mode to "Measure RPM from the INDEX input".
  4. Next, set the encoder as the source for the spindle RPM measurement. Display the PMDX-SmartBOB plug-in configuration dialog. In Mach4 go to the "Configure" menu and select "Plugins..." and then select the "PMDX SmartBOB-USB".
  5. Click on the "Spindle Config" tab.
  6. Down in the "Spindle RPM Measurement and Reporting" section, select the "Measure the RPM from the Encoder" option.
  7. Click on the "OK" button to save the changes.

(8.6) Estimating the Spindle RPM from PWM Duty Cycle or Pulse Frequency

If you don't have a sensor or encoder on your spindle, and you are controlling the spindle speed with a PWM or Pulse Frequency signal from the SmartBOB, then you can have the SmartBOB plug-in calculate an estimated RPM based on the PWM duty cycle or pulse frequency. This is the estimated RPM because the spindle speed interface (for example, the PMDX-407) and the spindle control electronics (VFD, etc.) may not have an exactly linear response to the PWM signal.

To enable using the PWM duty cycle or Pulse Frequency for spindle RPM:

  1. Display the PMDX-SmartBOB p;ug-in configuration dialog. Go to the "Configuration" menu and select "Plugins...", then click on the "PMDX SmartBOB-USB" item.
  2. When the SmartBOB plug-in configuration dialog is displayed, click on the "Spindle Config" tab.
  3. In the "Spindle Speed Control" section, select either "PWM" or "Pulse Frequency" and fill in the parameters below.
  4. In the "Spindle RPM Measurement and Reporting" section, select the "Estimate RPM from PWM/PulseFreq" option. Note that this option will only be available if the "Spindle Speed Control" is configured for PWM or Pulse Frequency.
  5. Click on "OK" to activate the new setting.

You should now be able to see the estimated spindle RPM in the "Spindle" section in the lower right corner of the Mach4 screen.

(9) Probing Features and Restrictions

The PMDX-SmartBOB's probing implementation makes the following assumptions and restrictions:

WARNING: There is a bug in Mach4 builds up through 2568 that can cause the Mach4 core to hang if the limit switch input is active when a G31 command is started. This was partially fixed in build 2568, but running the G31 command from the MDI window still exhibits this problem. G31 commands inside of a GCode file work properly in build 2568.

(10) Threading Information and Restrictions

Section contents:
    (10.1) Threading Overview
    (10.2) Threading Restrictions
    (10.3) Configuring for Threading

(10.1) Threading Overview

The PMDX-SmartBOB product line supports threading via the G32 G-Code command. In order to use threading your spindle must have either a 1 pulse-per-revolution sensor, a quadrature encoder (with or without index), or a tach signal (a single signal with multiple pulses per revolution). The SmartBOB uses the actual measured RPM relative to the commanded RPM to adjust the commanded speed of the other motors so that the resulting motion relative to the spindle follows the ideal path.

When using a 1 pulse-per-revolution index pulse, the SmartBOB measures the RPM once per revolution and corrects the commanded threading motion accordingly.

When using a quadrature encoder or tach, the SmartBOB measures the RPM at approximately every 1 degree of rotation, depending on the encoder resolution, and corrects the threading motion accordingly. For example, if the encoder has 100 lines per revolution, the SmartBOB will measure the RPM at every line, which is (1/100)*360 = 3.6 degrees. If the encoder has 1000 lines per revolution, the SmartBOB will measure the RPM every 3 lines, which is (3/1000)*260 = 1.08 degrees.

(10.2) Threading Restrictions

The PMDX-SmartBOB's threading implementation makes the following assumptions and restrictions:

(10.3) Threading Configuration

If you are using a quadrature encoder or single-wire tach (with or without a physical index pulse), see the Encoder section for information on connecting and configuring an encoder. Remember, you must select an encoder mode with an index (physical or synthetic). Also see the Configuring an Encoder for Spindle RPM section for the steps needed to configure the encoder as the source for spindle RPM measurements.

If you are using an index pulse (without an encoder or tach), see the Configuring an Index Input section for information on configuring the index input. Also see the Configuring a 1 Pulse per Revolution Spindle Sensor section for the steps needed to configure the index input as the source for spindle RPM measurements.

(11) Real-Time Signal Display

The SmartBOB plug-in allows you to show a window that displays the states of the input and output signals as they appear to the screw terminals or 26-pin ribbon header pins on the SmartBOB board. It also displays the current encoder position for devices that support encoder inputs. This can be used to help diagnose issues with signal assignments in Mach4 and also to make sure that the SmartBOB is "seeing" the signals you have connected to it.

To display the real-time status of the I/O signals, go to the Mach4 "Diagnostic" menu and select the "PMDX-SmartBOB-USB" from the drop-down list. On the diagnostics window that is displayed, click on the "Show Real-Time Input/Output Status" button. That will display another window to show the states of the input and output signals. This new window defaults to being always on top, meaning it will always be on top of any other window, including the main Mach4 display. If you don't want that behavior then un-check the "Stay on Top" check box.

The real-time status uses colors to show the state of the input and output signals:

(12) Homing Features and Restrictions

Homing Assumptions and Restrictions

The PMDX-SmartBOB-USB Plug-In and firmware are designed with some assumptions about the machine's configuration and some restrictions as to what machine configurations are supported. These assumptions and restrictions only pertain if the SmartBOB is selected as the "motion device" in Mach4.

The plug-in will generate an error message and abort the homing sequence if the configuration does not meet these restrictions. Some of these restrictions will be removed in future releases of the PMDX-SmartBOB plug-in.

The assumptions and restrictions are:

Homing Operation

The PMDX-SmartBOB-USB takes the following steps to home an axis:

Future versions of the SmartBOB plug-in will allow the user to configure all of the parameters used in the homing sequence above.

(13) PMDX-126 Expanded Inputs

The SmartBOB plug-in now supports the PMDX-126 in "Expanded Inputs" mode. When "Expanded Inputs" mode is enabled, there are an additional 4 input signals available. The additional inputs signals are named "PinE", "PinF", "PinG" and "PinH" to match the signal names on the silkscreen on the PMDX-126 circuit board. This means that the PMDX-411 has 9 input available (all through the PMDX-126), the PMDX-410 and PMDX-422 have 12 inputs available (9 through the PMDX-126 and 3 from the PMDX-410/422's J10 connector). See the following table.

Inputs Available in Expanded Inputs Mode
PMDX-411PMDX-410/422From PMDX-126
Pin10Pin10Yes
Pin11Pin11Yes
Pin12Pin12Yes
Pin13Pin13Yes
Pin15Pin15Yes
 PinANo
 PinBNo
 PinCNo
PinEPinEYes
PinFPinFYes
PinGPinGYes
PinHPinHYes

Expanded Inputs Mode Assumptions and Restrictions

The SmartBOB plug-in and the PMDX-126 board have certain requirements and restrictions in order for Expanded Inputs mode to function properly.

Expanded Inputs Mode Input Signal Sample Rates

When in "Expanded Inputs" mode, inputs Pin11, Pin12, Pin13, Pin15, Pin E, PinF, PinG and PinH are sampled at a rate determined by the charge pump frequency, which has a fixed (non-user editable) value depending on which SmartBOB device you have. PMDX-411 devices sample at 2.5 KHz (every 400 microseconds). PMDX-410 and PMDX-422 devices sample at 300 Hz (every 6.67 milliseconds). The difference in sample rates is due to the RC filters on the PMDX-410/422 input signals, which limit how fast we can sample. The PMDX-411 does not have these RC filters and thus can run at a higher sample rate.

(14) Sample Mach4 Profile (Optional)

If you selected to install and of the sample profiles during the plug-in installation, there will be a sample Mach4 profile on your system that are pre-configured to use the PMDX-SmartBOB-USB (PMDX-410/411/422). The profile is named "PMDX-Sample". The profile for the PMDX-424 is named "PMDX-424-Sample".

The PMDX-410/411/422 sample profile has the following configuration:

The PMDX-424 sample profile has the following configuration:

There are two ways to run these profiles:

!! IMPORTANT !! We strongly suggest that you NOT make changes to the sample profile, since it may be overwritten in future plug-in updates. Instead, make a copy of the profile, like this:

If you want to change the PMDX-Sample shortcut on your desktop to run your new profile name:

 


(15) Previous Plug-In Versions


Version 0.48.235

(2.1) M6 Tool Change Macro Notes:

Please see this section regarding the M6 macro file shipped with older versions of the PMDX-SmartBOB Plug-In.

(2.2) Screen Set Note:

Please see this section regarding using the older "wxMach" based screen sets vs. the newer "wx4" based screens.

(2.3) New features since Version 0.46.221:

(2.4) Bug Fixes Since Version 0.46.221:

(2.5) Known Issues:

Version 0.46.221

M6 Tool Change Macro Notes:

Please see this section regarding the M6 macro file shipped with older versions of the PMDX-SmartBOB Plug-In.

Screen Set Note:

Please see this section regarding using the older "wxMach" based screen sets vs. the newer "wx4" based screens.

New features since Version 0.45.217:

Bug Fixes Since Version 0.47.217:

Known Issues:

Version 0.45.217 (9 Aug 2016)

M6 Tool Change Macro Notes:

Please see this section regarding the M6 macro file shipped with older versions of the PMDX-SmartBOB Plug-In.

Screen Set Note:

Please see this section regarding using the older "wxMach" based screen sets vs. the newer "wx4" based screens.

New features since Version 0.44.214:

Bug Fixes Since Version 0.44.214:

Known Issues:

Version 0.44.214 (12 Jul 2016)

M6 Tool Change Macro Notes:

Please see this section regarding the M6 macro file shipped with older versions of the PMDX-SmartBOB Plug-In.

Screen Set Note:

Please see this section regarding using the older "wxMach" based screen sets vs. the newer "wx4" based screens.

New features since Version 0.43.213:

Bug Fixes Since Version 0.43.213:

Known Issues:

Version 0.43.213 (1 Jul 2016)

Screen Set Note:

If you are using the older "wxMach" screen set and have NOT made any modifications to it, we strongly urge you to update your profiles to use the newer "wx4" screen set. The "wxMach" screen set is no longer under active development, and does not include any of the probing support that is in the newer "wx4" screen set. Furthermore, the "wx4" screen set is being actively improved and enhanced.

How do I know which screen set I an using? The "wx4" screen set has "Probing" and "Offsets" tabs along the top of the Mach4 window, next to the "Program Run", "Tool Path" and "Machine Diagnostics" tabs. It also shows you the screen set name in the lower right corner of the Mach4 window, at least in the wx4 screen set as installed with Mach4 build 2914. This might change in future releases or if someone has edited the screen set. The "wxMach" does not have the "Probing" or "Offsets" tabs, and does not show the screen set name.

Changing the Screen Set: To change the screen set:

  1. start Mach4 and load your profile
  2. Go to the "View" menu and select "Load Screen"
  3. When the "Select Screen File" dialog appears, change into the "Screens" folder if it is not already there.
  4. Select/highlight the "wx4.set" file and click on "Open"

New features since Version 0.41.205:

Bug Fixes Since Version 0.41.205:

Known Issues:

Version 0.41.205 (26 May 2016)

Screen Set Note:

If you are using the older "wxMach" screen set and have NOT made any modifications to it, we strongly urge you to update your profiles to use the newer "wx4" screen set. The "wxMach" screen set is no longer under active development, and does not include any of the probing support that is in the newer "wx4" screen set. Furthermore, the "wx4" screen set is being actively improved and enhanced.

How do I know which screen set I an using? The "wx4" screen set has "Probing" and "Offsets" tabs along the top of the Mach4 window, next to the "Program Run", "Tool Path" and "Machine Diagnostics" tabs. It also shows you the screen set name in the lower right corner of the Mach4 window, at least in the wx4 screen set as installed with Mach4 build 2914. This might change in future releases or if someone has edited the screen set. The "wxMach" does not have the "Probing" or "Offsets" tabs, and does not show the screen set name.

Changing the Screen Set: To change the screen set:

  1. start Mach4 and load your profile
  2. Go to the "View" menu and select "Load Screen"
  3. When the "Select Screen File" dialog appears, change into the "Screens" folder if it is not already there.
  4. Select/highlight the "wx4.set" file and click on "Open"

New features since Version 0.38.188:

Bug Fixes Since Version 0.38.188:

Known Issues:

Version 0.38.188 (6 Apr 2016)

New features since Version 0.36.171:

Bug Fixes Since Version 0.36.171:

Known Issues:

Version 0.36.171 (28 Jan 2016)

New features since Version 0.33.159:

Bug Fixes Since Version 0.33.159:

Known Issues:

Version 0.33.159 (6 Nov 2015)

New features since Version 0.31.147:

Bug Fixes Since Version 0.31.147:

Known Issues:

Version 0.31.147 (18 Sep 2015)

New features since Version 0.30.136:

Bug Fixes Since Version 0.30.136:

Known Issues:

Version 0.30.136 (1 Aug 2015)

New features since Version 0.29.128:

Bug Fixes Since Version 0.29.128:

Known Issues:

Version 0.29.128 (16 Jul 2015)

New features since Version 0.26.117:

Bug Fixes Since Version 0.26.117:

Known Issues:

Version 0.26.117 (29 May 2015)

New features since Version 0.25.111:

Bug Fixes Since Version 0.25.111:

Known Issues:

Version 0.25.111 (3 Apr 2015)

New features since Version 0.23.107:

Bug Fixes Since Version 0.23.107:

Known Issues:

Version 0.23.107 (3 Apr 2015)

New features since Version 0.22.106:

Bug Fixes Since Version 0.19.100:

Known Issues:

Version 0.22.106 (2 Apr 2015)

New features since Version 0.19.100:

Bug Fixes Since Version 0.19.100:

Known Issues:

Version 0.19.100 (24 Mar 2015)

New features since Version 0.18.97:

Bug Fixes Since Version 0.18.97:

Known Issues:

Version 0.18.97 (16 Mar 2015)

New features since Version 0.17.86:

Bug Fixes Since Version 0.17.86:

Known Issues:

Version 0.17.86 (11 Feb 2015):

New features since Version 0.16.82:

Bug Fixes Since Version 0.16.82:

Known Issues:



Version 0.16.82 (26 Jan 2015)

New features since Version 0.15.77:

Bug Fixes Since Version 0.15.77:

Known Issues:



Version 0.15.77 (12 Jan 2015):

New features since Version 0.14.72:

Bug Fixes Since Version 0.14.72:

Known Issues:

**WARNING**

If your profile contains macros for M3, M4 or M5 (like are installed by the Mach4Hobby installer), you MUST delete these files in order for the PWM spindle speed control to function. The macros as provided with some Mach4Hobby installations DO NOT WORK, and they are not needed for the PMDX-SmartBOB-USB to function.

NOTE that if you installed the PMDX sample profile from previous plug-in releases, that profile may contain these macro files. You will need to manually delete them. EVEN IF YOU TOLD THIS INSTALLER TO INSTALL THE SAMPLE PROFILE! The installer does NOT overwrite an existing copy of the sample profile.

These macros are in the Profiles\YourProfileName\Macros directory. You should see two files for each M-code. For example, "M3.mcc" and "M3.mcs". You must remove both of these files for each M-code, either by deleting them or by moving them to another directory.

If you have created custom versions of the M3, M4 or M5 macros, or have Lua code that affects that functionality, you will need to test them with the PMDX-SmartBOB-USB plug-in to see if the plug-in still works.



Version 0.14.72 (16 Dec 2014):

New features since Version 0.12.53:

Bug Fixes Since Version 0.12.53:

Known Issues:

**WARNING**

If your profile contains macros for M3, M4 or M5 (like are installed by the Mach4Hobby installer), you MUST delete these files in order for the PWM spindle speed control to function. The macros as provided with some Mach4Hobby installations DO NOT WORK, and they are not needed for the PMDX-SmartBOB-USB to function.

NOTE that if you installed the PMDX sample profile from previous plug-in releases, that profile may contain these macro files. You will need to manually delete them. EVEN IF YOU TOLD THIS INSTALLER TO INSTALL THE SAMPLE PROFILE! The installer does NOT overwrite an existing copy of the sample profile.

These macros are in the Profiles\YourProfileName\Macros directory. You should see two files for each M-code. For example, "M3.mcc" and "M3.mcs". You must remove both of these files for each M-code, either by deleting them or by moving them to another directory.

If you have created custom versions of the M3, M4 or M5 macros, or have Lua code that affects that functionality, you will need to test them with the PMDX-SmartBOB-USB plug-in to see if the plug-in still works.


That's All Folks!