M122 MaxReps
-
Hi all,
I'm trying to speed up my homing on my printer for coarse homing. From other posts https://forum.duet3d.com/post/41795 I see that I can accomplish this by issuing an M122 command. However, when issuing the M122 command, I do not see the information I am looking for.
m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.4.5 (2022-11-30 19:35:23) running on Duet 3 MB6HC v1.02 or later (standalone mode) Board ID: 08DJM-9P63L-DJ3S0-7JKD6-3SN6K-1UMRA Used output buffers: 3 of 40 (29 max) === RTOS === Static ram: 152760 Dynamic ram: 98448 of which 12 recycled Never used RAM 95684, free system stack 129 words Tasks: NETWORK(ready,29.6%,236) ETHERNET(notifyWait,0.2%,443) HEAT(notifyWait,0.0%,322) Move(notifyWait,0.0%,259) CanReceiv(notifyWait,0.0%,774) CanSender(notifyWait,0.0%,336) CanClock(delaying,0.0%,339) TMC(notifyWait,8.4%,57) MAIN(running,61.8%,925) IDLE(ready,0.0%,30), total 100.0% Owned mutexes: === Platform === Last reset 00:14:52 ago, cause: power up Last software reset at 2023-02-05 19:51, reason: User, GCodes spinning, available RAM 94964, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Step timer max interval 129 MCU temperature: min 49.0, current 50.4, max 51.1 Supply voltage: min 25.7, current 25.8, max 25.9, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.3, max 12.6, under voltage events: 0 Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/186/186, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min 0, mspos 40, reads 36565, writes 2 timeouts 0 Driver 1: standstill, SG min 0, mspos 392, reads 36562, writes 5 timeouts 0 Driver 2: standstill, SG min 0, mspos 776, reads 36562, writes 5 timeouts 0 Driver 3: standstill, SG min 0, mspos 1000, reads 36562, writes 5 timeouts 0 Driver 4: standstill, SG min 0, mspos 792, reads 36562, writes 5 timeouts 0 Driver 5: standstill, SG min 0, mspos 872, reads 36565, writes 2 timeouts 0 Date/time: 2023-02-07 22:02:08 Slowest loop: 4.58ms; fastest: 0.05ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.4ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 38, maxWait 75851ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 106, completed 106, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed 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, chamber heaters -1 -1 -1 -1, ordering errs 0 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle 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 === Filament sensors === Extruder 0 sensor: no filament === CAN === Messages queued 4700, received 10691, lost 0, boc 0 Longest wait 3ms for reply type 6037, peak Tx sync delay 6, free buffers 50 (min 49), ts 2576/2576/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 3.68ms; fastest: 0.03ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 2 of 8 = Ethernet = State: active Error counts: 0 0 0 0 0 0 Socket states: 5 2 2 2 2 0 0 0 = WiFi = Network state is disabled WiFi module is disabled Failed messages: pending 2779096485, notready 2779096485, noresp 2779096485 Socket states: 0 0 0 0 0 0 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0
Is there a different command I need to issue? I searched the docs and could not find anything related to the MaxReps field, and I tried different P parameters with M122 to no avail.
Thank you
-
@Surgikill that post you linked was from RRF v1.2 and the M122 report has changed.
Is that M122 after homing?
-
@T3P3Tony Yes, this report is after homing and after probing and leveling the z axis. The report looked identical before homing and leveling as well, except for some minor deviation in variables.
-
How fast are you homing now? Have you tried increasing the speed yet? How fast do you want to go?
-
@Phaedrux 30mm/s on x and y for coarse homing. 5mm/s on z probe for coarse homing. My main issue is the z axis, I would like that to move a bit faster, but I don't want to end up crashing the bed. I was considering adding some type of inductive probe to the machine and coarse homing fast towards the inductive probe, and then lowering the speed after it activates the inductive probe. I would like to decrease the total time to home either way, and get it as fast as I can while still having it home reliably every time.
-
@Surgikill said in M122 MaxReps:
@Phaedrux 30mm/s on x and y for coarse homing. 5mm/s on z probe for coarse homing. My main issue is the z axis, I would like that to move a bit faster, but I don't want to end up crashing the bed. I was considering adding some type of inductive probe to the machine and coarse homing fast towards the inductive probe, and then lowering the speed after it activates the inductive probe. I would like to decrease the total time to home either way, and get it as fast as I can while still having it home reliably every time.
This may or may not interest you, but I had a similar problem. That is to say, my Z axis is heavy but also has a potential travel of >750 mm so homing at a low speed could take several minutes if a tall part was last printed. But to move the Z axis at faster speed means that I can't reduce the motor current, so in the event of the probe failing to trigger, I'd risk a serious crash. My solution was to fit a simple micro-switch on a swinging arm such that the bed can trigger the switch as it rises after which the arm holding the switch will swing upwards so that the switch doesn't get crushed. From switch trigger to Z=0 is about 110mm. So using conditional gcode, I have a loop which checks the switch, then if it isn't triggered raises the bed 100mm at full motor current rapidly. The loop will repeat until the switch triggers. This is part of my home Z macro so the bed will always move rapidly until it is within 10 and 109 mm of the bed, after which normal homing at lower speed and reduced motor current takes place. The length of the arm and it's position could be altered if one wanted to get closer at high speed.
You can see it in action as part of a longer video I made. This link with the "t=210" should take you straight to it (it's about 3 1/2 minutes in from the start). https://www.youtube.com/watch?v=OWmsIK4qbZ0&t=210s
EDIT. That fast jog happens at 900mm/min(15mm/sec). The course homing of Z is at 300mm/min (5mm/sec) and the second, fine homing of 5mm happens at 60mm/min (1mm/sec). So 750mm of Z travel used to take 150 seconds or 2 1/2 minutes at 5mm/sec and now it's about 50 seconds - obviously a lot less for shorter travel distances.
-
Those speeds aren't crazy by any means. For Z you can do a fast first probe and a slower secondary.
Or you could add optical endstop for a fast home. The optical flag can pass through the switch body, so it doesn't need to be at exact Z0. Then use the probe for a second homing pass.
-
@Phaedrux said in M122 MaxReps:
.............. Or you could add optical endstop for a fast home. The optical flag can pass through the switch body, so it doesn't need to be at exact Z0. Then use the probe for a second homing pass.
Wish I'd thought of that before I mounted a micro-switch on a swinging arm.
But I'm planning a fairly major re-build so I'll incorporate that idea into it - thanks.
-
@deckingman said in M122 MaxReps:
Wish I'd thought of that before I mounted a micro-switch on a swinging arm.
I wanted to keep my switch - simple, reliable, existent - but still stay safe of the nozzle touching the bed during a first, rapid approximation. Works.
-
@Phaedrux That's pretty much what I was thinking with the induction probe. Not sure if I can pull it off with an optical endstop due to tolerances. I'm guessing this would just go to a regular z-endstop? Do you know where I could find the requisite g-code for something like this?
-
@Surgikill said in M122 MaxReps:
Do you know where I could find the requisite g-code for something like this?
For what specifically?
-
@Phaedrux Basically a secondary homing switch. I'm guessing in my homez.g I could just home to the secondary switch, and then go straight into a z probe?
-
Yes in that case you could do it sequentially.
G91 ; relative movement
G1 H1 Z-300 F600 ; home Z with switch
G1 Z5 ; raise Z
G1 X150 Y150 ; move probe to center of bed
G30 ; probe bed -
@Phaedrux Awesome, thanks.
So is the MaxReps feature in M122 gone? Or has it been moved somewhere else?
-
No idea about maxreps. Never paid any attention to it.