Filament Change Mid-Print?

3,543 views
Skip to first unread message

Arnold Martin

unread,
Dec 14, 2012, 6:41:11 PM12/14/12
to make...@googlegroups.com
This is a quick question, probably covered somewhere so apologies if it is, but can I change filament mid-print on a replicator 2 and have the print resume with the new filament? I only ask because I am worried I will run out before my current job finishes and I would like it to finish whole.

Thanks!

Arnie

Infinityplusplus

unread,
Dec 14, 2012, 7:16:48 PM12/14/12
to make...@googlegroups.com
I have used this technique to make stripes of different colors in prints with mine. Worked great.

Arnold Martin

unread,
Dec 14, 2012, 7:24:06 PM12/14/12
to make...@googlegroups.com
Thanks, did you pause the machine do a change filament command and then resume?

Infinityplusplus

unread,
Dec 14, 2012, 8:55:17 PM12/14/12
to make...@googlegroups.com
Someone correct me if I am wrong, cause its been a while, but I think you just press change filament in the command menu while its printing, the head moves over and lets you change filament, then resumes. you should see it, like 4th down under pause.

whpthomas

unread,
Dec 14, 2012, 10:53:06 PM12/14/12
to make...@googlegroups.com
Hi Arnold,

I just tried it on one of the sample models. Just hit the left arrow, scroll down and select filament change and do the unload followed by the load, then select resume build, then scroll down and select return to monitor to return to the build statistics.

Cymon

unread,
Dec 15, 2012, 11:07:57 AM12/15/12
to make...@googlegroups.com
It's good to know there are menu options for that. I did it while the print head was moving. It worked, but it was tricky. http://joesmakerbot.blogspot.com/2012/09/a-risky-maneuver.html

Arnold Martin

unread,
Dec 15, 2012, 11:33:22 AM12/15/12
to make...@googlegroups.com
Thank you all for the information. Now that I know it will not cancel my build I will use the change filament option when this comes up. This time I did what Cymon did and fed the leader from the next spool in behind the tail end of the filament. It was tricky but it worked and the print finished fine.

boardworks

unread,
Dec 15, 2012, 2:17:53 PM12/15/12
to make...@googlegroups.com
Is there anyway to insert these commands easily into the .gcode for your print?  What I'd like to do (using my single extruder Rep2) is print the raft with one color filament, then just before the "actual" .gcode instructions for the print begin, change the filament to a different color.  My hope is that this will make it much easier to distinguish between the raft and the bottom of my print (post-production is a PITA).

Thanks in advance for your thoughts!

Arnold Martin

unread,
Dec 15, 2012, 2:21:07 PM12/15/12
to make...@googlegroups.com
Great idea! I would love to be able to do this same thing for easier distinction and identification of the raft as opposed to the part. Especially for the natural and clear pla materials it can be very difficult to distinguish. A dual extruder would be nice for this too if you could order the raft and supports from one extruder with the part from the other and I assume someone with an original Replicator dual has already figured this out.


--
 
 

whpthomas

unread,
Dec 15, 2012, 9:40:28 PM12/15/12
to make...@googlegroups.com
This is a great idea, perhaps one of these M codes might work http://replicat.org/mcodes
  • M6 Tool change. This code waits until the toolhead is ready before proceeding. This is often used to wait for a toolhead to reach the its set temperature before beginning a print. ReplicatorG also supports giving a timeout with M6 P<secs>.
  • M70 Display message on machine, with optional timeout specified by P-code in seconds
    • Ex.: M70 P10 (Display this text for ten seconds)
  • M71 Pause activity and display message, resuming build on button push. Optional timeout specified by P-code in seconds. If timeout is specified and no button is pushed, machine should shut down or reset.
    • Ex.: M71 (Please insert motor into assembly and push a button.)
    • Ex.: M71 P20 (Machine will reset in twenty seconds!)
  • M72 Play a song or tone defined by the machine, by a P-code specifying a song type. Default songs are Error Sound (P0), a Ta-da sound (P1), and a warning sound (P2). all other sounds are user or machine specific, with P2 the default for unknown sounds.
    • Ex M72 P1 (Machine will play a 'TaDa' song!)

boardworks

unread,
Dec 18, 2012, 1:35:45 AM12/18/12
to make...@googlegroups.com
I ended up watching a print in-action and changed the filament using the keypad console on my Rep2.  See below for the results, looks pretty good!

macouno

unread,
Oct 9, 2013, 7:24:11 AM10/9/13
to make...@googlegroups.com
So.. has anyone tried the M codes in a gcode file? I'd love to have the ability to change the filament at a pre-determined time... now I just have to guestimate... (i'm using makerware not replicator g)

Dan Newman

unread,
Oct 9, 2013, 11:22:15 AM10/9/13
to make...@googlegroups.com
Makerbot's do not consume gcode; they consume s3g/x3g. So, for starters
you need a gcode to s3g/x3g translator which supports such an mcode. MakerWare
does not so using its gcode to s3g/x3g translator is out. RepG 40r22 - Sailfish
and Wingcommander's nice GPX utility both support this. So, if you want to
use MakerWare, you will need to post process the gcode it produces. That
is somewhat of an issue since MBI changes the gcode/mcodes around to suit
their fancy and as such, RepG does NOT support MakerWare gcode. That leaves
GPX. Wingcommander is keeping GPX up to date with MBI's gcode/mcode changes
but there can always be a lag (MBI releases a new makerware and if there are
changes, then Wingcommander needs to then figure them out and adapt GPX).

