Pause at height when slicing with Simplify3D or other software

Discussions about ideaMaker and other printing software.
User avatar
glassy
Posts: 11
Joined: Mon May 23, 2016 9:36 pm

Pause at height when slicing with Simplify3D or other software

Postby glassy » Wed Jul 27, 2016 11:01 pm

I have recently discovered, that for the Pause at Height there is a build in routine. You simply have to insert the gCode M2000 in the code where you want to stop. Then printer will call that routine as if you have pressed the pause button on the touchscreen and when you finish to change the filament you will simply use the touch-screen to resume the printing. In the Simplify3D you would add the post-processing script of a kind:
{REPLACE "; layer 5\n" "; layer 5\nM2000\n"}
in the example it inserts a pause at layer 5

User avatar
Vicky@Raise3D
Posts: 1988
Joined: Fri Mar 25, 2016 3:54 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Vicky@Raise3D » Thu Jul 28, 2016 3:23 am

Thanks for sharing the information.
Since we have already add this function to ideaMaker, customers who are not familiar with gcode can use this function in ideaMaker directly.

Jetguy
Posts: 1290
Joined: Tue Mar 22, 2016 1:40 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Jetguy » Thu Jul 28, 2016 4:25 am

Million dollar question, can the motion board respond with a M2000 across serial UART and initiate a pause?
AKA the foundation for implementing filament detection or any other safety triggered pause?

Can we agree to implement such a response in the pcDuino code on an agreed response code to trigger a pause??
This has held me back for months from really moving forward on filament detection.
If it exists, what is the syntax that the motion firmware should respond with to trigger pause?

NewbPilot
Posts: 204
Joined: Tue Jul 26, 2016 2:16 am
Location: West Palm Beach, FL
Contact:

Re: Pause at height when slicing with Simplify3D or other software

Postby NewbPilot » Tue Aug 02, 2016 1:59 am

Vicky@Raise3D wrote:Thanks for sharing the information.
Since we have already add this function to ideaMaker, customers who are not familiar with gcode can use this function in ideaMaker directly.

I was looking for thsi today, and was about to ask if the feature was removed. Then I realized the version that came with my printer on Friday was 2.1.4, and not 2.2.1 as is on the download page. Updated and all is well! Now, i just need to figure out where a certain layer height is (yes, im fairly new to all this, only been printing since May)

User avatar
Vicky@Raise3D
Posts: 1988
Joined: Fri Mar 25, 2016 3:54 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Vicky@Raise3D » Tue Aug 02, 2016 2:05 am

You can check the with Z value with Model -> Cross Section.

User avatar
Vicky@Raise3D
Posts: 1988
Joined: Fri Mar 25, 2016 3:54 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Vicky@Raise3D » Tue Aug 02, 2016 2:07 am

M2000 is an empty code to motion controller board.
But for screen board, it is a pause code. When screen board get this code, it will pause the print and motion controller board will get an empty code. It will stop until the screen board tells it to move again.

NewbPilot
Posts: 204
Joined: Tue Jul 26, 2016 2:16 am
Location: West Palm Beach, FL
Contact:

Re: Pause at height when slicing with Simplify3D or other software

Postby NewbPilot » Tue Aug 02, 2016 2:38 am

Vicky@Raise3D wrote:You can check the with Z value with Model -> Cross Section.


Thank you Vicky. I will check. Fumbling around with IM after teaching myself Cura.

Im Newb to all of this :) Grateful for such good support from you, the Raise3D Team, and the community

User avatar
Vicky@Raise3D
Posts: 1988
Joined: Fri Mar 25, 2016 3:54 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Vicky@Raise3D » Tue Aug 02, 2016 5:00 am

You are welcome, Matt.

Here is the User Manual of ideaMaker. If you have any problem, please advise.
Using ideaMaker 2.2.1.pdf
(2.92 MiB) Downloaded 57 times

Michael
Posts: 189
Joined: Wed Jun 22, 2016 4:59 pm
Location: West Virginia
Contact:

Re: Pause at height when slicing with Simplify3D or other software

Postby Michael » Tue Aug 02, 2016 10:42 am

