PDA

View Full Version : Weird Mach3 + CSMIO/IP-M Probe Problem



matt-b2
01-12-2017, 12:18 AM
Hi,

Has anyone had any luck getting Mach3 with a CSMIO/IP-M controller to work with a probe properly?

The probe I'm using works fine, G31 and CS Lab's M31 macro (http://en.cs-lab.eu/technical-support/download/addons-macros/m31-as-an-alternative-to-g31/) both work in that both cause my CNC router to move until either the probe triggers or the specified distance is reached.

What does not work is, variables 2000-2002 (which are supposed to contain the X, Y & Z coordinates of the probe event) do not update properly. For some reason, variable 2000 updates consistently with the Y coordinate (when it is supposed to contain the X coordinate), but variables 2001 and 2002 either contain zero or nonsensical values.

Mach3 and the CSMIO/IP-M firmware are both up-to-date (R3.043.066 and V2.91 respectively). I have the probe tip diameter set on Mach3's Settings screen.

Ideas/suggestions much appreciated.

Matt.

Neale
01-12-2017, 09:26 AM
I'm using a CSMIO-IP/M and Mach3 very successfully and probing works beautifully. However, I had a lot of problems when I first started. One secret (well, not so secret as it's described quite a lot but only if you know where to look!) is to upgrade Mach3 to an earlier version. I can't remember now if I'm using .028 or .043. There is s problem with the way that the CSMIO uses some undocumented features of Mach3 which were "fixed" in later versions and promptly broke CSMIO probing.

I have a set of three macros to do simple Z touch-off, touch-off portable plate plus touch-off fixed plate for first tool in multiple operations, and touch-off fixed plate for subsequent operations. Happy to pass these on, although there's nothing very original in them (all based on other people's work but tweaked to use CSMIO firmware probing). They work fine when used during m6 tool change operations, which is where I first started seeing issues myself.

Because of these problems, you have to be careful if you want to use add-on screensets which contain probing macros. I've modified the standard 1024 screenset to add buttons for my macros, but I haven't done anything for XY probing on a regular basis. However, I did use variations of my Z touch-off macro for both X and Y while I was setting up the machine and I know that probing is fine in those axes as well.

You might find this (http://www.calypsoventures.com/forums/viewtopic.php?f=9&t=75) interesting.

matt-b2
01-12-2017, 11:01 PM
Hi Neale,

Thanks for your post. I'll try downgrading to .028 - I think I was running .043 before I upgraded to the latest version. Failing that, yeah, I'm not particularly happy with my Mach3+CSMIO set up. This probe issue is just another one to add to the list. Maybe it is time to sort out a new control system - Kind of disruptive though.

Cheers,
Matt.

Neale
02-12-2017, 12:13 AM
I've been happy with my setup, I have to say - until the last few days. I've had some random "lost connection to CSMIO" events, although fortunately never while I have been cutting. It's a pain because I seem to have to stop and restart Mach3 to reset things, then need to reload gcode, rehome, recheck work zero, etc. I'm slowly drifting towards the UC300ETH plus decent BOB. At least that would mean software which is current and supported.

I've just checked - I believe that I am running .028, which probably means that I saw problems with .043. Might be worth trying, at least as a stop-gap until you find a plan B. I would have gone LinuxCNC, which I ran with my previous router, except that at the time I had to make a decision, LCNC did not support master+slave axes and the choice of motion control hardware seemed over-complex and only available from the US. I think that both these things have now changed.

Ger21
02-12-2017, 12:40 AM
When you use the M31 macro, is it displaying the touch coordinates in the status bar?If it is, then GetVar is working, as the M31 uses GetVar() get the touch point, then writes it to the status bar.

matt-b2
02-12-2017, 12:49 AM
Yes, values are being displayed, they're just not the right values with the exception that the Y coordinate is correct, but stored in Variable 2000 instead of 2001. I get the same problem whether using G31 or M31 and whether interrogating the variables using GetVar or the variable display window (can't remember its proper name).

Ger21
02-12-2017, 12:58 AM
Sorry, I should have went back and re-read your first post.

Chaz
03-12-2017, 12:08 PM
Ive personally invested in a few CS Labs products in the past and recommended them. I dont think however Ill continue down this route. Whilst it may be one of the best Mach3 setups, Mach3 inherently is not the route I want to follow for stable control of machines.

