Recent Upgrade to DuetWiFi w/ DC42 IR z probe

  • First off I'm very new to this and trying to help my 14 year old son- it's his printer. It's a Rostock Max V2. We had it working really well in the stock configuration.

    With the upgrade I haven't been able to get an autocalibration to work. I followed the instructions for setting up the probe:

    Then I started with the information here:

    During the initial auto calibration the IR probe would already be triggered at points 1 and 7, so I would get error - Error: Z probe already triggered at start of probing move
    I thought making the H adjustments in the Bed.g file( see below) as recommended might help, but it didn't. The probe is still triggered before reaching the probe point at 1 and 7.

    Mechanically I believe the printer to be fine as we were printing very well before the upgrade. As a reference using digital level, the bed is .02. The towers are
    X=89.7 Y=89.4 Z=89.5.

    I could really use some help. Thanks

    ; Auto calibration routine for SeeMeCNC Rostock MAX V2
    ; About the G30 S parameter
    ; Used to specify what calibration computation to perform.
    ; S=-1 Don't adjust anything, just print the height error at each probe point
    ; S=0 Equivalent to S= <number_of_points_probed>; S=3 Adjust homing switch corrections only
    ; S=4 Adjust homing switch corrections and delta radius
    ; S=6 Adjust homing switch corrections, delta radius, and X and Y tower position offsets
    ; S=7 Adjust homing switch corrections, delta radius, X and Y tower position offsets, and diagonal rod length

    M561 ; clear any bed transform, otherwise homing may be at the wrong height
    G28 ; home the printer

    G1 X0.00 Y135.00 Z10 F15000 ; move to just above the first probe point (from the list below)

    ; bed.g file for RepRapFirmware, generated by Escher3D calculator
    ; 13 points, 6 factors, probing radius: 135, probe offset (0, 0)
    GG30 P0 X0.00 Y135.00 Z-99999 H2.42
    G30 P1 X116.91 Y67.50 Z-99999 H2.45
    G30 P2 X116.91 Y-67.50 Z-99999 H2.42
    G30 P3 X0.00 Y-135.00 Z-99999 H5.70
    G30 P4 X-116.91 Y-67.50 Z-99999 H2.33
    G30 P5 X-116.91 Y67.50 Z-99999 H2.51
    G30 P6 X0.00 Y67.50 Z-99999 H2.43
    G30 P7 X58.46 Y33.75 Z-99999 H2.45
    G30 P8 X58.46 Y-33.75 Z-99999 H2.35
    G30 P9 X0.00 Y-67.50 Z-99999 H2.50
    G30 P10 X-58.46 Y-33.75 Z-99999 H2.45
    G30 P12 X0 Y0 Z-99999 S6

    G1 X0 Y0 Z150 F15000 ; get the head out of the way of the bed</number_of_points_probed>

  • Hi,

    What does your M558 line look like in config.g. Specifically, I'm wondering if your dive height (the H parameter in M558) is too low to get you to an initial calibration. Try setting it to something like:

    M558 F500 T5000 H30
    ```That should give the probe plenty of headroom
    Until you get a good calibration, you might need to change that

    G1 X0.00 Y135.00 Z10 F15000

    G1 X0.00 Y135.00 Z30 F5000

    Hope this helps!

  • @TwoTone:

    Now after adding the H values at each point, when I tried to auto calibrate, the printer crashed into the z tower when heading to the first point.

    Regarding this head crash, that suggests your initial figures for the delta config are not close enough to the real values to give you a safe starting place. What does your M665 line in config.g look like?

  • @ adavidm Thanks changing the H value to 30 worked.
    Also the crashing was a left over- that mistake I found and corrected.

    Is there somewhere I can download just the config-override.g file?- I deleted it thinking it might be the issue.

    Also, I read the suggestion to add G32 to the slicer to auto cal before each print. Don't I need to add a M500 command there as well to save the new results?

    Thanks again for your help, I had been searching a long time to find that setting and probably just misunderstood what I was reading.

  • The config-override.g is generated by RRF when you run M500
    Which saves some of the current settings into config-override.g
    If you run G32 before each print then you don't need M500 since it will already have the latest calibration
    If you use M500 then you should have M501 at the end of your config.g so that it will be loaded on your next startup.

  • administrators

    You need to increase the M558 H parameter for initial calibration, as adavidm has suggested. When you have run G32 successfully a few times, copy the new M665 and M666 parameters into the corresponding commands in config.g, then you can reduce the M558 H parameter back to 5 or 3 to speed up auto calibration in future.

    You only need to run M500 after G32 if you want to save the values for next time you power down and up again. So if you use G32 in your start gcode to fine-tune the calibration before each print, you do not need M500 there as well.

  • Thanks for the help. Sorry for all the questions

    So after running the auto cal this is the results:
    Calibrated 6 factors using 11 points, deviation before 4.376 after 0.087
    Diagonal 291.060, delta radius 144.172, homed height 385.661, bed radius 120.0, X 0.240°, Y -0.245°, Z 0.000°
    Endstop adjustments X0.77 Y1.13 Z-1.91, tilt X0.00% Y0.00%

    The I ran auto cal again and the results:
    Calibrated 6 factors using 11 points, deviation before 4.353 after 0.064
    Endstop adjustments X0.71 Y1.21 Z-1.92, tilt X0.00% Y0.00%
    Diagonal 291.060, delta radius 143.920, homed height 385.558, bed radius 120.0, X 0.126°, Y -0.189°, Z 0.000°

    How many times would you run auto cal and should I be entering the new M666 and M665 numbers in after each auto cal?

    When is it good enough?

    Also, I just tried a print, the Z is still to high. Once you auto cal and it's not right where should I be making fine tweaks?

  • You probably need to dial in the probe trigger height. This is a rough guide from memory, but should give you the idea.

    Run autocal two or three times and save the values using M500 (make sure you have a M501 at the end of config.g if you want to reload this every time). At this point, is probably worth copying the M665 and M666 results into config.g as well, just so you have a sensible base calibration in there. Now, we need to measure, or have the firmware measure, the Z offset between the tip of the nozzle and the detection threshold of the IR probe. To start with, we'll get the nozzle down to a known reference point, 0,0,0:

    G0 X0 Y0 Z5 ;move the nozzle down to X0 Y0 Z5:
    M208 Z-10 S1 ;temporarily override the Z minimums
    ```manually jog the nozzle down (using the web interface or PanelDue) until it just barely grabs a piece of paper placed between the nozzle end and the bed. For best results, the nozzle should be hot and free of oozing plastic. Once that is done, send

    G92 Z0 ; to tell the firmware the nozzle is at 0
    G0 Z10 ; to lift the head above the IR trigger threshold
    G30 S-1; to probe the bed and report the triggered height

    The result of the G30 should be the trigger height of your zprobe. If you repeat the G0 and the G30 S-1 a few times, you can judge the precision of the probe. The IR probe gives very consistent results on suitable surfaces. If you are not getting consistency, consider looking for mechanical or bed reflectivity issues.
    You can then loop back and put that information into the Z parameter of the G31 command []( I can't remember if config-override.g includes G31 so make you you check there as well as config.g.
    Homing, with G28, and then returning to X0 Y0 Z0 (Slowly!) should now bring you to the bed surface. If that's the case then it is probably worth running autocal again with the more accurate probe height.
    I hope this helps. If I've made any errors please let me know and I'll amend or delete accordingly.

  • @adavidm I had done that as part of the set up before auto cal.

    @dc42 please forgive the questions as I'm trying to learn.
    If during the initial auto cal I need to copy the M666 and M665 values into the config.g file and you say the config_override is not needed if calibrating before each print, how do the new values for the new calibration get saved?

  • administrators

    When you run a successful a G32, the new M665 and M666 values are used and remembered until you reset or power off the Duet.

    What I suggest is:

    1. Do initial calibration, by running auto calibration a few times until the deviation is stable (twice is probably enough), then copy the new M665 and M666 values into the M665 and M666 commands in config.g.

    2. Then whenever you power up the printer, the M665 and M666 values will be correct, or very close to correct. But you can run G32 before each print if you want, to allow for variations in temperature etc. These small variations are unlikely to be constant, so there is no need to save them for the next time you turn the printer on.

    3. Whenever you make changes to your printer, repeat #1.

  • @TwoTone:

    @adavidm I had done that as part of the set up before auto cal.

    Ah, OK. In that case are you still "too high" after calibration? If so then I believe the H parameter of M665 is the one that needs to change, but this should not be done directly. See dougal1957's comment, below. Following calibration this should be the difference between Zmax (Taking endstop corrections into account) and Z0 (Taking Z-Probe offsets into account).

    The problem with tweaking this distance directly is that it will be overruled by running autocal again. Better to figure out why autocal is not getting you to the right height. How far out are you?

    Changing the G31 H parameter will ensure that the change is persisted across calibrations.

    EDIT - Changed wording to make it clear Dougal1957's advice is correct.

  • No don't tweak the M665 line it is the H param on the G31 line that needs adjusting.

  • Thanks again everyone, It's printing, just need to learn the Kisslicer settings now to get a good quality 1st layer.

    This is a tough process because you have to be careful in your research since you never know if what you're reading is accurate.

    Appreciate the forums here. I realized I hadn't done a PID Auto Tune since switching electronics so working on that now.

    This is what I got:
    M307 H1
    Heater 1 model: gain 415.1, time constant 185.9, dead time 9.2, max PWM 1.00, mode: PID
    Setpoint change: P8.7, I0.047, D56.0
    Load change: P8.7, I0.389, D56.0

    Do you have to limit the PWM with the S parameter? Tried researching that and can't find an answer if that is necessary.

    E3Dv6 12v with 40w heater.

  • It depends on which FW you are using think the later ones are much easier in that respect 1.18 range
    but they are still beta or RC Version's but I never ever bother about that they usually work very well and it is normally obscure bugs that get reported and don't normally effect the normal user if that makes sense


  • FW is 1.17e (2017-02-10)

    I just notice that While H1 worked for the Hotend
    H0 which I thought was the bed returns a bad parameter error.

    I tried H2,3, and 4 - they don't return an error but don't heat the bed.

  • administrators


    FW is 1.17e (2017-02-10)
    I just notice that While H1 worked for the Hotend
    H0 which I thought was the bed returns a bad parameter error.

    I tried H2,3, and 4 - they don't return an error but don't heat the bed.

    What is the command containing parameter H0 that returns an error?

  • M303 H0 S130
    Also tried without the S parameter.

  • administrators

    Strange, lots of people have tuned their bed heaters using a command similar to that.

  • I just remembered that the directions I followed for upgrading had the positive end of the bed wired directly to the PS and only used the negative for control connected to the Duet. Could that be the issue?

  • administrators


    I just remembered that the directions I followed for upgrading had the positive end of the bed wired directly to the PS and only used the negative for control connected to the Duet. Could that be the issue?

    That's for the case in which you have a separate power supply for the bed - is that what you have?

  • No I have one PS for the entire printer.
    But I just rewired it so that both bed wires are connected to the Duet and still get a bad parameter error.

  • administrators

    What is the exact command you are sending?

    Have you by any chance previously disabled the bed heater by sending M140 H-1?

  • M303 H0 S130

    No I haven't disabled the bed heater. It still responds if I send a Temp to in the web interface.

  • administrators

    I found the problem. The default maximum bed heater temperature is 130C (send M143 H0 to display it). So you need to either use a lower target temperature in your M303 command, or increase the allowed bed temperature by sending e.g. M143 H0 S140 to increase it to 140C.

    I'll change the error message to make it more informative.

  • Thanks for your help.

    So now I'm getting Auto tune cancelled because temperature is not increasing.

    But the temp was increasing from 22.0 to 27 before it canceled.

Log in to reply