Used IM to pause so I could insert captured nuts into the print. Feature worked perfectly.
Composite Build Plate for N2 Printers
http://www.newriver.io

User avatar
rhines44
Posts: 71
Joined: Mon Jun 13, 2016 5:14 pm
Location: Illinois

Re: Pause at height when slicing with Simplify3D or other software

Postby rhines44 » Sat Aug 06, 2016 7:24 pm

When measuring for layer height pause and using a raft, does the raft measurement come into play? I ask because while wanting to pause at a certain height, and having to find that height in the layout using the cross section, there is no raft.

User avatar
Vicky@Raise3D
Posts: 1988
Joined: Fri Mar 25, 2016 3:54 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Vicky@Raise3D » Mon Aug 08, 2016 5:21 am

rhines44 wrote:When measuring for layer height pause and using a raft, does the raft measurement come into play? I ask because while wanting to pause at a certain height, and having to find that height in the layout using the cross section, there is no raft.


It will not automatically add Raft's thickness into measurement.
If you are using Raft, you need to manually add its thickness into your target height. The default thickness of Raft should be 1.82mm.
0.5(first layers)*2+0.38(interface layer)+0.22(surface layers)*2.

blaknite7
Posts: 6
Joined: Tue Aug 09, 2016 12:00 am

Re: Pause at height when slicing with Simplify3D or other software

Postby blaknite7 » Sat Aug 20, 2016 9:53 pm

Has anyone been able to put a Z axis shift into a pause command when using S3D?

I have a few prints which need a filament change at a very low height (2mm), when the pause comand is entered using S3D it uses the internal script to send the head to a staging area, but the bed says at the same height. Since this is so close to the nozzle for my print its hard to load filament because the purge hits the bed right away.

