Howto: Pause RepRap Fimrware for filament reload at a specific layer number
Like my previous two posts on the subject:
- Howto: Pause Repetier for filament reload at a specific layer number
- Howto: Pause Marlin for filament reload at a specific layer number
…since I’ve switched my C-Bot 3d Printer to RepRap Firmware, I needed to figure out how to pause it at a specific layer height in gcode. The wrinkle this time is I have no LCD hooked up to it, so I wasn’t sure how to unpause it.
As it turns out, it’s darn simple (as it should be): Enter a M226 at the line you want it to pause:
... bunch of gcode.... ; layer 2, Z = 0.38 M226
And bam: It’ll stop right there, executing what’s in your pause.g macro. From there, you can change filament as needed, then enter a M24 (executing the resume.g macro) via a connected serial console to start the print back up.
Optionally, like mentioned in the above posts, you can use your slicer software (if it supports it) to post-process the gcode to add in the M226 where you need. Look to those posts as examples of how to do this.
Note: I’ve had this fail via Octoprint: 3 hours into a 6 hour SD print the gcode triggered an M226 where it was supposed to. I watched as the print paused, and then I heard all the fans kick off: The whole board reset, thus canceling the print. I tried simple tests with Octoprint using small calibration cubes and got similar (negative) results after only a few lines of printing. Doing the same tests via Simplify3D’s serial console (still printing off the SD) worked however. In fact, as a sanity check, during the pause I’d disconnect S3D entirely and unplug the USB, then reconnect USB and reconnect the serial console: I was able to successfully issue a M24 to restart the print, so right now I’m going that route if I need to do a filament change.