Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. Adam_S
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 13
    • Best 1
    • Controversial 0
    • Groups 0

    Adam_S

    @Adam_S

    1
    Reputation
    1
    Profile views
    13
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Adam_S Unfollow Follow

    Best posts made by Adam_S

    • Help Understanding M671 Z-Manual Adjustment

      I upgraded to 1.19 last night, and started playing with the M671 feature, in hopes of making leveling easier on myself. However, I seem to have gotten lost along the way, and hope those wiser than I can explain things.

      I have a CoreXY with a 300x300mm 8mm thick aluminum bed, with 4x interface/leveling holes (yes, I know, 4 points is bad. I didn't know better at the time). My Z is driven by 2x leadscrews belted to be driven by a single stepper. I'm using a DC42 IR probe at current for Z probing.

      In my config.g, I added in M671 X25:25:275:275 Y75:225:225:75 S1.0 P0.5 ; Define bed screw locations with maximum correction and thread pitch.
      (I know that the S1.0 and P.05 are the defaults, and technically not needed, but figured having them there wouldn't hurt, and would remind me they are needed if anything shifts from the defaults). Since I have only a single Z motor, I do not have an M584 defined.

      I configured my Bed.G file with:
      [c]G28
      G30 P0 X25 Y80 Z-99999
      G30 P1 X25 Y280 Z-99999
      G30 P2 X275 Y280 Z-99999
      G30 P3 X275 Y80 Z-99999
      G30 P4 X150 Y150 Z-99999 S4
      [/c]

      The probing locations (from memory ATM), were chosen to be very close to the bed level screws, but not directly on top, as they are black, and have a different IR response than my bed itself. The final probe point at bed center is because it was previously there (pre 1.19), and I couldn't think of a good reason to remove it.

      Executing a G32 runs the Bed.G, and then brings up the height map as I'm used to, and displays offset values for each of the probed points. However, it does not offer any sort of feedback (as far as I can tell) about the number of turns needed for height correction.

      So, that brings me to the question part of this narrative-is the printout of turns per screw adjustment not fully baked in yet? If not, where is it hiding that I'm missing it?
      On the height map, and the G32 results in the console-are the reported Z values for the bed equation the adjustment to be applied, or the height of the probed point? If it is the height, and not the calculated adjustment needed (in mm), where is the adjustment needed reported out?
      Thanks!

      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S

    Latest posts made by Adam_S

    • RE: Best way to implement bed level adjustment/nozzle offset?

      I just had another thought…

      HomeAll.g stores the configuration for the inductive probe (as does config.g, just for safety sake). Homez.g stores the configuration for the nozzle offset switch.

      Then, using bed.g

      [[language]]
      M561 ; clear any bed transform
      ; Probe the bed at 4 points
      G28
      G30 P0 X10 Y10 H0.33 Z-99999
      G30 P1 X10 Y290 H0.33 Z-99999
      G30 P2 X290 Y290 H0.33 Z-99999
      G30 P3 X290 Y10 H0.33 Z-99999 S4
      
      ; Nozzle offset home
      G28 Z
      
      
      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S
    • RE: Best way to implement bed level adjustment/nozzle offset?

      @dc42:

      Can you use the inductive sensor to level the bed using the Z motors, then use the switch to see an accurate Z=0 level? You can switch between different Z probes using M558.

      That could be just the trick. Would it be able to be automated in the bed.g file, or would we really need to drive this via macro? I'm unsure how much shifting we can get away with in the ancillary files versus the config.g.

      What I'd envision is have the inductive probe declared in the config.g, and then the nozzle offset probe in the bed.g. When the bed compensation routine is run (thus invoking bed.g), it uses the declared inductive probe from config.g to probe the bed, and then level the gantry. Once this is done, while still in the bed.g, m558 is run to switch to the nozzle probe, trigger it, and set the nozzle offset.

      If this is possible, would you have a suggested layout for setting that up? If I'm going about it in my head incorrectly, would you mind setting me straight?

      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S
    • RE: Best way to implement bed level adjustment/nozzle offset?

      @whosrdaddy:

      Looking good!

      Did you read this item in the wiki?
      https://www.duet3d.com/wiki/Bed_levelling_using_multiple_independent_Z_motors

      I did, and the leveling aspect as described in the Wiki works perfectly. What I'm wanting to incorporate is the nozzle offset switch. This would allow for nozzle offset to be done automatically, no matter the temperature the nozzle is set at, or even if you swapped from a V6 to a Volcano…

      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S
    • Best way to implement bed level adjustment/nozzle offset?

      There are several of us working on building a new-design CoreXY printer, the Voron 2. It makes use of a totally stationary bed, and moving gantry.

      In operation, it has an inductive probe for probing the bed itself, and a mechanical switch to calculate nozzle offset. Once bed probing is completed, it uses it's Z motors to adjust the gantry to bring it level. You can see how this is done using a RAMPS board in the following video.

      https://www.youtube.com/watch?v=wRdF0ZTIliY&t=30s

      (It's running the probe/gantry level sequence multiple times in this video)

      I've poked at this in RRF, and there hasn't been a good way I've determined as of yet. We can use the inductive probe for determining bed level, and homing, but that doesn't calculate nozzle offset.

      Is there something I'm missing here on how to implement this?

      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S
    • RE: New firmware 1.20beta1

      Briefly tested the 4-point math this AM. It seems to be far happier and actually gives realistic numbers, as opposed to previous which would be way off if things needed anything more than a marginal adjustment. Will mess with it more tonight.

      posted in Firmware installation
      Adam_Sundefined
      Adam_S
    • RE: Help Understanding M671 Z-Manual Adjustment

      Playing with this more, I really do think that the computation for manual adjustment needs to be three screws only.

      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S
    • RE: Help Understanding M671 Z-Manual Adjustment
      [G32 Results]
      11:47:48AM Bed probe heights: -0.213 -0.219 0.461 1.087 0.323, mean 0.288, deviation from mean 0.485
      Manual corrections required: 0.51 turn up (-0.25mm) 0.43 turn up (-0.21mm) 0.48 turn up (-0.24mm) 0.61 turn up (-0.30mm)
      11:47:24AM G32
      Bed probe heights: -0.213 -0.219 0.461 1.087 0.323, mean 0.288, deviation from mean 0.485
      
      
      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S
    • RE: Help Understanding M671 Z-Manual Adjustment
      [bed.g]
      G30 P0 X15 Y75 H0 Z-99999
      G30 P1 X15 Y225 H0 Z-99999
      G30 P2 X290 Y225 H0 Z-99999
      G30 P3 X290 Y75 H0 Z-99999 
      G30 P4 X150 Y150 H0 Z-99999 S-1 ; done to check calculations at DC42's request.
      
      G30 P0 X15 Y75 H0 Z-99999
      G30 P1 X15 Y225 H0 Z-99999
      G30 P2 X290 Y225 H0 Z-99999
      G30 P3 X290 Y75 H0 Z-99999
      G30 P4 X150 Y150 H0 Z-99999 S4
      
      
      [homeall.g]
      ; Relative positioning
      G91
      ; Lift Z
      G1 Z5 F6000
      ; Move quickly to X axis endstop and stop there (first pass)
      G1 X305 F1800 S1
      ; Go back a few mm
      G91
      G1 X-5 F6000
      G90
      ; Move slowly to X axis endstop once more (second pass)
      G1 X305 F360 S1
      ; Move quickly to Y axis endstop and stop there (first pass)
      G1 Y305 F1800 S1
      ; Go back a few mm
      G91
      G1 Y-5 F6000
      G90
      ; Move slowly to X axis endstop once more (second pass)
      G1 Y305 F360 S1
      ; Absolute positioning
      G90
      ; Go to near front and home Z
      G1 X30 Y30 F6000; (150,180.5 for probe at dead center)
      G30
      
      

      [c]M671 X10:10:295:295 Y75:225:225:75 S1.0 P0.5[/c]

      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S
    • RE: Help Understanding M671 Z-Manual Adjustment

      I think altering the calculation code to leave one screw alone may be well advised, if for nothing more than to have one less point for an end user to over/undershoot and further skew things.

      I'll rerun this all here in a bit when I go home for lunch, and post up my homeall.g, bed.g (with your suggested tweak), and M671 line.

      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S
    • RE: Help Understanding M671 Z-Manual Adjustment

      Adding on to this-I run G32, and get the direct corrections. I apply them (or as close to as I can by hand…sort of hard to dial precisely 0.41 of a turn). Rerun G32, and the results say to apply basically the same correction again. I know 4-point math is wonky, and I'm not discounting I'm doing something wrong.

      As an example:
      8:48:18 PMManual corrections required: 0.44 turn up (-0.22mm) 0.36 turn up (-0.18mm) 0.41 turn up (-0.20mm) 0.53 turn up (-0.27mm)
      8:46:47 PMManual corrections required: 0.46 turn up (-0.23mm) 0.40 turn up (-0.20mm) 0.45 turn up (-0.22mm) 0.55 turn up (-0.28mm)

      posted in Tuning and tweaking
      Adam_Sundefined
      Adam_S