Duet Maestro missing steps in Y axis
Hi, have a maestro based printer that is under constant use (1000s of hrs printing, 50kg+ of filament since any faults) that has suddenly started misbehaving. i.e. web interface refusing to connect (greyed out / disconnected when accessed from multiple browsers) and stopping part way through prints.
I had attributed the problems to a worn SD card & replacing the SD card seemed to work. I'm now (2 days later) having issues with the printer layer shifting in the y axis on a number of different gcode files (all files that I have printed 100s of times before). The Y axis feels completely smooth mechanically & extrusion looks great when printing (no blobs of plastic ect). Have tried running the print at 50% speed and the layer shifting was just as bad / worse.
I'm running out of ideas to fix the issue (short of swapping boards between printers & potentially taking another printer out of commission) so turning to the forum for help.
Below is the M122 Log taken just after the most recent 50% speed print:
=== Diagnostics ===
RepRapFirmware for Duet 2 Maestro version 2.03 running on Duet Maestro 1.0
Board ID: 08DAM-9F9DA-MWNS8-6JTDG-3SW6S-K41GX
Used output buffers: 3 of 24 (14 max)
=== RTOS ===
Static ram: 19664
Dynamic ram: 87736 of which 0 recycled
Exception stack ram used: 376
Never used ram: 23296
Tasks: NETWORK(ready,660) HEAT(blocked,1276) MAIN(running,3908) IDLE(ready,160)
=== Platform ===
Last reset 37:52:58 ago, cause: power up
Last software reset at 2020-03-08 11:45, reason: User, spinning module GCodes, available RAM 23564 bytes (slot 0)
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d
Error status: 0
Free file entries: 9
SD card 0 detected, interface speed: 15.0MBytes/sec
SD card longest block write time: 43.3ms, max retries 0
MCU temperature: min 24.1, current 28.6, max 31.5
Supply voltage: min 0.0, current 24.1, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
Driver 0: ok, read errors 0, write errors 0, ifcount 58, reads 12544, timeouts 0
Driver 1: ok, read errors 0, write errors 0, ifcount 60, reads 12542, timeouts 0
Driver 2: standstill, read errors 0, write errors 0, ifcount 58, reads 12543, timeouts 1
Driver 3: ok, read errors 0, write errors 0, ifcount 43, reads 12364, timeouts 195
Driver 4: standstill, read errors 0, write errors 0, ifcount 6, reads 12596, timeouts 0
Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 12601
Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 12601
Date/time: 2020-03-10 10:13:04
Slowest loop: 55.89ms; fastest: 0.06ms
I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
=== Move ===
Hiccups: 0, FreeDm: 166, MinFreeDm: 103, MaxWait: 17362857ms
Bed compensation in use: none, comp offset 0.000
=== DDARing ===
Scheduled moves: 887, completed moves: 881, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
=== Heat ===
Bed heaters = 0, chamberHeaters = -1 -1
Heater 0 is on, I-accum = 0.0
Heater 1 is on, I-accum = 0.8
=== GCodes ===
Segments left: 1
Stack records: 1 allocated, 0 in use
Movement lock held by null
http is idle in state(s) 0
telnet is idle in state(s) 0
file is doing "G1 X194.693 Y178.912 E25.5923" in state(s) 0
serial is idle in state(s) 0
aux is idle in state(s) 0
daemon is idle in state(s) 0
queue is idle in state(s) 0
lcd is idle in state(s) 0
autopause is idle in state(s) 0
Code queue is empty.
=== Network ===
Slowest loop: 57.42ms; fastest: 0.02ms
Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
HTTP sessions: 2 of 8
Interface state 5, link 100Mbps full duplex
=== Filament sensors ===
Extruder 0 sensor: ok
At the moment the layer shifting only seems to occur in larger (5-20hr, 6-40MB) print files, haven't seen any layer shifts in 20+hrs of printing smaller (2-3hr / ~4MB) files.
Can you post your config.g?
Do you have the board cooled with a fan?
After that many hours of printing I may start to suspect mechanical issues. Sticking bearing, wear, loose grub screw, slack in the belts, lubrication, stuff like that.
; Configuration file for Duet Maestro (firmware version 1.21)
; executed by the firmware on start-up
; generated by RepRapFirmware Configuration Tool v2 on Sat Dec 22 2018 20:19:36 GMT+0000 (Greenwich Mean Time)
; General preferences
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Maestro" ; Set machine name
M552 P192.168.1.50 S1 ; Enable network and set IP address
M553 P255.255.255.0 ; Set netmask
M554 P192.168.1.254 ; Set gateway
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; Disable FTP
M586 P2 S0 ; Disable Telnet
M569 P0 S0 ; Drive 0 goes backwards
M569 P1 S0 ; Drive 1 goes backwards
M569 P2 S1 ; Drive 2 goes forwards
M569 P3 S1 ; Drive 3 goes forwards
M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
M92 X94.12 Y94.12 Z400.00 E837 ; Set steps per mm
M566 X900.00 Y900.00 Z300.00 E120.00 ; Set maximum instantaneous speed changes (mm/min)
M203 X18000.00 Y18000.00 Z2400.00 E2400.00 ; Set maximum speeds (mm/min)
M201 X800.00 Y800.00 Z250.00 E250.00 ; Set accelerations (mm/s^2)
M906 X1500.00 Y1500 Z1000.00 E1000.00 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 X300 Y300 Z400 S0 ; Set axis maxima
M574 X1 Y2 S1 ; Set active high endstops
M591 D0 P1 C3 S1
M558 P0 H5 F300 T18000 ; Disable Z probe but set dive height, probe speed and travel speed
M557 X15:0 Y15:195 S20 ; Define mesh grid
M305 P0 T100000 B4138 R2200 ; Set thermistor + ADC parameters for heater 0
M143 H0 S90 ; Set temperature limit for heater 0 to 90C
M305 P1 T100000 B4138 R2200 ; Set thermistor + ADC parameters for heater 1
M143 H1 S265 ; Set temperature limit for heater 1 to 265C
M106 P0 S0.5 I0 F20 H1 T40 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P1 S0.35 I0 F20 H-1 ; Set electronics cooling fan to 35%
M106 P2 S0 I0 F20 H-1 ; Set part cooling fan to zero
;M106 P1 H100:101 T39:39 L0.3 ;set electronics fan to temp control using MCU temps
M563 P0 D0 H1 F2 ; Define tool 0 (uses fan output 2 for part cooling fan, fan 0 (heater fan is thermostatically controlled.
G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
; Automatic saving after power loss is not enabled
; Custom settings are not configured
Board is cooled from both above & below with 40mm fans (MCU temp is rarely above ~32°)
I look after the printers pretty well mechanically, probably over 1000 hrs print time ago, but delrin rollers / bearings have been replaced on x & y axes since new, the motion still feels very smooth over the full travel, belt tension is good.
Another 24hrs of printing smaller files in and still not a single issue, but as soon as I try printing larger files (multiples of the same smaller part on the bed to avoid having to go back to the printer every 2-3 hrs) I get layer shifting issues within 30 mins of starting the print.
Think I'll try a print with 2 small parts on opposite corners of the bed just in case its long travel moves that are causing the issue, but why that'd happen after the files have been printing successfully for months I don't know!
Also guess a firmware update couldn't hurt...
@john-sinclair203 You don't have an M584 command in you config.g, though as you're using the standard mapping (X0 Y1 Z2 E3), you don't really need it. However, this does mean you've got a spare driver on the board. So you could add this to your config.g, and swap Y motor to the E1 driver:
; Drives M569 P0 S0 ; Drive 0 goes backwards M569 P1 S0 ; Drive 1 goes backwards M569 P2 S1 ; Drive 2 goes forwards M569 P3 S1 ; Drive 3 goes forwards M569 P4 S0 ; Drive 4 goes forwards, replacement Y M584 X0 Y4 Z2 E3
This would test if it's a driver issue. If that doesn't help, I'd look at mechanical issues; motor, belt pulley, belt, belt clamp, bed fixings (maybe something loose is causing the bed to move up and down more, such that the nozzle hits printed parts).
You could update the firmware, but if there's nothing broken... You should be okay to update to 2.05.1 (https://github.com/dc42/RepRapFirmware/releases/tag/2.05.1), but check through the update readme first for changes in 2.04, 2.05 and 2.05.1 that might affect you: https://github.com/dc42/RepRapFirmware/blob/dev/WHATS_NEW.md