If a 3D printer is interrupted during a print, it will usually result in a junk part. Resuming the print can be very difficult. A group of researchers at MIT have built an add-on for 3D printers that uses a laser scanner to evaluate the state of the print, and allows the printer to restart.
While this will allow you to salvage some partially competed prints, the interesting application is switching between materials. In the image above, the lower piece was printed in ABS. The print was interrupted to change materials, and the top cube was printed in PLA. This allows for prints to mix materials and colors.
The add-on was tested with the Solidoodle 3D printer, and can be built for about $60. It requires a laser mounted to the print head, and a low-cost webcam for performing the measurements. While the group will not be continuing work on this project, they plan to open source their work so others can continue where they’ve left off.
After the break, we have a video of the printer performing a scan and resuming a print.
18 thoughts on “Restarting 3D Prints”
Use encoders like every proper CNC machine and you won’t need to improvise with some laser scanning.
true, but then you miss the opportunity to start prints on a face of a totally different object or another face of an object in a multi-pass print – and once you have the scanner, it becomes harder to justify the encoders. Backlash would still suck though.
First – That’s like saying it’s hard to justify building a house on a good foundation since you’re already supporting it with a fleet of helicopters. .. and how else are you going to keep the house cool in the summer?…
Second – Why would a feedback system miss such opportunities? The laser scanner is simply gathering data about a known object. Why couldn’t a feedback system simply physically measure the failed print to know where to start printing?
I just realized a system with feedback wouldn’t have botched the print in the first place…. so that last paragraph should say….
Why couldn’t a printer with a feedback system simply physically measure the face it is to start printing on? This would have to be more accurate than trying to get the laser scanner aligned to the print head, etc.
Because an encoder would only measure the amount of filament extruded, or simply detect that extrusion is occurring. Encoders do not detect that filament is laying down on a failed print. The camera/laser detects what exists and feeds that information into the instruction to resume the print from where it should. This is not similar to the encoder which can at best tell the printer what the print “should” look like at a certain point. A poin btw that is probably past the failure point.
Can someone please explain why it wouldn’t be easier to figure out where in the gcode the print stopped and just start it from there? I’m an amateur, and have a rep rap prusa (the cheapest i could find). Anyway, prints go wrong a lot. Here in South Africa extruder plastic is a bit beyond my budget, so I hate wasting plastic for failed prints. Depending on how bad the print is, I measure the height using verniers calipers, open the gcode file with a text editor, and find the z co ordinate that corresponds to the measured height. I then manually delete the gcode before that height, load the modified gcode to the printer, and start the print as if it was a new one. It’s worked quite well, but obviously software that deletes gcode line by line as it’s printed would be more accurate and simple. Is there a solution out there already?
First you have to define when a print has failed. Then you can know when and where to restart.
This project is currently suited to printing on an existing object. More work would need to be done to identify and correct a failed print. The students talk about adding a second camera to aid in discretion of tbe scan and periodic scans to assess the success or failure of a print job.
Wish they’d done the work in something other than Mathlab
I would stay with hand gcode removal, especially if you have half of print and half of spaghetti monster. Just finding the point with the tip of extruder, check that coordinates, find them in gcode and here we go again.
If the printer is still on and has not been re-homed, find the correct height with the tip of the machine. Then edit your gcode so that no new Z-value is set (so G28 only on X and Y, no moving to Z15 to pre-load the nozzle, G92 E to the proper value etc. Make sure that you can stop things quickly if something goes wrong, you’ll likely have forgotten something.
But basically the title of this post is wrong/misleading: failed prints usually are at a known location on the building platform, so scanning is quite unnecessary. For putting prints on ‘foreign’ objects it might help, but basically you have the same problem there as with conventional milling: if you wish to modify an existing structure, you need to invest a lot of time to figure out where it is on the machine. A touch probe and some knowledge about the part would probably be much quicker than a full on scan.
I just had an interesting idea. It seems like that the parts would not be that well bound together(assuming that the materials do not mate well). I wonder if it would be possible to create parts with shafts in the first part and then leave the extruding head in the position above those shafts to extrude anchors down into them creating pieces that are locked together. this may depend on if there is venting for air to be expelled from the shafts and also the pressure that you can extrude plastic at.
Also, while it is an interesting idea to be able to randomly place parts( I could see printing different materieals on different printers and transfering the mating pieces for printing of additional materieals), I wonder if it might be a more normal use case for the part to be already on the bed where you finished printing the first material and the controller could just remember where it left off? say write some values off to a file and then read them back when resuming the print?
I can imagine a rack of preheated heads waiting for the head gripping assembly to come and change out materials or colors. You could have an extended axis where the heads could be stored away from the work area say on the x or y axis and the print head could be changed out on the fly with program controls like happens with tooling changes with robotics.
I admit that I do not currently own a 3d printer, but it seems like there is plenty of room for improvement in the software.
Also, I wonder if the scanner would be sufficient for duplication of objects. That would bring a whole new level of useful to this add-on module.
this would be good at the local FabLab when ignorant assholes come in and without a word to anyone pull power plugs out to plug in their laptops so they can scab free WiFi broadband!
Fortunately the 3D Touch I like using, even though it’s not open source, can restart from where the power went down
(glad I got that off my chest)
Ignorant assholes are easy to deal with. Just provide a bank of power points specifically for charging laptops and make it clear that is what they are for.
Also securing the power for the printers would be a good thing so unless you have access to the power points you can’t pull the plugs.
if only it were that easy!
The power setup was horrible, 2 of those ceiling hanger power outlets, 1 of which was in use, then 5 or 6, 4 way power boards daisy chained down the length of the central tables, with one of the four outlets blocked off with tape.
I ended up taping the 3D Touch plug in place, then wrapping the lead for that power board in tape.
To make things really interesting the FabLab is only 2 days a week, the rest of the time it is an art school class room.
I’ve sort of given up on 3D printing until I get my own printer, waiting to get printer time whilst someone is printing yet another tardis, that frog, that damn octopus or a bloody whistle is frustrating.
I’m sorry for your 3D touch experience. the are many better printers available. That restart feature is nice though.
what’s wrong with the 3D Touch???
Don’t say “because it’s not open source”, MECHANICALLY it is really study, BFD the software only runs under ‘Doze.
It has a 200x200x200mm print area and 2 or 3 colours
If you don’t like the firmware, wait till the warranty expires and swap out the controller board with an OpenSource one.
I like the add on laser scanner idea because we can see the state of the print. Thanks for sharing this information.
Please be kind and respectful to help make the comments section excellent. (Comment Policy)