I didn't send "M105", why I will receive temperature information "T:20.25/0 B:14.56/0 ..."

Dear Engineer, Normally, when host send "M105", the board will send temperature information like: "T:20.25/0 B:14.56/0 ...". But today I found the board will send this temperature information without been asked by the host, I mean, I didn't send command "M105", but I received temperature information sometimes. Why I ask this is because once I received this temperature inforamtion, my Z_AXIS loose accuracy, and the Z position will change. Please check my below picture, why the board will send this temperature information "T:20.25/0 B:14.56/0 ..." randomly without send command"M105". looking forward to your reply. Thanks in advance! Tony

Comments

  • Guess you are using latest dev version with current server/host. Fimrware has a autoreport temperature feature that these hosts enable if firmware tells them it is supported. In that case you get the temps. without the need of sending M105 every second. So that would be ok.

    Of course it should not effect the z move at all. What is your z move speed and resolution and board type (processor) that this has an effect? If you have very high stepper frequencies that can be a problem when cpu is used 100%, but then I would expect the same problem with server asking every second for a temperature.
  • where can I disable autoreport temperature feature? thanks!
  • I found the problem, there is a "STEPPER_INACTIVE_TIME", I set the time 15s, so when each movement finished, after 15 seconds, the AXIS is released, and the temperature inforamtion come. Now I set the "STEPPER_INACTIVE_TIME" 0s, ok now. But it is true that when "STEPPER_INACTIVE_TIME" is arrived (when the axis is released), the position will be slightly moved, and the distance will be incorrect, please test on your side. Thanks!
  • I have tested it and after timeout z axis keeps stable for me. So whatever it is also depends on something else. A disabled stepper driver does not send moves so to be responsible it would need to enable the driver. Then it would try to stabilize on last microstep. Sending some data to output should not have an effect on enable pin. But since I have even seen boards resetting when pwm has a special frequency just by crosstalk to reset pin I would say that it could be something different. Temp output is long. What board are you using? I have heard this several times happen so if I have again one with the problem I could ask for the board and maybe see a pattern here.

    In dev version you can add

    #define PREVENT_Z_DISABLE_ON_STEPPER_TIMEOUT

    to prevent z axis from timeout. So xy could still time out and problem should not appear.


  • Just a thought to test if this depends on the hardware as I think. If you switch x and z so that x motor is on z socket and vice versa including changing them in firmware config (in config tool you can select the sockets). Then x should start having this behaviour while z stays calm when motors get idle.

    What I wonder is does this also happens before you do any move? I mean technically it is the same if motors are off from timeout or never enabled. Also M84 should go to same state.
  • position change when axis disabled depends on motors.
    when disabling the driver, the motor jumps to the next "full step position".
    f.e. if you use 1/16th step and you stop the motor at microstep 12 , the motor will jump forward to next fullstep after disabling driver.
    if you stop the motor at microstep 4 , the motor will jump backwards to next fullstep after disabling driver.

    as rod driven mechanics need more force to move than belt driven so they mostly prevent the jump of motor
    and keep position


  • Thanks for all your support, I'm using board Ramps1.4, I'll test more, and tell you if someting else found. Thanks again!
Sign In or Register to comment.