Too many issues depending on PC stability / OS etc. Its nice as a starting point but reaching end of life at this stage me thinks.

Davek0974
10-04-2018, 09:01 PM
Hi all, jumping in a bit late on this thread but just hit a similar issue.

Been trying probing on my mill running Mach3 and IP/A controller, first i tried the M31 option but built the M31 code into my own simple Y+ edge macro, it worked once but stopped working, I then tried a more complex pocket macro and that failed immediately with a scripter compile error despite the editor saying it was ok

Today i tried the G31 style and nothing will work now - a G31 call gives no motion at all and as soon as the code gets to the retract line following, it spits out an error and Mach goes into reset. The message box just says no edge was detected and the error message thought my machine was not referenced to home and soft limits was blocking the move.

IIRC i am on version 062 and really didn't want to downgrade because i heard rigid tapping was broken on earlier versions especially the 028 that CS labs favour??

Is this the end of Mach3 for me??

I want to try CS labs software but its still in beta.

Any ideas

Neale
11-04-2018, 08:50 AM
As I remember, I managed to get probing working with whatever the latest version of Mach3 was around when I installed everything - could well have been .062. You are using the CSMIO probing macros, I assume? The CSMIO firmware has built-in probing code so Mach3 itself doesn't control the actual operation.

What I found was that while probing itself worked, it all fell apart when you did things like tool height reset during an M6 tool change. That's when I went back to .028, as I didn't need any of the things in later versions. Although I only use Z probing at the moment, I did throw some temporary macros together for X and Y as well during setup and they all seemed to work fine. As it happens, I spent some time last night doing a proper job on my x/y macros as I want to use them with the Mach3 probing page for my next job on the router and I wasn't expecting any problems - I'm just using my z macro with z crossed out and x or y inserted (in crude terms!). That's with an IP/M.

It's frustrating to have to work around this kind of thing, though. If i have any IP/M problems, it will probably tip me over the edge to UC300/UB-1/UCCNC, which should be hardware-compatible with the IP/M (24V signalling, etc) plus dual-motor homing and supported software! At the moment, though, it's hanging together (with manual dual-homing...) Don't know what the IP/A replacement is, though, if you need analogue servo driving.

Davek0974
11-04-2018, 08:58 AM
Thanks

from the error message it appears the controller hijacks the G31 as well so not much difference in G31 & M31.

