Dev.2 einrichten, Verständisfragen
Hi,
vorab: Toll das es dieses Forum gibt und viele verrückte, die sich den Kram hier so ausdenken!
wie hier beschrieben versuche ich mich bei der Konfiguration der Dev.2
Mein Drucker:
Cartesian Corexy
- Z-Achse: 3 Motoren für motorisches Bed Leveling, Endstopp auf max
- x-Achse, Endstopp auf max
- y-Achse, Endstopp auf max
- 3 Extruder mit je Jam-Überwachung, aber nur 1 Hotend quasi als Mixing, 1 Heater
- Heated Bed
- SparkLCD
1. Frage: config.h
// The follwing variables are required early to decide on the right modules.#define NUM_TOOLS 3
#define NUM_EXTRUDER 3
#define NUM_SERVOS 0
Gebe ich hier Tools = 3 an, da 3 Extruder oder reicht nur #define NUM_TOOLS 3 oder nur #define NUM_EXTRUDER 3 oder wirklich beides?
Ein Extruder ist ja Quasi = ein Tool oder?
2. Frage config.h
define NUM_AXES 4 // X,Y,Z and E for extruder A,B,C would be 5,6,7x,y,z-Achse soweit klar, macht 3 + 1 = 4 da immer nur 1 Extruder arbeitet oder 3 (für die Achsen + 3(für die Extruder) = 6 wegen mixing Extruder?
3. Frage config.h
#define STEPPER_FREQUENCY 100000 // Maximum stepper frequency.#define PREPARE_FREQUENCY 1000 // Update frequency for new blocks. Must be higher then PREPARE_FREQUENCY.
#define BLOCK_FREQUENCY 500
OK für Radds mit Due -> fehlt mir eine Tabelle bzw. Referenz zur Abschätzung was geht und was nicht.
4. Frage config.h
// Define ZProbe by referencing a endstop definedCONFIG_VARIABLE_EQ(EndstopDriver, *ZProbe, &endstopZMin)
Mein ZProbe hängt an D59-Pin
Muss ich jetzt dazu in der config_io einen IO definieren: "
IO_INPUT(ZProbe, 59)?
oder wäre dann so richtig:
CONFIG_VARIABLE_EQ(EndstopDriver, *ZProbe, &59)
5. Frage config.h
// Define a common humidity sensor for M105 reporting if we have one
CONFIG_VARIABLE_EQ(Sensor, *HumiditySensor, HUMIDITY_SENSOR_ADDRESS)
--> hab ich nicht.
hab ich nicht - einfach auskommentieren?
//CONFIG_VARIABLE_EQ(Sensor, *HumiditySensor, HUMIDITY_SENSOR_ADDRESS)
kann ich generell Zeilen einfach auskommentieren/löschen wenn ich sie nicht brauche?
6. Frage config.h
#define SERVO_LIST \
{ &Servo1 }
hab ich nicht - einfach auskommentieren?
//#define SERVO_LIST \
// { &Servo1 }
7. Frage config.h
#define TOOLS \
{ &ToolExtruder1, &ToolExtruder2,&ToolExtruder3 }
da 3 Extruder - so korrekt?
8. Frage config.h
#define NUM_MOTORS 6
#define MOTORS \
{ &XMotor, &YMotor, &ZMotor }
#define MOTOR_NAMES \
{ PSTR("X"), PSTR("Y"), PSTR("Z") }
--> Motoren sind ja 1x"X"; 1x "Y", 3x"Z" 1x Extr. 1, 1x Extr.2, 1x Extr.3
Z-Achse dennoch einzeln zählen, da ja eigentlich 2 Motoren "gemirrored" werden..? --> Also 6?
Habe bisher in keiner Beispielconfig gesehen, dass jemand wie in der Doku beschrieben irgendwo das Schema hier verwendet hat:
STEPPER_MIRROR3(name, motor1, motor2, motor3, minEndstop, maxEndstop)
wäre das in der Config_io einzubauen oder in der config.h?
9. Frage config.h
// ################## EDIT THESE SETTINGS MANUALLY ################
// ################ END MANUAL SETTINGS ##########################
#undef Y_MIN_PIN
#define Y_MIN_PIN -1
#undef X_MAX_PIN
#define X_MAX_PIN 1
#undef Y_MAX_PIN
#define Y_MAX_PIN ORIG_Y_MIN_PIN
#undef Z_MAX_PIN
#define Z_MAX_PIN -1
Meine Endstopps hängen alle jeweils an den Max.Pins, Home auch auf Max-Richtung.
demnach:
#undef X_MIN_PIN
#define X_MAX_PIN 1
#undef Y_MIN_PIN
#define Y_MAX_PIN 1
#undef Z_MIN_PIN
#define Z_MAX_PIN 1
Korrekt?
####################################
10. Frage config_io// Define your endstops solutions
// You need to define all min and max endstops for all
// axes except E even if you have none!
ENDSTOP_SWITCH_HW(endstopXMax, IOEndstopXMax, X_AXIS, true)
ENDSTOP_SWITCH_HW(endstopYMax, IOEndstopYMax, Y_AXIS, true)
ENDSTOP_SWITCH_HW(endstopZMax, IOEndstopZMax, Z_AXIS, true)
ENDSTOP_NONE(endstopXMin)
ENDSTOP_NONE(endstopYMin)
ENDSTOP_NONE(endstopZMin)
--> alle Min und Max endstopps damit ausreichend definiert?
11. Frage config_io
Motorendefinition der Pins + weitere Verwendung habe ich wie folgt zusammenkopiert, abgeschrieben und angepasst - alles mit halbwissen:
// X Motor
IO_OUTPUT(IOX1Step, ORIG_X_STEP_PIN)
IO_OUTPUT_INVERTED(IOX1Dir, ORIG_X_DIR_PIN)
IO_OUTPUT(IOX1Enable, ORIG_X_ENABLE_PIN)
// Y Motor
IO_OUTPUT(IOY1Step, ORIG_Y_STEP_PIN)
IO_OUTPUT(IOY1Dir, ORIG_Y_DIR_PIN)
IO_OUTPUT(IOY1Enable, ORIG_Y_ENABLE_PIN)
// Z Motor
IO_OUTPUT(IOZ1Step, ORIG_E3_STEP_PIN)
IO_OUTPUT_INVERTED(IOZ1Dir, ORIG_E3_DIR_PIN)
IO_OUTPUT(IOZ1Enable, ORIG_E3_ENABLE_PIN)
// E1 Motor
IO_OUTPUT(IOE1Step, ORIG_E0_STEP_PIN)
IO_OUTPUT(IOE1Dir, ORIG_E0_DIR_PIN)
IO_OUTPUT_INVERTED(IOE1Enable, ORIG_E0_ENABLE_PIN)
// E2 Motor
IO_OUTPUT(IOE2Step, ORIG_E1_STEP_PIN)
IO_OUTPUT(IOE2Dir, ORIG_E1_DIR_PIN)
IO_OUTPUT_INVERTED(IOE2Enable, ORIG_E1_ENABLE_PIN)
// E3 Motor
IO_OUTPUT(IOE3Step, ORIG_E2_STEP_PIN)
IO_OUTPUT(IOE3Dir, ORIG_E2_DIR_PIN)
IO_OUTPUT_INVERTED(IOE3Enable, ORIG_E2_ENABLE_PIN)
// Autolevel Motor 1
IO_OUTPUT(IOAL1Step, 29)
IO_OUTPUT_INVERTED(IOAL1Dir, 27)
IO_OUTPUT(IOAL1Enable, 31)
// Autolevel Motor 2
IO_OUTPUT(IOAL2Step, 67)
IO_OUTPUT_INVERTED(IOAL2Dir, 66)
IO_OUTPUT(IOAL2Enable, 68)
##################
so weiter verwendet - besonders Z-Achse bitte mal quer checken:
// Define all stepper motors used
//X-Motor
STEPPER_SIMPLE(XMotor, IOX1Step, IOX1Dir, IOX1Enable, endstopNone, endstopNone)
//Y-Motor
STEPPER_SIMPLE(YMotor, IOY1Step, IOY1Dir, IOY1Enable, endstopNone, endstopNone)
//Z-Motoren und Autolevel
STEPPER_SIMPLE(ZMotor, IOZ1Step, IOZ1Dir, IOZ1Enable, endstopNone, endstopNone)
STEPPER_SIMPLE(AL1Motor, IOAL1Step, IOAL1Dir, IOAL1Enable, endstopNone, endstopNone)
STEPPER_SIMPLE(AL2Motor, IOAL2Step, IOAL2Dir, IOAL2Enable, endstopNone, endstopNone)
STEPPER_MIRROR3(ZMotor, ZMotor, AL1Motor, AL2Motor, endstopNone, endstopNone)
// Extruder-Motoren
STEPPER_SIMPLE(E1MotorBase, IOE1Step, IOE1Dir, IOE1Enable, endstopNone, endstopNone)
STEPPER_SIMPLE(E2MotorBase, IOE2Step, IOE2Dir, IOE2Enable, endstopNone, endstopNone)
STEPPER_SIMPLE(E3MotorBase, IOE2Step, IOE2Dir, IOE2Enable, endstopNone, endstopNone)
//Extruder-Fake-Motoren für Jam-Controlle
STEPPER_OBSERVEABLE(E1Motor, E1MotorBase)
STEPPER_OBSERVEABLE(E2Motor, E2MotorBase)
STEPPER_OBSERVEABLE(E2Motor, E3MotorBase)
############
dann hier teilweise weiter verwurstet:
// Define tools. They get inserted into a tool array in configuration.h
// Typical tools are:
// TOOL_EXTRUDER(name, offx, offy, offz, heater, stepper, resolution, yank, maxSpeed, acceleration, advance, startScript, endScript, Fan bzw. nullptr wenn keiner da ist)
TOOL_EXTRUDER(ToolExtruder1, 0, 0, 0, HeaterExtruder1, E1MotorBase, 1.75, 1470.65, 40, 50, 4500, 40, "G92 E0 \n G1 E5 F250", "M602 P0 \n G92 E0 \n G1 E-5 F1800",nullptr)
TOOL_EXTRUDER(ToolExtruder2, 0, 0, 0, HeaterExtruder1, E2MotorBase, 1.75, 1470.65, 40, 50, 4500, 40, "G92 E0 \n G1 E5 F250", "M602 P0 \n G92 E0 \n G1 E-5 F1800",nullptr)
TOOL_EXTRUDER(ToolExtruder3, 0, 0, 0, HeaterExtruder1, E3MotorBase, 1.75, 1470.65, 40, 50, 4500, 40, "G92 E0 \n G1 E5 F250", "M602 P0 \n G92 E0 \n G1 E-5 F1800",nullptr)
// Use a signal that changes while extruder moves
JAM_DETECTOR_HW(JamExtruder1, E1Motor, IOJam1, ToolExtruder1, 220, 10, 500)
JAM_DETECTOR_HW(JamExtruder2, E2Motor, IOJam2, ToolExtruder2, 220, 10, 500)
JAM_DETECTOR_HW(JamExtruder3, E2Motor, IOJam3, ToolExtruder3, 220, 10, 500)
konkret nicht klar:
advance The variable name of the tool. --> ?? wofür und woher
yank 200% of the possible start speed. --> also start-Speed x2 ( in dev.1.05 hab ich 20 stehen, daher jetzt 40?)
Frage 12
Mein Ziel im 1. Schritt: Drucker soll erstmal laufen, im 2. Schritt würde ich dann auf Trinamic2130 umkompilieren - laufen im Moment noch im Standard mode. Kollidiert das ggf. mit den Con.h Settings?
#define TMC_CHOPPER_TIMING CHOPPER_TIMING_DEFAULT_24V
// true = interpolate to 256 microsteps for smoother motion
#define TMC_INTERPOLATE true
// Current used when motor stands still
#define TMC_HOLD_MULTIPLIER 0.5
// Reduce current on over temperature warnings by x milli ampere, 0 = disable
#define TMC_CURRENT_STEP_DOWN 50
// Define which data should be stored to eeprom
Soweit ersteinmal.
Thema Temperaturen und PWM dann wohl morgen..
Comments
2. Frage config.h
define NUM_AXES 4 // X,Y,Z and E for extruder A,B,C would be 5,6,7x,y,z-Achse soweit klar, macht 3 + 1 = 4 da immer nur 1 Extruder arbeitet oder 3 (für die Achsen + 3(für die Extruder) = 6 wegen mixing Extruder?
4 achsen, E ist austauschbar. Problem ist aber das in V2 mixing extruder noch nicht programmiert sind. Hab selber keinen und brauche einen der etwas firm ist und es testen würde wenn ich es portiere. Als mixing extruder wäre es auch nur 1 tool mit 3 Motoren in diesem Fall. Wird anders arbeiten als in V1.
3. Frage config.h
Bei kartesischen Druckern sollte noch eine verdopplung möglich sein.
4. Frage config.h
// Define ZProbe by referencing a endstop definedCONFIG_VARIABLE_EQ(EndstopDriver, *ZProbe, &endstopZMin)
Mein ZProbe hängt an D59-Pin
Muss ich jetzt dazu in der config_io einen IO definieren: "
https://docfirmwarev2.repetier.com/config/bed_calibration
// Define ZProbe by referencing a endstop defined CONFIG_VARIABLE_EQ(EndstopDriver, *ZProbe, ZPROBE_ADDRESS)
Ist eigentlich in dem Fall immer richtig, wobei ZProbe in Configuratio_io.h definiert wird
#undef ZPROBE_ADDRESS #define ZPROBE_ADDRESS &IOEndstopZMin
IOEndstopZMin ist der endstop der für die zprobe definiert wurde.
5. Frage config.h
Ja.Feuchtigekietssensor haben wir gar nicht wo kommt das her?
6. Frage config.h
Nein aber Zähler auf 0 und &Servo1 aus der Liste nehmen weil kein Servo da ist.
7. Frage config.h
Alle die definiert sind also NUM_TOOLS - bei echtem mixing extruder einer wenn die separat als einzelextruder (nicht mixend) gesteuert werden 3 stück.
8. Frage config.h
https://docfirmwarev2.repetier.com/config/motors#stepper_mirror3
D.h. du definniertst MotorZ1 - MotorZ2 und machst daraus ein MotorZ über die mirror Funktion. Dann fürs calibrieren mit z sensor
https://docfirmwarev2.repetier.com/config/bed_calibration#mm_hw3
da gibst du ja 2 der 3 Motoren an also Z2Motor und Z3Motor zusammen mit den Spindelkoordinaten. Der Motor wird dann zum verstellen intern kurz E zugeordnet, angepasst und danach ist Z wieder alle 3 gleichzeitig.
4. Frage
5. Frage config.h
Ja.Feuchtigekietssensor haben wir gar nicht wo kommt das her?
6. Frage config.h
8. Frage config.h
5. ok. Möglicherweise als beispiel aber nciht funktionsfähig.
6. Kann passieren. Config.h hat 2 Teile - bevor und nach include config_io - manche parameter müssen davor stehen um gewisse sachen zu aktivieren, z.b. servos, anzahl tools. Andere die variablen aus config_io nutzen wie zprobe müssen darunter stehen. Bei vielen ist es egal. Aber am besten an die Positionen im demo halten.
6. Sieht gut aus. \ sagt dem compiler in der nächsten Zeile geht es weiter. Ob du das also so lässt oder ohne \ in eine Zeile packst ist egal.
Dein resetten kommt vom watchdog denke ich. Wenn er nicht resettet wird gibt es ein reset, siehst du auch in der Konsole als Begründung für neustart. eeprom ist hier der klassische Grund. Stell auch sicher das die sd karte nicht eingelegt ist.
Frage ist letztlich wo blockiert er. In void Printer::setup() { in printer.cpp kannst du nach
Testausgaben wie
Com::printFLN("Pos 1");
einbauen. Und dann an der Konsole sehen wie weit du kommst. Wenn du die Funktion kennst kannst du darin weiter suchen um eine idee zu bekommen welcher Teil es verursacht. Es kann auch ein pin oder funktion sein die null sind, daher prüf am besten zuerst ob es watchdog oder was anderes ist. Wenn es nicht der watchdog ist musst du nämlich ggf
hinter der print schrieben damit es gesendet wird befor der fehler einen Reset aulöst. Was hilft es wenn er keine Zeit mehr hatte die Meldung zu senden, dann wirst du in die Irre geführt.
ich weiss nicht welche treiber du nutzt , manche brauchen enable auf 0 , andere auf 1