@wifibeagle
Reprinted a part that required the G4 delay after deleting that command. No problems with the print. It appears 3.4.1 may have cured the problem even if it has not completely solved the mystery.
I can live with that!
@wifibeagle
Reprinted a part that required the G4 delay after deleting that command. No problems with the print. It appears 3.4.1 may have cured the problem even if it has not completely solved the mystery.
I can live with that!
On second thought don't bother with Gcode Modifyer. It only allows one change before saving and reloading the file. I think it is just as easy to modify the code in Notepad+. Oh well...
FYI: I found a program called "Gcode Modifyer" that makes it relatively easy to add user gcode at any desired layer. It would be better if CURA had such a post processing feature but this beats manually editing the gcode file. I'm still trying to figure out all the possibilities.
https://www.youtube.com/watch?v=ikwa3nVHrO8 shows a demonstration plus links to the program.
In my case it inserted the following at each selected layer
;G-Code Modifier DATA Start
M98 P"0:/macros/wipe" ;1st Command LAYER
;G-Code Modifier DATA End
As is often the case I make things more difficult than necessary. I made a copy of my wipe macro with G60 S3 at the beginning and G1 X0 Y0 Z0 F3000 at the end and it worked!
Thank you for your help and patience. Now I'll see how it works for the 600 layer print.
John
The next command in the process gcode is M104 S230
The custom code sounds like an interesting approach. I will read more in the documentation to see how I might use that technique.
Unfortunately, cura does not have a simple way to insert gcode at height. It has insert gcode at layer change but I can't wipe every layer in a 600 layer print! Filament change is an option (M600) but with my limited understanding that seems basically like M226. There is also a time lapse script that uses a user specified Mcode to trigger the camera with a configurable pause.
I think my basic problem is I don't understand how the system knows to return to the last print location and continue the print if I were to manually insert the wipe macro call into the gcode. That's why I'm stuck on the pause/resume approach. Can you point me to some detailed documentation to help me understand?
John
@Phaedrux
Well, I was hoping it would be that simple unfortunately it is not. I tried replacing the M24 with M98 P"0:/macros/wipe". After the wipe macro nothing happened, no resume. So I selected the DWC resume and the print head moved to the last position and extruded some filament then returned to the wipe position so I cancelled the print. Then I tried adding M24 to a copy of the wipe macro. That functioned just like having the M24 in the print gcode. It is a coreXY printer so the wipe mechanism is mounted to the frame of the printer vs. attached to the bed.I have attached a screen print of the CURA pause at height dialog for reference. I really do not understand the pause/resume process in enough detail.
Most of the PETG I have printed had tolerable blobs. This 3Kg roll has many more and larger blobs even after reducing the extrusion flow. The nozzle picks up little imperfections in the previous layer(s) which eventually turns into a blob sticking to the print. I mostly print functional parts where appearance is not the primary focus but these blobs are just too big and plentiful.
Any more suggestions/questions?
John
my wipe macro
if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
exit
if move.axes[2].machinePosition < 35
G1 Z35 F500
G1 X-15 Y20 F6000
while iterations < 4
M280 P4 S130
G4 S0.3
M280 P4 S65
G4 S0.3
continue
M280 P4 S0
I am trying to insert a pause to wipe the nozzle periodically using the Cura 5.6 post processing "pause at height" function. Manually pressing the DWC pause and resume buttons works as expected. Executing the following gcode the pause works as expected but the resume does not. The pause.g file gets executed then nothing happens. After waiting a bit I pressed the DWC resume button. The extruder resumes the previous print X & Y positions but instead of printing it returns to the pause position after extruding the 10mm called for in resume.g. While at the pause position it then tries to retract and extrude 10mm. This cycle repeats without human intervention until I hit the DWC emergency stop. Something is different with the M226, M24 sequence vs the DWC pause and resume.
Any ideas?
Board: Duet 3 MB6HC (MB6HC)
DSF Version: 3.4.5
Firmware: RepRapFirmware for Duet 3 MB6HC 3.4.5 (2022-11-30)
;added code by post processing
;script: PauseAtHeight.py
;current layer: 5
M83 ; switch to relative E values for any needed retraction
M104 S0 ; standby temperature
M84 S3600 ; Keep steppers engaged for 1h
M226 ; Do the actual pause
M24
M104 S230 ; resume temperature
G1 F2700 ; restore extrusion feedrate
M83 ; switch back to relative E values
G92 E0.23155
;LAYER:5
; pause.g
; called when a print from SD card is paused
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Thu Sep 03 2020 12:19:15 GMT-0400 (Eastern Daylight Time)
M83 ; relative extruder moves
G1 E-10 F3600 ; retract 10mm of filament
G91 ; relative positioning
G1 Z5 F360 ; lift Z by 5mm
G90 ; absolute positioning
;G1 X0 Y0 F6000 ; go to X=0 Y=0
G1 X0 F6000 ; go to X=0
M98 P"0:/macros/wipe"
; resume.g
; called before a print from SD card is resumed
;
; generated by RepRapFirmware Configuration Tool v3.1.4 on Thu Sep 03 2020 12:19:15 GMT-0400 (Eastern Daylight Time)
G1 R1 X0 Y0 Z5 F6000 ; go to 5mm above position of the last print move
G1 R1 X0 Y0 ; go back to the last print move
M83 ; relative extruder moves
G1 E10 F3600 ; extrude 10mm of filament
@dc42 I selected r1. 3 because I may change to the hemera xs knowing the mount spacing is different. I have already added the new mounting holes to my bracket. The grounding through the mounting is also a bonus. I'll have to modify the wiring connections either way.
@dc42 R25 measures about 3.6K ohms which seems close enough in circuit to suggest it is functional. So the T1 issue is still unknown. I will look for possible external problems as you suggested.
I have ordered a R1.3 toolboard due today. I see the mounting holes are grounded through a 100K resistor. I have found a good way to add a ground wire to the Revo heater block by sliding a male Dupont connector between the wires and the metal strain relief. I will connect it to one of the mounting screws. I also plan to replace the plastic mounting standoffs with metal ones to ground the board to the aluminum mount for the extruder. I verified there is a good connection through the heater core to the nozzle. I'm including a couple pictures of the grounding in case someone stumbles upon this post with a similar issue.
Thank you for your help and prompt response.
This image was captured from cnckitchen's excellent review of the Revo (https://www.cnckitchen.com/blog/e3d-rapidchange-revo-review)
@dc42 R21 measures about 200K, R22 1890 Ohms. The resistor appears to be the issue with T0. R22 is close enough to 2.2K that T1 looks like a different problem. I will order some resistors and try replacing R21.
Meanwhile I have ordered a replacement toolboard and will ground the hotend before powering any tooboard.
Thanks for your help.
John
@dc42 Here's the M122
m122 B121
Diagnostics for board 121:
Duet TOOL1LC rev 1.0 or earlier firmware version 3.4.1 (2022-06-01 21:16:39)
Bootloader ID: not available
All averaging filters OK
Never used RAM 3512, free system stack 80 words
Tasks: Move(notifyWait,0.0%,153) HEAT(notifyWait,0.4%,95) CanAsync(notifyWait,0.0%,61) CanRecv(notifyWait,0.0%,76) CanClock(notifyWait,0.0%,65) TMC(notifyWait,3.0%,57) MAIN(running,91.7%,351) IDLE(ready,0.0%,40) AIN(delaying,4.9%,142), total 100.0%
Last reset 01:10:53 ago, cause: software
Last software reset at 2021-03-11 09:54, reason: HardFault, available RAM 3936, slot 0
Software reset code 0x0060 ICSR 0x00000003 SP 0x20002f60 Task MAIN Freestk 746 ok
Stack: 00000001 00000002 2000332c 00000000 41000000 a5a5a5a5 00017aba 61000000 a5a5a5a5 2000332c 20006db8 a5a5a5a5 a5a5a5a5 4b07e7d4 a5a5a5a5 20003398 00000001 200033d8 a5a5a5a5 00017bbb a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 20000ddc 00000001 200020b4
Driver 0: pos 0, 420.0 steps/mm,standstill, SG min 0, read errors 0, write errors 1, ifcnt 25, reads 29552, writes 12, timeouts 0, DMA errors 0, CC errors 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 5/10, peak Rx sync delay 213, resyncs 0/0, no step interrupt scheduled
VIN voltage: min 24.1, current 24.2, max 24.2
MCU temperature: min 32.6C, current 33.8C, max 33.9C
Last sensors broadcast 0x00000002 found 1 221 ticks ago, 0 ordering errs, loop time 1
CAN messages queued 85068, send timeouts 0, received 38296, lost 0, free buffers 37, min 37, error reg 0
dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0
Accelerometer: none