3.2b3: XY stalls when bed compensation activated
-
Running on RPi4+Duet3 6HC(1.0)+3HC with tools on 3HC.
No errors given and no debugging errors logged.You can hear when it looses steps and how it stutters when moving with bed compensation active.
Video of it loosing steps when running at normal (fast) speed with compensation enabled.
Video of it not loosing steps when running at normal (fast) speed with compensation disabled
Video of it loosing steps when running at slow speed with compensation enabled.Debugging enabled with:
Debugging enabled for modules: Platform(0) GCodes(3) Move(4) Debugging disabled for modules: Network(1) Webserver(2) Heat(5) DDA(6) Roland(7) Scanner(8) PrintMonitor(9) Storage(10) PortControl(11) DuetExpansion(12) FilamentSensors(13) WiFi(14) Display(15) LinuxInterface(16) CAN(17)
Speeds:
Max speeds (mm/sec): X: 565.0, Y: 565.0, Z: 12.0, U: 150.0, E: 60.0:60.0:60.0, min. speed 0.50 Accelerations (mm/sec^2): X: 6000.0, Y: 6000.0, Z: 100.0, U: 800.0, E: 3000.0:3000.0:3000.0 Maximum jerk rates (mm/min): X: 300.0, Y: 300.0, Z: 24.0, U: 50.0, E: 1200.0:1200.0:1200.0, jerk policy: 1
My config.g:
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"qTC" ; set printer name ; General Preferences M111 S0 ; Debug off M929 P"eventlog.txt" S3 ; start logging to file eventlog.txt Debug level G21 ; Set dimensions to millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M669 K1 ; select CoreXY mode ; Drives M569 P0.0 S0 F4 ; physical drive 0.0 goes forwards X M569 P0.1 S1 F4 ; physical drive 0.1 goes forwards Y M569 P0.2 S1 ; physical drive 0.2 goes forwards Toolchanger Actuator M569 P0.3 S1 ; physical drive 0.3 goes forwards Z Back M569 P0.4 S1 ; physical drive 0.4 goes forwards Z Left M569 P0.5 S1 ; physical drive 0.5 goes forwards Z Front M569 P1.0 S1 ; physical drive 0.3 goes forwards E0 M569 P1.1 S0 ; physical drive 0.4 goes backwards E1 M569 P1.2 S1 ; physical drive 0.5 goes forwards E2 M584 X0.0 Y0.1 Z0.4:0.3:0.5 E1.0:1.1:1.2 U0.2 ; set drive mapping ( Z in the order of bed leveling ) M350 X16 Y16 E16 I1 ; configure 16x for XY and E microstepping with interpolation M350 U4 I1 ; configure 4x microstepping with interpolation for U, better torque M350 Z16 I1 ; configure microstepping with interpolation. Full steps on Z means 200 steps per mm and a resolution of 0,005mm per step. ; Motor currents M906 X1100 Y1100 ; set motor currents (mA) 1200 is Good up to 400mm/s without back EMF at 31,1V on one stepper M906 Z1000 E600 M906 U900 I60 ; StepperOnline Toolchanger Elastic Lock Motor current and idle motor percentage, must be 60% idle and 90% current. Goes up to 120% when locking M84 S30 ; Set idle timeout ; Steps per mm M92 X159.87 Y160.38 Z3200.00 E830:415 S16 ; set steps per mm as defined for 16 microsteps M92 U11.515 ; Stepper-Online Toolchanger Elastic Lock Motor Steps/deg for U from (200 * 4 * 5.18181)/360 ; Motor speeds M203 Z720 E3600 U9000 ; set maximum speeds (mm/min) (Z:12; E:60) M566 Z24 E1200 U50 ; set maximum instantaneous speed changes (mm/min) M201 Z100 E3000 U800 ; set accelerations (mm/s^2) ;M203 X18000 Y18000 ; set maximum speeds (mm/min) (XY:300) as maximum without slippage acording to EMF calculator. M203 X33900 Y33900 ; set maximum speeds (mm/min) (XY:565) 70,8% of this is 400. Only one stepper wworking with max 400mm/s in diagonal M201 X6000 Y6000 ; set accelerations (mm/s^2) Tested upp till 9000 M566 X300 Y300 P1 ; set maximum instantaneous speed changes (mm/min) (5mm/s) Tested upp till 2500 M204 P1500 T5000 ; Set axis software limits and min/max switch-triggering positions. ; Adjusted such that (0,0) lies at the lower left corner. M208 X-49:500 Y-6:500 Z-0.2:600 ; Set the Xmin M208 U0:200 ; Set Elastic Lock (U axis) max rotation angle ; Kinematic bed ball locations. M671 X-49.5:523.5:523.5 Y262.5:553:-37 S10 ; Emergency Button M950 J1 C"0.io0.in" ; Use the input pin on io0 on the main board M581 P1 T3 S0 ; Use above to trigger Emergency Reset. PowerCycle afterwards. ; XYZ EndStops as emergency reset. M950 J2 C"!0.io1.in" ; Use the input pin on io1 on the main board X M950 J3 C"0.io2.in" ; Use the input pin on io2 on the main board Y M950 J4 C"0.io3.in" ; Use the input pin on io3 on the main board Z M950 J5 C"0.io7.in" ; Use the input pin on io3 on the main board EStop for Z-Plate M581 P2 T0 S1 ; Use X to trigger Emergency Reset. PowerCycle afterwards. M581 P3 T0 S1 ; Use Y to trigger Emergency Reset. PowerCycle afterwards. M581 P4 T3 S1 ; Use Z to trigger Emergency Reset. PowerCycle afterwards. M581 P5 T0 S1 ; Use EStop for Z-Plate to trigger Emergency Reset. PowerCycle afterwards. ; Endstops M574 X1 P"nil" ; Xmin without a pin asigned. M574 Y1 P"nil" ; Ymin without a pin asigned. M574 Z0 ; No Z endstop M574 U1 S1 P"0.io4.in" ; U uses two microswitches in series ; Z probing settings M557 X10:470 Y10:480 P10 ; define mesh grid with 10 points in each direction M558 P8 C"nil" A1 T24000 ; A1=Probe once S0.02=Max deviation H5=Height default 5 P5 = Filtered ; Bed Heater M308 S0 P"0.temp0" Y"thermistor" T10000 B3435 A"Bed Heater" ; configure sensor 0 as thermistor on pin 1.temp0 for the thermistor on buildplate M950 H0 C"0.out0" T0 ; create bed heater output on 1.out0 and map it to sensor 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 ; Bed Heater builtin thermistor as backup M308 S20 P"0.temp1" Y"thermistor" T100000 B4138 A"Bed Failsafe" ; configure sensor 20 as thermistor on pin 1.temp1 for the builtin thermistor M143 H0 S150 T20 A0 ; set temperature limit for heater 0 to 150C, Sensor 20 and generate heater fault. ; Tool definitions M98 P"/sys/custom/tool_0.g" ; Macro to load the tool definitions for Tool0 M98 P"/sys/custom/tool_1.g" ; Macro to load the tool definitions for Tool1 ; Miscellaneous M501 ; load saved parameters from non-volatile memory ; ---------- Init heaters ---------- G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures(-273 = "off") G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures(-273 = "off") T0 P0 T1 P0 T-1 P0
Diagnostics for mainboard:
m122 b0 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.2-beta3 running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode) Board ID: 08DJM-956L2-G43S4-6JKDD-3SJ6L-TB62G Used output buffers: 1 of 40 (23 max) === RTOS === Static ram: 122124 Dynamic ram: 139940 of which 60 recycled Never used RAM 130068, free system stack 122 words Tasks: Linux(ready,79) HEAT(blocked,296) CanReceiv(blocked,869) CanSender(blocked,352) CanClock(blocked,352) TMC(blocked,20) MAIN(running,720) IDLE(ready,19) Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:06:40 ago, cause: software Last software reset at 2020-11-11 08:20, reason: User, GCodes spinning, available RAM 130108, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0xffffffff Task Linu Error status: 0x00 MCU temperature: min 40.2, current 40.3, max 40.4 Supply voltage: min 31.9, current 31.9, max 32.0, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.0, max 12.1, under voltage events: 0 Driver 0: position 320, standstill, reads 19249, writes 0 timeouts 0, SG min/max not available Driver 1: position 0, standstill, reads 19249, writes 0 timeouts 0, SG min/max not available Driver 2: position 28035, standstill, reads 19248, writes 0 timeouts 0, SG min/max not available Driver 3: position 0, standstill, reads 19249, writes 0 timeouts 0, SG min/max not available Driver 4: position 0, standstill, reads 19249, writes 0 timeouts 0, SG min/max not available Driver 5: position 0, standstill, reads 19249, writes 0 timeouts 0, SG min/max not available Date/time: 2020-11-11 08:27:30 Slowest loop: 116.62ms; fastest: 0.29ms === 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: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 172, completed moves 172, StepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, StepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === GCodes === Segments left: 0 Movement lock held by null HTTP* is doing "M122 B0" 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. === CAN === Messages sent 16, send timeouts 16, longest wait 0ms for type 0, free CAN buffers 47 === SBC interface === State: 0, failed transfers: 0 Last transfer: 19ms ago RX/TX seq numbers: 12837/12839 SPI underruns 0, overruns 0 Number of disconnects: 0, IAP RAM available 0x20a78 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.2.0-beta3 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 32.85
Diagnostics for expansion board:
m122 b1 Diagnostics for board 1: Duet EXP3HC firmware version 3.2beta3.1 (2020-11-08) Bootloader ID: not available Never used RAM 154112, free system stack 198 words HEAT 27 CanAsync 93 CanRecv 83 TMC 64 MAIN 286 AIN 257 Last reset 00:07:00 ago, cause: software Last software reset at 2020-11-10 18:16, reason: StackOverflow, available RAM 154112, slot 0 Software reset code 0x0100 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0000080e BFAR 0xe000ed38 SP 0x2002ffb4 Task � Stack: 2000137c 200013b0 0002525d 00000000 0003e418 20001598 20003b28 00000000 00024885 200014b4 20003ab0 00000000 00f00000 e000ef34 c0000000 20003b30 000249c5 0002472c 61000000 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff Driver 0: position 0, 830.0 steps/mm, standstill, reads 43741, writes 16 timeouts 0, SG min/max 0/0 Driver 1: position 0, 415.0 steps/mm, standstill, reads 43744, writes 16 timeouts 0, SG min/max 0/0 Driver 2: position 0, 420.0 steps/mm, standstill, reads 43748, writes 15 timeouts 0, SG min/max 0/0 Moves scheduled 0, completed 0, in progress 0, hiccups 0 No step interrupt scheduled VIN: 24.1V, V12: 12.2V MCU temperature: min 39.8C, current 40.0C, max 40.0C Ticks since heat task active 50, ADC conversions started 420292, completed 420292, timed out 0 Last sensors broadcast 0x00000006 found 2 54 ticks ago, loop time 0 Free CAN buffers: 36, messages lost 3664, duplicates 0, oos 0, busOff 0
Eventlog is empty:
2020-11-11 08:20:59 Event logging started
Running a macro for testing moves:
G1 F30000 G1 X001 Y001 G1 X001 Y499 G1 X500 Y499 G1 X500 Y001 G1 X001 Y001 G1 X500 Y001 G1 X500 Y499 G1 X001 Y499 G1 X001 Y001 G1 X500 Y499 G1 X001 Y001 G1 X500 Y001 G1 X001 Y499 G1 X500 Y001 G1 X001 Y001
In the slow moving video I added in top of macro:
M203 X12000 Y12000 ; Max speed 200mm/s M201 X100 Y100 ; Acceleration. Max 6000 på förra M566 X1000 Y1000 ; Instant speed change, Max 2000 på förra.
Edit: My heightmap:
RepRapFirmware height map file v2 generated at 2020-10-03 13:46 xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum 5.00,495.00,5.00,495.00,-1.00,54.40,54.40,10,10 -0.241, -0.216, -0.208, -0.210, -0.200, -0.179, -0.147, -0.115, -0.054, -0.002 -0.136, -0.140, -0.139, -0.138, -0.123, -0.106, -0.082, -0.047, -0.002, 0.048 -0.078, -0.074, -0.086, -0.072, -0.070, -0.059, -0.033, -0.005, 0.025, 0.079 -0.033, -0.036, -0.033, -0.045, -0.039, -0.028, 0.002, 0.031, 0.075, 0.110 0.013, 0.015, 0.007, 0.002, 0.009, 0.026, 0.043, 0.077, 0.106, 0.142 -0.010, -0.021, -0.025, -0.026, -0.018, -0.001, 0.012, 0.048, 0.075, 0.108 -0.048, -0.054, -0.063, -0.062, -0.064, -0.045, -0.014, 0.014, 0.055, 0.088 -0.080, -0.097, -0.100, -0.105, -0.097, -0.084, -0.067, -0.029, 0.007, 0.054 -0.119, -0.138, -0.151, -0.147, -0.141, -0.126, -0.101, -0.069, -0.022, 0.023 -0.194, -0.204, -0.218, -0.211, -0.196, -0.183, -0.161, -0.124, -0.086, -0.010
-
Just to add another data point, I have also experienced this same behavior. However, I am running a duet 2, also on corexy.
Edit: I have observed this since RRF 3.1.1. -
I did run M122 while printing with bed compensation enabled and the "comp offset" is allways 0.000. Is that normal?
-
It's common to experience this when a low Z jerk is set, to the point there is an entry for it in the mesh compensation documentation.
https://duet3d.dozuki.com/Wiki/Using_mesh_bed_compensation#Section_Troubleshooting
Try increasing your Z jerk. M566 Z100
-
@Phaedrux tried even M566 Z500 and was no diffrence.
I reasoned that if it would be from xy moving to fast for z, then why would it be worse at a slower xy speed? -
Feels like I've tried everything now.
XY loses steps regardless what I do to the acc, jerk and speed.
Even raising the currents by 30%.M203 X18000 Y18000 ; Max speed 300mm/s M203 Z24 M201 Z1000 M566 Z1000 M201 X500 Y500 M566 X300 Y300 G1 F12000
I've tried this too with my finger on emergency reset..:
M203 Z100 M201 Z1000 M566 Z1000
-
Two things I would check.
First see if there is any other Z jerk M566 command in another macro that is getting called. homeall or the like.
You can also send M566 during the test to get a read back of the current value, just to double check it's not actually getting changed.
The other thing would be to copy your config and macro files over to a new SD card and get it setup for standalone operation without the SBC. If the problem goes away then we've narrowed it down to DSF.
https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3#Section_Running_in_standalone_mode
-
-
@chrishamm Upgraded to ” RepRapFirmware for Duet 3 MB6HC version 3.2-beta3+3-ch running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode)” and looks like it fixed both the missed stepps and the stuttering.
Ran the macro above and runs well even at 500mm/s.
Doing a multitool testprint now.
-
Thanky @chrishamm!
It works great now!!!
-
@chrishamm Do you know if the new changes from ”3.2-beta3+3-ch” are included in the new ”3.2beta3.2” beta?
Didn’t see it in the changelog. -
@TypQxQ Yes, those changes have been merged into the new beta as well.