I will try again today but not holding out much hope, CSL support is so slow as to be annoying as well, beginning to regret the purchase a bit :(

Yes, analog servo drives 10-0-10v control.

breaky89
14-04-2018, 09:36 PM
Hi,

Has anyone had any luck getting Mach3 with a CSMIO/IP-M controller to work with a probe properly?

The probe I'm using works fine, G31 and CS Lab's M31 macro (http://en.cs-lab.eu/technical-support/download/addons-macros/m31-as-an-alternative-to-g31/) both work in that both cause my CNC router to move until either the probe triggers or the specified distance is reached.

What does not work is, variables 2000-2002 (which are supposed to contain the X, Y & Z coordinates of the probe event) do not update properly. For some reason, variable 2000 updates consistently with the Y coordinate (when it is supposed to contain the X coordinate), but variables 2001 and 2002 either contain zero or nonsensical values.

Mach3 and the CSMIO/IP-M firmware are both up-to-date (R3.043.066 and V2.91 respectively). I have the probe tip diameter set on Mach3's Settings screen.

Ideas/suggestions much appreciated.

Matt.

Dear Matt,

I use also the CNC controller CSMIO IP-M together with Mach 3 in the newest version and the last CSMIO firmware.
For tool probing I got always the Y value for var(2002). I contacted CS-Lab support for help but the answer was that I do not understand the macro.
I was shure to use the macro right and tried everything to find the fault. So I checked the connection of the motors and the channels.
That was the solution and I changed my wiring.
I connected the x-axis to Channel 0, the y-axis to channel 1 and the z-axis to channel 3. After that I tried the tool length measurement again and got the
right values.

I hope this information will help you.

Phil

Davek0974
14-04-2018, 09:51 PM
Yes XYZ is channel 0-1-2 and so on.

I have my probe working well now - the secret is to allow some time in the macro so pad it with "Sleep(100)" lines after a DRO update etc also it ONLY works with soft limits turned off - i just made the macro turn limits off then on when the move was made.

Its going well now.

Neale
14-04-2018, 11:07 PM
Yes, that's a bit of a gotcha - that "sleep" after a DRO update is absolutely vital, as is the "while moving" loop so you wait for the machine to reach target position before carrying out the next action. However, my version works fine with soft limits, so not sure what's going on there.

Davek0974
15-04-2018, 07:54 AM
Yes, its only a 0.1s wait and it needs going after every DRO update, i also padded it after every DRO read, plus the totally essential while-ismoving loop on ANY call that creates movement of an axis.

Doing this likely added 5s to the macro run time but thats no bother if its what it takes to make it work 100%

The soft limits thing i'm going to play with again - it seems very version dependant so now I have the timings sorted, ill try leaving it on and see what occurs. CSLABS said they had never heard of it BUT they always run v022 so that may be why.

gixi
09-07-2019, 11:12 AM
Hello everybody !

My DIY router is 99% finished but setting the Z probe proves to be a pain in the … .
After 3 weeks of reading, testing and so on, I manage to write a script based on M31 example from CSMIO site.
All seems to work fine except the fact that I could not reset the z value to zero in Mach3 screen. I give a try to G92 (it’s working) but there are too many warnings of how I should use this g code.
Any suggestion to solve this problem will be much appreciated.

This is part of my code:
If(GetUserDRO(1510) = 1) Then
Message("M31 Probe hit.")
Call SetDro (2, ZOffset)
Code "(Z zeroed)"
Sleep(1000)
Code "G0 Z20 F50"
Code "G4 P10"
Code "G0 Z-10 F50" (Touch plate has 10mm)

Chaz
09-07-2019, 04:34 PM
Hello everybody !

My DIY router is 99% finished but setting the Z probe proves to be a pain in the … .
After 3 weeks of reading, testing and so on, I manage to write a script based on M31 example from CSMIO site.
All seems to work fine except the fact that I could not reset the z value to zero in Mach3 screen. I give a try to G92 (it’s working) but there are too many warnings of how I should use this g code.
Any suggestion to solve this problem will be much appreciated.

This is part of my code:
If(GetUserDRO(1510) = 1) Then
Message("M31 Probe hit.")
Call SetDro (2, ZOffset)
Code "(Z zeroed)"
Sleep(1000)
Code "G0 Z20 F50"
Code "G4 P10"
Code "G0 Z-10 F50" (Touch plate has 10mm)

Get Ger's Screenset 2010 and just his probe routines.

Davek0974
09-07-2019, 04:45 PM
Hello everybody !

My DIY router is 99% finished but setting the Z probe proves to be a pain in the … .
After 3 weeks of reading, testing and so on, I manage to write a script based on M31 example from CSMIO site.
All seems to work fine except the fact that I could not reset the z value to zero in Mach3 screen. I give a try to G92 (it’s working) but there are too many warnings of how I should use this g code.
Any suggestion to solve this problem will be much appreciated.

This is part of my code:
If(GetUserDRO(1510) = 1) Then
Message("M31 Probe hit.")
Call SetDro (2, ZOffset)
Code "(Z zeroed)"
Sleep(1000)
Code "G0 Z20 F50"
Code "G4 P10"
Code "G0 Z-10 F50" (Touch plate has 10mm)

Her is one of my probe macros, there might be something in there to help, I tend to annotate a lot ;) Its for CSMIO IP/A under Mach3


Sub Main()
'***X- Probing Macro
'***Written by and for DD Metal Products Ltd 2018
'***Metric units only in use
'***Using CSLABS Controller M31 macro code
'***Axis scaling not expected or handled
'***Probe offset must be calibrated at "Slow Feedrate" value and set in "Probe Tip Dia" DRO first
'***Probe Z axis position is set by user first to correct height
'***Probe Y position must be within the value set in "Max Distance" DRO

Dim FeedFast, FeedSlow
Dim ProbeOffset
Dim MaxDistance
Dim ZClearance
Dim StepBack
Dim X_SENSE
Dim Y_SENSE
Dim Z_SENSE

'***Load Variables From Screen DROs
FeedFast = GetUserDRO(1821)
Sleep (100)
FeedSlow = GetUserDRO(1822)
Sleep (100)
MaxDistance = GetUserDRO(1823)
Sleep (100)
ProbeOffset = GetUserDRO(1829)
Sleep (100)
ZClearance = GetUserDRO(1830)
Sleep (100)
StepBack = GetUserDRO(1824)
Sleep (100)

'***Error checks
If GetOemLed(16)<>0 Then '***Check for machine coordinates setting
Message "Please Change To Working Coordinates"
Exit Sub
End If

If GetOemLed(825)<>0 Then '***Probe is not connected or cable broken
Message "Probe Connection Error"
Exit Sub
End If

If StepBack=0 Then '***Stepback not set
Message "Please enter a step-back value"
Exit Sub
End If

If ABS(GetOEMDRO(85))<ZClearance Then '***Z axis too high for retract
Message "Spindle too high for clearance move"
Exit Sub
End If

'***Start Probing
Message "Probing In X- Direction"
Sleep (100)

Code "F" & Feedfast
Sleep (100)

SetUserDRO(1511, 0-MaxDistance) '***X Axis
Sleep (100)
SetUserDRO(1512, 0) '***Y Axis
Sleep (100)
SetUserDRO(1513, 0) '***Z Axis
Sleep (100)

Call ProbeSurface()

X_SENSE = GetVar(2000)
Sleep (100)

'***Step back
Code "G91 G0 X" & StepBack
While IsMoving()
Sleep(50)
Wend

Code "F" & FeedSlow
Sleep (100)

SetUserDRO(1511, 0-(StepBack+2)) '***X Axis
Sleep (100)
SetUserDRO(1512, 0) '***Y Axis
Sleep (100)
SetUserDRO(1513, 0) '***Z Axis
Sleep (100)

Call ProbeSurface()

X_SENSE = GetVar(2000)
Sleep (100)

'***Step back
Code "G91 G0 X" & StepBack
While IsMoving()
Sleep(50)
Wend

'***Raise the spindle to clear part
Code "G91 G0 Z" & ZClearance
While IsMoving()
Sleep(50)
Wend

'***Move Y axis to edge and zero the DRO
Code "G90 G0 X" & X_SENSE - ProbeOffset
While IsMoving()
Sleep(50)
Wend
SetOemDRO(800,0)
Sleep(100)

'***Retract the spindle fully
'Code "G53 G0 Z0"
'While IsMoving()
' Sleep(50)
'Wend

'***Make sure we are in G90 again
Code "G90"

Message "X- Probing Complete"

End Sub







Sub ProbeSurface()

NotifyPlugins(10103)

SetUserDRO(1510, 0)
While(GetUserDRO(1510) = 0)
Sleep(50)
NotifyPlugins(10104)
Wend

If(GetUserDRO(1510) = 2) Then '***Probing error - no detection in distance = abort
Message "Probing Error - No Surface Found"
End
End If

End Sub

Ger21
10-07-2019, 04:47 PM
Get Ger's Screenset 2010 and just his probe routines.

I've had several users that had issues with CS Labs controllers and the 2010 Screenset.

Chaz
10-07-2019, 04:49 PM
I've had several users that had issues with CS Labs controllers and the 2010 Screenset.

Mine works OK. Ive not use my machine for a while now but had no issues with it.

Davek0974
10-07-2019, 06:10 PM
I've had several users that had issues with CS Labs controllers and the 2010 Screenset.

Yep, in particular do not use the wizards, instant trouble.

In the end i made up my own custom screen set with just the functionality i needed.

gixi
11-07-2019, 12:16 PM
Yep, in particular do not use the wizards, instant trouble.

In the end i made up my own custom screen set with just the functionality i needed.

That’s the whole ideea! For me, a simple piece of metal to put on the working surface is more than enough. I’m still using the MechMate router with no problem but with this fancy CSMIO controller all became a huge problem. On the other hand, I like their products and I don’t want to go back to PMDX stuff.

Davek0974
11-07-2019, 12:39 PM
You can use the wizards but they need to be converted into Mach screens - something in the CSMIO chain does not like pop-up windows, no idea why but after getting rid, my system worked perfectly

The 2010 screenset is excellent, just does not play 100% with CSMIO

Ger21
11-07-2019, 01:00 PM
If I owned a CS Labs board, I'd switch over to their SIM CNC software.

Davek0974
11-07-2019, 01:05 PM
If I owned a CS Labs board, I'd switch over to their SIM CNC software.

Agree.

I keep following the development, have the trial license too. It still does not do enough to replace my custom Mach3 setup though, yet.

I have lots of custom stuff with tool length comp being passed to the knee axis and so on. Last time i checked SimCNC still didn't offer that level of tweak-ability ;)

For a standard setup though I would go straight for it.