Home › Forums › TinyG › TinyG Support › Z probe moves Z axis up instead of down
Tagged: Problems Probing
- This topic has 39 replies, 7 voices, and was last updated 5 years, 2 months ago by mnesarco.
-
AuthorPosts
-
March 31, 2019 at 7:51 am #11355SteveDMember
Have you read the previous comments in this thread? Reply #10844 in particular.
Regards,
SteveMarch 31, 2019 at 10:04 pm #11358kiwigrantMemberYou know you have have you Z Polarity set to reverse.
[3ma] m3 map to axis 2 [0=X,1=Y,2=Z…]
[3sa] m3 step angle 1.800 deg
[3tr] m3 travel per revolution 8.0000 mm
[3mi] m3 microsteps 8 [1,2,4,8]
[3po] m3 polarity 1 [0=normal,1=reverse]Not sure if this is a requirement of your machines geometry.
sending a -z move should send the tool down during normal operation.
Now I have observed some anomalous behavior with the G38.2 command and the direction of travel.
Reading the Touch plate widget code when you issue a G38.2 z-20 F75 command. The probe should go down if only if you are above MCS or G28.3 z-20 ie > z-20. If you are lower then G28.3 MCS say at MCS -30 when you issue a G38.2 z-20 F75 the probe will go up.
So it seems that the probing direction is set by your relative position to MCS and z-20. I believe this is the correct behaviour in the TinyG.
There are 2 ways to work around this.
1. Zero out MCS to zero as you begin the probing operation/. This isnt a good idea really because itll screw up other operation that are dependent on MCS. but at a pinch this will get your probing operation to work as desired in the right direction.2. Set the G38.2 command with a z value that is appropriate for where you are currently at using the MCS… ie MCS current Z position – z20. This is not how the code is currently set up to do.
3. Set the Z value to a -ve number that you are unlikely to be near. This is also not preferred because this could drive the machine to crash if not equipped with limit switches and if the probe contact fails. This is not how the code is currently set up to do.
Right now I have the Supertouch plate widget code open as Im adding functions to allow us to probe +ve and -Ve on X & Y. Ill see if I can add the preferred behaviour I described in option 2.
March 31, 2019 at 10:40 pm #11359SteveDMemberPretty sure G38.2 uses G53, not current MCS.
April 1, 2019 at 5:47 am #11360cmcgrath5035ModeratorCorrect, G38.2 uses G53.
Waiting on stevenchub to provide full parameter set to see if G54 offset is causing the upward movement.April 1, 2019 at 9:08 am #11361steverichabMemberThanks for the help!.
The G28.2 command still sends the s axis up instead of down weather I run it from the command line or the Touch Plate widget in ChilliPeppr.
Again my process is simple: position the tool 5 mm above the work surface at the origin of the work piece, set G54 to zero and run the touch plate widget.Below is my current config and everything else on the cnc is working as expected except the “G28.2 Z-20 F25” command sends the z axis up after zeroing G54.
Could this be a TinyG firmware issue or is my config wrong?
// Response from $$ Command
[fb] firmware build 440.20
[fv] firmware version 0.97
[hp] hardware platform 1.00
[hv] hardware version 8.00
[id] TinyG ID 5X3848-XFL
[ja] junction acceleration 100000 mm
[ct] chordal tolerance 0.0100 mm
[sl] soft limit enable 0
[st] switch type 1 [0=NO,1=NC]
[mt] motor idle timeout 0.50 Sec
[ej] enable json mode 0 [0=text,1=JSON]
[jv] json verbosity 4 [0=silent,1=footer,2=messages,3=configs,4=linenum,5=verbose]
[js] json serialize style 1 [0=relaxed,1=strict]
[tv] text verbosity 1 [0=silent,1=verbose]
[qv] queue report verbosity 1 [0=off,1=single,2=triple]
[sv] status report verbosity 1 [0=off,1=filtered,2=verbose]
[si] status interval 250 ms
[ec] expand LF to CRLF on TX 0 [0=off,1=on]
[ee] enable echo 0 [0=off,1=on]
[ex] enable flow control 2 [0=off,1=XON/XOFF, 2=RTS/CTS]
[baud] USB baud rate 5 [1=9600,2=19200,3=38400,4=57600,5=115200,6=230400]
[net] network mode 0 [0=master]
[gpl] default gcode plane 0 [0=G17,1=G18,2=G19]
[gun] default gcode units mode 1 [0=G20,1=G21]
[gco] default gcode coord system 1 [1-6 (G54-G59)]
[gpa] default gcode path control 2 [0=G61,1=G61.1,2=G64]
[gdi] default gcode distance mode 0 [0=G90,1=G91]
[1ma] m1 map to axis 0 [0=X,1=Y,2=Z…]
[1sa] m1 step angle 1.800 deg
[1tr] m1 travel per revolution 4.0032 mm
[1mi] m1 microsteps 8 [1,2,4,8]
[1po] m1 polarity 1 [0=normal,1=reverse]
[1pm] m1 power management 3 [0=disabled,1=always on,2=in cycle,3=when moving]
[2ma] m2 map to axis 1 [0=X,1=Y,2=Z…]
[2sa] m2 step angle 1.800 deg
[2tr] m2 travel per revolution 4.0032 mm
[2mi] m2 microsteps 8 [1,2,4,8]
[2po] m2 polarity 0 [0=normal,1=reverse]
[2pm] m2 power management 3 [0=disabled,1=always on,2=in cycle,3=when moving]
[3ma] m3 map to axis 2 [0=X,1=Y,2=Z…]
[3sa] m3 step angle 1.800 deg
[3tr] m3 travel per revolution 4.0032 mm
[3mi] m3 microsteps 8 [1,2,4,8]
[3po] m3 polarity 0 [0=normal,1=reverse]
[3pm] m3 power management 3 [0=disabled,1=always on,2=in cycle,3=when moving]
[4ma] m4 map to axis 3 [0=X,1=Y,2=Z…]
[4sa] m4 step angle 1.800 deg
[4tr] m4 travel per revolution 360.0000 mm
[4mi] m4 microsteps 8 [1,2,4,8]
[4po] m4 polarity 0 [0=normal,1=reverse]
[4pm] m4 power management 3 [0=disabled,1=always on,2=in cycle,3=when moving]
[xam] x axis mode 1 [standard]
[xvm] x velocity maximum 800 mm/min
[xfr] x feedrate maximum 800 mm/min
[xtn] x travel minimum 0.000 mm
[xtm] x travel maximum 270.000 mm
[xjm] x jerk maximum 20 mm/min^3 * 1 million
[xjh] x jerk homing 40 mm/min^3 * 1 million
[xjd] x junction deviation 0.0500 mm (larger is faster)
[xsn] x switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[xsx] x switch max 2 [0=off,1=homing,2=limit,3=limit+homing]
[xsv] x search velocity 800 mm/min
[xlv] x latch velocity 800 mm/min
[xlb] x latch backoff 10.000 mm
[xzb] x zero backoff 1.000 mm
[yam] y axis mode 1 [standard]
[yvm] y velocity maximum 800 mm/min
[yfr] y feedrate maximum 800 mm/min
[ytn] y travel minimum 0.000 mm
[ytm] y travel maximum 365.000 mm
[yjm] y jerk maximum 20 mm/min^3 * 1 million
[yjh] y jerk homing 40 mm/min^3 * 1 million
[yjd] y junction deviation 0.0500 mm (larger is faster)
[ysn] y switch min 1 [0=off,1=homing,2=limit,3=limit+homing]
[ysx] y switch max 2 [0=off,1=homing,2=limit,3=limit+homing]
[ysv] y search velocity 800 mm/min
[ylv] y latch velocity 800 mm/min
[ylb] y latch backoff 10.000 mm
[yzb] y zero backoff 6.000 mm
[zam] z axis mode 1 [standard]
[zvm] z velocity maximum 800 mm/min
[zfr] z feedrate maximum 800 mm/min
[ztn] z travel minimum 0.000 mm
[ztm] z travel maximum 115.000 mm
[zjm] z jerk maximum 20 mm/min^3 * 1 million
[zjh] z jerk homing 40 mm/min^3 * 1 million
[zjd] z junction deviation 0.0500 mm (larger is faster)
[zsn] z switch min 0 [0=off,1=homing,2=limit,3=limit+homing]
[zsx] z switch max 1 [0=off,1=homing,2=limit,3=limit+homing]
[zsv] z search velocity 300 mm/min
[zlv] z latch velocity 100 mm/min
[zlb] z latch backoff 5.000 mm
[zzb] z zero backoff 1.000 mm
[aam] a axis mode 3 [radius]
[avm] a velocity maximum 230400 deg/min
[afr] a feedrate maximum 230400 deg/min
[atn] a travel minimum -1.000 deg
[atm] a travel maximum -1.000 deg
[ajm] a jerk maximum 5760 deg/min^3 * 1 million
[ajh] a jerk homing 11520 deg/min^3 * 1 million
[ajd] a junction deviation 0.0500 deg (larger is faster)
[ara] a radius value 0.1990 deg
[asn] a switch min 0 [0=off,1=homing,2=limit,3=limit+homing]
[asx] a switch max 0 [0=off,1=homing,2=limit,3=limit+homing]
[asv] a search velocity 600 deg/min
[alv] a latch velocity 100 deg/min
[alb] a latch backoff 5.000 deg
[azb] a zero backoff 2.000 deg
[bam] b axis mode 0 [disabled]
[bvm] b velocity maximum 3600 deg/min
[bfr] b feedrate maximum 3600 deg/min
[btn] b travel minimum -1.000 deg
[btm] b travel maximum -1.000 deg
[bjm] b jerk maximum 20 deg/min^3 * 1 million
[bjd] b junction deviation 0.0500 deg (larger is faster)
[bra] b radius value 1.0000 deg
[cam] c axis mode 0 [disabled]
[cvm] c velocity maximum 3600 deg/min
[cfr] c feedrate maximum 3600 deg/min
[ctn] c travel minimum -1.000 deg
[ctm] c travel maximum -1.000 deg
[cjm] c jerk maximum 20 deg/min^3 * 1 million
[cjd] c junction deviation 0.0500 deg (larger is faster)
[cra] c radius value 1.0000 deg
[p1frq] pwm frequency 2000 Hz
[p1csl] pwm cw speed lo 0 RPM
[p1csh] pwm cw speed hi 12000 RPM
[p1cpl] pwm cw phase lo 0.000 [0..1]
[p1cph] pwm cw phase hi 1.000 [0..1]
[p1wsl] pwm ccw speed lo 0 RPM
[p1wsh] pwm ccw speed hi 12000 RPM
[p1wpl] pwm ccw phase lo 0.000 [0..1]
[p1wph] pwm ccw phase hi 1.000 [0..1]
[p1pof] pwm phase off 0.000 [0..1]
[g54x] g54 x offset 100.000 mm
[g54y] g54 y offset 40.000 mm
[g54z] g54 z offset -40.000 mm
[g54a] g54 a offset 0.000 deg
[g54b] g54 b offset 0.000 deg
[g54c] g54 c offset 0.000 deg
[g55x] g55 x offset 75.000 mm
[g55y] g55 y offset 75.000 mm
[g55z] g55 z offset 0.000 mm
[g55a] g55 a offset 0.000 deg
[g55b] g55 b offset 0.000 deg
[g55c] g55 c offset 0.000 deg
[g56x] g56 x offset 0.000 mm
[g56y] g56 y offset 0.000 mm
[g56z] g56 z offset 0.000 mm
[g56a] g56 a offset 0.000 deg
[g56b] g56 b offset 0.000 deg
[g56c] g56 c offset 0.000 deg
[g57x] g57 x offset 0.000 mm
[g57y] g57 y offset 0.000 mm
[g57z] g57 z offset 0.000 mm
[g57a] g57 a offset 0.000 deg
[g57b] g57 b offset 0.000 deg
[g57c] g57 c offset 0.000 deg
[g58x] g58 x offset 0.000 mm
[g58y] g58 y offset 0.000 mm
[g58z] g58 z offset 0.000 mm
[g58a] g58 a offset 0.000 deg
[g58b] g58 b offset 0.000 deg
[g58c] g58 c offset 0.000 deg
[g59x] g59 x offset 0.000 mm
[g59y] g59 y offset 0.000 mm
[g59z] g59 z offset 0.000 mm
[g59a] g59 a offset 0.000 deg
[g59b] g59 b offset 0.000 deg
[g59c] g59 c offset 0.000 deg
[g92x] g92 x offset 0.000 mm
[g92y] g92 y offset 0.000 mm
[g92z] g92 z offset 0.000 mm
[g92a] g92 a offset 0.000 deg
[g92b] g92 b offset 0.000 deg
[g92c] g92 c offset 0.000 deg
[g28x] g28 x position 0.000 mm
[g28y] g28 y position 0.000 mm
[g28z] g28 z position 0.000 mm
[g28a] g28 a position 0.000 deg
[g28b] g28 b position 0.000 deg
[g28c] g28 c position 0.000 deg
[g30x] g30 x position 0.000 mm
[g30y] g30 y position 0.000 mm
[g30z] g30 z position 0.000 mm
[g30a] g30 a position 0.000 deg
[g30b] g30 b position 0.000 deg
[g30c] g30 c position 0.000 degApril 1, 2019 at 9:56 am #11362SteveDMemberLooks like your G54 Z position is 40mm lower than G53. I.e. When Z is at G54 0 the machine Z is at G53 -40.
G38.2 uses G53 values. G38.2 Z-20 F25 means probe Z to G53 -20. This is 20mm ABOVE the G54 0.
Try this:
0) remove bit from spindle
1) home machine
2) jog 5mm above work surface (40 mm down from the Z home position)
3) zero G54
4) jog up 30 mm (10mm down from the home position)
5) G38.2 Z-20 F25- This reply was modified 5 years, 9 months ago by SteveD.
April 1, 2019 at 1:22 pm #11364steverichabMemberThanks SteveD,
I ran the process you described and the z axis moved down when I ran:
G28.2 Z-20 F25, I guess this means I have a configuration error but I am not with it enough to say what needs to be corrected.Please let me know the next steps to get this touch plate process working consistantly.
Best Regards,
Steverich
April 2, 2019 at 12:33 am #11365SteveDMemberHi Steverich,
I don’t think you have a configuration error.If you read through previous posts in this thread you’ll realise I had the exact same problem about a year ago.
If you watch the Chilipeppr videos closely they appear to be zeroing the machine (G53) co-ords to match the workpiece. Presumably they have G54 set to zero offset from G53. This became obvious to me during one of the PCB milling videos.
I tend to mill sheet materials such as acrylic and MDF. Most times I make cuts completely through the material. In this scenario your zero doesn’t need to be exact, I tend to jog down and rotate the spindle by hand (0.1mm at a time) until the bit is just making contact. Making your CAD tool think the material is a little thicker, say 3.2mm for 3mm material, compensates for minor mistakes and guarantees a clean cut through. A piece of heavy paper, 250GSM is about 0.5mm thick, placed under the workpiece is enough to prevent spoil board damage.
If you’re making PCBs then you will need to probe. I found the electrical connection was a little on the unreliable side and managed to damage several of the cheap Chinese carbide bits. I found a better solution was to glue a test pin (aka pogo pin) into a piece of 1/8″ round styrene instead of using the milling bit as a probe.
Regards,
SteveApril 2, 2019 at 1:11 am #11366kiwigrantMemberSteverich
As Steve D has explained. When you issue a G38.2 z-20. What you really wpshould be saying is. G38.2 current z height in MCS -20. For it to work consistently.
I am currently modifying the super touch plate widget in chilipeppr to accomplish this and got some test code to function properly tonight. Need a week or two to make it more robust and to test more.
October 26, 2019 at 11:21 pm #11631mnesarcoMemberI have this same problem, but after hours of trying make it to work, I think it has nothing to do with G53/G54 coordinate systems nor G90/G91.
In my case, probe cycle works perfectly the first time (after reset or boot) but in subsequent probe attempts, z moves Up instead of down.
What I have found is that the input pin (in my case di5) used for probe (zmin) stuck in true (latch) after the first probe cycle, so in the next attempt g2 reads the probe (di5) as active, so it just skips the cycle and retract (z up movement).
The only way to restore di5 to false is to reset or tap the probe manually few times until it change. After this, the probe cycle works again one time.
I have confirmed that the latch is not a mechanical problem, the voltage read at pin di5 is 3.3v but g2 read it as active. (it is configured as NO so 3.3v is NOT_ACTIVE and 0v is ACTIVE)
I have read somewhere that someone reports the same behavior but I could’n find the source again.
-
AuthorPosts
- You must be logged in to reply to this topic.