Dev2 - I can’t activate the Jam control

I can't activate the "Jam" detection (works fine with firmware V1).

I'm using an MKS RUMBA board.

I tested several pins including end stops

I tested the M602 P0 command

I tested JAM_METHOD 1 and 2

In any case, no warning. I can print without filament.

What have I forgotten?




STEPPER_SIMPLE(E1MotorBase, IOE1Step, IOE1Dir, IOE1Enable, endstopNone, endstopNone)

STEPPER_SIMPLE(E2MotorBase, IOE2Step, IOE2Dir, IOE2Enable, endstopNone, endstopNone)



TOOL_EXTRUDER(ToolExtruder1, 0, 0, 0, HeaterExtruder1, E1Motor, 1.75, 221.0, 20, 30, 1000, 40, "", "", &Fan1PWM)

TOOL_EXTRUDER(ToolExtruder2, 12, 0, 0, HeaterExtruder2, E2Motor, 1.75, 221.0, 20, 30, 1000, 40, "G1 A30", "G28 A", &Fan1PWM)

JAM_DETECTOR_HW(JamExtruder1, E1Motor, IOJam1, ToolExtruder1, 204, 10, 200)

JAM_DETECTOR_HW(JamExtruder2, E2Motor, IOJam2, ToolExtruder2, 204, 10, 200)


#define JAM_METHOD 1

#define JAM_STEPS 408


#define JAM_SLOWDOWN_TO 75

#define JAM_ERROR_STEPS 1000

#define JAM_MIN_STEPS 10

#define JAM_ACTION 1

Thanks for your help


  • Jam detector does not use the JAM_ defines any more. There is currently also no jam method. All it does on detection is send a
    GCodeSource::printAllFLN(PSTR("// action:out_of_filament T"), (int32_t)tool->getToolId());
    GCodeSource::printAllFLN(PSTR("RequestPause:No filament detected!"));

    to host software (repetier-server) which is then responsible to start the filament change. A ui solution on lcd is currently not implemented.

    So I guess your solution does not check for the response and you missed that.
  • OK. Thanks for your answer
  • Jam detection works correctly with the Repetier Host interface.
    On the other hand, for long prints, it is very restrictive not to have this function in stand-alone printing. This implies that we have to do without this security feature, or else not be able to shut down or restart the computer during the entire printing process.

    Can I replace the message sent with an instruction understood by a Marlin interface? Or maybe add a dedicated command?
    There is no standard for this type of message?

    There is another solution to use the jam detection with a touch screen. It uses the M114 function, but with the "E" option to get the value of the active extruder. This is not supported by RepetierV2 ("M114_DETAIL" in Marlin).
    Is it possible to add it?

    More generally, will V2 integrate compatibility with the functionalities of new equipment, and  particularly those of touch screens? These features are particularly important given the reduction of those implemented natively in the Repetier interface.

  • What is the sense with M114 D you want me to tell? Looking into the implementation I see it would wait for all moves to end to report stepper position. So that is only usable for debugging purposes and would reduce print quality if used during print. Also I don't see how this helps with jam detection.

    Currently there is only the request pause solution implemented. I'm currently working on prompt support for server and host. When this is working I think I will try adding a hybrid method that also works with sd prints with connected lcd displays. But it is in deed a hard problem. How to know a host is listening and understanding and which solution to use. No idea how many I have now seen in marlin, but they have so many variants all with advantages and disadvantages.
  • Thank you for the clarification.

    Regarding M114 E, it seems that it shows the value progress of the extruder during printing and that it is compared to the pulses of the detection encoder.
Sign In or Register to comment.