Marlin: PID autotune FAILED

Created on 9 Jun 2016  Â·  15Comments  Â·  Source: MarlinFirmware/Marlin

When I Try to Give the PID AUTOTUNE for the bed this is the result:

SENT: M303 E-1 S60 C10
RECEIVED: PID Autotune failed! Bad extruder number
RECEIVED: ok

Configuration

Most helpful comment

    if (false
      #if ENABLED(PIDTEMP)
         || hotend >= HOTENDS
      #else
         || hotend >= 0
      #endif
      #if DISABLED(PIDTEMPBED)
         || hotend < 0
      #endif
    ) {
      SERIAL_ECHOLN(MSG_PID_BAD_EXTRUDER_NUM);
      return;
    }

Is PIDTEMPBED active?

All 15 comments

  #define  DEFAULT_bedKp 234
  #define  DEFAULT_bedKi 43.28
  #define  DEFAULT_bedKd 316.28
  //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
  //from pidautotune
  //#define  DEFAULT_bedKp 97.1
  //#define  DEFAULT_bedKi 1.41
  //#define  DEFAULT_bedKd 1675.16
  // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED

This is as is written on Config.h

    if (false
      #if ENABLED(PIDTEMP)
         || hotend >= HOTENDS
      #else
         || hotend >= 0
      #endif
      #if DISABLED(PIDTEMPBED)
         || hotend < 0
      #endif
    ) {
      SERIAL_ECHOLN(MSG_PID_BAD_EXTRUDER_NUM);
      return;
    }

Is PIDTEMPBED active?

Oops.

    if (false
      #if ENABLED(PIDTEMP)
         || hotend >= HOTENDS
      #else
         || hotend >= 0
      #endif
      #if DISABLED(PIDTEMPBED)
         || hotend < 0
      #endif
+     || hotend < -1
    ) {
      SERIAL_ECHOLN(MSG_PID_BAD_EXTRUDER_NUM);
      return;
    }

Ups.

Oops! 😵 Props!

Yes, I guess that would be good to add. It can replace the false clause at the top.

I did't understood how to solve the problem LOL

If you have PIDTEMPBED not activated you will get the error. No PID for the bed -> No tuning the PID for the bed.

Please correct source:

if (hotend >=
        #if ENABLED(PIDTEMP)
          HOTENDS
        #else
          0
        #endif
      || hotend <
        #if DISABLED(PIDTEMPBED) //(**It was Enabled**) 
          -1
        #else
          0
        #endif
    ) {
      SERIAL_ECHOLN(MSG_PID_BAD_EXTRUDER_NUM);
      return;
    }

Please rethink,try and close the issue.
-1 is the number of the bed!

if I'm wrong ? then why after the code has changed - I have gone error : "PID Autotune failed Bad extruder number!", and began autotune? = ) I apologize if the text with errors - I translate through Google translator :D

Likely because you have not activated 'PIDTEMPBED'.
The tuning will work even without that.

@Anton73rus

The code is correct.

Do you have the option set…?

#define PIDTEMPBED

I finally got it to work, you have to heat your bed withing 10 degrees of your target temperature then run the pid autotune, then it will work, as long as you have the pid autotune enabled in your marlin code and that other option below it commented out you are good to go, try that and let me know if it worked for you, if you haven't already figured it out.

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

Was this page helpful?
0 / 5 - 0 ratings