Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Maybe a noob question

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    11
    431
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • joehsmashundefined
      joehsmash
      last edited by joehsmash

      Im trying to avoid putting any scripting inside my gcode files and let the Duet take care of it all.

      where do i put the codes?

      deckingmanundefined 1 Reply Last reply Reply Quote 0
      • OwenDundefined
        OwenD
        last edited by

        Most of it can be handled by the system macros.
        There's info here
        https://reprap.org/wiki/RepRap_Firmware_macros

        Otherwise put your code into custom macros and call them using M98 P"path_to_macro"

        1 Reply Last reply Reply Quote 0
        • deckingmanundefined
          deckingman @joehsmash
          last edited by

          @joehsmash Not exactly sure what you are trying to achieve but when you first apply power to the printer, the contents of config.g get read in, then config override if you use that. So your scripting commands can be run at power up, you can put them at the end of either of those two files. Other than that, the only other files that get read are macros. So if your scripting commands involve homing moves or settings, you can put them in the homing macros. Or you can create your own macros.

          Ian
          https://somei3deas.wordpress.com/
          https://www.youtube.com/@deckingman

          1 Reply Last reply Reply Quote 0
          • oliofundefined
            oliof
            last edited by

            There are system macros and user macros. You call Macros using M98.

            System macros (besides config.g and the homing macros) that are more or less equivalent to slicer start/end gcodes are start.g, stop.g setting up pause.g, cancel.g resume.g is a good idea as well I guess).

            RRF also supports machine side filament management including temperature setting, pressure advance, flow rate correction etc. I've not used that but it probably is worth looking into.

            Do note that many slicers put some start and end gcode into their gcode files if you didn't set up any yourself (or, even more annoying, set bed and heater heat up gcode if you have custom start gcode that doesn't cover that).

            Lastly, make sure to read the following indispensable wiki pages

            • https://duet3d.dozuki.com/Wiki/Gcode
            • https://duet3d.dozuki.com/Wiki/Macros
            • https://duet3d.dozuki.com/Wiki/Setting_up_macro_files_for_common_tasks

            <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

            1 Reply Last reply Reply Quote 1
            • joehsmashundefined
              joehsmash
              last edited by

              Awesome thanks guys,

              basically what im looking at now is that in my simplify 3d slicer im currently running these in my start script

              G28 ; home all axes
              G29 S1
              G1 X-114.0 Y-122.00 F6000 ; Move for prime
              G1 E40.0 ; Prime Hotend
              G1 X0 Y0 F6000

              so for instance would i just put these in the config under the custom settings?

              im trying to get out of the habbit of having to reclice something and reupload it every time i want to make an adjustment.

              OwenDundefined 1 Reply Last reply Reply Quote 0
              • OwenDundefined
                OwenD @joehsmash
                last edited by OwenD

                @joehsmash
                As stated above, anything in config.g will get run at power up.
                You could put that in start.g

                You need to take the time to read the links provided so that you understand which macro gets called at which point and/or in response to which G or M command..

                1 Reply Last reply Reply Quote 0
                • Phaedruxundefined
                  Phaedrux Moderator
                  last edited by

                  Doing a prime line in start.g is a bit problematic because normally the filament temperatures are set by the slicer and unless you use the same type of filament all the time, you can't reliably preheat in start.g. So here's how I do it.

                  Start.g preheats and homes the printer, resets some variables, and passes off to the sliced gcode file.

                  Slicer sets final bed and nozzle temps and waits before it inserts the start gcode section.. which only has a single line that calls nozzle prime macro with M98 P"NozzlePrime.g"

                  The nozzle prime macro extrudes a prime line at the corner and then the actual print starts.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  joehsmashundefined 1 Reply Last reply Reply Quote 0
                  • joehsmashundefined
                    joehsmash @Phaedrux
                    last edited by

                    @Phaedrux So looking though my g files, and i dont have a start.g any where. which was why i asked here.

                    if there were start.g and end.g it would make perfect sense,

                    im kind of with you, i didnt see the point of adding some of my start routine into the config.g as thats loaded when the machine starts. not nessicarily when the print starts.

                    @OwenD so lets say i create a start.g and i add all of my scripts/macros in there how do i get the duet firmware to want to call the start.g inorder to start a print?

                    currently i just right click on an stl that i have uploaded and start it from there.

                    same with the end.g, ive found that now when ever a print finishes, the printer leaves the nozzle just above the last point, i have it now that when it finishes it moves the print head to the back left hand corner of the printer.

                    OwenDundefined 1 Reply Last reply Reply Quote 0
                    • OwenDundefined
                      OwenD @joehsmash
                      last edited by

                      @joehsmash
                      start.g and stop.g are not automatically created.
                      If they exist, they will run automatically at the start and end of a print.
                      Note the caveats that @Phaedrux stated with regards to slicer settings.

                      I still do quite a bit in my slicer start section.
                      In my slicer end section I just have a single command M0
                      Running M0 will call stop.g (if it exists)
                      All my code for shutting everything off is in there.

                      joehsmashundefined 1 Reply Last reply Reply Quote 1
                      • Phaedruxundefined
                        Phaedrux Moderator
                        last edited by

                        start.g

                        M106 P2 F30000 S0.5 H-1 C"Duet Fans"
                        M140 S65		; set heated bed to 65 and release
                        T0			; Select Tool 0
                        M291 P"Print Started. Preheating and Homing." T10
                        G4 S1
                        M98 P"0:/macros/Musical Tunes/LuckyTune.g" ; Lucky tune to start print off on the right foot
                        G4 S1
                        M220 S100		; Set speed factor back to 100% in case it was changed
                        M221 S100		; Set extrusion factor back to 100% in case it was changed
                        M290 R0 S0		; clear babystepping
                        M106 S0			; Turn part cooling blower off if it is on
                        G10 P0 R0 S80		; Set extruder to 80 and release
                        M190 S65		; set heated bed to 65 and wait
                        G28			; home XYZ
                        G29 S1			; load heightmap
                        M400
                        G10 P0 R80 S180	; Set extruder to 180 and release
                        M98 P"0:/sys/ZSpeedsPrint.g"	; Load Z speeds for printing
                        M98 P"0:/sys/CurrentsPrint.g"	; Load print motor currents
                        
                        ; Slicer Start Gcode begins.
                        

                        Slicer sets temps and calls prime...

                        ;M98 P"0:/sys/PrimeNozzle.g"
                        
                        G90 			; Absolute positioning
                        G1 X1 Y270 F6000 	; Move to rear left corner
                        M400 			; clear movement buffer
                        M116 			; Wait for temps
                        G1 Z0.3 F100		; Move Z to prime height
                        G91 			; Relative positioning
                        M83 			; Relative extrusion
                        G1 X40 E10 F300 	; Prime nozzle
                        G10			; Retract
                        G1 Y-1 X1 F10000 	; Wipe nozzle
                        M400
                        

                        File prints.

                        Slicer end gcode has M0 which calls stop.g

                        ; stop.g
                        ; called when M0 (Stop) is run (e.g. when a print from SD card is cancelled)
                        ; Also called by slicer end gcode by M0
                        ;
                        M400			; Finish move queue
                        M104 S0 		; Extruder heater off
                        M140 S0 		; Bed heater off
                        M106 S255 		; Fan at 100 to cool nozzle and bed
                        G91			; Relative positioning
                        M220 S100		; Set speed factor back to 100% in case it was changed
                        M221 S100		; Set extrusion factor back to 100% in case it was changed
                        G1 E-2 F9000			; Retract filament 2mm
                        G1 X5 Y5 F9000		; Wipe nozzle 
                        G1 Z20 F500			; raise nozzle 5mm from printed part
                        G90				; absolute positioning
                        G1 X150 Y130 F6000		; Move x and Y axis over to bed center so probe is on top of bed
                        ;M104 S35		; Set hot end low and wait
                        G4 S60			; Wait 5 minutes
                        ;M116			; wait for temp to drop
                        G28 X Y			; Home X and Y
                        G28 X Y			; Home it again, Sam.
                        M290 R0 S0		; clear babystepping
                        M84			; Steppers off
                        M98 P"ZSpeedsNormal.g"	; Load normal z speed settings again.
                        M106 S0			; Fan off
                        M106 P2 F30000 L0.1 X0.8 B0.5 T35:70 H100:101:102 C"Duet Fans"
                        
                        ;Play a little beep beep beep to show print ended.
                        M400			; Clear queue again before jingle
                        G4 S1
                        M300 P250 S750
                        G4 P251
                        M300 P200 S1250
                        G4 P201
                        M300 P250 S750
                        G4 P251
                        M300 P200 S1250
                        G4 P201
                        M300 P250 S2500
                        G4 P251
                        M300 P150 S2000
                        G4 P151
                        M300 P150 S2500
                        G4 P151
                        M300 P350 S3700
                        G4 P351
                        

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • joehsmashundefined
                          joehsmash @OwenD
                          last edited by

                          @OwenD great, that totally clears it up.

                          just wasnt sure on how to call them!

                          @Phaedrux thank you for your examples theres a lot of good stuff in here that i may or may not borrow when and if i can get this new layer shifting issue fixed.

                          thanks again!
                          Joeh

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA