M486 - Cancel Objects

sdcard Identify and cancel objects CANCEL_OBJECTS


Use M486 to identify and cancel objects during a multi-object print job.

This command was originally developed for SD card printing but it works fine when host printing too. Of course, since hosts can skip objects more efficiently, host plugins are the better choice in that scenario.


This G-code may not be widely supported by slicers for a while, but they do include helpful comments in the G-code output that includes the current object. So for now you can use a post-processing script to convert these comments into M486 commands.

Slicer post-processing scripts:


M486 [C<flag>] [P<index>] [S<index>] [T<count>] [U<index>]



Cancel the current object.


    Cancel the object with the given index.


      Set the index of the current object. If the object with the given index has been canceled, this will cause the firmware to skip to the next object. The value -1 is used to indicate something that isn’t an object and shouldn’t be skipped.


        Reset the state and set the number of objects.


          Un-cancel the object with the given index. This command will be ignored if the object has already been skipped.


            Typical usage in a G-code file

            M486 T12 ; Total of 12 objects (otherwise the firmware must count)
            M486 S3  ; Indicate that the 4th object is starting now
            M486 S-1 ; Indicate a non-object, purge tower, or other global feature
            M486 P10 ; Cancel object with index 10 (the 11th object)
            M486 U2  ; Un-cancel object with index 2 (the 3rd object)
            M486 C   ; Cancel the current object (use with care!)