Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Problem beim Kompilieren von Marlin 2.0.2.9

geschrieben von tru_visual 
Problem beim Kompilieren von Marlin 2.0.2.9
18. December 2021 07:07
Hallo liebe RepRaper,

ich habe ein Problem beim kompilieren von Marlin 2.0.2.9, wollte nun von 1.1.9 wechseln..,

Nun bekomme ich die Fehlermeldung:
Arduino: 1.8.16 (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\User\Documents\Arduino\Marlin-2.0.2.9\Marlin\src\module\settings.cpp: In static member function 'static void MarlinSettings::reset()':

C:\Users\User\Documents\Arduino\Marlin-2.0.2.9\Marlin\src\module\settings.cpp:2842:7: error: static assertion failed: DEFAULT_Kp_LIST must have between 1 and HOTENDS items.

       static_assert(WITHIN(COUNT(defKp), 1, HOTENDS), "DEFAULT_Kp_LIST must have between 1 and HOTENDS items.");

       ^~~~~~~~~~~~~

C:\Users\User\Documents\Arduino\Marlin-2.0.2.9\Marlin\src\module\settings.cpp:2843:7: error: static assertion failed: DEFAULT_Ki_LIST must have between 1 and HOTENDS items.

       static_assert(WITHIN(COUNT(defKi), 1, HOTENDS), "DEFAULT_Ki_LIST must have between 1 and HOTENDS items.");

       ^~~~~~~~~~~~~

C:\Users\User\Documents\Arduino\Marlin-2.0.2.9\Marlin\src\module\settings.cpp:2844:7: error: static assertion failed: DEFAULT_Kd_LIST must have between 1 and HOTENDS items.

       static_assert(WITHIN(COUNT(defKd), 1, HOTENDS), "DEFAULT_Kd_LIST must have between 1 and HOTENDS items.");

       ^~~~~~~~~~~~~

exit status 1

Fehler beim Kompilieren für das Board Arduino Mega or Mega 2560.



Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.

Ich weiß wirklich nicht was ich bei den PID settings ändern soll und warum.

Bin dankbar für etwas Hilfe von euch.
Tru
Re: Problem beim Kompilieren von Marlin 2.0.2.9
18. December 2021 18:06
[marlinfw.org]
"DEFAULT_Kd_LIST must have between 1 and HOTENDS items."
Wieviele Hotends hat der Drucker denn bzw. wieviele Werte stehen in deinen Listen?

Herzl. Grüße
Re: Problem beim Kompilieren von Marlin 2.0.2.9
18. December 2021 18:53
Hallo AlterBastler,
lieben Dank.

Z.Z. nur 1 Extruder, möchte gern zwei Mix Extruder, aber erst einmal nur ein Mix Extruder.

Die configuration.h :
//===========================================================================
//============================= PID Settings ================================
//===========================================================================
// PID Tuning Guide here: [reprap.org]

// Comment the following line to disable PID and enable bang-bang.
#define PIDTEMP
#define BANG_MAX 255     // Limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_K1 0.95      // Smoothing factor within any PID loop

#if ENABLED(PIDTEMP)
    #define PID_EDIT_MENU         // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
    #define PID_AUTOTUNE_MENU     // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
    #define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
                                  // Set/get with gcode: M301 E[extruder number, 0-2]

  #if ENABLED(PID_PARAMS_PER_HOTEND)
    // Specify up to one value per hotend here, according to your setup.
    // If there are fewer values, the last one applies to the remaining hotends.
    #define DEFAULT_Kp_LIST {  22.20,  22.20 }
    #define DEFAULT_Ki_LIST {   1.08,   1.08 }
    #define DEFAULT_Kd_LIST { 114.00, 114.00 }
  #else
    #define DEFAULT_Kp  22.20
    #define DEFAULT_Ki   1.08
    #define DEFAULT_Kd 114.00
  #endif
#endif // PIDTEMP

//===========================================================================
//====================== PID > Bed Temperature Control ======================
//===========================================================================

/**
 * PID Bed Heating
 *
 * If this option is enabled set PID constants below.
 * If this option is disabled, bang-bang will be used and BED_LIMIT_SWITCHING will enable hysteresis.
 *
 * The PID frequency will be the same as the extruder PWM.
 * If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz,
 * which is fine for driving a square wave into a resistive load and does not significantly
 * impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W
 * heater. If your configuration is significantly different than this and you don't understand
 * the issues involved, don't use bed PID until someone else verifies that your hardware works.
 */
  #define PIDTEMPBED

//#define BED_LIMIT_SWITCHING

/**
 * Max Bed Power
 * Applies to all forms of bed control (PID, bang-bang, and bang-bang with hysteresis).
 * When set to any value below 255, enables a form of PWM to the bed that acts like a divider
 * so don't use it unless you are OK with PWM on your bed. (See the comment on enabling PIDTEMPBED)
 */
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current

#if ENABLED(PIDTEMPBED)
  //#define MIN_BED_POWER 0
  //#define PID_BED_DEBUG // Sends debug data to the serial port.

  // 120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
  // from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
  #define DEFAULT_bedKp 10.00
  #define DEFAULT_bedKi .023
  #define DEFAULT_bedKd 305.4

  // FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED

//===========================================================================
//==================== PID > Chamber Temperature Control ====================
//===========================================================================

/**
 * PID Chamber Heating
 *
 * If this option is enabled set PID constants below.
 * If this option is disabled, bang-bang will be used and CHAMBER_LIMIT_SWITCHING will enable
 * hysteresis.
 *
 * The PID frequency will be the same as the extruder PWM.
 * If PID_dT is the default, and correct for the hardware/configuration, that means 7.689Hz,
 * which is fine for driving a square wave into a resistive load and does not significantly
 * impact FET heating. This also works fine on a Fotek SSR-10DA Solid State Relay into a 200W
 * heater. If your configuration is significantly different than this and you don't understand
 * the issues involved, don't use chamber PID until someone else verifies that your hardware works.
 */
//#define PIDTEMPCHAMBER
//#define CHAMBER_LIMIT_SWITCHING

/**
 * Max Chamber Power
 * Applies to all forms of chamber control (PID, bang-bang, and bang-bang with hysteresis).
 * When set to any value below 255, enables a form of PWM to the chamber heater that acts like a divider
 * so don't use it unless you are OK with PWM on your heater. (See the comment on enabling PIDTEMPCHAMBER)
 */
#define MAX_CHAMBER_POWER 255 // limits duty cycle to chamber heater; 255=full current

#if ENABLED(PIDTEMPCHAMBER)
  #define MIN_CHAMBER_POWER 0
  //#define PID_CHAMBER_DEBUG // Sends debug data to the serial port.

  // Lasko "MyHeat Personal Heater" (200w) modified with a Fotek SSR-10DA to control only the heating element
  // and placed inside the small Creality printer enclosure tent.
  //
  #define DEFAULT_chamberKp 37.04
  #define DEFAULT_chamberKi 1.40
  #define DEFAULT_chamberKd 655.17
  // M309 P37.04 I1.04 D655.17

  // FIND YOUR OWN: "M303 E-2 C8 S50" to run autotune on the chamber at 50 degreesC for 8 cycles.
#endif // PIDTEMPCHAMBER

#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER)
  //#define PID_DEBUG             // Sends debug data to the serial port. Use 'M303 D' to toggle activation.
  //#define PID_OPENLOOP          // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
  //#define SLOW_PWM_HEATERS      // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
  #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
                                  // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
#endif
Re: Problem beim Kompilieren von Marlin 2.0.2.9
19. December 2021 04:11
   // #define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
Nur mal interessehalber gefragt: Was macht man mit 2 Mixing-Extrudern?

Herzl. Grüße
Re: Problem beim Kompilieren von Marlin 2.0.2.9
19. December 2021 09:10
Hallo AlterBastler,

lieben Dank für deine Antwort...
Ich probiere das grade aus...

In Marlin 2 hat sich ja dem nach einiges geändert, zu 1.1.9...
Chamber ist dann also Hotend? Kannst du mir was empfehlen, wo man das alles nachlesen kann, wenn man mit Marlin 1.1.9 relativ vertraut war und nun zu Marlin 2 wechselt...

Direkt aus der Marlin Seite, mit erklärungen, damit ich mir evtl. einiges an Fragen selber beantworten kann und wenn ich nicht weiterkomme, dann hier fragen stellen kann, bzw. vielleicht auch mal endlich Fragen von anderen beantworten kann?

Lieben Gruß,
Tru
Re: Problem beim Kompilieren von Marlin 2.0.2.9
19. December 2021 10:39
AlterBastler,

super... hat geklappt....
ABER, eine Frage noch... es ist ein MIX Extruder und woher weiß Marlin, das der zweite Stepper Motor driver z.B. an E1 ist?
Wo mache ich die Zuordnungen?

Lieben Gruß,
Tru
Re: Problem beim Kompilieren von Marlin 2.0.2.9
19. December 2021 11:27
in configuration.h Zeile 193ff:
// This defines the number of extruders
// :[0, 1, 2, 3, 4, 5, 6, 7, 8]
#define EXTRUDERS 1
E0 und E1 sind klar, für weitere Extruder erfolgt die Zuordnung in der jeweiligen Pins-Datei (boardspezifisch).

Herzl. Grüße
Re: Problem beim Kompilieren von Marlin 2.0.2.9
19. December 2021 14:55
Hallo AlterBastler,
cool...

// This defines the number of extruders
// :[0, 1, 2, 3, 4, 5, 6, 7, 8]
#define EXTRUDERS 1

Verstehe ich aber so, 0 = Kein Extruder...? 1 = ein Extruder und 2 = zwei Extruder.
Ich habe einen Mix Extruder, was ich ja hier auch aktiviert habe, in der configuaration.h
/**
 * "Mixing Extruder"
 *   - Adds G-codes M163 and M164 to set and "commit" the current mix factors.
 *   - Extends the stepping routines to move multiple steppers in proportion to the mix.
 *   - Optional support for Repetier Firmware's 'M164 S' supporting virtual tools.
 *   - This implementation supports up to two mixing extruders.
 *   - Enable DIRECT_MIXING_IN_G1 for M165 and mixing in G1 (from Pia Taubert's reference implementation).
 */
#define MIXING_EXTRUDER       //  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#if ENABLED(MIXING_EXTRUDER)
  #define MIXING_STEPPERS 2        // Number of steppers in your mixing extruder
  #define MIXING_VIRTUAL_TOOLS 16  // Use the Virtual Tool method with M163 and M164
  #define DIRECT_MIXING_IN_G1    // Allow ABCDHI mix factors in G1 movement commands
  #define GRADIENT_MIX           // Support for gradient mixing with M166 and LCD
  //#define MIXING_PRESETS         // Assign 8 default V-tool presets for 2 or 3 MIXING_STEPPERS
  #if ENABLED(GRADIENT_MIX)
    #define GRADIENT_VTOOL       // Add M166 T to use a V-tool index as a Gradient alias
  #endif
#endif
Und mit
  #define MIXING_STEPPERS 2
Damit Sage ich dann ja, das der Mix Extruder zwei Stepper Motoren hat (E0 und E1)
UND, wenn ich
// This defines the number of extruders
// :[0, 1, 2, 3, 4, 5, 6, 7, 8]
#define EXTRUDERS 2
Gebe ich dann an, das der Drucker zwei Mix Extruder hat...
Und in der Board speziefischen Pin.h
gebe ich dann noch an, wo die Stepper Motor Driver dran hängen... richtig...oder?

2-mal bearbeitet. Zuletzt am 19.12.21 14:57.
Re: Problem beim Kompilieren von Marlin 2.0.2.9
19. December 2021 16:44
Ja, richtig, wobei sich mir der Zweck von zwei Mixing Extrudern in einem Drucker
immer noch nicht erschliesst.

Herzl. Grüße
Re: Problem beim Kompilieren von Marlin 2.0.2.9
19. December 2021 20:13
Hallo AlterBastler,

lieben Dank für deine Hilfe.

Mit dem einen Mix Extruder möchte ich gern PLA drucken und mit dem anderen gern TPU/TPE oder ABS.
Da PLA, ABS etc ja alle unterschiedliche Drucktemperaturen haben, nehme ich zwei Mix Extruder und kann dann 4 verschiedene Filamente drucken, bzw. 2 unterschiedliche, da pro Mix Extruder ja nur eine Heizpatrone.

Lieben Gruß,
Tru
Re: Problem beim Kompilieren von Marlin 2.0.2.9
20. December 2021 10:42
Hast Du Erfahrung im Reinigen der Mix-Hotends? Ich würde ein Dual X-Carriage ggf. in Verbindung mit einem Schnellwechselsystem
bevorzugen. Oder mit einem Dual Switching Hotend, dann hast Du wieder 4 Extruder, aber mit eigenen Düsen.
Wenn Du keine Farben mischen willst, ist meiner Meinung nach das Drucken von (auswaschbarem) Stützmaterial die sinnvollste
Anwendung. Dafür reichen zwei einfache Hotends, wobei für PVA sowieso eine eigene Düse empfehlenswert ist.
Ist aber nur meine persönliche Meinung, ich will Dich nicht von irgendwas abbringen.

Herzl. Grüße
Re: Problem beim Kompilieren von Marlin 2.0.2.9
21. December 2021 04:54
Grüß dich AlterBastler,

nein... Mix Extruder ist absolutes Neuland für mich und habe bzgl. Reinigung eines Mix Extruders nichts im Netz gefunden, was darauf hindeutet, das sich der Betrieb von Mix Extrudern schwierig gestalten soll.

Aber, du wirst das wohl nicht ohne Grund sagen/schreiben und dafür bin ich dir sehr Dankbar.
Warum ich einen Mix Extruder gewählt habe... nun... ich finde die einfach cool... und hatte in der Vergangenheit mal einen Dual Extruder ausprobiert, mit anfänglichem Wissensstand...
man lernt ja dazu.

3-mal bearbeitet. Zuletzt am 21.12.21 06:13.
Re: Problem beim Kompilieren von Marlin 2.0.2.9
21. December 2021 06:07
Ich habe noch eine Frage zu den Stepper Motor Treibern:

In der pins_RAMPS.h habe ich die Pins zugeordnet, alle von AUX 2, aber Pin 40 (AUX 2) steht schon bei Z Achse und Pin 44 bei (AUX 2) ist schon bei E1. Verstehe ich nicht, da es doch AUX 2 ist:
//
// Steppers
//
#define X_STEP_PIN                            54
#define X_DIR_PIN                             55
#define X_ENABLE_PIN                          38
#ifndef X_CS_PIN
  #define X_CS_PIN                   AUX3_03_PIN
#endif

#define Y_STEP_PIN                            60
#define Y_DIR_PIN                             61
#define Y_ENABLE_PIN                          56
#ifndef Y_CS_PIN
  #define Y_CS_PIN                   AUX3_07_PIN
#endif

#ifndef Z_STEP_PIN
  #define Z_STEP_PIN                          46
#endif
#ifndef Z_DIR_PIN
  #define Z_DIR_PIN                           48
#endif
#ifndef Z_ENABLE_PIN
  #define Z_ENABLE_PIN                        62
#endif
#ifndef Z_CS_PIN
  #define Z_CS_PIN                            40     // <<<<<<<<<<<<<<<<<<<<<<<<<<<
#endif

#ifndef E0_STEP_PIN
  #define E0_STEP_PIN                         26
#endif
#ifndef E0_DIR_PIN
  #define E0_DIR_PIN                          28
#endif
#ifndef E0_ENABLE_PIN
  #define E0_ENABLE_PIN                       24
#endif
#ifndef E0_CS_PIN
  #define E0_CS_PIN                           42
#endif

#ifndef E1_STEP_PIN
  #define E1_STEP_PIN                         36
#endif
#ifndef E1_DIR_PIN
  #define E1_DIR_PIN                          34
#endif
#ifndef E1_ENABLE_PIN
  #define E1_ENABLE_PIN                       30
#endif
#ifndef E1_CS_PIN
  #define E1_CS_PIN                           44   // <<<<<<<<<<<<<<<<<<<<<<<<<<<
#endif

// MIX EXTRUDER 2        <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

#ifndef E2_STEP_PIN
  #define E2_STEP_PIN                         63
#endif
#ifndef E2_DIR_PIN
  #define E2_DIR_PIN                          40   // <<<<<<<<<<<<<<<<<<<<<<<<<<<
#endif
#ifndef E2_ENABLE_PIN
  #define E2_ENABLE_PIN                       42
#endif
#ifndef E2_CS_PIN
  #define E2_CS_PIN                           65
#endif

#ifndef E3_STEP_PIN
  #define E3_STEP_PIN                         59
#endif
#ifndef E3_DIR_PIN
  #define E3_DIR_PIN                          64
#endif
#ifndef E3_ENABLE_PIN
  #define E3_ENABLE_PIN                       44   // <<<<<<<<<<<<<<<<<<<<<<<<<<<
#endif
#ifndef E3_CS_PIN
  #define E3_CS_PIN                           66
#endif

// MIX EXTRUDER 2        <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

1-mal bearbeitet. Zuletzt am 21.12.21 06:24.
Re: Problem beim Kompilieren von Marlin 2.0.2.9
21. December 2021 10:22
siehe z.B. hier: [reprap.org]
Die CS_Pins benötigst Du nur für TMC-Treiber. Siehe configuration_adv.h.
Kannst Du auskommentieren.

Herzl. Grüße
Re: Problem beim Kompilieren von Marlin 2.0.2.9
21. December 2021 11:57
Wow, ok... gesagt getan...

Ich habe hier die pins_ramps.h und muss wohl ein paar Pins ändern, da ich zwei Hotends ein Bed und ein Fan habe.
In der configurations.h kann ich ja auch EFBE angeben.

Auf meinem MKS Gen L v1.0 habe ich an D8 das Bed, an D10 habe ich E0 (E0 +E1 Mix Extruder 1), an D7 habe ich E2 (E2 +E3 Mix Extruder 2) und an D9 ist der Part Cooling Fan, siehe Foto


Und in der pins_ramps.h Die Fallsituation ist mir nicht ganz klar, hier in der pins_ramps
Ich versuche EFBE
//
// Heaters / Fans
//
#ifndef MOSFET_D_PIN
  #define MOSFET_D_PIN                        -1
#endif
#ifndef RAMPS_D8_PIN
  #define RAMPS_D8_PIN                         8
#endif
#ifndef RAMPS_D9_PIN
  #define RAMPS_D9_PIN                         9                                       // Für Part Cooling Fan
#endif
#ifndef RAMPS_D10_PIN
  #define RAMPS_D10_PIN                       10
#endif

//   >>>>>>>>>>>>>>>>>>>>>>   HINZUGEFÜGT   <<<<<<<<<<<<<<<<<<<<<<<<<

#ifndef RAMPS_D7_PIN
  #define RAMPS_D7_PIN                       7                                         // Hotend für zweiten Mix Extruder
#endif

//   >>>>>>>>>>>>>>>>>>>>>>   HINZUGEFÜGT   <<<<<<<<<<<<<<<<<<<<<<<<<


#define HEATER_0_PIN               RAMPS_D10_PIN

#if ENABLED(IS_RAMPS_EFcool smiley                                                        // Hotend, Fan, Bed
  #define HEATER_BED_PIN            RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EEF)                                                     // Hotend, Hotend, Fan
  #define HEATER_1_PIN              RAMPS_D9_PIN
#elif ENABLED(IS_RAMPS_EEcool smiley                                                    // Hotend, Hotend, Bed
  #define HEATER_1_PIN              RAMPS_D9_PIN
  #define HEATER_BED_PIN            RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EFF)                                                    // Hotend, Fan, Fan
  #define FAN1_PIN                  RAMPS_D8_PIN



#elif DISABLED(IS_RAMPS_SF)                                                     // <<<<<<<<<<<<< Not Spindle, Fan (i.e., "EFBF" or "EFBE")  <<<<<<<<<<<<<<<<<<<<<<
  #define HEATER_BED_PIN            RAMPS_D8_PIN
  #if EITHER(HAS_MULTI_HOTEND, HEATERS_PARALLEL)
    #define HEATER_1_PIN            MOSFET_D_PIN
  #else
    #define FAN1_PIN                MOSFET_D_PIN
  #endif
#endif




#ifndef FAN_PIN
  #if EITHER(IS_RAMPS_EFB, IS_RAMPS_EFF)                          // Hotend, Fan, Bed or Hotend, Fan, Fan
    #define FAN_PIN                 RAMPS_D9_PIN
  #elif EITHER(IS_RAMPS_EEF, IS_RAMPS_SF)                         // Hotend, Hotend, Fan or Spindle, Fan
    #define FAN_PIN                 RAMPS_D8_PIN
  #elif ENABLED(IS_RAMPS_EEcool smiley                                                // Hotend, Hotend, Bed
    #define FAN_PIN                            4                                          // IO pin. Buffer needed
  #else                                                                                             // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")
    #define FAN_PIN                 RAMPS_D9_PIN
  #endif
#endif

Oder:
//
// Heaters / Fans
//
#ifndef MOSFET_D_PIN
  #define MOSFET_D_PIN                       7  // Hotend 2
#endif

2-mal bearbeitet. Zuletzt am 21.12.21 12:18.
Re: Problem beim Kompilieren von Marlin 2.0.2.9
21. December 2021 14:42
Wird hier definiert:
[github.com]

Herzl. Grüße
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen