Manual bed probing / Mesh bed compensation Issue [DUET3]



  • Hi everyone,

    Running on a Duet 3 mainboard 6HC with the following configuration:

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"MA64" ; set printer name

    ; Drives
    M569 P0.0 S1 ; physical drive 0.0 goes forwards
    M569 P0.1 S1
    M569 P0.2 S0 ; physical drive 0.2 goes forwards
    M569 P0.3 S0 ; physical drive 0.3 goes forwards
    M569 P0.4 S1
    M569 P1.0 S1 ; physical drive 1.0 goes forwards
    M569 P1.1 S1 ; physical drive 1.1 goes forwards
    M584 X0.0:0.1 Y0.2 Z0.3:0.4 E1.0:1.1 ; set drive mapping
    M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation
    M92 X128.14 Y128.14 Z1600.00 E492.45:800.00 ; set steps per mm
    M566 X1500.00 Y1500.00 Z12.00 E120.00:120.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z1500.00 E1200.00:1200.00 ; set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z40.00 E250.00:250.00 ; set accelerations (mm/s^2)
    M906 X1200 Y1200 Z1200 E800:800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; set axis minima
    M208 X550 Y470 Z450 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"!io0.in" ; configure active-high endstop for low end on X via pin io0.in
    M574 Y1 S1 P"!io1.in" ; configure active-high endstop for low end on Y via pin io1.in
    M574 Z1 S1 P"!io2.in" ; configure active-high endstop for low end on Z via pin io2.in

    ; Z-Probe
    M558 P0 H8 F120 T3000 ; disable Z probe but set dive height, probe speed and travel speed
    M557 X20:540 Y40:460 S420 ; define mesh grid

    I have some issues while trying to use the mesh bed compensation without probe. Before suggesting to add a probe to my printer, I can't do this due to the very high enclosure temperature (240°C).
    I am using a Glass bed (850x850mm built volume reduced to 550x470) for thermal dilatation reason and cannot home lower than the surface or outside of it. My Z home is around 3mm above the glass and the average probed height is -3mm.

    When moving the Z axis to make the nozzle touch the bed, the machine often randomly goes back to the starting height (dive height) of the point. But the worst happens at points different than the first one. The machine goes back to the first point calibration for no reason...



  • Somehow I also get "Push(): Stack Overflow" when jogging the Z axis too fast and the machine goes back to Point 1


  • Moderator

    What firmware version specifically are you using? Please provide the results of M122.



  • I am using the 3.1.1 on the Mainboard 6HC and the 3.0 on the expansion 3HC, in SBC Mode. I thought the Expansion was on 3.1.0 but it seems that even though the 3.1.0 bin is here the machine never acknowledged it

    Here is the result of M122:

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode)
    Board ID: 08DJM-956L2-G43S4-6J1DL-3SD6Q-1S5AF
    Used output buffers: 1 of 40 (13 max)
    === RTOS ===
    Static ram: 154604
    Dynamic ram: 163684 of which 52 recycled
    Exception stack ram used: 224
    Never used ram: 74652
    Tasks: NETWORK(ready,1972) HEAT(blocked,1212) CanReceiv(suspended,3520) CanSender(suspended,1488) CanClock(blocked,1452) TMC(blocked,204) MAIN(running,4928) IDLE(ready,76)
    Owned mutexes:
    === Platform ===
    Last reset 00:01:26 ago, cause: power up
    Last software reset at 2020-07-20 15:10, reason: User, spinning module LinuxInterface, available RAM 73960 bytes (slot 1)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 22.9, current 33.0, max 33.1
    Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 12.2, current 12.2, max 12.3, under voltage events: 0
    Driver 0: standstill, reads 30616, writes 14 timeouts 0, SG min/max 0/0
    Driver 1: standstill, reads 30616, writes 14 timeouts 0, SG min/max 0/0
    Driver 2: standstill, reads 30617, writes 14 timeouts 0, SG min/max 0/0
    Driver 3: standstill, reads 30617, writes 14 timeouts 0, SG min/max 0/0
    Driver 4: standstill, reads 30617, writes 14 timeouts 0, SG min/max 0/0
    Driver 5: standstill, reads 30621, writes 11 timeouts 0, SG min/max 0/0
    Date/time: 2020-07-21 08:10:04
    Slowest loop: 5.43ms; fastest: 0.14ms
    === Storage ===
    Free file entries: 10
    SD card 0 not detected, interface speed: 37.5MBytes/sec
    SD card longest read time 0.0ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = 6 -1 -1 -1
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    HTTP* is ready with "M122" in state(s) 0
    Telnet is idle in state(s) 0
    File is idle in state(s) 0
    USB is idle in state(s) 0
    Aux is idle in state(s) 0
    Trigger* is idle in state(s) 0
    Queue is idle in state(s) 0
    LCD is idle in state(s) 0
    SBC is idle in state(s) 0
    Daemon* is idle in state(s) 0
    Aux2 is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 1.02ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
    HTTP sessions: 0 of 8

    • Ethernet -
      State: disabled
      Error counts: 0 0 0 0 0
      Socket states: 0 0 0 0 0 0 0 0
      === CAN ===
      Messages sent 278, longest wait 2ms for type 6011
      === Linux interface ===
      State: 0, failed transfers: 0
      Last transfer: 17ms ago
      RX/TX seq numbers: 2064/2065
      SPI underruns 0, overruns 0
      Number of disconnects: 0
      Buffer RX/TX: 0/0-0
      === Duet Control Server ===
      Duet Control Server v1.3.2.0
      Code buffer space: 4096
      Configured SPI speed: 8000000 Hz
      Full transfers per second: 0.03

    ad for the Expansion Board 1
    M122 B1
    Diagnostics for board 1:
    Board EXP3HC firmware 3.0RC1 2019-12-16b1
    Never used RAM 162.8Kb, max stack 304b
    HEAT 1088 CanAsync 1452 CanRecv 1428 TMC 168 AIN 532 MAIN 2224
    Driver 0: standstill, reads 35834, writes 14 timeouts 0, SG min/max 0/0
    Driver 1: standstill, reads 35837, writes 14 timeouts 0, SG min/max 0/0
    Driver 2: standstill, reads 35842, writes 11 timeouts 0, SG min/max 0/0
    Moves scheduled 0, completed 0, hiccups 0
    VIN: 24.0V, V12: 12.1V
    MCU temperature: min 32.4C, current 32.7C, max 32.9C
    Ticks since heat task active 81, ADC conversions started 222824, completed 222824, timed out 0
    NVM user row de9a9239 aeecffb1 ffffffff ffffffff



  • the expansion Is now on 3.1.0
    M122B1
    Diagnostics for board 1:
    Board EXP3HC firmware 3.1.0 (2020-05-15b1)
    Never used RAM 163.6Kb, max stack 312b
    HEAT 1272 CanAsync 1452 CanRecv 1420 TMC 156 AIN 524 MAIN 2184
    Last reset 00:00:37 ago, cause: software
    Driver 0: standstill, reads 9689, writes 11 timeouts 0, SG min/max 0/0
    Driver 1: standstill, reads 9691, writes 11 timeouts 0, SG min/max 0/0
    Driver 2: standstill, reads 9694, writes 11 timeouts 0, SG min/max 0/0
    Moves scheduled 0, completed 0, hiccups 0
    VIN: 24.0V, V12: 12.1V
    MCU temperature: min 32.4C, current 32.7C, max 32.9C
    Ticks since heat task active 91, ADC conversions started 37834, completed 37834, timed out 0
    Last sensors broadcast 00000000 found 0 94 ticks ago
    Free CAN buffers: 36
    NVM user row de9a9239 aeecffb1 ffffffff ffffffff


  • Moderator

    @Pierrelito said in Manual bed probing / Mesh bed compensation Issue [DUET3]:

    When moving the Z axis to make the nozzle touch the bed, the machine often randomly goes back to the starting height (dive height) of the point. But the worst happens at points different than the first one. The machine goes back to the first point calibration for no reason...

    Can you provide a video of this behaviour?


  • Moderator

    This may be related to using SBC mode and the dialogue boxes required. @chrishamm may have an idea.


  • administrators

    I am quite surprised you are seeing Push errors. Are you running G29 as part of any macro file or do you start that from the DWC dropdown menu?

    It may help to see a console log from DCS with log level debug. Please refer to this section for further details.



  • I am using the dropdown menu for True Bed leveling (same behavior with the mesh bed compensation).

    You can see it the Z axis going up again in this video.(around 0.18) It happens the most when the Z jogging is quite fast but also randomly.

    And in this video (interesting part at 1.15), you can see the machine going back the first probing point while I'm probing the third one.

    As requested by @chrishamm I'll try to get the DCS Log level



  • Here is the result of the debug
    [info] Settings loaded
    [info] Environment initialized
    [info] Connection to Duet established
    [info] IPC socket created at /var/run/dsf/dcs.sock
    [debug] Requesting update of key boards, seq 0 -> 1
    [debug] Requesting update of key directories, seq 0 -> 0
    [debug] Requesting update of key fans, seq 0 -> 2
    [debug] Requesting update of key heat, seq 0 -> 24
    [debug] Requesting update of key inputs, seq 0 -> 0
    [debug] Requesting update of key job, seq 0 -> 0
    [debug] Requesting update of key move, seq 0 -> 29
    [debug] Requesting update of key network, seq 0 -> 2
    [debug] Requesting update of key sensors, seq 0 -> 8
    [debug] Requesting update of key spindles, seq 0 -> 0
    [debug] Requesting update of key state, seq 0 -> 0
    [debug] Requesting update of key tools, seq 0 -> 10
    [debug] Requesting update of key volumes, seq 0 -> 0
    [debug] Updated key boards
    [debug] Updated key directories
    [debug] Updated key fans
    [debug] Updated key heat
    [error] Failed to merge JSON: {"key":"inputs","flags":"d99vn","result":[{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"HTTP","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"Marlin","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"Telnet","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"File","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"Marlin","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"USB","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"Aux","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"Trigger","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"Queue","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"LCD","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"SBC","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":true,"lineNumber":0,"name":"Daemon","stackDepth":1,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"Aux2","stackDepth":0,"state":"idle","volumetric":false},{"axesRelative":false,"compatibility":"RepRapFirmware","distanceUnit":"mm","drivesRelative":true,"feedRate":50.0,"inMacro":false,"lineNumber":0,"name":"Autopause","stackDepth":0,"state":"idle","volumetric":false}]}
    System.Text.Json.JsonException: Failed to deserialize property [InputChannel].Name (type CodeChannel) from JSON "Aux2"
    ---> System.Text.Json.JsonException: The JSON value could not be converted to DuetAPI.CodeChannel. Path: $ | LineNumber: 0 | BytePositionInLine: 6.
    at System.Text.Json.ThrowHelper.ThrowJsonException()
    at System.Text.Json.Serialization.Converters.JsonConverterEnum1.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options) at System.Text.Json.JsonPropertyInfoNotNullable4.OnRead(ReadStack& state, Utf8JsonReader& reader)
    at System.Text.Json.JsonPropertyInfo.Read(JsonTokenType tokenType, ReadStack& state, Utf8JsonReader& reader)
    at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& readStack)
    at System.Text.Json.JsonSerializer.ReadCore(Type returnType, JsonSerializerOptions options, Utf8JsonReader& reader)
    at System.Text.Json.JsonSerializer.Deserialize(String json, Type returnType, JsonSerializerOptions options)
    at DuetAPI.Machine.ModelObject.UpdateFromJson(JsonElement jsonElement, Boolean ignoreSbcProperties) in /home/christian/duet/DuetSoftwareFramework/src/DuetAPI/Machine/Base/ModelObject.cs:line 282
    --- End of inner exception stack trace ---
    at DuetAPI.Machine.ModelObject.UpdateFromJson(JsonElement jsonElement, Boolean ignoreSbcProperties) in /home/christian/duet/DuetSoftwareFramework/src/DuetAPI/Machine/Base/ModelObject.cs:line 287
    at DuetAPI.Machine.ModelCollectionHelper.UpdateFromJson(IList list, Type itemType, JsonElement jsonElement, Boolean ignoreSbcProperties) in /home/christian/duet/DuetSoftwareFramework/src/DuetAPI/Machine/Base/ModelCollection.cs:line 214
    at DuetAPI.Machine.MachineModel.UpdateFromFirmwareModel(String key, JsonElement jsonElement) in /home/christian/duet/DuetSoftwareFramework/src/DuetAPI/Machine/MachineModel.cs:line 162
    at DuetControlServer.Model.Updater.Run() in /home/christian/duet/DuetSoftwareFramework/src/DuetControlServer/Model/Updater.cs:line 176
    [debug] Updated key move
    [debug] Updated key network
    [debug] Updated key sensors
    [debug] Updated key spindles
    [debug] Updated key state
    [debug] Updated key tools
    [debug] Updated key volumes



  • To make it was due to the SBC, I configured the duet in standalone mode and everything worked.
    I might need the sbc in the future.


Log in to reply