Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. marzubus
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 14
    • Best 0
    • Controversial 0
    • Groups 0

    marzubus

    @marzubus

    0
    Reputation
    1
    Profile views
    14
    Posts
    0
    Followers
    0
    Following
    Joined Last Online
    Location Sweden Age 44

    marzubus Unfollow Follow

    Latest posts made by marzubus

    • RE: Read Gcode File backwards

      @amimafe If you save a position, check G0/G1 for the R parameter to move back to that position, you can also use offsets to for example move to a Z pos above the previous pos, and then move down into that position.

      posted in Firmware wishlist
      marzubusundefined
      marzubus
    • RE: Read Gcode File backwards

      It might help if you use Pause / G60 to save a position when you detect a failure using an appropriate sensor for your extruder, such as optical or AI camera or whatever.

      Then you can use G0 and a R parameter to restore the position when you resume print. Note if you pause, it will automatically save the last position of the extruder, and resume from there. So you might already have all you need for free.

      Then it all comes down to fast detection of the failure, and even adding extra purge at start to maybe fill in any gaps that can be cleaned up post production.

      posted in Firmware wishlist
      marzubusundefined
      marzubus
    • RE: Object Model for Previous Layer Time

      @chrishamm Ah ok thanks, Yeah I did not understand the lingo before. thanks anyway. I will see if I can work around this limitation then somehow.

      posted in Gcode meta commands
      marzubusundefined
      marzubus
    • RE: Object Model for Previous Layer Time

      @chrishamm @dc42 im confused, the data is in the model I can see in the webui. I can access heaters, and all sorts of other elements in the tree, but not the layers? They are shown in the UI, so I am confused why just those cannot be accessed.

      posted in Gcode meta commands
      marzubusundefined
      marzubus
    • RE: Object Model for Previous Layer Time

      @dc42 I get errors trying to access the layers array in the job, not sure if im doing this wrong. I am simulating a print, pausing it, then trying to query things.

      echo job.layer
      24

      echo job.layers[job.layer-1].duration
      Error: line 28 column 12: meta command: unknown value 'layers^.duration'

      echo job.layers[2].duration
      Error: line 37 column 6: meta command: unknown value 'layers^.duration'

      Is there something restricting me accessing the nested array/object?

      posted in Gcode meta commands
      marzubusundefined
      marzubus
    • RE: Object Model for Previous Layer Time

      @dc42 Yes I mean jerk no acceleration, sorry. Its at the max I can go without it grinding apart.

      I see if I set it all the way down to the single digits for jerk and acceleration, it has some affect on the time, but the complication is that I have both Hemera direct and bowdens in my setup, so a job that uses a hemera or a bowden more will be very innacurate if I want to get the timing right down to a couple of seconds.

      Even if I average the accel, jerk and max feed rates, the prusaslicer acceleration data is going to be just too inaccurate to be of any real value. Hence why I am looking for a way to keep track of current tool and previous tool usage times, and current and previous one layer time so I can pre-empt and calculate when I need to warm up a tool. It obviously wont work for every layer, but at least it should help a lot.

      A long print might spend hours in warm-up time, and almost just as much in print time. I use a zero-purge setup so the tools need to be cooled to exact temperatures to prevent the need to prime.

      I will see if this is something I can proof of concept using a daemon.g, and some variables created for keeping track of these values.

      posted in Gcode meta commands
      marzubusundefined
      marzubus
    • RE: Object Model for Previous Layer Time

      @dc42 I have increased my extrusion acceleration as far as I can, but its titans, and they are slow to wind up, so I think I will try replace them with Hemera's instead.

      In PrusaSlicer, only the max feed rates seem to affect the print time estimations, No difference with accel, or jerk.

      posted in Gcode meta commands
      marzubusundefined
      marzubus
    • RE: Object Model for Previous Layer Time

      @dc42 the problem I have is that the estimated time is thrown way off when using PA with 800mm bowdens. Or does Simplify3D cater to that? I have been using PrusaSlicer for ages, but wonder if I should dust off my Simplify3D install.

      /K

      posted in Gcode meta commands
      marzubusundefined
      marzubus
    • Object Model for Previous Layer Time

      I have a e3d motion system and I want to write a daemon to try and guess when to warmup the next tool. So this has several factors I need to solve.

      1. I need to know the next_extruder id, maybe I can somehow get this from PrusaSlicer, and set some variable which the Duet will know about?
      2. I need a daemon or some way of getting the previous layer layer time, as these will generally be similar always, and then I just basically want to start warmup for next_tool when that layer time is coming to a close.
      3. I also need to know how long the current and previous tool has been used for this probably.

      Is this at all possible or am I being crazy? I think we might need a tweak to store the layer-time for each layer in the model?

      /Kegan

      posted in Gcode meta commands
      marzubusundefined
      marzubus
    • RE: Tool Change retraction confusion

      @dc42 I think I am just over thinking this, if I use G1 R2 I can zip back to the print position rapidly with only minor retraction.

      prime.g

      G91                   ; relative pos
      G1 Z3 F1000           ; raise Z
      G90                   ; back to absolute pos
      
      M106 S0               ; fan off
      M109                  ; wait for temp
      M42 P0 S1             ; turn servo on
      M280 P0 S100          ; servo home 100 degrees
      G4 P100               ; wait 1 second
      
      ; move near pebble wiper, two movements to come in from 
      ; the right edge so any tail hangs over the far edge.
      G0 X-35 Y160 F30000
      G0 X-42 Y161 F24000
      G0 X-39 Y153 F24000   ; move to pebble wiper purge spot
      
      ; make a pebble
      G1 E1.5 F200          ; purge reduce from 5 to 3
      G4 P200               ; wait 200ms
      G1 E5 F300
      G4 P200               ; wait 400ms; 
      G1 E10 F500           ; purge
      G1 E5 F360            ; Pebble Purge
      M106 S1               ; fan 100%, cool and harden the pebble
      G1 E1 F240            ; Final Slow Pebble Purge
      G4 P14000             ; Dwell for 12s, a bit long, need to tune down this.
      
      ; do a minor retraction
      G92 E0                ; reset extrusion
      G1 E-0.4 F1500        ; Retract a bit
      
      ; servo wack the pebble away
      M280 P0 S0            ; whack!
      G4 P250               ; Dwell for milliseconds
      
      ; zip over the brush
      G0 X-35 Y123 F24000   ; move across brush
      G0 X-39 Y200 F24000   ; back over the brush
      G0 X-35 Y123 F24000   ; move across brush
      G0 X-39 Y200 F24000   ; back over the brush
      G0 X-35 Y200 F24000   ; back over the brush
      G0 X-25 Y131 F24000   ; back over the brush
      G0 X-40 Y131 F24000   ; back over the brush
      G0 X-25 Y131 F24000   ; back over the brush
      
      
      M106 R2               ; Cooling Fan Off
      M280 P0 S100          ; servo home                 
      M42 P0 S0             ; servo off
      
      ; restore Z before moving tool back
      G91                   ; relative pos
      G1 Z-3 F1000          ; lower nozzle
      G90                   ; back to absolute pos
      G29 S1                ; mesh levelling on
      
      ; return to position where toolchange was initiated from
      G1 R2 X0 Y0 Z2 F50000 ; Move to saved position at lightning speed
      G1 E0.4 F1500         ; Unretract
      G92 E0                ; reset extrusion
      
      posted in Tuning and tweaking
      marzubusundefined
      marzubus