@droftarts Thank you!
Posts made by Charlie
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
Also, I just want to note that for the Gcode Dictionary, for M970, .1, &.2, the "Example" code shows M917 instead of M970.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
@gloomyandy Thats really good to know. I appreciate that info!
Regarding the first crash, it could've either been the first attempt at capturing the debug data, me pulling the mains power in an attempt to "reset" the board, or something to do with me trying to connect to the board over YAT.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
@gloomyandy @AndyE3D I was under the (potentially incorrect) assumption that if the MCU reset, it would not be reflected in the M122 (since it restarted and reset). With that being said, here's the response to M111:
M111 P4 S1 Debugging enabled for modules: Move(4 - 0xffffffff) Debugging disabled for modules: Platform(0) Network(1) Webserver(2) Gcodes(3) Heat(5) Kinematics(6) InputShaping(7) unused(8) PrintMonitor(9) Storage(10) PortControl(11) DuetExpansion(12) FilamentSensors(13) WiFi(14) Display(15) SbcInterface(16) CAN(17) Expansion(18)
Here's the M122 after sending M111 P4 S1, but before the move command:
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0-beta.1 (2024-09-24 10:07:51) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 08DJM-956L2-G43S8-6J9DG-3S46T-KV2LF Used output buffers: 2 of 40 (23 max) === RTOS === Static ram: 136444 Dynamic ram: 96212 of which 4652 recycled Never used RAM 90476, free system stack 156 words Tasks: SBC(2,nWait 7,0.9%,795) HEAT(3,nWait 6,0.0%,325) Move(4,nWait 6,0.0%,211) TMC(5,nWait 6,11.3%,283) CanReceiv(6,nWait 1,0.0%,794) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,348) MAIN(2,running,87.8%,101) IDLE(0,ready,0.0%,29) USBD(3,blocked,0.0%,134), total 100.0% Owned mutexes: USB(MAIN) === Platform === Last reset 00:13:55 ago, cause: power up Last software reset at 2024-11-06 20:54, reason: AssertionFailed, Gcodes spinning, available RAM 90560, slot 1 Software reset code 0x0123 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x20415a34 Task MAIN Freestk 2233 ok Stack: 00000001 00000000 0049941d 20426970 00000000 204207e8 20426970 ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff Error status: 0x00 Aux0 errors 0,0,0 MCU temperature: min 51.7, current 52.7, max 52.9 Supply voltage: min 26.4, current 26.5, max 26.5, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0 Heap OK, handles allocated/used 99/4, heap memory allocated/used/recyclable 2048/88/8, gc cycles 0 Events: 0 queued, 0 completed Date/time: 2024-11-07 12:46:12 Slowest loop: 2.24ms; fastest: 0.07ms USB interrupts 161 === Storage === Free file entries: 20 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 === Segments created 38, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00 Pos req/act/dcf: 26080.00/26080/0.00 1920.00/1920/0.00 2036.00/2036/0.00 no step interrupt scheduled Driver 0: standstill, SG min n/a, mspos 8, reads 11116, writes 0 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 11116, writes 0 timeouts 0 Driver 2: standstill, SG min n/a, mspos 520, reads 11117, writes 0 timeouts 0 Driver 3: standstill, SG min n/a, mspos 520, reads 11116, writes 0 timeouts 0 Driver 4: standstill, SG min n/a, mspos 520, reads 11116, writes 0 timeouts 0 Driver 5: standstill, SG min n/a, mspos 520, reads 11116, writes 0 timeouts 0 Phase step loop runtime (us): min=0, max=25, frequency (Hz): min=6410, max=10563 === DDARing 0 === Scheduled moves 12, completed 12, LaErrors 0, Underruns [0, 0, 0] === DDARing 1 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1 -1 -1 -1 -1, ordering erHeater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP* is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is ready with "M122" 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x80000007 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 0 Extruder 0: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === CAN === Messages queued 1329, received 3024, lost 0, ignored 0, errs 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 6, free buffers 50 (min 50), ts 738/738/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 31603/31603 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x27f90 Buffer RX/TX: 0/0-0, open files: 0 ok
The move command:
G91 G1 H2 X10 F3000
And the M122 output after:
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.6.0-beta.1 (2024-09-24 10:07:51) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 08DJM-956L2-G43S8-6J9DG-3S46T-KV2LF Used output buffers: 2 of 40 (23 max) === RTOS === Static ram: 136444 Dynamic ram: 96104 of which 4652 recycled Never used RAM 91496, free system stack 180 words Tasks: SBC(2,nWait 7,0.8%,791) HEAT(3,nWait 6,0.0%,335) Move(4,nWait 6,0.0%,321) TMC(5,nWait 6,11.1%,379) CanReceiv(6,nWait 1,0.0%,794) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,350) MAIN(2,running,88.0%,101) IDLE(0,ready,0.0%,29) USBD(3,blocked,0.0%,134), total 100.0% Owned mutexes: USB(MAIN) === Platform === Last reset 00:00:36 ago, cause: software Last software reset at 2024-11-07 12:49, reason: HeatTaskStuck, Gcodes spinning, available RAM 90476, slot 2 Software reset code 0x4143 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0042780f BFAR 0x00000000 SP 0x2041d3d0 Task Move Freestk 958 ok Stack: 00000000 2041cd2c 10000000 e000e000 2041d4b8 0049a1d5 0049a9cc 61000000 204210a0 20432728 20432728 00000000 204326a0 00453cf9 001025cc 00456df5 20432728 204326a8 a5a5a5a5 a5a5a500 42576179 a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 Error status: 0x00 Aux0 errors 0,0,0 MCU temperature: min 53.7, current 53.9, max 54.1 Supply voltage: min 26.4, current 26.5, max 26.5, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.1, max 12.1, under voltage events: 0 Heap OK, handles allocated/used 99/4, heap memory allocated/used/recyclable 2048/80/0, gc cycles 0 Events: 0 queued, 0 completed Date/time: 2024-11-07 12:50:35 Slowest loop: 2.11ms; fastest: 0.08ms USB interrupts 185 === Storage === Free file entries: 20 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 === Segments created 0, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00 Pos req/act/dcf: 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00 next step interrupt due in 11 ticks, disabled Driver 0: standstill, SG min n/a, mspos 8, reads 7814, writes 0 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 7814, writes 0 timeouts 0 Driver 2: standstill, SG min n/a, mspos 520, reads 7814, writes 0 timeouts 0 Driver 3: standstill, SG min n/a, mspos 520, reads 7814, writes 0 timeouts 0 Driver 4: standstill, SG min n/a, mspos 520, reads 7813, writes 0 timeouts 0 Driver 5: standstill, SG min n/a, mspos 520, reads 7814, writes 0 timeouts 0 Phase step loop runtime (us): min=0, max=26, frequency (Hz): min=6465, max=10416 === DDARing 0 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] === DDARing 1 === Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0] === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1 -1 -1 -1 -1, ordering erHeater 1 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is ready with "M122" 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 File2 is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 0, axes/extruders owned 0x80000003 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === check 0 clear 0 Extruder 0: no data received, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === CAN === Messages queued 227, received 518, lost 0, ignored 0, errs 0, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 6, free buffers 50 (min 50), ts 126/126/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 3, checksum errors: 6 RX/TX seq numbers: 41734/1414 SPI underruns 4, overruns 4 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x27f90 Buffer RX/TX: 0/0-0, open files: 0 ok
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
@AndyE3D And yes, making sure that DTR was enabled solved my issue with connection! Thank you so much. I can now use YAT on the PC to send and receive commands using a direct USB connection to the Duet.
Now my issue is that, although I can connect and send an M122 command and get an output, once I send
M111 P4 S1
, every time I send a move command (likeG91 G1 H2 X10 F3000
) I get a "Warning: Lost connection to Duet (Timeout while waiting for transfer ready pin)", and then a "Warning: SPI connection has been reset". Then it seems to restart, as the machine is no longer homed. -
RE: 3.6.0-beta.1 Breaking Homing Sequence
@AndyE3D Thank you so much for posting this code. Im pretty new to code in general, but it looks like makes sense (unless im completely mistaken which is also possible). Looks like this is in GitHub: ReprapFirmware/src/Movement/PhaseStep.cpp, line 132 for others that may be looking.
After trying to put some of this in a spreadsheet (which Im sure is not the best way to go about this, but its what I kinda know), and putting in some velocity and acceleration values, Im struggling to get the PIDControlSignal value to be anything other than the 256 max value, which will in turn set the currentFraction to the max of 1.
Im not sure what Im missing here. Could be that the mParams arent actually as simple as the speed and accel in mm/sec(^2), I may have calculated holdCurrentFraction wrong (in PhaseStep.h as 0.71), or the default values are really conservative. Or something else that I cant think of.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
Does anyone have references to how this is implemented?
The only link I currently have is M970. Others with more info (particularly regarding how its calculated and tuned) would be greatly appreciated.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
@Notepad I completely agree. "Acceleration/Velocity constant." Does not help much when trying to tune settings. I was hoping to be able to report back how the calculations are made after doing some testing (and reverse calculating the current factor), but without being able to get a debugging output Im unable to help.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
@AndyE3D I also tried using YAT on a PC, and was unable to get a response from any commands that I made (like M122 or M115). Im assuming that this may have something to do with SBC mode, or Im making some other error in the setup.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
@AndyE3D This may sound simple, but how do I get the "v, a, cf" display in SBC mode? I enabled debugging using the M111 P4 S1 in dwc, plugged my computer into the USB port on the Duet, and I tried Serial Tools on a Mac, but I dont get any response. Im assuming that this may be correct for standalone mode, but not for SBC. Is this correct?
-
RE: [Feature Request] Extrude control in mm/s3 (flow rate)
Just want to second this. I would love if it were a GCode value (like an M203, but for a ceiling on the flow rate). That way it could be input into the start GCode or filament files, and could be changed/checked via the console on the DWC.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
@AndyE3D First of all, thank you so much for your work on implementing this feature! Its been awesome for decreasing motor noise, as well as decreasing VFAs (especially below 100mm/s print speeds).
When I get the time, Ill be sure to do that. Im assuming that I would be able to run Serial Tools app from mac to do the same stuff on a Mac.
Im also getting one of the Vector 3D stepper motor analyzers. I don’t know if anyone has used that and has any input, but Ill be sure to report my findings.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
Its looking like more of a stepper motor/driver issue. Increasing the X/Y stepper motor current to 2380 mA allows me to run the homing sequence and have 600mm/s travel speeds with 7000mm/s^2 accels.
I think my biggest question now is what all the new parameters do. Im using the Forum, GCode Dictionary and the github changelogs to get most of my info.
Any more info on what M970.1 and .2 do? My assumption is that the speed and accel "constant" is like the slope "m" on a y=mx+b style graph, where "b" is min stepper current (motor idle current set by M906?), and the actual current set is the maximum of either the 970.1 and 970.2 lookup values. Im really in the dark regarding this stuff though, so please let me know if I'm completely wrong.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
Also, if it helps, my X and Y steppers sound noticeably quieter after the update, even though M970 shows phase stepping as disabled for all axes. Steppers are LDO 42STH60-2004AH on a voron 2.4 350 setup.
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
It seems to fail around the bed.g section:
; Voron ; 0:/sys/bed.g ; Called to perform automatic bed compensation via G32. ; Prepare M400 ; Wait for current moves to finish. M561 ; Clear any bed plane fitting transform. M290 S0 R0 ; Baby stepping. ; S (Amount to baby step [mm]): 0 (Clear/Reset). ; R (Relative?): 0 (Absolute). ; Home (1 of 2) if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed ; If the axes are not homed ... G28 ; ... home the axes. ; Gantry Tram M98 P"gantry_probing.g" echo "BTC: 1 - Difference was " ^ move.calibration.initial.deviation ^ "mm" while move.calibration.initial.deviation >= 0.05 ; perform additional tramming if previous deviation was over 0.05 mm. if iterations = 5 abort "Too many auto tramming attempts" M98 P"gantry_probing.g" ; perform bed tramming echo "BTC: " ^ iterations + 2 ^ " - Difference was " ^ move.calibration.initial.deviation ^ "mm" continue ; Home 2 of 2 (Just Z). G28 Z ; Home z ; Bed Level G29 S0 ; Mesh bed probe. ; S (Set parameter): 0 (Probe the bed. Save height map in the file "/sys/heightmap.csv" on the SD card. Activate bed compensation.) ; End
here is the referenced gantry_probing.g file as well
; Gantry Tram G90 ; Absolute positioning. G30 P0 X325 Y313.5 Z-99999 ; Single Z probe (Probe points are based on probe location, not nozzle location. See config.g M557). ; P (Probe point number): 0 (1st of 4). ; X (X coordinate): 325 (Right side). ; Y (Y coordinate): 313.5 (Far side). ; Z (Z coordinate): -99999 (Probe the bed). G30 P1 X325 Y25 Z-99999 ; Single Z probe. ; P (Probe point number): 1 (2nd of 4). ; X (X coordinate): 325 (right side). ; Y (Y coordinate): 313.5 (close side). ; Z (Z coordinate): -99999 (Probe the bed). G30 P2 X25 Y25 Z-99999 ; Single Z probe. ; P (Probe point number): 2 (3rd of 4). ; X (X coordinate): 25 (left side). ; Y (Y coordinate): 25 (close side). ; Z (Z coordinate): -99999 (Probe the bed). G30 P3 X25 Y313.5 Z-99999 S4 ; Single Z probe. ; P (Probe point number): 3 (4th of 4). ; X (X coordinate): 25 (left side). ; Y (Y coordinate): 313.5 (far side). ; Z (Z coordinate): -99999 (Probe the bed). ; S (Set parameter): 4 (Calculate 4 point compensation).
-
RE: 3.6.0-beta.1 Breaking Homing Sequence
start gcode
; Printer Settings Start GCode Start ; Prepare G21 ; Set units to millimeters (mm). G90 ; Set all axes (not extruders) to absolute positioning. M83 ; Set all extruders (not axes) to relative positioning. M106 P0 S0 ; Fan (Make sure part cooling fan is off at beginning of print). ; P (Fan number): 0 (Default. Extruder 1). ; S (Fan Speed): 0 (Turn off). M220 S100 ; Set speed factor override percentage (Set speed factor to 100%). ; S (Speed factor override percentage): 100 % (Default). M221 S100 D0 ; Set extrusion factor override percentage (Set extrusion factor to 100%). ; S (Extrude factor override percentage): 100 % (Default). ; D (Extruder drive number): 0 (Default. Extruder 1). M572 D0 S0 ; Set extruder pressure advance (Turn off pressure/linear advance). ; D (Extruder number): 0 (Default. Extruder 1). ; S (Pressure advance amount): 0 sec (Turn off). ; Notify M291 P"Printer: Voron. Material: {filament_preset[current_extruder]}. Nozzle: {nozzle_diameter[current_extruder]}. Layer: {layer_height}." R"Settings" S1 T10 ; Display message. ; Home G28 ; Home (all axes). ; X (Flag to home the X axis): - ; Y (Flag to home the Y axis): - ; Z (Flag to home the Z axis): - ; Heat (1 of 2) M140 S{first_layer_bed_temperature[0]} ; Set bed temperature and dont wait (Heat up bed to first layer settings). ; P (Bed heater index): - (Default is 0). ; H (Heater Number): - ; S (Active/Target temperature): ... deg C. T0 ; Select tool. ; n (Tool number to select): 0 (Tool 1. A negative number deselects all tools.) ; R1 (Select the tool that was active when the print was last paused): - ; P (Bitmap of the macros to be run): - M568 P0 R{nozzle_temperature_range_low[current_extruder] - 40} S{nozzle_temperature_initial_layer[current_extruder]} A1 ; Set tool (Extruder 1 temperature) settings. ; P (Tool number): ... ; R (Standby temperature): ... deg C. ; S (Active temperature): ... deg C. ; A (Required heater state): 1 (Standby temperature). ; Move Toolhead G1 X{(print_bed_min[0] + print_bed_max[0]) / 2} Y{print_bed_max[1] - 10} F21000 ; Controlled linear move (Absolute. Hover over rear center position to facilitate bed preparation). ; X (X axis): ... ; Y (Y axis): ... ; Z (Z axis): - ; F (Feed rate): 21,000 mm/min (350 mm/sec). ; H (Move type): - (Default is 0). ; Wait for Heaters M116 ; Wait (for the nozzle and the bed to heat up). ; P (Tool number): - ; H (Heater number): - ; C (Chamber number): - ; S (Tolerance): - deg C. ; Run Bed Compensation G32 ; Run "bed.g" macro for automatic bed compensation. ; Heat (2 of 2) M140 S{first_layer_bed_temperature[0]} ; Set bed temperature and dont wait (Heat up bed to first layer settings). ; P (Bed heater index): - (Default is 0). ; H (Heater Number): - ; S (Active/Target temperature): ... deg C. M568 P0 A2 ; Set tool settings and dont wait (Heat the extruder up 2 of 2 to active temp). ; P (Tool number): ... ; R (Standby temperature): - deg C (This parameter has been referenced already). ; S (Active temperature): - deg C (This parameter has been referenced already). ; A (Required heater state): 2 (Active temperature). M116 ; Wait (for the nozzle and bed to heat up). ; P (Tool number): - ; H (Heater number): - ; C (Chamber number): - ; S (Tolerance): - deg C. ; Move Toolhead G1 X0 Y0 Z3 F21000 ; Controlled linear move (Absolute. Hover over origin position). ; X (X axis): ... ; Y (Y axis): ... ; Z (Z axis): ... (To prevent scratching the bed). ; F (Feed rate): 21,000 mm/min (350 mm/sec). ; H (Move type): - (Default is 0). ; Purge Blob G1 E1 F900 ; Controlled linear move (Relative. Un-retract extruder). ; E (Extrude): 1 mm (You retract 1 mm for the End GCode or the cancel.g file) ; F (Feed rate): 900 mm/min (15 mm/sec. Minimum un-retraction for S7 printer). G1 E10 F94 ; Controlled linear move (Relative. Prime the hotend). ; E (Extrude): 10 mm. ; F (Feed rate): 94 mm/min (1.57 mm/sec. A flow rate of ~ 10 mm^3/sec). ; Prime Line G1 X5 Z0.2 F2400 ; Controlled linear move (Absolute. Move -Z and +Y to start prime line). ; X (X axis): 5 mm (Move to X of 5, to prevent nozzle squishing into prime blob). ; Z (Z axis): 0.2 mm (Move to Z of 0.2, to go to start of layer). G1 X325 E12 F1200 ; Print prime line horizontally across front left corner (Uses a conservative initial layer speed of 20 mm/sec). G1 X350 F7200 ; Travel to release purge line from nozzle. G1 Z3 F2400 ; Raise extruder to prevent bed scratching. G92 E0 ; Reset extruder distance to 0. ; Printer Settings Start GCode End
-
3.6.0-beta.1 Breaking Homing Sequence
Hi there. After updating to 3.6.0-beta.1, my homing sequence seems to be failing, causing the printer to try to move outside of the build volume (and of course making a host of horrible noises, lol).
config.g
; Voron ; Hardware ; Pi: Raspberry Pi 4 Model B. ; Main Board: Duet 3 Mainboard (MB) 6HC v1.01. ; CAN Board: Duet 3 Toolboard (TB) 1LC v1.2 ; 0:/sys/config.g ; Executed by the firmware on start-up. ; General Preferences G90 ; Set all axes (not extruders) to absolute positioning. M83 ; Set all extruders (not axes) to relative positioning. M669 K1 ; Set kinematics type and parameters. ; K (Kinematics type): 1 (CoreXY). ; CAN Delay G4 S2 ; Dwell. Pause the machine for a period of time. ; S (Time to wait [sec]): 2 (Recommended time to wait for Duet Toolboard). ; Drive Map ; XY Drives ; | A | B | ; Z Drives ; | 3 | 0 | ; - - - - ; | 2 | 1 | ; Front ; Drives M569 P0.0 S1 ; Set motor driver settings. ; P (Motor drive number): 0.0 (Mainboard. Driver 0 board label. TMC5160 stepper driver. [XY, A, top left motor]). ; S (Direction of movement): 1 (Forward). ; D (Driver mode): 2 (SpreadCycle). ; F (Off time, toff). ; B (Blanking time, tbl). ; Y (Hysteresis). M569 P0.1 S1 ; Set motor driver settings. ; P (Motor drive number): 0.1 (Mainboard. Driver 1 board label. TMC5160 stepper driver. [XY, B, top right motor]). ; S (Direction of movement): 1 (Forward). ; D (Driver mode): 2 (SpreadCycle). ; F (Off time, toff). ; B (Blanking time, tbl). ; Y (Hysteresis). M569 P0.2 S0 D2 F3 B0 Y0:2 ; Set motor driver settings. ; P (Motor drive number): 0.2 (Mainboard. Driver 2 board label. TMC5160 stepper driver. [Z0, far right motor]). ; S (Direction of movement): 0 (Backward). ; D (Driver mode): 2 (SpreadCycle). M569 P0.3 S1 D2 F3 B0 Y0:2 ; Set motor driver settings. ; P (Motor drive number): 0.3 (Mainboard. Driver 3 board label. TMC5160 stepper driver. [Z1, close right motor]). ; S (Direction of movement): 1 (Forward). ; D (Driver mode): 2 (SpreadCycle). M569 P0.4 S0 D2 F3 B0 Y0:2 ; Set motor driver settings. ; P (Motor drive number): 0.4 (Mainboard. Driver 4 board label. TMC5160 stepper driver. [Z2, close left motor]). ; S (Direction of movement): 0 (Backward). ; D (Driver mode): 2 (SpreadCycle). M569 P0.5 S1 D2 F3 B0 Y0:2 ; Set motor driver settings. ; P (Motor drive number): 0.5 (Mainboard. Driver 5 board label. TMC5160 stepper driver. [Z3, far left motor]). ; S (Direction of movement): 1 (Forward). ; D (Driver mode): 2 (SpreadCycle). M569 P121.0 S1 ; Set motor driver settings. ; P (Motor drive number): 121.0 (Duet3D 1LC toolboard. Driver 0 board label. TMC2209 stepper driver. E1, Extruder 1). ; S (Direction of movement): 1 (Forward). ; D (Driver mode): 2 (SpreadCycle). ; F (Off time, toff). ; B (Blanking time, tbl). ; Y (Hysteresis). M584 X0.0 Y0.1 Z0.2:0.3:0.4:0.5 E121.0 R0 S0 ; Set drive mapping. ; X (X motor): 0.0 (Mainboard. Driver 0 board label). ; Y (Y motor): 0.1 (Mainboard. Driver 1 board label). ; Z (Z motors): 0.2:0.3:0.4:0.5 (Mainboard. Drivers 2, 3, 4, & 5 board labels). ; E (Extruder motor): 121.0 (Toolboard. Driver 0 board label). ; R (Axes created in command are...): 0 (Linear). ; S (Axes created in command are treated in feedrate calculations as...): 0 (Linear). ; P (Number of visible axes): - (Defaults to the number of axes that are configured). M671 X410:410:-60:-60 Y422:-8:-8:422 S20 F1.0 ; Set positions of Z belts (60mm X, 72mm Y offsets in back. 60mm X, 8mm Y offsets in front.) 0 (410,422), 1 (410, -8), 2 (-60, -8), 3 (-60, 422). ; X (X coordinates of Z screws). ; Y (Y coordinates of Z screws). ; S (Maximum correction to apply to each Z screw [mm]). ; F (Fudge factor). M350 X16 Y16 Z16 E16 I1 ; Set microstepping mode and interpolation. ; X (X axis): 16 (1/16 step). ; Y (Y axis): 16 (1/16 step). ; Z (Z axis): 16 (1/16 step). ; E (Extruder): 16 (1/16 step). ; I (Microstepping interpolation mode): 1 (Enable). M92 X80 Y80 Z400 E814 ; Set axis steps per unit (steps/mm). ; X (X axis). ; Y (Y axis). ; Z (Z axis). ; E (Extruder). (800 is default for Bondtech LGX Lite Pro). M566 X480 Y480 Z24 E150 P1 ; Set maximum instantaneous speed change (jerk/square corner velocity). ; X (X axis [mm/min]): 480 (8 mm/sec. 5 mm/sec was too low. 8 mm/sec was good). ; Y (Y axis [mm/min]): 480 (8 mm/sec. 5 mm/sec was too low. 8 mm/sec was good). ; Z (Z axis [mm/min]): 24 (0.4 mm/sec. 0.2 mm/sec was too low. 3 mm/sec was good. 12 mm/sec was too high.). ; E (Extruder [mm/min]): 150 (2.5 mm/sec. 2 mm/sec based on garethky Github recommendation was too low. 133 mm/sec based on DorjeDorf Github recommendation was too high). ; P (Jerk policy): 1 (Jerk is applied between any pair of travel/print moves). M203 S1 X600 Y600 Z50 E120 ; Set maximum feedrate (speed). ; S (Units): 1 (mm/sec. Default is mm/min). ; X (X axis [mm/sec]). (Reference RepRapFirmware EMF Calculator). ; Y (Y axis [mm/sec]).(Reference RepRapFirmware EMF Calculator). ; Z (Z axis [mm/sec]). ; E (Extruder [mm/sec]). (Ultimaker S7 default retract speed is 45). M201 X20000 Y20000 Z500 E5000 ; Set maximum print move accelerations. ; X (X axis [mm/sec^2]). ; Y (Y axis [mm/sec^2]). ; Z (Z axis [mm/sec^2]). ; E (Extruder [mm/sec^2]). M906 X1680 Y1680 Z900 E550 I30 ; Set maximum peak motor currents (Duet 3 MB6HC is in steps of 26.2mA. Duet 3 1LC toolboard is in steps of 50mA, rounded down). ; X (X drive [mA]). (1,680 is 60% of max peak rated motor current of 2,800 mA. 2,227 was too high, too hot to touch.). ; Y (Y drive [mA]). (1,680 is 60% of max peak rated motor current of 2,800 mA. 2,227 was too high, too hot to touch.). ; Z (Z drive mA]). (900 is 45% of max peak rated motor current of 2,000 mA. 1388.6 was a little too loud). ; E (Extruder [mA]). (Bondtech 01LCT00STM00008/Bondtech LGX Lite Pro. 550 is 55% of max peak rated motor current of 1,000 mA. Bondtech site recommends 550-650ma w/ extruder. ; 700 was too high, too hot to touch.). ; I (Motor current idle factor [%]). M84 S30 ; Stop idle hold. ; S (Idle time out [sec]). ; Axis Limits M208 X0:350 Y0:350 Z0:310 ; Set axis maximum travel. ; S (Set axis): - (Excluded for alternative format). ; X (X axis [mm]). (Min) : (Max). ; Y (Y axis [mm]). (Min) : (Max). ; Z (Z axis [mm]). (Min) : (Max). ; Calculate Bed Center if !exists(global.bed_center_x) global bed_center_x = floor(move.axes[0].max / 2) if !exists(global.bed_center_y) global bed_center_y = floor(move.axes[1].max / 2) ; Endstops M574 X2 P"0.io0.in" S1 ; Set endstop configuration. ; X (Position of X endstop): 2 (High end). ; P (Pin name): 0. (Mainboard) io0.in. ; S (Endstop type): 1 (Switch type). M574 Y2 P"0.io1.in" S1 ; Set endstop configuration. ; Y (Position of Y endstop): 2 (High end). ; P (Pin name): 0. (Mainboard) io1.in. ; S (Endstop type): 1 (Switch type). M574 Z0 ; Set endstop configuration. ; Z (Position of Z endstop): 0 (None). ; Axis Compensation ; M556 S100 X0.247 ; Axis skew compensation. ; S (Value of the measured distance [mm]). ; X (Deviation in the X/Y settings [mm]). ; Bed Compensation Taper M376 H2 ; Set bed compensation taper. ; H (Taper height). ; Z Probe M950 S0 C"121.io0.out" ; Create GPIO/servo pin. ; S (Output/servo pin number). ; C (Pin name): 121. (Toolboard) io0.out. M558 P8 C"121.io0.in" H3 F600:120 T30000 K0 R0 A1 B1 ; Set Z probe type. ; P (Z Probe type): 8 (Omron TL-Q5MC2 NPN Normally Closed NC Inductive Proximity Sensor). ; C (Endstop input): - (Not Inverted due to NC) 121. (Toolboard) io4.in. ; H (Dive height [mm]). ; F (Feed rate. Probing speed [mm/min]) ; T (Travel speed [mm/min]). 21,000 (350 mm/sec). ; K (Z probe number): 0 (1). ; R (Recovery time [sec]). ; A (Max number of times to probe each point) ; B (Heaters): 1 (Turn off all heaters while probing). G31 P100 X0 Y24.0 Z2.191 K0 ; Set Z probe. ; P (Trigger value). ; X (Probe X offset [mm]). ; Y (Probe Y offset [mm]). ; Z (Trigger Z height [mm]). (This is modified for Z probe calibration. A higher offset number moves the nozzle closer to the bed.). ; K (Z probe number). M557 X25:325 Y25:313.5 P3 ; Define Z probe mesh grid (This is the probe point grid, not the nozzle grid). ; X (Min:Max X coordinates to probe [mm]). (Min) : (Max). ; Y (Min:Max Y coordinates to probe [mm]). (Min) : (Max). ; P (Points to probe in each settings). ; Heater, Bed M308 S0 P"0.temp0" Y"thermistor" A"Bed" T100000 B3950 C0 R2200 L0 H-6 ; Set (Bed) temperature sensor parameters. ; S (Sensor number). ; P (Pin name): 0. (Mainboard) temp0. ; Y (Sensor type). ; A (Sensor name). ; T (Thermistor resistance at 25 deg C [ohms]). ; B (Beta value): 3,950 (From Keenovo website). ; C (C Coefficient). ; R (Series resistor value [ohms]): 2,200 (Default for Duet3). ; L (ADC low offset correction): 0 (Default is 0. Semi-auto calibration gets 0. Manual calibration gets 0.). ; H (ADC high offset correction): -6 (Default is 0. Semi-auto calibration gets -6. Manual calibration gets -6.). M950 H0 C"0.out0" Q10 T0 ; Create heater (Bed). ; H (Heater number). ; C (Pin name): 0. (Mainboard) out0. ; Q (PWM frequency [Hz]): 10 (Due to solid state relay). ; T (Temperature sensor number): 0 (Bed). M307 H0 R0.645 D1.57 E1.35 K0.355:0.000 B0 I0 S1.00 V0 ; Set heating process parameters (Auto tune performed: M303 H0 P1 S100). ; H (Heater number): 0 (Bed). ; R (Heating rate [deg C/sec]). ; D (Dead time [sec]). ; E (Exponent of cooling rate curve): 1.35 (default). ; K (Cooling rate at 100C above ambient [deg C/sec]). ; B (Bang bang control): 0 (Disabled). ; I (PWM signal inversion): 0 (Not inverted). ; S (Maximum PWM frequency to use). ; V (V in calibration supply voltage): 0 (Disabled due to mains power supply. Also, not applied to bed heaters). M140 P0 H0 ; Configure bed heater. ; P (Bed heater index); 0 (Default.) ; H (Heater number): 0 (Map heated bed to heater 0.). M143 H0 S125 A0 C0 ; Set maximum heater temperature. ; H (Heater number to monitor): 0 (Bed). ; S (Maximum permitted temperature [deg C]): 125 (Due to Keenovo bed heater adhesive). ; A (Action to trigger): 0 (Default. Generate heater fault). ; C (Condition for temperature event): 0 (Default. Temperature too high). ; Heater, Extruder 1 M308 S1 P"121.temp0" Y"pt1000" A"Extr. 1" L-20 H4 ; Set (Extruder 1) temperature sensor parameters. ; S (Sensor number): 1 (Extruder 1). ; P (Pin name): 0. (Mainboard) temp1. ; Y (sensor type): pt1000 (E3D PT1000). ; A (Sensor name). ; R (Series resistor value [ohms]): - (Uses the default for the board). ; L (ADC low offset correction): ... (Default is 0. Semi-auto calibration gets -15. Manual calibration gets -20.) ; H (ADC high offset correction): ... (Default is 0. Semi-auto calibration gets -1. Manual calibration gets 4.) M950 H1 C"121.out0" Q250 T1 ; Create heater (Extruder 1, E3D E-HEATER-HT-24V-65W-KIT). ; H (Heater number). ; C (Pin name): 0. (Mainboard) out1. ; Q (PWM frequency [Hz]): 250 (Default for heaters). ; T (Temperature sensor number). M307 H1 R3.381 D3.42 E1.35 K0.496:0.430 B0 I0 S1.00 V23.5 ; Set heating process parameters (Auto tune performed: M303 H1 P1 S240 T0 A20 Y5 F1). ; H (Heater number): 1 (Extruder 1). ; R (Heating rate [deg C/sec]): 3.381 (ST heat break: 3.680. Decrease this by 30% if a heater temperature error shows up). ; D (Dead time [sec]): 3.42 (ST Heat Break: 3.48). ; E (Exponent of cooling rate curve): 1.35 (default). ; K (Cooling rate at 100C above ambient [deg C/sec]): 0.496:0.430 (ST Heat Break: 0.425:0.258). ; B (Bang bang control): 0 (Disabled). ; I (PWM signal inversion): 0 (Not inverted). ; S (Max PWM frequency to use). ; V (Vin calibration supply voltage [V]). M143 H1 S280 A0 C0 ; Set maximum heater temperature. ; H (Heater number to monitor): 1 (Extruder 1). ; S (Maximum permitted temperature [deg C]): ... (Max hot end temp: 500. Max heater temp: 550. Max PT1000 sensor temp: 500. Max silicone sock temp: 280. Max nozzle temp: 300.) ; A (Action to trigger): 0 (Default. Generate heater fault). ; C (Condition for temperature event): 0 (Default. Temperature too high). M302 P0 S160 R90 ; Allow cold extrudes. ; P (Cold extrude allow state): 0 (Forbid cold extrudes). ; S (Minimum extrusion temperature [deg C]): 160 (Default). ; R (Minimum retraction temperature [deg C]): 90 (Default). M570 H1 P5 R3 ; Configure heater fault detection. ; H (Heater number): 1 (Extruder 1). ; P (Time for which a temperature anomaly must persist before raising a heater fault [sec]): 5 (Default). ; T (Permitted temperature excursion from the setpoint [deg C]): 15 (Default). ; R (Maximum number of consecutive temperature reading failures before a heater fault is raised): 3 (Default). ; Fan, Print Cooling M950 F0 C"121.out1" Q15000 ; Create fan (Mechatronics B5015E24B-BSR). ; F (Fan number). ; C (Pin name): 121. (Toolboard) out1. ; Q (PWM frequency [Hz]). M106 P0 S0.00 L0.02 X1.00 B0.3 H-1 R1 C"Print Fan" ; Set fan. ; P (Fan number): 0 (Print/part cooling). ; S (Fan speed [%]). ; L (Minimum fan speed [%]). ; X (Maximum fan speed [%]). ; B (Blip time [sec]). ; H (Thermostatic control): -1 (Disabled). ; R (Restore fan speed): 1 (To the value it has when the print was paused). ; C (Name). ; Fan, Heat Break M950 F1 C"121.out2" Q25000 ; Create fan (Orion OD4010-24HB01A). ; F (Fan number). ; C (Pin name): 121. (Toolboard) out2. ; Q (PWM frequency [Hz]). M106 P1 S1.0 L0.2 X1.0 B0.5 H1 T45 C"Heat Break Fan" ; Set fan. ; P (Fan number): 1 (Heat break). ; S (Fan speed [%]). ; L (Minimum fan speed [%]). ; X (Maximum fan speed [%]). ; B (Blip time [sec]). ; H (Thermostatic control): 1 (Extruder 1). ; T (Thermostatic mode trigger temperature [deg C]). ; C (Name). ; Fans, Case M308 S2 Y"drivers" A"Driver Temp" ; Set (stepper drivers) temperature sensor. ; S (Sensor number). ; Y (Sensor type): drivers (Mainboard stepper drivers). ; A (Sensor name). M308 S3 Y"mcu_temp" A"MCU Temp" ; Set (CPU/MCU) temperature sensor. ; S (Sensor number). ; Y (Sensor type): mcu_temp (CPU/MCU). ; A (Sensor name). M950 F2 C"0.out6" Q25000 ; Create fan (Delta AFB0624LD). ; F (Fan number): 2 (Case fan). ; C (Pin name): 0. (Mainboard) out6. ; Q (PWM frequency [Hz]). M106 P2 L0.8 X1.0 B0.1 H2:3 T58:65 C"Case Fans" ; Set fan. ; P (Fan number): 2 (Electronics). ; L (Minimum fan speed [%]). ; X (Maximum fan speed [%]). ; B (Blip time [sec]). ; H (Thermostatic control): 2 (stepper drivers) : 3 (CPU/MCU). ; T (Thermostatic trigger temperature [C]): ... - ... (Proportional range). ; C (Name). ; Fan, Exhaust M950 F3 C"0.out4" Q15000 ; Create fan (Delta AFB0624LD). ; F (Fan number). ; C (Pin name): 0. (Mainboard) out4. ; Q (PWM frequency [Hz]). M106 P3 L0.8 X1.0 B0.1 H1 T45 C"Exhaust Fan" ; Set fan. ; P (Fan number): 1 (Heat break). ; S (Fan speed [%]). ; L (Minimum fan speed [%]). ; X (Maximum fan speed [%]). ; B (Blip time [sec]). ; H (Thermostatic control): 1 (Extruder 1). ; T (Thermostatic mode trigger temperature [deg C]). ; C (Name). ; Tools M563 P0 S"Extr. 1" D0 H1 F0 L0 ; Define tool. ; P (Tool number): 0 (Extruder 1). ; S (Tool name). ; D (Extruder drive): 0 (defined in M584 as E1.0). ; H (Heater): 1 (Extruder 1, defined in M950 H1). ; F (Fan mapped): 0 (Print/part cooling fan). ; L (Drive to use for filament mapping). M568 P0 R0 S0 A0 ; Set tool settings (Set temperature). ; P (Tool number): 0 (Tool 1. Extruder 1). ; R (Standby temperature [deg C]). ; S (Active temperature [deg C]). ; F (Spindle speed [RPM]): - (No spindle used). ; A (Required heater state): 0 (Off). G10 L1 P0 X0 Y0 Z0 ; Set tool offset and temperature. ; L (Mode): 1 (Default. Sets the tool offset, as if the L parameter was not present). ; P (Tool number): 0 (Tool 1. Extruder 1). ; X (X offset). ; Y (Y offset). ; Z (Z offset). ; Display M575 P1 S1 B57600 S1 ; Set serial communications parameters. ; P (Serial channel number): 1 (Auxiliary serial port). ; B (Baud rate): 57,600 (PanelDue default). ; S (Mode): 1 (PanelDue, checksum required). ; Automatic Power Saving M911 S21.0 R22.0 P"M568P0A0 M913X0Y0 G91 G1Z3F2400 M83 E-1 F900" ; Set auto save on power loss. ; S (Auto save threshold [V]). ; R (Resume threshold [V]). ; P (Commands on power loss). ; CPU Temperature Compensation M912 P0 S00.0 ; Set electronics temperature monitor adjustment. ; P (Temperature monitor channel): 0 (Default). ; S (Value to be added to temperature reading [C]): 00.0 (Lower number decreases displayed cpu temperature. =(temperature_actual)-(temperature_indicated)). ; Pressure Advance M572 D0 S0.000 ; Set extruder pressure advance (Linear advance). ; D (Extruder number): 0 (Extruder 1). ; S (Pressure advance amount [sec]). ; Accelerometer Configuration ; M955 P121.0 I05 ; Configure accelerometer (This is for when the Duet Toolboard 1LC accelerometer is used). ; P (Accelerometer to use): 121.0 (Duet Toolboard) ; I (Accelerometer orientation): 0 (+Z accelerometer faces +X on printer), 5 (+X accelerometer faces -Y on printer). ; M955 P0 I65 C"spi.cs1+spi.cs0" ; Configure accelerometer (This is for when the Duet Standalone Accelerometer Board using the LIS3DH MEMS digital motion sensor is used). ; P (Accelerometer to use): 0 (Connected locally via SPI). ; I (Accelerometer orientation): 6 (+Z accelerometer faces -Z on printer), 5 (+X accelerometer faces -Y on printer). ; C (Pins used): "spi.cs1+spi.cs0" (All wires connected to Temp DB connector. No temperature daughterboard is inline. Connect the IDC cable ; plug into the main board with the cable ribon pointing inboard). ; Input Shaping M593 P"zvddd" F53.0 S0.1 L0.25 ; Configure Input Shaping. ; P (Input shaping type). ; F (Frequency [Hz]). ; S (Damping factor): 0.1 (default). ; L (Minimum acceleration [mm/sec^2]): 0.25 (default). ; Filament Sensing M591 D0 P3 C"121.io1.in" S1 L26.31 R25:200 E20.0 A0 ; Configure filament sensing (Duet rotating magnet filament sensor. Hardware v3.0. Software v4.0. Presence, detection, ; jam, runout). ; D (Extruder drive number): 0 (Extruder 1). ; P (Sensor type): 3 (Duet rotating magnet sensor without microswitch). ; C (Pin name): "121. (Toolboard) io1.in". ; S (Enable monitoring): 1 (Enable when printing from SD card). ; L (Sensitivity [mm/rev]). (Default is 28.80). ; R (Movement tolerance[%]). (Default is 60-160). ; E (Extrusion length [mm]. (Default is 3.0. Will likely need 10-20 given sensor distance from extruder. 10mm of ; histerysis was measured). ; A (Check motion): 0 (Default. Check extruder motion of only printing moves). ; Select Tool T0 ; Select the first tool.
-
RE: Stepper Vibration/Resonance At Specific Speeds
@engikeneer That makes a lot of sense. I raised the current to the max rated current of 2,000mA, which gave the best results. Stepping up from 1,000 to 1,900 gave worse and worse resonance until 2,000mA, but the steppers are a tad warm just from a few travel moves. Im not too worried about the motors getting too hot since they are 180C rated, but the plastic Voron mounts may not handle it well on 24hr+ prints.
On the note of changing steppers, what should I be looking for? Ive been looking at the LDO 42STH48-2504AC. I know the low 1.5 mH inductance should be good for high speed, but what specs should I be looking at to reduce the possibility of resonance?
Thank you for the helpful insight!
-
RE: Stepper Vibration/Resonance At Specific Speeds
@droftarts Thank you for your response! I tensioned the belt using the tool and measurements by PF Makes Tension Meter. I also tried increasing and decreasing the belt tension, with no change to the outcome.
Regarding the Input Shaping (IS), I had input shaping tuned and enabled (M593 P"zvddd" F44.0 S0.1 L0.25). Disabling it did not change the resonance. This makes sense given what @dc42 says here about IS affecting the "acceleration profiles" and (I would assume) not the speed profiles where I am observing the resonance.
Im not completely certain what you mean by
@droftarts said in Stepper Vibration/Resonance At Specific Speeds:
It's also worth checking where exactly the ringing is coming from, ie it might be the extruder.
The resonance is present both during printing, and during traveling at this specific range of speeds, regardless of extruder position or printhead location.
It also happens even if the stepper is removed from the machine, indicating that this is not a belt/machine resonance issue.
-
RE: Stepper Vibration/Resonance At Specific Speeds
@oliof Unfortunately, reversing the phases and changing the motor direction did not change the noise level. The issue persists.