G29 occasionally ignores M557 defining the grid
ctilley79 last edited by
I'm running 3.3b2 in SBC mode on my 6HC/3HC based printer. I've noticed that occasionally when performing a G29 mesh bed probe, the printer doesn't perform the probe points that I have specified in M557. Instead of probing what I have specified, it seems to do a 9 point probe on a small portion of the bed. It's like it's ignoring my M557 command in config.g and is running some hard coded default probe. My M557 command is as follows.
M557 X20:280 Y30:270 P4 ; Define mesh grid
60-70% of the time, it works fine, however it seems that after long periods of inactivity, the problem creeps up when I run G29. I had a similar gremlin with my bltouch a while back that seemed to misbehave after periods of inactivity. Related in some way?
carcamerarig last edited by
Did you try defining another point parameter like p8 then going back to the one you want?
Do you have any other maps saved or referenced in macros?
How do you have your motors connected?
Are you impacted by this firmware limitation?
Endstop switches and Z probes connected to the main board cannot control motors on an expansion board. This is planned to be fixed in release 3.4.
If you use a Z probe then the Z motors must be connected to the main board. This is planned to be fixed in release 3.4.
ctilley79 last edited by
@phaedrux doesn’t apply. Z probe and z motors are connected to the main board.
Please post your config.g, bed.g, homing files, etc.
Also post the results of M122 and M122 B1
Also send M98 P"config.g" and post the results.
If you send M557 does it echo back a result that matches what you have in config.g?
ctilley79 last edited by ctilley79
This is my current config and m122s. I did upgrade to 3.3b3 earlier. I will monitor and update you when I run more tests tomorrow. running M557 returned the correct probe points I have set. Usually this happens after a print or when the machine has been idle for a while.
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.2.1 on Sat Jan 09 2021 15:21:32 GMT-0500 (Eastern Standard Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Voron2" ; set printer name M669 K1 ; select CoreXY mode ; Drives M569 P0.0 S0 D2 ; physical drive 0.0 goes backwards M569 P0.1 S1 D2 ; physical drive 0.1 goes forwards M569 P0.2 S1 D2 ; physical drive 0.2 goes forwards M569 P0.3 S0 D2 ; physical drive 0.3 goes backwards M569 P0.4 S1 D2 ; physical drive 0.4 goes forwards M569 P0.5 S0 D2 ; physical drive 0.5 goes backwards M569 P1.0 S1 D2 ; physical drive 1.0 goes forwards M584 X0.1 Y0.0 Z0.2:0.3:0.4:0.5 E1.0 ; set drive mapping M671 X-50:-50:350:350 Y0:375:375:0 S2 ; Z Lead Screw Leveling probe Point Mapping M350 X16 Y16 Z16 E32 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z400.00 E830.00 ; set steps per mm M566 X720.00 Y720.00 Z100.00 E4000.00 ; set maximum instantaneous speed changes (mm/min) AKA Jerk M203 X16800.00 Y16800.00 Z720.00 E6000.00 ; set maximum speeds (mm/min) M201 X2500.00 Y2500.00 Z250.00 E4000.00 ; set accelerations (mm/s^2) M906 X1400 Y1400 E800 I40 ; set motor currents (mA)and motor idle factor in per cent M906 Z1400 I60 ; set motor currents (mA)and motor idle factor in per cent M84 S60 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X300 Y300 Z250 S0 ; set axis maxima ; Endstops M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y M574 Z1 S2 ; configure Z-probe endstop for low end on Z M915 X Y S3 F0 R0 H400 ; configure stall detection for X and Y sensorless homing ; Z-Probe ;M950 S0 C"0.io7.out" ; create servo pin 0 for BLTouch ;M558 P9 C"0.io4.in" H3 F340 R0.2 T14400 ; set Z probe type to BLTouch and the dive height + speeds M558 P5 C"0.^io7.in" H2 F1200 T16800 A3 ; PINDA G31 P100 X0 Y21 Z1.37 ; set Z probe trigger value, offset and trigger height M557 X20:280 Y30:270 P4 ; Define mesh grid ; Bed Heater M308 S0 P"0.temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"0.out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 S0.6 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C ; Nozzle Heater M308 S1 P"1.temp0" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 1 as thermistor on pin 1.temp0 M950 H1 C"1.out0" T1 ; create nozzle heater output on 1.out0 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"0.out4" Q10 ; create fan 0 on pin out4 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"0.out5" Q10 ; create fan 1 on pin out5 and set its frequency M106 P1 S0.8 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Case Fans M950 F2 C"0.out7" Q10 ; create fan 2 on pin out7 and set its frequency M106 P2 S0.4 C"Case Fan 1" M950 F3 C"0.out8" Q10 M106 P3 S0.4 C"Case Fan 2" M950 F4 C"0.out9" Q10 M106 P4 S0 C"Exhaust Fan" ; Tools M563 P0 S"Extruder" D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous ;M575 P1 S1 B57600 ; enable support for PanelDue M501 ; load saved parameters from non-volatile memory T0 ; select first tool
=== Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3beta3 (2021-04-22 16:28:03) running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956BA-NA3TJ-6J1F4-3SJ6T-KVAUV Used output buffers: 1 of 40 (14 max) === RTOS === Static ram: 149960 Dynamic ram: 61208 of which 244 recycled Never used RAM 139924, free system stack 174 words Tasks: Linux(ready,350.5%,52) HEAT(delaying,0.6%,275) Move(notifyWait,2.1%,150) CanReceiv(notifyWait,0.7%,773) CanSender(notifyWait,0.0%,373) CanClock(delaying,0.3%,341) TMC(notifyWait,448.3%,93) MAIN(running,2368.3%,924) IDLE(ready,0.1%,19), total 3170.8% Owned mutexes: HTTP(MAIN) === Platform === Last reset 03:13:59 ago, cause: power up Last software reset at 2021-04-22 19:05, reason: MemoryProtectionFault mmarValid daccViol, none spinning, available RAM 139924, slot 2 Software reset code 0x4172 HFSR 0x00000000 CFSR 0x00000082 ICSR 0x0440f004 BFAR 0x00000000 SP 0x2045ff60 Task Freestk 46583 ok Stack: 16f8e3c1 16f8e384 20432728 00000000 00000000 0047b187 0047b19e 8107000e 20432728 2042489c 2040e368 ffffffed 00000000 20420084 00000000 20420088 0007d759 00000004 00000001 204240b4 204240dc 004787b9 00000000 00000001 00000000 2042489c 00000000 Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 Step timer max interval 134 MCU temperature: min 25.2, current 32.0, max 33.1 Supply voltage: min 23.9, current 24.0, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/596/596, gc cycles 0 Driver 0: position 0, standstill, reads 44530, writes 16 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 44530, writes 16 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 44531, writes 15 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 44531, writes 15 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 44531, writes 15 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 44531, writes 15 timeouts 0, SG min/max 0/0 Date/time: 2021-04-22 22:20:13 Slowest loop: 65.01ms; fastest: 0.04ms === 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 === DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 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 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP* is doing "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. === CAN === Messages queued 104681, send timeouts 0, received 92954, lost 0, longest wait 1ms for reply type 6042, peak Tx sync delay 191, free buffers 49 (min 48) === SBC interface === State: 4, failed transfers: 0 Last transfer: 2ms ago RX/TX seq numbers: 24379/24379 SPI underruns 0, overruns 0 Number of disconnects: 0, IAP RAM available 0x2cf1c Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.3-b3 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 35.06 Codes per second: 0.01 Maximum length of RX/TX data transfers: 3204/796
Diagnostics for board 1: Duet EXP3HC firmware version 3.3beta2 (2021-03-10 10:07:35) Bootloader ID: not available Never used RAM 158756, free system stack 0 words Tasks: Move(notifyWait,160) HEAT(delaying,85) CanAsync(notifyWait,72) CanRecv(notifyWait,84) CanClock(notifyWait,74) TMC(notifyWait,64) MAIN(running,301) AIN(delaying,260) Last reset 03:14:37 ago, cause: power up Last software reset data not available Driver 0: position 0, 830.0 steps/mm, standstill, reads 43667, writes 17 timeouts 0, SG min/max 0/0, steps req 0 done 0 Driver 1: position 0, 80.0 steps/mm, standstill, reads 43675, writes 11 timeouts 0, SG min/max 0/0, steps req 0 done 0 Driver 2: position 0, 80.0 steps/mm, standstill, reads 43679, writes 11 timeouts 0, SG min/max 0/0, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0 Peak sync jitter 11, peak Rx sync delay 185, resyncs 27, no step interrupt scheduled VIN: 24.3V, V12: 12.1V MCU temperature: min 39.9C, current 40.1C, max 40.1C Ticks since heat task active 44, ADC conversions started 11677786, completed 11677786, timed out 0 Last sensors broadcast 0x00000002 found 1 49 ticks ago, loop time 0 CAN messages queued 93278, send timeouts 0, received 105027, lost 0, free buffers 36, min 36, error reg 110000 dup 0, oos 0, bm 0, wbm 0
Does it stop with an error or finish as if complete?
What does the resulting heightmap actually look like?