Second, you need a firmware which supports a s3g/x3g command extension to pause
the print. Sailfish is presently the only Makerbot compatible firmware with
such support. So, you will need to upgrade to Sailfish on your bot. You can
see

http://makerbot.com/sailfish

for install and setup information. You can see

http://jettyfirmware.yolasite.com/features.php

for information on the features in Sailfish not present in the MBI firmware.

Dan

macouno

unread,
Oct 10, 2013, 3:57:56 AM10/10/13
to make...@googlegroups.com
Thanks Dan,

Post processing the gcode by hand is no problem.. I've been doing that all week ;)

But... I don't think I want to switch to sailfish... I've left the firmware alone till now and it's been rock solid... hmm I'll have to think about it...

GPX certainly looks interesting!

macouno

unread,
Oct 10, 2013, 4:01:50 AM10/10/13
to make...@googlegroups.com
BTW.... is there a list of supported gcode for makerware just like there is for replicator g? That would be really nice!

macouno

unread,
Oct 10, 2013, 6:10:51 AM10/10/13
to make...@googlegroups.com
Ok... I messed around with M codes and couldn't find one that pauses the print for us... but... of course we can manually start a filament change. So all we need is the chance to do so at the right time.

What seems to work well is... Play the Ta-Da song (print finished sound)... then add a bunch of moves to the gcode during which you do a filament change.

You can get my test gcode file here (2cm cube with filament change opportunity in the middle): http://www.pasteall.org/46360

Here's what I did.... (Using Makerware 2.2.2.89 and a Replicator 1)

A layer before the filament change I add a line with the ta-da song (That's P1, P2 = a warning sound, P0 = error sound), the tada song seems to stand out more (good if I'm in the next room)
M72 P1  ( Ta-Da ) 

Then at the moment I want the filament change, presumably at the end of a layer I add this chunk.. (explanation below it)

; GO AND SWITCH HERE!
M72 P1  ( Ta-Da )
; First lets move away!
G1 X7.287 Y9.114 Z10.000 F1500.000 A69.331; Move up and retract
G1 X-112.000 Y-73.000 Z5.000 F1500.000 A69.331; Move to start position
G1 X-112.000 Y73.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-73.000 Z5.000 F1500.000 A69.331; Move on Y

G1 X-112.000 Y-72.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-71.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-70.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-69.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-68.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-67.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-66.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-65.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-64.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-63.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-62.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-61.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-60.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-59.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-58.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-57.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-56.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-55.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-54.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-53.000 Z5.000 F1500.000 A69.331; Move on Y
G1 X-112.000 Y-52.000 Z5.000 F1500.000 A69.331; Move on Y

So... Where it says move up and retract (first G1 line), that's a copy of the last line of the previous layer. That way it has the right X and Y coordinates and A value. It is just there to move away vertically from the print... so the Z has to be higher than at the end of the last layer (but not too high for your printer). The A value on that line I set to the same as the start of the next layer (approximately -1.3), so that it retracts. This A value I copy to all the next added lines so basically it doesn't do anything with the filament (though of course some leaks out).

Then I add the line from the very start of the gcode file (move to the start position), except I change the Z to the one on the previous line (otherwise it would move the platform up, and it may interfere with the print). And swap out the A for the one on the previous line as well. Then copy this line twice and set opposing maximum/minimum Y positions... So this is a long move to the back and back to the front... I set the F (speed) to 500 so it takes a while... This is the move during which you use the menu to initiate the filament change!

The rest of the lines are all small moves... The reason they are there is because when you initiate filament change the Replicator finishes it's qued moves... so we need enough moves in here for the filament change to happen somewhere in there,and before it goes to continue on the next layer (I think the que is 10 moves, but I added some more to be sure). You see all I changed was the Y value by 1, and kept F at 1500... they don't take long... they are just there to fill the que

If you need longer to start the change just add more lines with big moves, or lower the F value....

Of course the trick is to change before the last layer cools too much or the plastic won't stick nicely!

Wingcommander

unread,
Oct 10, 2013, 12:27:01 PM10/10/13
to make...@googlegroups.com
If you run Sailfish, all you need to is add an M322 Z... mcode at the end of the start.gcode and it will pause the printer at whatever z-height you want. This is really yhe quickest and easiest way to do it. I just duplicate the profile and update the start.gcode in the alteration folder that GeplicatorG creates, and then every time I print with that profile it sets up the pause@zpos for me. GPX also lets you enter multiple pause positions using the ;@pause macro.

Dan Newman

unread,
Oct 10, 2013, 1:51:47 PM10/10/13
to make...@googlegroups.com

On 10 Oct 2013 , at 1:01 AM, macouno wrote:

> BTW.... is there a list of supported gcode for makerware just like there is
> for replicator g?

Not that I'm aware of. Contact Makerbot support.

Dan

Dan Newman

unread,
Oct 10, 2013, 1:55:14 PM10/10/13
to make...@googlegroups.com

On 10 Oct 2013 , at 3:10 AM, macouno wrote:

> Ok... I messed around with M codes and couldn't find one that pauses the
> print for us…

Because MBI's firmware has no such functionality. Sailfish does and
hence there's an mcode for Sailfish to do this.

> (I think the que is 10 moves
> , but I added some more to be sure).

16 moves. MBI's core motion firmware as of 7.0 is Sailfish without the bells
and whistles and this part of the firmware is the same between the two. The
queue is 16 deep. Doesn't mean that it will be full when you play the song.
Just means that the deepest it can be is 16 moves.

Dan
Reply all
Reply to author
Forward
0 new messages