PMDX-SmartBOB-USB
Mach4 Plug-in Release Notes
Version 0.49.237
6 Jan 2017
Table of Contents
- Support and Updates
- Latest Plug-in Version Release Notes
- M6 Tool Change Macro Notes
- Screen Set Notes
- Issue with Input Signals and Mach4 Startup
- Encoder/MPG Configuration
- Step Pulse Frequency Spindle Speed Control
- Spindle RPM Calculation and Configuration
- Probing Features and Restrictions
- Threading Information and Restrictions
- Real-Time Signal Display
- Homing Features and Restrictions
- PMDX-126 Expanded Inputs
- Sample Mach4 Profiles (Optional)
- Previous Plug-In Versions
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.
- Plug-In version: 0.49.237 (6 Jan 2017)
- Firmware version: 0.56.203
- Mach4Hobby versions: build number 2872 and higher (tested with builds 2872 through 3233)
** WILL NOT run on any build older/lower than 2872 **
(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.
- Several enhancements to the plug-in's debug log information.
- Added a work-around for an issue with the Mach4 motion planner data during FEED HOLD.
This issue appears in Mach4 builds 3206 and 3233 (but not 2914) and
caused our plug-in to abort motion when FEED HOLD was pressed.
(2.5) Known Issues:
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
**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.
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:
- 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.
- 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.
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:
- start Mach4 and load your profile
- Go to the "View" menu and select "Load Screen"
- When the "Select Screen File" dialog appears, change into
the "Screens" folder if it is not already there.
- Select/highlight the "wx4.set" file and click on "Open"
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:
- With Mach4 running but not enabled, go to the "Configure" menu and
select "Plugins"
- Click on the "Configure" button for the PMDX-SmartBOB
- In our configuration dialog, click on the "Performance Settings"
tab
- Change the "Startup Configuration Delay". Try increasing that
delay then click on "OK" until you are back at the main Mach4
screen. Exit Mach4 and re-start it.
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.
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
The following PMDX-SmartBOB boards support an encoder or single-line tach interface:
- PMDX-410 (revision B and higher)
- PMDX-422 (revision B and higher)
- PMDX-416 (all versions)
- PMDX-424 (all versions)
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:
- Without an Index Pulse (infinite linear scale) - when the encoder is
configured without an index pulse, it emulates an (almost) infinite linear
scale. Turning the encoder clockwise will increment the encoder count
up to the maximum value of a signed 32-bit number (2,147,483,647). Rotating
the encoder counter clockwise will decrement the encoder count to the
minimum value of a signed 32-bit number (-2,147,483,648). These modes
should be used when the encoder will be used as an MPG. These modes
should not (and cannot) be used for spindle RPM or threading.
- With an Index Pulse - when the encoder is configured with an index
pulse the encoder count will reset to zero on each index pulse. The encoder
also uses the "Encoder Counts per Revolution" field to determine
the maximum encoder count. When the encoder is rotating clockwise, the
encoder count and will roll over to zero when the count reaches that value
even if there is no index pulse. Conversely, the encoder count will
roll over from zero to (counts per revolution)-1 when the encoder is
rotating counter clockwise. These modes should be used for measuring
spindle RPM and position and for threading. These modes should not be used
when the encoder is an MPG as the roll-over will cause unexpected jogging motion.
Note that if you are using a single-line tach input there is no direction
information, so the SmartBOB will always presume it is rotating in the
"positive" direction.
- With a Synthetic Index Pulse - when the encoder or tach does not
have a physical index pulse and you wish to use it for measuring spindle
RPM or for threading, use this mode. Just like the "With Index Pulse"
mode above, this mode uses the "Encoder Counts per Revolution" field
to determine the maximum encoder count. When ever the encoder reaches this
count the value will be reset to zero and the SmartBOB will generate a
simulated index pulse to the spindle RPM measurement system. Likewise,
for quadrature encoders, if the encoder is rotating in the reverse direction
the count will go from zero to "Counts Per Revolution" minus 1,
and the SmartBOB will generate a simulated index pulse to the spindle RPM
measurement system.
Note that the encoder position/count will be set to
zero when the plug-in sends the configuration to the SmartBOB device. That
means that the (presumably) spindle position at zero counts is arbitrary
since there is no physical index pulse to set an absolute position.
Usually this does not matter. But if the zero position does matter to you,
you can change the zero count position, see the
Changing the Encoder Position section
for more details.
To connect a quadrature encoder (with or without index):
- Connect the "A" and "B" phases to the "A"
and "B" input terminals on the encoder connector.
- 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):
- The encoder input must be connected to the "B" input on the
encoder connector.
- 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.
To configure the encoder or tach for use with Mach4:
- Display the PMDX SmartBOB configuration dialog. In Mach4 go to the "Configure" menu
and select "Plugins..." and then select the "PMDX SmartBOB-USB".
- Click on the "Encoder Config" tab.
- 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
- 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.
- 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.
- 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.
- Click on the "OK" button to save the changes and close the
plug-in configuration dialog.
- 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.
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.
- Enter the screen editor by going to the Mach4 "Operator" menu and selecting
the "Edit Screen".
- Add a DRO somewhere on your screen.
- Click once on the DRO to display its properties in the lower left corner
of the Mach4 window.
- 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.
- Set the "Format" field to "%d" (without the quotes).
- 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".
- 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 "without index" AND the encoder is
mapped to an MPG AND Mach4 is disabled (this prevents spurious jog
motions due to changing the encoder, and therefore possibly changing the MPG position).
- If the encoder mode is "without index" AND the encoder is
NOT mapped to an MPG (in which case we don't care if Mach4 is enabled or not).
- If the encoder mode is "with Synthetic Index". This allows you
to set the zero reference point to a convenient spindle position (if you
want, this is optional).
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.
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:
- Enable the encoder as described in Encoder Configuration above.
- Go to the Mach4 "Configuration" menu and select "Mach...",
and then click on the "MPG" tab.
- Use the row marked "Mpg #0" unless you have other encoders already
configured using that row.
- Click on the red "X" in the "Enabled" column to change
it to a green check mark.
- 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".
- Leave the "Counts per Detent" set to "1". The current
plug-in version ignores this field.
- 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.
- 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.
- 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.
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.
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:
- 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".
- In the top section labeled "Spindle Speed Control" click on the
"Pulse Frequency" radio button.
- Select the output pin that you wish to use for the step pulse output.
- 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.
- 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.
- Click on the "OK" button to save your changes.
- Now configure your spindle speed range. Go to the Mach4 "Configuration"
menu and select "Mach...". Then click on the "Spindle"
tab.
- 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.
- 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
- The PMDX-SmartBOB plug-in currently ignores the "Feedback Ratio"
and "Reversed" fields.
- The PMDX-SmartBOB plug-also in ignores the "Max Spindle Motor RPM"
setting near the bottom of this dialog.
- We usually recommend leaving the "Wait onspindle to stabilize to"
box un-checked.
- 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.
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
The PMDX-SmartBOB supports four methods of measuring or estimating the spindle
RPM and reporting that to Mach4:
- Measured RPM: A 1 pulse per revolution sensor attached to the spindle and connected to
any input pin on the SmartBOB device, then mapped to the Mach4 "Index"
signal. This method is available on all PMDX-SmartBOB devices, and can be used for threading.
- Measured RPM: An encoder, with or without an index, mounted on the spindle.
The encoder can be a "quadrature" encoder with 2 phase signals, or a
"single-line" encoder, also known as a tachometer. This option
is only available on the PMDX-410 (revision B or higher), PMDX-422
(revision B or higher), PMDX-416 and PMDX-424 boards.
This method can be used for threading.
- Estimated RPM: When PWM or Pulse Frequency spindle speed control is enabled in the SmartBOB plug-in configuration
dialog, there is an option to calculate the estimated
spindle RPM based on the PWM duty cycle or the pulse frequency.
This method cannot be used for threading.
- Estimated RPM: The plug-in can be configured to simply report the
commanded RPM back to Mach4 as the actual RPM. This method is really only
useful if you have a DRO that reports the "Spindle True RPM" and you don't
like seeing it always at zero. This method cannot be used for threading.
- When using an index pulse to measure RPM, the SmartBOB can measure spindle RPM from 5 RPM up to more than
20,000 RPM. In order to measure spindle speeds down to 5 RPM, the SmartBOB needs
to wait up to 12 seconds for a pulse from the spindle sensor (5 RPM is 1 revolution
every 12 seconds). Therefore, when the spindle stops running, it can take up to
12 seconds for the SmartBOB to report zero RPM to Mach4. Until that happens,
the RPM readout on the Mach4 screen will continue to display the last reported
(non-zero) RPM reading.
- If using an index pulse to measure RPM, the index input must be connected
to one of the PMDX-SmartBOB's inputs.
- The plug-in reports spindle RPM to Mach4 approximately every 100 milliseconds.
The SmartBOB device can calculate and update the RPM to the plug-in
more often than that. The plug-in restricts the reporting rate to Mach4
to try to balance the need/desire for rapid updates for the operator
to see versus unnecessary screen updates.
- When calculating the estimated RPM from the PWM duty cycle, the reported
RPM will most likely not exactly match the commanded RPM. That is due to
the discrete nature of the PWM signal. The SmartBOB supports 10-bit resolution
(1024 counts) when calculating the PWM duty cycle. That means that the
duty cycle has 1024 discrete steps between zero RPM and the maximum RPM that
you have configured for the current spindle range. The reported RPM will
be rounded to the nearest step. For example, if your spindle range is 0
to 20,000, and you command the spindle to 3,000 RPM, the PWM duty cycle
will be:
duty cycle = ROUND((commanded RPM) / (max RPM)) * 1024
cuty cycle = ROUND((3000/20000)*1024)
dyty cycle = 154 (out of 1024), or 15% duty cycle
To calculate the RPM to report back to Mach4:
calculated RPM = ((duty cycle) / 1024) * (max RPM - min RPM)
calculated RPM = (154/1024) * (20,000 - 0) = 3007.8 RPM
To configure Mach4 to use a SmartBOB input as an index pulse input (i.e. a
1 pulse per revolution input):
- 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.
- In Mach4, go to the "Configure" menu and select "Mach...".
- Click on the "Input Signals" tab and scroll down almost to the
bottom to find the "Index" signal.
- 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.
- Click on "OK" to apply the new configuration.
- 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.
To configure Mach4 to use a SmartBOB input as a 1 pulse per revolution spindle
speed sensor input:
- Configure the Index input as shows in How to Configure
an Index Input (above)
- 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.
- Click on the "Spindle Config" tab.
- In the "Spindle RPM Measurement and Reporting" section, select
the "Measure RPM from INDEX" item.
- 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).
To configure the plug-in and Mach4 to use the encoder for spindle RPM:
- Connect your encoder as described in the Connecting
the Encoder section.
- Configure Mach4 for your encoder as described in the
Configuring the Encoder for Mach4 section.
- 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".
- 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".
- Click on the "Spindle Config" tab.
- Down in the "Spindle RPM Measurement and Reporting" section,
select the "Measure the RPM from the Encoder" option.
- Click on the "OK" button to save the changes.
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:
- 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.
- When the SmartBOB plug-in configuration dialog is displayed, click on the
"Spindle Config" tab.
- In the "Spindle Speed Control" section, select either "PWM"
or "Pulse Frequency" and fill in the parameters below.
- 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.
- 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.
The PMDX-SmartBOB's probing implementation makes the following assumptions
and restrictions:
- Supports G31 probe command.
- The probe input MUST be connected to a PMDX-SmartBOB
input signal, and assigned to the Mach4 "PROBE" input. Note that
in some Mach4 profiles created with older versions of Mach4, the "PROBE"
input was called "DIGITIZE".
- When Mach4 attempts to execute a G31 probe move, if there is no signal
assigned to the "PROBE" input, or if that signal is not a
PMDX-SmartBOB input, then the SmartBOB plug-in will halt/disable Mach4.
- Does not yet support G31.1, G31.2 and G31.3 variants of the probe command,
which use the Mach4 "PROBE1", "PROBE2" and
"PROBE3" input signals respectively. If Mach4 attempts the execute one of
these G31.x commands, the PMDX-SmartBOB plug-in will halt/disable Mach4 and
display an error message on the Mach4 status line (and in the history window).
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.
Section contents:
(10.1) Threading Overview
(10.2) Threading Restrictions
(10.3) Configuring for Threading
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.
The PMDX-SmartBOB's threading implementation makes the following assumptions and restrictions:
- When using a quadrature encoder or single-wire tach to measure spindle RPM,
you must select an encoder configuration with index. This
can be with a physical index pulse if your encoder has one, or it can
be a "synthetic" index (see the Encoder Overview
section for more info on synthetic index).
- The PMDX-SmartBOB firmware is designed to support threading with spindle
speeds up to 2,000 RPM. It may function at higher RPMs, but we do not
test it above 2,000 RPM.
- When using an encoder or tach to measure spindle RPM, the SmartBOB changes
how it measures RPM when the RPM reaches 4,000 RPM. At that point the
SmartBOB switches from measuring based on encoder lines to measuring
based on the index (either physical index input or synthetic index). This
is done to reduce load on the processor at higher RPM. If you try to
thread at RPMs above this amount, the motion compensation will be less
accurate since we only update the RPM measurement once per revolution.
- At the start of the threading operation the plug-in checks the current
measured spindle RPM (before the threading motion starts, so we presume
the spindle motor is not under load). The RPM must be within 25% above or 25% below
the commanded RPM. If the measured RPM is outside that range the plug-in
will abort the threading operation and disable Mach4.
NOTE: The RPM tolerance range is not currently adjustable from the
plug-in configuration dialog. If you need to alter the RPM tolerance
please contact PMDX support.
- Once the threading operation starts, the measured RPM may exceed
the +25%/-25% range that is checked at the start of the threading operation.
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.
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:
- Green - The signal is a logic "high", or somewhere
between 3.3V and 5V (roughly).
- Red - The signal is a logic "low", or somewhere
close to 0V (i.e. ground).
- Yellow - The signal is toggling (note that the display updates
approximately every 100ms, and "toggling" means that the signal
changed state at least 2 times during that 100ms interval).
- Orange - This color is used only for Charge Pump signals,
and only for the special case of the SmartBOB Plug-In having
"PMDX-126 Expanded Inputs" mode enabled and Mach4 being disabled.
Orange shows that the charge pump is toggling but at a very low
rate. The rate is low enough that the PMDX-126 sees it as not valid and
keeps its outputs disabled. But it still allows the SmartBOB to read the
multiplexed inputs from the PMDX-126. Please see the Expanded Inputs
section of this document and the PMDX-126 User's Manual for more
information about "Expanded Inputs" mode.
- Black - The signal's state cannot be displayed. This was
used for the step and direction signals (pins 2 through 9), and for
any pin that was assigned to one of the "charge pump" outputs
or the PWM spindle speed control. However, as of plug-in release 0.33.159
the states of all of these signals can be displayed, so the color black is
not used any more.
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:
- As of plug-in version 0.18.97 the plug-in supports a maximum of 2 motors
per axis (previous versions did not support any slaved motors)
- All motors assigned to the same axis must have the same motor tuning
parameters (steps/unit, acceleration and velocity). The "Reversed"
setting does not need to be the same for each motor assigned to an axis.
- DEFINITION: An axis is "homable" if the "Home Order"
is non-zero and the "Home In Place" setting is disabled (i.e. has a
red "X"). These settings can be found in the "Homing/Soft Limits"
tab of the "Mach Configuration" dialog.
- For each axis that is "homable" (see above definition) AND
will actually be homed, each motor assigned to that axis must have a home switch
input configured in the "Input Signals" tab of the "Mach Configuration" dialog.
Furthermore, the home switch must be connected to an input on the SmartBOB
device. The SmartBOB plug-in and device do not support homing configurations
with the home switches connected to other devices.
- This release of the SmartBOB plug-in uses only one home switch input per
axis, even if there is more than one motor assigned to that axis.
In the Mach4 configuration, that one home switch must be assigned to all motors
for that axis, with the same setting (red "X" or green check mark)
in the "Active Low" column. For example,
say that the X axis has motor0 and motor1 assigned to it, and that the home switch
for motor0 is on SmartBOB input Pin11 and the switch signal is active low.
In the Mach4 "Input Signals" tab, the "Motor 0 Home" and
"Motor 1 Home" must both be assigned to the SmartBOBUSB Pin11 with
a green check mark in the "Active Low" column.
- The SmartBOB presumes that the home switch is located near or at one end
of the allowable travel for that axis. In addition, the SmartBOB presumes that
when a homing sequence starts none of the motors are "beyond" their
home switch. If the axis is beyond the home switch when homing starts, the
machine configuration is not usable for automatic homing.
- If the axis is on its home switch when a homing sequence starts, the
SmartBOB will attempt to move off of the home switch ONLY IF the limit
switches for that axis are either (a) not configured, or (b) configured on
a different input than the home switch. If the home and at least one limit switch
for that motor share the same input, the SmartBOB will require the operator to manually
jog the axis off of the home/limit switches before homing can start. Depending
on your limit switch configuration, jogging off of the limit switches
may require enabling the "Limits Override" feature in Mach4.
- If multiple axes have home switches that share the same input, none of
the axes can be on their home switch when homing starts. If any of these
axes are on its home switch, the SmartBOB will require that the operator manually
jog all affected axes off of their home switches before homing can start.
- If multiple axes have home switches that share the same input, the
"Home Order" must be configured so that each of these axes
homes one at a time. For example, if the X and Y axis home switches are both
wired to the Pin11 input, the "X" and "Y" axis must have a different value
in the "Home Order" field so that one axis homes and then the other
one homes. This homing order constraint is assumed to be correct and
the plug-in does not explicitly test for this configuration.
Homing Operation
The PMDX-SmartBOB-USB takes the following steps to home an axis:
- If the axis is on the home switch, the SmartBOB will do one of two things
depending on the limit switch configuration:
- If there are no limit switches defined for that axis, or the limit
switches are assigned to a different input than the home switch, then the
SmartBOB will attempt to move the axis off of the home switch by moving
approximately 1 inch in the opposite direction than what is specified in
the "Home Dir" setting in the "Homing/SoftLimits"
configuration tab of the regular Mach4 configuration dialog. The speed of
this move is the "Home Speed %" setting from the
"Homing/SoftLimits" configuration tab. If, after moving 1 inch
the axis' home switch is still active the SmartBOB will abort the homing
procedure and return an error the Mach4.
- If there are limit switches defined for that axis and they share the
same input as the home switch, then the plug-in will abort the homing
operation and prompt the operator to manually jog the maching off of the
home switches. Once the axis has been jogged off of the home switch the
operator can request another homing sequence.
- The axis then moves towards the home switch at the "Home Speed %" setting
until the home switch becomes active
- Once the home switch is active, the SmartBOB moves an additional 0.050"
(or 1.27mm) to ensure that the axis stops beyond the hysteresis
point of the switch. The axis then decelerates to a stop.
- Then the axis starts moving back off of the homing switch at a speed
that is 1/4 (25%) of the homing speed used to approach the home switch.
- Once the home switch de-activates, the SmartBOB moves the axis an
additional 0.050" (1.27mm) off of the switch to ensure that it is
beyond the hysteresis point (in case the home switch is also a limit switch).
- The SmartBOB plug-in then tells Mach4 that the axis' position is the
value specified in the "Home Offset" field of the "Homing/SoftLimits"
tab.
Future versions of the SmartBOB plug-in will allow the user to configure
all of the parameters used in the homing sequence above.
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-411 | PMDX-410/422 | From PMDX-126 |
Pin10 | Pin10 | Yes |
Pin11 | Pin11 | Yes |
Pin12 | Pin12 | Yes |
Pin13 | Pin13 | Yes |
Pin15 | Pin15 | Yes |
| PinA | No |
| PinB | No |
| PinC | No |
PinE | PinE | Yes |
PinF | PinF | Yes |
PinG | PinG | Yes |
PinH | PinH | Yes |
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.
- One and only one of the two Mach4 charge pump signals must be assigned to
the SmartBOB's output Pin17. If that is not the case when you enable Expanded
Inputs mode in the plug-in, the plug-in will attempt to modify the
Mach4 configuration to assign a charge pump signal to Pin17 (after warning
you about what it is going to do).
- The PMDX-126 must have it's DIP switches configured for "Expanded
Inputs" mode. The SmartBOB does not support the PMDX-126's
"Expanded I/O" or "Expanded Outputs" modes. See the
PMDX-126 User's Manual for more information on configuring and using
"Expanded Inputs" mode.
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.
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:
- PMDX SmartBOB Plug-in is enabled and selected as the motion device
- All four motors are set for 1000 steps/unit, max velocity = 10 units/sec,
accel = 5 units/sec^2, motor not reversed, 0 backlash
- Homing: soft limits disabled, homing enabled, no homing offset
- Inputs:
- E-Stop assigned to PMDX-SmartBOB-USB Pin 10
- Outputs:
- Charge Pump assigned to PMDX-SmartBOB-USB Pin 17
- Spindle On assigned to PMDX-SmartBOB-USB Pin 1
(this controls the relay on the PMDX-422)
- PWM Spindle speed control disabled
The PMDX-424 sample profile has the following configuration:
- PMDX SmartBOB Plug-in is enabled and selected as the motion device
- All four motors are set for 1000 steps/unit, max velocity = 10 units/sec,
accel = 5 units/sec^2, motor not reversed, 0 backlash
- Homing: soft limits disabled, homing enabled, no homing offset
- Inputs:
- E-Stop assigned to the PMDX-424 "EStop" input
- Outputs:
- None mapped to Mach4 output signals.
There are two ways to run these profiles:
- Use the "Mach4 Loader" shortcut on your desktop and select "PMDX-Sample" or "PMDX-424-Sample"
- Use the "PMDX Sample" or "PMDX-424 Sample" shortcuts on your desktop *if* you selected that
they be installed
!! 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:
- Double-click on the "Mach4 Loader" icon to bring up the "Select Profile" dialog
- Click once on the "PMDX-Sample" line and then click on the "Copy Profile" button
- Enter a name for your new profile
- Optionally, you can select a screen set. If you leave this blank, Mach4 will
default to using the "wxMach.set" screen set, which looks mostly like Mach3.
- Then click on "OK" to create the new profile
- Finally, while still in the "Mach4 Loader" window, double-click on the new
profile name to start running that profile
If you want to change the PMDX-Sample shortcut on your desktop to run your new
profile name:
- Right-click on the PMDX-Sample icon and select "Properties"
- At the right end of the "Target" line you will see "/p PMDX-Sample"
- Change the "PMDX-Sample" to the name of your new profile.
- Click on OK
- The right-click on the PMDX-Sample icon again and select "Rename"
and give it new, meaningful name. Then click on "OK"
- Enjoy!
- Plug-In version: 0.48.235 (22 Dec 2016)
- Firmware version: 0.56.203
- Mach4Hobby versions: build number 2872 and higher (tested with builds 2872 through 3233)
** WILL NOT run on any build older/lower than 2872 **
(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.
- Encoder/tach support for "synthetic" index so you can use an
encoder or tach for measuring spindle RPM and threading without needing a physical
index pulse. See the Encoder/MPG Configuration
section for more information.
- Threading support using either 1 pulse-per-revolution index pulse,
a bi-directional quadrature encoder or uni-directional single-line tach input.
See the Threading Information and Restrictions
section for more information.
- The PMDX-424 now always sends the state of the PROBE input to the PMDX-179.
Previous firmware versions would only send the PROBE state when Mach4 was
executing a G31 probe move.
- The PMDX-424 only turns on the PMDX-179 "Error Code" LED during power-up
as part of the "LED Test" function or if there in an error.
Previous firmware versions would show the "everything is OK" flash pattern
from the PMDX-424's status LED on the PMDX-179's "Error Code"
LED which made it appear that there was an error when there wasn't.
- Several enhancements to the plug-in's debug log information. Also includes
ability to enable/disable additional debug logs on the plug-in configuration
"Debug" tab.
- The PMDX sample profiles now have the keyboard and mcRegFile plug-ins enabled
by default and they include the default keyboard mappings.
NOTE In order to install these updated profiles, you must delete or
rename any existing "PMDX-Sample" or "PMDX-424-Sample*quot;
directories in your Mach4Hobby\Profiles directory. The PMDX-SmartBOB-USB
installer WILL NOT overwrite an existing sample profile.
- Work around a Mach4 motion planner anomaly that occasionally caused GCode
files to hang. If the Mach4 diagnostic log window was open and enabled
when this happened it would show "Waiting on SetStill".
- Fix bug in encoder interface that caused spurious values when then encoder
was rotating in the reverse direction.
- Fix a bug in the real-time display that could show a PWM output as not
active (i.e. not toggling) when it actually is toggling.
- Fix a bug that incorrectly changed the spindle pulse frequency based on
the PWM minimum duty cycle.
- Homing code now ignores unused variable from Mach4 core that sometimes
caused our plug-in to disallow homing.
- Work-around for Mach4 motion planner sending invalid information with
some "Stop Request" notifications. This caused occasional
odd behavior of the GCode display where it looked like Mach4 was
going back and executing parts of the GCode file a second time at
very high speed (faster than real time).
- Fixed bug that occasionally read more data from the Mach4 motion planner
than needed.
- Removed invalid MODBUS configuration data from the "PMDX-Sample" profile.
The MODBUS configuration was used for internal PMDX testing and was
accidentally included in the released profile. Having this configuration
in the profile did not cause problems with Mach4 or our
plug-in, but it did end up flooding the PMDX debug log files with extra
(un-needed) data.
(2.5) Known Issues:
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- Plug-In version: 0.46.221 (31 Aug 2016)
- Firmware version: 0.53.195
- Mach4Hobby versions: build number 2872 and higher (tested with builds 2872 and 2914)
** WILL NOT run on any build older/lower than 2872 **
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.
- The "Steps" LED no longer flashes during "dwell" (G04) intervals.
- Fixed bug introduced in version 0.45.217 that corrupts the Spindle RPM
measurement mode (sets to "Disabled") and encoder mode (sets to
"None"). This happens on PMDX-410, PMDX-422, PMDX-416 and PMDX-424
devices, and only when the spindle speed control is set to "PWM" or
"Pulse Frequency". The PMDX-411 and PMDX-412 are not affected.
- Fixed a bug that sometimes caused the "Steps" LED to continue
flashing after a "motion underrun" error has halted motion.
- Do not allow "Expanded Input" mode on the PMDX-416.
- Prevent INDEX input messages from flooding the plug-in's debug log and
possibly crashing Mach4 (could only happen if the debug log is enabled
and the "Debug Mode" set to "Debug").
Known Issues:
- Does not (yet) support threading
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- DO NOT USE - SEE VERSION 0.46.221
- Plug-In version: 0.45.217 (9 Aug 2016)
- Firmware version: 0.52.189
- Mach4Hobby versions: build number 2872 and higher (tested with builds 2872 and 2914)
** WILL NOT run on any build older/lower than 2872 **
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.
- Support PWM spindle speed control on any output pin that
is not connected to an on-board relay (i.e. PMDX-422 Pin1 drives the on-board
relay and thus is not allowed as a PWM output pin).
- Support Step Pulse Frequency spindle speed control on any output pin that is
not connected to an on-board relay (same as PWM mentioned above). See
Step Pulse Frequency Spindle Speed Control for
more information on this mode.
Known Issues:
- Does not (yet) support threading
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- Plug-In version: 0.44.214 (12 Jul 2016)
- Firmware version: 0.51.178
- Mach4Hobby versions: build number 2872 and higher (tested with builds 2872 and 2914)
** WILL NOT run on any build older/lower than 2872 **
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.
- Fix bug introduced in version 0.43.213 that caused the "Pin15" input
on the PMDX-411 to not function corrrectly.
- M6 tool change macros in the PMDXSample and PMDX424Sample directories
have been fixed. Please see the M6 Tool Change Macro Notes
section for instructions on how to fix this in your existing profiles.
Known Issues:
- Does not (yet) support threading
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- DO NOT USE - SEE VERSION 0.44.214
- Plug-In version: 0.43.213 (1 Jul 2016)
- Firmware version: 0.50.173
- Mach4Hobby versions: build number 2872 and higher (tested with builds 2872 and 2914)
** WILL NOT run on any build older/lower than 2872 **
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:
- start Mach4 and load your profile
- Go to the "View" menu and select "Load Screen"
- When the "Select Screen File" dialog appears, change into
the "Screens" folder if it is not already there.
- Select/highlight the "wx4.set" file and click on "Open"
Known Issues:
- Introduced bug into PMDX-411 firmware that caused the "Pin15" input
to not work (found after this version was released)
- Does not (yet) support threading
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- Plug-In version: 0.41.205 (26 May 2016)
- Firmware version: 0.48.165
- Mach4Hobby versions: build number 2872 and higher (tested with builds 2872 and 2914)
** WILL NOT run on any build older/lower than 2872 **
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:
- start Mach4 and load your profile
- Go to the "View" menu and select "Load Screen"
- When the "Select Screen File" dialog appears, change into
the "Screens" folder if it is not already there.
- Select/highlight the "wx4.set" file and click on "Open"
- Support quadrature and single-line (i.e. tach) encoders on PMDX-410/422 Rev B and Rev C,
and PMDX-424 boards. Note that the PMDX-410/422 Rev A boards (of which we only shipped
a handfull back in 2014) and the PMDX-411 do not support encoders. Encoders
can be used as MPGs for jogging or for spindle RPM measurement. See the
Encoder Configuration and
Spindle RPM Calculation sections for more information.
- Runs with Mach4 Hobby builds 2872, 2914 or newer. Encoder/MPG functionality
required features only available in build 2872 or newer.
- Plug-in configuration option to disable the PMDX-424's Motor3A and Motor3B step
signals. This is typically used only when the PMDX-424 is connected to
a PMDX-340 using the 26-pib ribbon header J6.
This can be found on the "FeatureConfig" tab of the plug-on
configuration dialog only when a PMDX-424 is connected to the PC.
When a different SmartBOB is connected to the PC, other feature configuration
items will appear instead, including charge pump and "PMDX-126 Expanded Inputs" mode.
- Added PMDX-424 sample profile. See the Sample Mach4 Profiles
section for more details.
- All PMDX sample Mach4 profiles have been updated to use the "wx4"
screen set instead of the older "wxMach" screen set which is
no longer under active development. However, the installer will not
update an existing sample profile. So if you already have the sample
profiles installed from a previous plug-in release, you will need to
manually change the screen set as described above.
- Added "Help" buttons to the plug-in config " Encoder Config"
and "Spindle Config" tabs. Clicking on either of these buttons
will display the corresponding section in these release notes.
- Fix bug that caused USB buffer overflows and/or communication timeouts
when sending GCode motion to the SmartBOB device.
- Fix bug that under certain conditions caused the direction signal to
change too soon after a step pulse (known as a hold time violation), which in turn
could cause the motor driver to move the motor in the wrong direction.
- SmartBOB plug-in configuration dialog now stores updated motor direction
polarity when running in Mach4 Hobby build 2914 or higher.
- Fixed a bug relating to un-mapping multiple Mach4 input signals mapped to
a single PMDX-SmartBOB pin.
Known Issues:
- Does not (yet) support threading
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- Plug-In version: 0.38.188 (6 Apr 2016)
- Firmware version: 0.45.155
- Mach4Hobby versions: build number 2313 and higher (only tested with builds 2872 through 2914)
** WILL NOT run on any build older/lower than 2313 **
- Support PMDX-424 Revision B boards
- Support spindle RPM calculations using a 1 pulse-per-revolution sensor
mapped to the Mach4 "Index" input.
See here for more information.
- Support M62/M63 real-time output commands.
- Add M6 (tool change) macro to the PMDX sample profile. This is a slightly
modified copy of the "StopManualToolchange" sample Lua code
from the Mach4 "LuaExamples\Toolchanger" directory. The edits
were mostly cosmetic and did not affect the functionality of the macro.
NOTE: If you already have the PMDX Sample profile installed
the installer will update your profile with the M6 macro file (leaving all
other profile files untouched). If you already have an M6 macro file the
installer will leave your existing M6 macro in place.
- Re-send device configuration after communication timeout.
- Resynchronize the machine's actual position to Mach4 after hitting a
limit switch or getting and EStop or 'Disable' during motion.
- Fixed bug that caused motion underrun on very short jog moves
(mostly cause by VistaCNC iMach pendants, but can also be caused by
certain motor tuning settings).
- Enable the PMDX-424 Motor3 "Slave" step output (appears on
screw terminal connector J11 as "Motor 3B Step").
- Prevent spindle TIMING input messages from flooding the debug log and crashing Mach4
- Improve communication error handling and recovery.
Known Issues:
- Does not (yet) support threading
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- Plug-In version: 0.36.171 (28 Jan 2016)
- Firmware version: 0.44.145
- Mach4Hobby versions: build number 2313 and higher (tested with 2313 through 2803)
** WILL NOT run on any build older/lower than 2313 **
- Added information to debug log for comms error debugging
- Add support for PMDX-424 SmartBOB-ISO-USB
- The green LED now has a different flash pattern when waiting for a
connection from the plug-in. While waiting for the plug-in the LED flashes
one short flash every 2 seconds. When the device is connected to the plug-in
the green LED will flash on for 1 second and off for 1 second. On the
PMDX-410, PMDX-422 and PMDX-424 this is the green LED that is just under the red LED.
- Fixed bug that corrupted the polling timer interval
- Fixed a bug in the homing code that caused an "Error 7" in certain situations
- Prevent spindle INDEX input messages from flooding the debug log and crashing Mach4
Known Issues:
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support threading
- Plug-In version: 0.33.159 (6 Nov 2015)
- Firmware version: 0.42.137
- Mach4Hobby versions: build number 2313 and higher (tested with 2313 through 2763)
** WILL NOT run on any build older/lower than 2313 **
- The real-time status display shows the PWM signal if assigned to the
SmartBOB Pin16 or Pin17. Does not show the PWM signal when using a PMDX-407.
The real-time display now also shows the values of the step and direction pins.
- Enhanced the debug log capability to include information from the SmartBOB device.
- Enhanced USB communication error recovery.
- Closes debug log files before Mach4 creates its "package" (from the
Help->Support menu) and then re-opens them afterwards. This allows
the log files to be included in the package even if they were open.
- Fixed a bug in the PMDX-411 firmware that prevented the spindle PWM signal
from appearing on Pin16.
- Fixed a bug that re-mapped the charge pump signal to Pin17 if it was mapped
to any other SmartBOB output pin.
- Fixed issue with motion planner interface that mis-reported the actual
position for certain moves. The result was that the ending position for
subsequent moves would be off by a couple of step pulses. This happened
when the motor tuning parameters had a slow max velocity and a slow
acceleration/deceleration rate.
- Fixed a bug that required exiting Mach4 and re-starting it in order to disable
"Wildhorse Probe" mode or "Expanded Inputs" mode.
- No longer overwrite fixture offset table when homing an axis.
- Fix memory access error in USB interface.
- Fix memory access error in configuration dialog.
Known Issues:
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support threading
- Plug-In version: 0.31.147 (18 Sep 2015)
- Firmware version: 0.40.130
- Mach4Hobby versions: build number 2313 and higher (tested with 2313 through 2686)
** WILL NOT run on any build older/lower than 2313 **
New features since Version 0.30.136:
- Supports the PMDX-126's "Expanded Inputs" mode (see the
PMDX-126 Expanded Inputs section for more information).
- Plug-in's spindle configuration moved to a separate "Spindle Config" tab
in the Plug-in Configuration Dialog to make room on the "Feature Config" tab
for the expanded inputs configuration.
- The red LED on the SmartBOB boards now indicates commumications failure
(i.e. red LED turns on when there is no communications between the SmartBOB
and the plug-in).
Bug Fixes Since Version 0.30.136:
- SmartBOB device disables outputs on communication failure with PC.
- Plug-in correctly identifies PMDX-422/PMDX-410 revision C boards.
- The real-time status display removes the "pinA", "pinB" and
"pinC" input indicators when connected to a PMDX-411 (which does not
support those input signals).
Known Issues:
- Does not (yet) support "gantry squaring" during homing using
one home switch for each motor on a tandem axis
- Does not (yet) support backlash compensation (this is a Mach4 and plug-in issue)
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support threading
- Plug-In version: 0.30.136 (1 Aug 2015)
- Firmware version: 0.39.120
- Mach4Hobby versions: build number 2313 and higher (tested with 2313 through 2580)
** WILL NOT run on any build older/lower than 2313 **
New features since Version 0.29.128:
- Added a real-time Input/Output status display to plug-in diagnostics dialog.
This allows you to see the input and output signals as the SmartBOB device
sees them. This can help diagnose wiring problems or issues with the
Mach4 input and output signal mapping. See the Real-Time Signal Display
section for more information.
- Plug-in diagnostics dialog now shows Mach4, plug-in and firmware versions along
with circuit board information (like the plug-in configuration dialog).
- Displays the current screen set name along with all of the version information
in the the SmartBOB plug-in configuration dialog, and also the diagnostics dialog.
- The plug-in writes the current version information (like is displayed on the
plug-in configuration dialog) into a text file in the current profile directory
every time Mach4 starts. This will help PMDX diagnose issues when we receive
a Mach4 profile "package" as built by the Mach4
"Help->Support->Package Current Profile" or "Email current profile"
operations.
- Firmware download moved from plug-in diagnostics dialog to plug-in configuration dialog.
Bug Fixes Since Version 0.29.128:
- Fixed probing bug that reported incorrect probe positions.
- Changed the algorithm used to find the SmartBOB communications port to avoid
issues with some Bluetooth modems on Windows 8.1. This has a side effect of
speeding up the start-up process on any PC with multiple devices that look like
serial ports.
Known Issues:
- Does not (yet) support "gantry squaring" during homing using
one home swtich for each motor on a tandem axis
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support PMDX-126 Expanded Input Mode
- Does not (yet) support threading
- Plug-In version: 0.29.128 (16 Jul 2015)
- Firmware version: 0.39.120
- Mach4Hobby versions: build number 2313 and higher (tested with 2313 through 2568)
** WILL NOT run on any build older/lower than 2313 **
New features since Version 0.26.117:
- Added support for G31 probing (see Probing Features and Restrictions
for more information).
- Homing supports the CYCLE STOP button (the red button marked "Stop"
under the "Feed Hold" button). Pressing CYCLE STOP will abort the
homing sequence and disable Mach4. Note that the FEED HOLD button is ignored
by the SmartBOB plug-in during homing.
- If the SmartBOB is selected as the motion device, the plug-in checks the
motor and axis configuration and reports an error if a motor is disabled and
is assigned/mapped to an axis that is enabled. Mach4, up through build 2522
(the latest version available for testing before this plug-in release), allows
motion on motors even if they are marked as "disabled" (by un-checking
the box next to the motor name in the "Motors" tab of the Mach
Configuration dialog).
- Decreased the distance that homing moves the axis onto the home switch
before stopping, and increased the speed used to move the axis back off of
the home switch. See the "Homing Operation" section of the
Homing Features and Restrictions section.
Bug Fixes Since Version 0.26.117:
- Fixed installer bug that failed to detect Mach4 Industrial running during
the installation process.
- Add work-around for startup issue in Mach4 that prevented Mach4 from
properly interpreting input signals from our plug-in on startup.
See the Issue with Input Signals and Mach4 Startup
section below for important information on using this work-around.
- No longer report a motor configuration error if the motor is disabled
and NOT assigned to an axis.
Known Issues:
- Does not (yet) support "gantry squaring" during homing using
one home swtich for each motor on a tandem axis
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support PMDX-126 Expanded Input Mode
- Does not (yet) support threading
- Plug-In version: 0.26.117 (29 May 2015)
- Firmware version: 0.38.117
- Mach4Hobby versions: build number 2313 and higher (tested with 2313 through 2472)
** WILL NOT run on any build older/lower than 2313 **
New features since Version 0.25.111:
- Support PMDX-422 Rev C boards
Bug Fixes Since Version 0.25.111:
- Fixed issue that caused Mach4 build 2441 and higher to crash on some PCs.
- Fixed installer bug that thought Mach4 was running when the Windows user
name was "Mach4".
Known Issues:
- Does not (yet) support probing (coming soon)
- Does not (yet) support "gantry squaring" during homing using
one home swtich for each motor on a tandem axis
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support PMDX-126 Expanded Input Mode
- Does not (yet) support threading
- Plug-In version: 0.25.111 (8 May 2015)
- Firmware version: 0.37.115
- Mach4Hobby versions: build number 2313 and higher (tested with 2313 through 2336)
** WILL NOT run on any build older/lower than 2313 **
New features since Version 0.23.107:
- Supports 20 microsecond step pulse width (used mainly with Sherline stepper drivers)
- Disables Mach4 whenever the SmartBOB plug-in configuration dialog is displayed
(used to only disable Mach4 if changes were made to the SmartBOB configuration).
Bug Fixes Since Version 0.23.107:
- Fixed issue that caused the axis DROs to occasionally display incorrect data.
- Fixed bug that did not always update step pulse width.
- Fixed a bug that occasionally caused Mach4 to hang when exiting the
SmartBOB plug-in configuration dialog.
- Changed sample Mach4 profile so that the Mach4 log window is visible
on all screen resolutions.
Known Issues:
- Does not (yet) support probing (coming REALLY soon)
- Does not (yet) support "gantry squaring" during homing using
one home swtich for each motor on a tandem axis
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support PMDX-126 Expanded Input Mode
- Does not (yet) support threading
- Firmware version: 0.35.111
- Mach4Hobby versions: build number 2313 and higher (tested with 2313 through 2326)
** WILL NOT run on any build older/lower than 2313 **
New features since Version 0.22.106:
Bug Fixes Since Version 0.19.100:
Known Issues:
- Does not (yet) support probing (coming REALLY soon)
- Does not (yet) support "gantry squaring" during homing using
one home swtich for each motor on a tandem axis
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support PMDX-126 Expanded Input Mode
- Does not (yet) support threading
- Firmware version: 0.35.111
- Mach4Hobby versions: build number 2223 and higher (tested with 2223 through 2270)
** WILL NOT run on any build older/lower than 2223
NOR ON ANY VERSION NEWER THAN 2270 **
New features since Version 0.19.100:
- Updated homing parameters related to how far to move onto and off of
the homing switch to accommodate machines with large values of "steps per".
See Homing Features and Restrictions for more information.
- The SmartBOB plug-in configuration dialog now shows the current motor
step and direction pin assignments on the "Motor Config" tab in
the "Step/Dir Configuration" section.
Bug Fixes Since Version 0.19.100:
- Fixed race condition in homing code that sometimes displayed error messages
when there were no errors.
- Fixed limit switch handling
- Fixed limit override handling
Known Issues:
- Does not (yet) support probing (coming REALLY soon)
- Does not (yet) support "gantry squaring" during homing using
one home swtich for each motor on a tandem axis
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support PMDX-126 Expanded Input Mode
- Does not (yet) support threading
Version 0.19.100 (24 Mar 2015)
- Plug-In version: 0.19.100 (24 Mar 2015)
- Firmware version: 0.35.111
- Mach4Hobby versions: build number 2223 and higher (tested with 2223 through 2270)
** WILL NOT run on any build older/lower than 2223 **
New features since Version 0.18.97:
Bug Fixes Since Version 0.18.97:
- Fix issue with homing and motors with the "Reverse" box checked
in the 'Motors' configuration tab (or the "DIR Polarity" settings
in the SmartBOB plug-in configuration set to "Reverse").
- Displays the correct error message when homing an axis and the SmartBOB
is unable to move the axis off of the home switch (used to display "INTERNAL ERROR").
Known Issues:
- Does not (yet) support probing (coming REALLY soon)
- Does not (yet) support "gantry squaring" during homing using
one home swtich for each motor on a tandem axis
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support PMDX-126 Expanded Input Mode
- Does not (yet) support threading
Version 0.18.97 (16 Mar 2015)
- Plug-In version: 0.18.97 (16 Mar 2015)
- Firmware version: 0.34.110
- Mach4Hobby versions: build number 2223 and higher (tested with 2223 through 2270)
** WILL NOT run on any build older/lower than 2223 **
New features since Version 0.17.86:
- Support for slaved axis (i.e. an axis with more than one motor).
Includes basic homing of axis with slaved motors. See the
Homing Features and Limitations section for
more information.
Bug Fixes Since Version 0.17.86:
- Homing errors due to configuration issues now abort homing, disable Mach4
and display an error message in the Mach4 message bar at the bottom of the
Mach4 screen.
- Homing now checks for configuration conflicts that would prevent successful
homing (see the Homing Features and Limitations section
for more information).
- Revised method of retrieving motion data from Mach4 core to avoid issues
discovered when screw mapping was added to Mach4.
- Some motion sequences left the axis not at expected position (related to
previous item regarding motion data).
- Fix minor position errors in final homing sequence.
Known Issues:
- When homing an axis, if the axis starts on the homing switch, the SmartBOB
attempts to move off of the homing switch before starting the homing sequence.
If the SmartBOB is unable to move off of the homing switch (i.e. the home input
remains active), the plugin will display an "INTERNAL ERROR" instead
of the actual "Could not move off of home switch" error.
- Does not (yet) support probing (coming soon)
- Does not (yet) support "gantry squaring" during homing using
one home swtich for each motor on a tandem axis
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support PMDX-126 Expanded Input Mode
- Does not (yet) support threading
Version 0.17.86 (11 Feb 2015):
- Firmware version: 0.32.104
- Mach4Hobby versions: build number 2223 and higher (tested with 2223)
** WILL NOT run on any build older/lower than 2223 **
New features since Version 0.16.82:
- Support for Mach4 Build 2223
Bug Fixes Since Version 0.16.82:
- Fixed issues with homing when the user clicks on the "Disable" button
while the machine is homing.
- SmartBOB plug-in configuration screen now should show all digits of
the charge pump frequency and minimum spindle PWM duty cycle on
high-resolution monitors
- Fixed issues with firmware download occasionally hanging after the
download completed successfully
- Fixed issue with downloading firmware to PMDX-410 boards
-
Known Issues:
- Does not (yet) support probing (coming soon)
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support threading
- Does not (yet) support slaved motors
- Does not (yet) support PMDX-126 Expanded Input Mode
Version 0.16.82 (26 Jan 2015)
- Firmware version: 0.31.103
- Mach4Hobby versions: build number 2192 and higher (tested with 2192)
** WILL NOT run on any build older/lower than 2192 **
New features since Version 0.15.77:
- Support configurable charge pump frequency
-
- Configuration option for "charge pump on always" (as long as Mach4 is
running), as opposed to only when Mach4 is "enabled". This option should be
used when connected to a Geckodrive G540.
- Improved motion queue handling code that should prevent most
"motion queue underrun" errors.
- Support for PMDX-411
Bug Fixes Since Version 0.15.77:
Known Issues:
- Does not (yet) support probing (coming soon)
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support threading
- Does not (yet) support slaved motors
- Does not (yet) support PMDX-126 Expanded Input Mode
Version 0.15.77 (12 Jan 2015):
- Firmware version: 0.29.100
- Mach4Hobby versions: build numbers 2114 and higher (tested through 2157)
** WILL NOT run reliably on any build older/lower than 2114 **
** SPECIFICALLY - The spindle speed control will not work at all **
New features since Version 0.14.72:
- Support the PMDX-407 Simple Spindle Speed Controller. SEE WARNING BELOW!
- Improved error reporting when configuring the SmartBOB device.
- Can now select the spindle speed PWM polarity (only when using pin 14 or
pin 16 for PWM output, the PMDX-407 PWM polarity is fixed).
Bug Fixes Since Version 0.14.72:
- Fixed spindle speed PWM when assigned to pin 14 on revision "A" SmartBOB
boards. Note that revision "A" boards were only sent to beta testers and
were never sold through our web site.
Known Issues:
- Does not (yet) support probing (coming soon)
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support threading
- Does not (yet) support slaved motors
- Does not (yet) support PMDX-126 Expanded Input Mode
**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):
- Firmware version: 0.27.93
- Mach4Hobby versions: build numbers 2114 and higher (tested through 2157)
** WILL NOT run reliably on any build older/lower than 2114 **
New features since Version 0.12.53:
- Updated for Mach4 build 2114 and higher (tbough we recommend running the most
recent Mach4Hobby release, which is build 2157 as of this release date)
- Add PWM spindle speed control on pins 14 or 16 (see plug-in configuration
dialog on the "Feature Config" tab). SEE WARNING BELOW!
- Supports Mach4 configurations where this plug-in is not the motion controller
(i.e. the PMDX-SmartBOB-USB can act as an I/O device without driving
step and direction to motors)
- Plugin configuration allows the user to change the motion buffer lengths
in case they see "buffer underrun" errors (see new "Performance Settings" tab)
- Plugin configuration dialog has button to restore default debug settings
- Plug-in allows Mach4 to come out of reset (i.e. "enabled") if the plug-in is
disabled and there is no device connected. Previous versions required a
SmartBOB-USB to be connected even if the plug-in was disabled, or the plug-in
would prevent Mach4 from going into the "enable" state.
- The installer log file copied to the Plugins\PMDX-SmartBOB-USB directory in
case there are installer issues.
- The installer checks if Mach4 is running or a SmartBOB-USB is plugged in and
prompts the user to close Mach4 and unplug the SmartBOB-USB.
- The installer now presents a license before proceding with the installation
and stores a copy of the license in the Plugins\PMDX-SmartBOB-USB directory.
Bug Fixes Since Version 0.12.53:
- Fix motion buffer underrun issue when Mach4 is "Step jog mode" and the selected
step size is "small" (usually 0.010 or 0.001, depending on your machine
configuration).
- Increased default motion buffer length to avoid "buffer underrun" errors
- Fixed installer bug that did not install the USB Virtual COM Port driver
- Fixed/updated error reporting from device driver interface
- Removed Mach4 macro files from sample Mach4 profile (they did not work and
interfered with PWM spindle operation).
- Only validates motor tuning parameters when selected as the motion device
Known Issues:
- Does not (yet) support probing (coming soon)
- Does not (yet) support coordinated I/O (via M62 and M63 codes)
- Does not (yet) support threading
- Does not (yet) support slaved motors
- Does not (yet) support PMDX-126 Expanded Input Mode
**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!