Looking at the replace script, I am sure i can add a manual Z move to make the bed go down and give room to the pause, however when you resume from the touch control I dont believe R3D printer will know that it has shifted... (I haven't tried this yet, but Im sure it wont know).

Anyone have any ideas how to incorporate a pause that includes a bed move that would resume without issues???

blaknite7
Posts: 6
Joined: Tue Aug 09, 2016 12:00 am

Re: Pause at height when slicing with Simplify3D or other software

Postby blaknite7 » Sun Aug 21, 2016 7:50 pm

I figured it out!!!

Rarely do I get to contribute much however I think I have figured out how to do something that hasn't been posted yet, so I wanted to share.

Specifically how to add a pause at a specific layer while using a Raise3D [R3D] printer. If you have this printer you know that there is no firmware support for pausing at a specific height and raise3D recommends you use the feature in ideamaker to pause at a specific height. But, since S3D is awesome I wanted to figure out how to do it...

This script also address another issue not currently addressed by raise3D which is: their pause routine will keep the bed at the same height. Now if you pause at a moderate "Z" height, loading a filament isn't a problem, however if you want to have a pause at a low height (say a few millimeters) than getting filament to load may be an issue because the purge hits the bed immediately due to the close proximity of the nozzle.

Enter "Additional terminal commands for post processing" stage right... Before getting into the actual post processing command, take a look at the desired G-Code we want the machine to run:

Desired G Code: (I am using layer 5 as an example, but it can be any layer you choose)

G91; Relative Positioning
G1 Z50 F1800; Move Bed down 50mm
G90; Absolute positioning
G1 X10 Y10 F5400
M2000; Enter Pause routine for R3D
;Layer 5
G91; Relative Positioning
G1 Z-50 F1800; Move Bed up 50mm
G90; Absolute positioning


So how does this break down: it basically says: Just before layer 5 I want you to move the bed down 50mm and then go to a staging area at location X=10, Y=10 and enter the pause routine in the R3D printer. When the printer is unpaused, the bed will come back the 50mm it dropped and resume the rest of the printing. On the face of it, pretty easy to understand however there are a few hidden idiosyncrasies that you have to account for to make this work...

To get this into the post processor, I've used the replace command to search for a specific layer and to add the G-Code I described above. Before getting into the code you must consider that S3D (in my version 3.1.0) puts a comment for each new layer that looks like this:

; Layer 5, Z=1.02

So when we search in our replace code, we want to make sure that we include the comma [,] in the search. This prevents us from entering the wrong code on a line that starts with "layer 5" for example, we don't want this code on layer 50... There is a consequence to using this technique which is the characters in that line, after the comma, are left behind. If you aren't careful to account for the remaining "z=1.02" this could cause you problems. We are able to fix this by adding a carriage return and comment character [semicolon in this case - ; ] at the end of our replace script.

So when you do all of that, you end up with the following:

{REPLACE "; layer 5," "G91; Relative Positioning\nG1 Z50 F1800; Move Bed down 50mm\nG90; Absolute positioning\nG1 X10 Y10 F5400\nM2000; Enter Pause routine for R3D\n;Layer 5\nG91; Relative Positioning\nG1 Z-50 F1800; Move Bed up 50mm\nG90; Absolute positioning\n; "}
{REPLACE ", Z" "\n; Z"}

A few of there comments to consider:

1. The second "replace" function is not needed, but it searches the rest of the g-code and makes a new line for all of the "Z=[heigh]" comments to make them consistent with the g-code that you've just replaced.
2. The R3D printer does not resume at the same speed in which you paused it from which is why there are speed commands listed in the g-code that is substituted. You should make sure that the code you use, matches the speeds you want (remember mm/min!!!)
3. You are going to have to modify this code on the latest "released" version of touch control... I know what you're thinking, what a "dick to post code that needs to be modified"... but its true. Specifically, the most current version of the touch control doesnt allow a comment on the same line as a command. so this means you need to do one of two things: delete the comments in the replace feature OR add extra "\n" before and after the comments to make them a separate line with only a comment on it. Some beta versions of their firmware suggest the next versions will allow comments on the same line, so hopefully this wont be necessary for long...

I suggest testing your script while you are home on a simple print, like a 20mm cal-cube to verify that it works at the desired layer height AND that it doesnt add your g-code modifications to a similar layer (like layer 50 in this example...).

Best of luck all, I hope you find this as useful as I did!

swampy
Posts: 242
Joined: Tue Mar 22, 2016 7:18 pm
Location: BEDFORDSHIRE UK

Re: Pause at height when slicing with Simplify3D or other software

Postby swampy » Sun Aug 21, 2016 9:05 pm

need to sort out what going on with my pause as every time ive paused it goes to home potion then when it starts back up from pause its normally 2-3mm off the y and x axies so try not to pause if i can help

Jetguy
Posts: 1290
Joined: Tue Mar 22, 2016 1:40 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Jetguy » Sun Aug 21, 2016 9:34 pm

when it starts back up from pause its normally 2-3mm off the y and x axies so try not to pause if i can help

I've explained why this happens. You are not in a firmware pause. The motion control board Marlin firmware is not "aware" of what the user wants. A leftover setting in early firmware is a stepper disable timeout. This is something I specifically addressed as a commit in my firmware branch. If you reverted to old firmware because you had issues with the safety, then you are also at risk during pause of the steppers timing out. If they time out, consider XY position lost. Again that commit and setting in the firmware source is here https://github.com/jetguy/Marlin-Raise3 ... bd5f20c54b
In simple terms, if you stop sending gcode commands once a print has started, Marlin running the motion control board starts counting down and will disable the stepper drivers. The only way to change this value is compile from source that has been edited.
This isn't the first time I brought this major glitch up either. Brought up in March here viewtopic.php?t=276#p2618
and here viewtopic.php?t=236#p2099
And, it is changed in current source here https://github.com/Raise3D/Marlin-Raise ... tion_adv.h
Again, the problem is, there are known older firmware versions and people didn't update and if you don't update to a KNOWN version that you test to ensure there is not a timeout, it's highly likely you will run into this issue of a timeout during a filament change pause just because it takes some time.

This is an easy test for your firmware version. Simply use the control panel to jog X or Y axis. Use a timer or watch to wait 2 minutes after your last button press using the jog menu. Check by manually trying to move the XY axis by hand after 2 minutes. If still locked= firmware has no timeout. If unlocked then your firmware is at risk for using pause.

blaknite7
Posts: 6
Joined: Tue Aug 09, 2016 12:00 am

Re: Pause at height when slicing with Simplify3D or other software

Postby blaknite7 » Mon Aug 22, 2016 1:51 pm

Thanks for the comments jetguy, their released version of the firmware (1.1.1) on the site still has a 60 second timeout. Not sure when they are planning on release another firmware version and if it will include the time out being disabled.

User avatar
Vicky@Raise3D
Posts: 1988
Joined: Fri Mar 25, 2016 3:54 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Vicky@Raise3D » Tue Aug 23, 2016 10:09 am

As Jetguy said, we did increase the value to 360sec in a version. But due to the thermal protection problem, we revert the firmware back to 1.1.1. That means the value dropped down to 60sec again. We will increase it back to 360sec in later version.
Or if this value is not proper, please advise.

Jetguy
Posts: 1290
Joined: Tue Mar 22, 2016 1:40 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Jetguy » Tue Aug 23, 2016 12:14 pm

The timeout should be 0 making it disabled.
The logic and reasoning behind this is you never, ever, ever, ever, want steppers disabled during a print or else position is lost. This setting was created by open source community who often 3D printed in PLA their motor mounts which softened if the motors even got warm. So they created a timeout to disable the steppers when they weren't using them. On a single board system where the user is directly controlling the Marlin firmware, this might have made sense in some contexts. In our N series printers, we already have rashes of complaints from users who do not understand the front LCD control panel is sending commands and we expect the motion control board to follow them. As such, we have a metal frame and motor and stepper drivers are properly adjusted and can run indefinitely. There is zero reason for there to be a timeout and automated actions such as the motion board timing out steppers with no way of the front panel knowing that is to be avoided. Again, there is no sound reason for the steppers to ever disable on a timeout in this printer and the fact that it can happen is a huge problem as seen by people who lost prints due to shifting after a pause. I also remind that if filament detection is implemented, this timeout would be a huge problem because it's highly likely the user would not catch it, change filament, and resume prior to a timeout. Again, given this system it is imperative that we never, ever have the motion control do anything "automatic" that is not accounted for by the front LCD control panel.

The counter argument is that during a pause, you could just disable it period, and then rehome at the start as in the way print power loss recovery works. However, please note that homing and resuming is simply not as accurate as never disabling the stepper and just maintaining a locked position. XY homing accuracy is not sub mm and you can detect slight shifts when doing a power resume which uses this function. It's just the mechanics.

Again, it's a simple function, disable with 0 as per my commits. https://github.com/jetguy/Marlin-Raise3 ... bd5f20c54b

Again, just to recap, the problem is any timeout value is not good because the user may require more time. The front panel LCD has no idea the timeout has occurred and position is assumed lost. Major changes in action such as rehoming after a pause are more likely to cause problems rather than solve them. It's a simple rule, never, ever, disable a stepper during a print, and singe pause is an active print, never disable during pause. The motion board is completely unaware of a pause, so you simply must not let automatically timeout just because it stopped receiving move commands. Further, the front panel has a disable steppers action button should the user need to disable steppers. So, all use cases are covered.

User avatar
Vicky@Raise3D
Posts: 1988
Joined: Fri Mar 25, 2016 3:54 am

Re: Pause at height when slicing with Simplify3D or other software

Postby Vicky@Raise3D » Wed Aug 24, 2016 5:19 am

Ok, we will set the value to 0 in next version.

NewbPilot
Posts: 204
Joined: Tue Jul 26, 2016 2:16 am
Location: West Palm Beach, FL
Contact:

Re: Pause at height when slicing with Simplify3D or other software

Postby NewbPilot » Wed Sep 14, 2016 8:27 pm

Vicky@Raise3D wrote:Ok, we will set the value to 0 in next version.


ETA on next version? :)

I also want to play with filament changes at low (2mm or less) layers. I did one at 2.05mm and it worked but was ugly. Would like be able to move Z down 50mm, change, clean, and move back up 50mm. I was doing that with the Raspberry Pi and Octoprint for my Wanhao Duplicator i3 (Ok, I did it once when i my filament was running out and i paniced and HOPED it worked and it did.)

I dont know GCode yet - clearly the post above helps me get there ... but would be great if there was IM assist, or ability to move Z from control panel once pause was initiated :)


Return to “Printing Software”

Who is online

Users browsing this forum: No registered users and 2 guests