Seite 1 von 2

Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 08:53
von wolfkarst
Hallo,
In diesem Thread möchte mich mal zusammentragen, welche Änderungen für den Einsatz als Dual-Extruder in der Firmware notwendig sind.
Basis ist das aktuelle Stable-Release .48 sowie die .48dual-Version von Husky.
Warum ist dieses notwendig? Husky hat zwar eine schöne Dual-Version veröffentlicht, jedoch sind dort auch einige Änderungen dabei, welche nicht direkt mit dem Dual-Umbau zu tun haben, sondern persönliche Parameter-Anpassungen.
Im Folgenden werde ich die Unterschiede hier im Patch-Format auflisten und diese hier auflisten.
Gruss Karsten

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 09:06
von wolfkarst
Erst mal die Änderungen in Changelog.txt :

Code: Alles auswählen

diff -rupN Repetier-Firmware-0.91.48/changelog.txt Repetier-Firmware-0.91.48-dual/changelog.txt
--- Repetier-Firmware-0.91.48/changelog.txt	2014-11-24 17:50:08.000000000 +0100
+++ Repetier-Firmware-0.91.48-dual/changelog.txt	2014-12-16 14:35:57.000000000 +0100
@@ -1,4 +1,8 @@
-V 0.91.48 (2014-11-24)
+V 0.91.48dual (2014-12-16)
+- Adding HZ2 for Dual-Extruder
+- Adding OUT1 for Case fan and Lights
+- Change Microsteps to 8 for better USB Support
+V 0.91.48 (2014-11-24)
 - Adding of M3105, which allows to specify the movement after pause in [mm].
   - M3102 remains available and allows to specify the movement after pause in [steps].
 - After the heat bed scan the heating bed is moved down a little bit in order to avoid accidental collisions with the extruder during the next homing. [/code:3tax0xcv]
Für den Dualumbau sind folgende Zeilen wichtig (Rest hat nach meiner Meinung nichts mit dem Dualumbau zu tun):
[code:3tax0xcv]+V 0.91.48dual (2014-12-16)
+- Adding HZ2 for Dual-Extruder
Erläuterung:
- Das sind Angaben um die getätigten Änderung zwischen den Versionen besser nachzuvollziehen

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 09:08
von wolfkarst
Änderungen in README.md :

Code: Alles auswählen

diff -rupN Repetier-Firmware-0.91.48/README.md Repetier-Firmware-0.91.48-dual/README.md
--- Repetier-Firmware-0.91.48/README.md	2014-11-24 17:50:08.000000000 +0100
+++ Repetier-Firmware-0.91.48-dual/README.md	2014-12-16 14:35:57.000000000 +0100
@@ -1,11 +1,11 @@
-# RF1000 Firmware
+# RF1000 Dual-Extruder Firmware
 Based on Repetier-Firmware - the fast and user friendly firmware.
 
 ## Installation
 
 The firmware is compiled and downloaded with Arduino V 1.0.5 or later.
 
-## Version 0.91.48 (2014-11-24)
+## Version 0.91.48dual (2014-12-16)
 
 * Current stable release.
Erläuterung :
- Anpassung der Namen in der README

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 09:20
von wolfkarst
Änderungen in Configuration.h Teil 1 (Allgemein) :

Code: Alles auswählen

diff -rupN Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/Configuration.h Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/Configuration.h
--- Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/Configuration.h	2014-11-24 17:50:08.000000000 +0100
+++ Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/Configuration.h	2014-12-16 14:35:57.000000000 +0100
@@ -46,11 +46,11 @@ To override EEPROM settings with config
 // BASIC SETTINGS: select your board type, thermistor type, axis scaling, and endstop configuration
 
 /** Define the to-be-use micro steps */
-#define	RF1000_MICRO_STEPS	32
+#define	RF1000_MICRO_STEPS	8
 
 
 /** Number of extruders. Maximum 6 extruders. */
-#define NUM_EXTRUDER 1
+#define NUM_EXTRUDER 2
 
 //// The following define selects which electronics board you have. Please choose the one that matches your setup
 // Gen3 PLUS for RepRap Motherboard V1.2 = 21
@@ -154,11 +154,11 @@ If a motor turns in the wrong direction
 /** rief Number of steps for a 1mm move in x direction.
 For xy gantry use 2*belt moved!
 Overridden if EEPROM activated. */
-#define XAXIS_STEPS_PER_MM	long(4.761875 * (float)RF1000_MICRO_STEPS)
+#define XAXIS_STEPS_PER_MM	long(4.7825 * (float)RF1000_MICRO_STEPS)
 /** rief Number of steps for a 1mm move in y direction.
 For xy gantry use 2*belt moved!
 Overridden if EEPROM activated.*/
-#define YAXIS_STEPS_PER_MM	long(4.761875 * (float)RF1000_MICRO_STEPS)
+#define YAXIS_STEPS_PER_MM	long(4.7825 * (float)RF1000_MICRO_STEPS)
 /** rief Number of steps for a 1mm move in z direction  Overridden if EEPROM activated.*/
 #define ZAXIS_STEPS_PER_MM	long(80 * (float)RF1000_MICRO_STEPS)
 #endif
Für den Dualumbau sind folgende Zeilen wichtig (Rest hat nach meiner Meinung nichts mit dem Dualumbau zu tun) :

Code: Alles auswählen

+#define NUM_EXTRUDER 2
Erläuterung :
- RF1000_MICRO_STEPS 8 : war ein heruntersetzen der Microsteps um eine bessere USB-Verbindung zu testen - für Dual nicht notwendig
- NUM_EXTRUDER 2 : setzt die Anzahl der Extruder auf 2 - Für Dual notwendig
- XAXIS_STEPS_PER_MM Y und AXIS_STEPS_PER_MM : Umrechnungsfaktoren mm in Steps - vermutlich persönliche Detaileinstellungen - für Dual nicht notwendig

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 09:29
von wolfkarst
Änderungen in Configuration.h Teil 2 (1.Extruder EXT0) :

Code: Alles auswählen

@@ -173,7 +173,7 @@ Overridden if EEPROM activated.*/
 #define EXT0_X_OFFSET 0
 #define EXT0_Y_OFFSET 0
 // for skeinforge 40 and later, steps to pull the plasic 1 mm inside the extruder, not out.  Overridden if EEPROM activated.
-#define EXT0_STEPS_PER_MM	(8.75 * RF1000_MICRO_STEPS)
+#define EXT0_STEPS_PER_MM	(8.875 * RF1000_MICRO_STEPS)
 
 // What type of sensor is used?
 // 1 is 100k thermistor (Epcos B57560G0107F000 - RepRap-Fab.org and many other)
@@ -225,7 +225,7 @@ Overridden if EEPROM activated.*/
 */
 #define EXT0_HEAT_MANAGER 1
 /** Wait x seconds, after reaching target temperature. Only used for M109.  Overridden if EEPROM activated. */
-#define EXT0_WATCHPERIOD 20
+#define EXT0_WATCHPERIOD 10
 
 /** rief The maximum value, I-gain can contribute to the output.
 
@@ -237,7 +237,7 @@ Values for starts:
 The precise values may differ for different nozzle/resistor combination.
  Overridden if EEPROM activated.
 */
-#define EXT0_PID_INTEGRAL_DRIVE_MAX 180
+#define EXT0_PID_INTEGRAL_DRIVE_MAX 130
 /** rief lower value for integral part
 
 The I state should converge to the exact heater output needed for the target temperature.
@@ -245,14 +245,14 @@ To prevent a long deviation from the tar
 A good start is 30 lower then the optimal value. You need to leave room for cooling.
  Overridden if EEPROM activated.
 */
-#define EXT0_PID_INTEGRAL_DRIVE_MIN 40
+#define EXT0_PID_INTEGRAL_DRIVE_MIN 60
 /** P-gain.  Overridden if EEPROM activated. */
-#define EXT0_PID_P   20
+#define EXT0_PID_P   7.89
 /** I-gain. Overridden if EEPROM activated.
 */
-#define EXT0_PID_I   5
+#define EXT0_PID_I   1.78
 /** Dgain.  Overridden if EEPROM activated.*/
-#define EXT0_PID_D 13
+#define EXT0_PID_D 8.77
 // maximum time the heater is can be switched on. Max = 255.  Overridden if EEPROM activated.
 #define EXT0_PID_MAX 255
 /** rief Faktor for the advance algorithm. 0 disables the algorithm.  Overridden if EEPROM activated.
Erläuterung :
- EXT0_STEPS_PER_MM : Umrechnungsfaktoren mm in Steps - vermutlich persönliche Detaileinstellungen - für Dual nicht notwendig
- EXT0_WATCHPERIOD : Wartezeit bis Extrudertemperatur sich stabilisiert hat - vermutlich persönliche Detaileinstellungen - für Dual nicht notwendig
- EXT0_PID_INTEGRAL_DRIVE_MAX , EXT0_PID_INTEGRAL_DRIVE_MIN , EXT0_PID_P , EXT0_PID_I , EXT0_PID_D : Einstellungen des PID-Reglers - vermutlich persönliche Detaileinstellungen - für Dual nicht notwendig

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 09:56
von wolfkarst
Änderungen in Configuration.h Teil 3 (2.Extruder EXT1) :

Code: Alles auswählen

@@ -286,10 +286,10 @@ The codes are only executed for multiple
 
 
 // =========================== Configuration for second extruder ========================
-#define EXT1_X_OFFSET 10
-#define EXT1_Y_OFFSET 0
+#define EXT1_X_OFFSET (-1.917 * RF1000_MICRO_STEPS)
+#define EXT1_Y_OFFSET (-137.0655 * RF1000_MICRO_STEPS)
 // for skeinforge 40 and later, steps to pull the plasic 1 mm inside the extruder, not out.  Overridden if EEPROM activated.
-#define EXT1_STEPS_PER_MM 51
+#define EXT1_STEPS_PER_MM (8.875 * RF1000_MICRO_STEPS)
 // What type of sensor is used?
 // 1 is 100k thermistor (Epcos B57560G0107F000 - RepRap-Fab.org and many other)
 // 2 is 200k thermistor
@@ -310,9 +310,9 @@ The codes are only executed for multiple
 // 101 is MAX6675
 #define EXT1_TEMPSENSOR_TYPE 3
 // Analog input pin for reading temperatures or pin enabling SS for MAX6675
-#define EXT1_TEMPSENSOR_PIN TEMP_2_PIN
+#define EXT1_TEMPSENSOR_PIN TEMP_1_PIN
 // Which pin enables the heater
-#define EXT1_HEATER_PIN HEATER_2_PIN
+#define EXT1_HEATER_PIN HEATER_1_PIN
 #define EXT1_STEP_PIN E1_STEP_PIN
 #define EXT1_DIR_PIN E1_DIR_PIN
 // set to 0/1 for normal / inverse direction
@@ -338,7 +338,7 @@ The codes are only executed for multiple
 */
 #define EXT1_HEAT_MANAGER 1
 /** Wait x seconds, after reaching target temperature. Only used for M109.  Overridden if EEPROM activated. */
-#define EXT1_WATCHPERIOD 20
+#define EXT1_WATCHPERIOD 10
 
 /** rief The maximum value, I-gain can contribute to the output.
 
@@ -358,14 +358,14 @@ To prevent a long deviation from the tar
 A good start is 30 lower then the optimal value. You need to leave room for cooling.
  Overridden if EEPROM activated.
 */
-#define EXT1_PID_INTEGRAL_DRIVE_MIN 50
+#define EXT1_PID_INTEGRAL_DRIVE_MIN 60
 /** P-gain.  Overridden if EEPROM activated. */
-#define EXT1_PID_P   500
+#define EXT1_PID_P   2.40 //37.52
 /** I-gain.  Overridden if EEPROM activated.
 */
-#define EXT1_PID_I   1
+#define EXT1_PID_I   0.54 //10
 /** D-gain.  Overridden if EEPROM activated.*/
-#define EXT1_PID_D 3000
+#define EXT1_PID_D 2.68 //35.18
 // maximum time the heater is can be switched on. Max = 255.  Overridden if EEPROM activated.
 #define EXT1_PID_MAX 255
 /** rief Faktor for the advance algorithm. 0 disables the algorithm.  Overridden if EEPROM activated.
@@ -380,7 +380,7 @@ needed to move the motor cog in reverse
 cog. Direct drive extruder need 0. */
 #define EXT1_ADVANCE_BACKLASH_STEPS 0
 
-#define EXT1_WAIT_RETRACT_TEMP 	150
+#define EXT1_WAIT_RETRACT_TEMP 	170
 #define EXT1_WAIT_RETRACT_UNITS	0
 #define EXT1_SELECT_COMMANDS "M117 Extruder 2"
 #define EXT1_DESELECT_COMMANDS ""[/code:3jquxk54]
Für den Dualumbau sind folgende Zeilen wichtig (Rest hat nach meiner Meinung nichts mit dem Dualumbau zu tun) :
[code:3jquxk54]+#define EXT1_X_OFFSET (-1.917 * RF1000_MICRO_STEPS)
+#define EXT1_Y_OFFSET (-137.0655 * RF1000_MICRO_STEPS)
+#define EXT1_STEPS_PER_MM (8.875 * RF1000_MICRO_STEPS)
+#define EXT1_TEMPSENSOR_PIN TEMP_1_PIN
+#define EXT1_HEATER_PIN HEATER_1_PIN
+#define EXT1_PID_INTEGRAL_DRIVE_MIN 60
+#define EXT1_PID_P   2.40 //37.52
+#define EXT1_PID_I   0.54 //10
+#define EXT1_PID_D 2.68 //35.18
Erläuterung :
- EXT1_X_OFFSET und EXT1_Y_OFFSET : Einstellung der abweichenden Position des zweiten Extruders - Für Dual notwendig - Muss individuell eingestellt werden !!!
- EXT1_STEPS_PER_MM : Einstellung der Schritte pro Millimeter- Für Dual notwendig - Der Eingetragene Wert ist jedoch vermutlich eine persönliche Optimierung. Ich würde die Werte wie bei EXT0 verwenden
- EXT1_TEMPSENSOR_PIN und EXT1_HEATER_PIN : Anpassung an die Hardwarekonfiguration - Für Dual notwendig
- EXT1_WATCHPERIOD : Wartezeit bis Extrudertemperatur sich stabilisiert hat - vermutlich persönliche Detaileinstellungen - für Dual nicht notwendig
- EXT1_PID_INTEGRAL_DRIVE_MIN , EXT1_PID_P , EXT1_PID_I und EXT1_PID_D : Einstellungen des PID-Reglers - Für Dual notwendig - Der Eingetragene Wert ist jedoch vermutlich eine persönliche Optimierung. Ich würde die Werte wie bei EXT0 verwenden
- EXT1_WAIT_RETRACT_TEMP : Temperatur ab der der Extruder arbeiten darf - vermutlich persönliche Detaileinstellungen - für Dual nicht notwendig
Für den Dualumbau wären also folgende Zeilen wichtig, damit sich Extruder 2 wie Extruder 1 verhält :

Code: Alles auswählen

+#define EXT1_X_OFFSET (??? * XAXIS_STEPS_PER_MM)
+#define EXT1_Y_OFFSET (??? * YAXIS_STEPS_PER_MM)
+#define EXT1_STEPS_PER_MM (8.75 * RF1000_MICRO_STEPS)
+#define EXT1_TEMPSENSOR_PIN TEMP_1_PIN
+#define EXT1_HEATER_PIN HEATER_1_PIN
+#define EXT1_INVERSE true
+#define EXT1_PID_INTEGRAL_DRIVE_MIN 40
+#define EXT1_PID_P   20
+#define EXT1_PID_I   5
+#define EXT1_PID_D 13
Anmerkung :
- bei ??? den persönlichen X- / Y-Abstand in mm eintragen
- EXT1_INVERSE ist die Einstellung ob der 2. Extruder invers arbeiten soll oder nicht. Wenn beide Extruder parallel in X-achse angeordent sind, sollte die Einstellung vermutlich false sein, wenn beide sichen in Y-Achse gegenüberstehen dann true

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 10:12
von wolfkarst
Änderungen in Configuration.h Teil 4 (Sonstiges) :

Code: Alles auswählen

@@ -539,7 +539,7 @@ Value is used for all generic tables cre
 /** rief Set true if you have a heated bed conected to your board, false if not */
 #define HAVE_HEATED_BED true
 
-#define HEATED_BED_MAX_TEMP 180
+#define HEATED_BED_MAX_TEMP 200
 /** Skip M190 wait, if heated bed is already within x degrees. Fixed numbers only, 0 = off. */
 #define SKIP_M190_IF_WITHIN 3
 
@@ -575,11 +575,11 @@ A good start is 30 lower then the optima
 */
 #define HEATED_BED_PID_INTEGRAL_DRIVE_MIN 80
 /** P-gain.  Overridden if EEPROM activated. */
-#define HEATED_BED_PID_PGAIN   53.74
+#define HEATED_BED_PID_PGAIN   111.77 //53.74
 /** I-gain  Overridden if EEPROM activated.*/
-#define HEATED_BED_PID_IGAIN   7.48
+#define HEATED_BED_PID_IGAIN   30.59 //7.48
 /** Dgain.  Overridden if EEPROM activated.*/
-#define HEATED_BED_PID_DGAIN 96.52
+#define HEATED_BED_PID_DGAIN  89.34 //96.52
 // maximum time the heater can be switched on. Max = 255.  Overridden if EEPROM activated.
 #define HEATED_BED_PID_MAX 255
 
@@ -673,9 +673,9 @@ on this endstop.
 
 // For higher precision you can reduce the speed for the second test on the endstop
 // during homing operation. The homing speed is divided by the value. 1 = same speed, 2 = half speed
-#define ENDSTOP_X_RETEST_REDUCTION_FACTOR 20
-#define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 20
-#define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 20
+#define ENDSTOP_X_RETEST_REDUCTION_FACTOR 10
+#define ENDSTOP_Y_RETEST_REDUCTION_FACTOR 10
+#define ENDSTOP_Z_RETEST_REDUCTION_FACTOR 10
 
 // When you have several endstops in one circuit you need to disable it after homing by moving a
 // small amount back. This is also the case with H-belt systems.
@@ -715,7 +715,7 @@ on this endstop.
 #elif MOTHERBOARD==12
 #define MOTOR_CURRENT {53570,65535,53570,65535,53570} // Values 0-65535 (53570 = ~1.5A)
 #elif MOTHERBOARD==13
-#define MOTOR_CURRENT {150,150,126,126,126} // Values 0-255 (126 = ~2A), order: driver 1 (x), driver 2 (y), driver 3 (z), driver 4 (extruder 1), driver 5 (reserved)
+#define MOTOR_CURRENT {150,150,140,150,150} // Values 0-255 (126 = ~2A), order: driver 1 (x), driver 2 (y), driver 3 (z), driver 4 (extruder 1), driver 5 (reserved)
 #endif
 
 /** rief Number of segments to generate for delta conversions per second of move
@@ -816,7 +816,7 @@ Mega. Used only for nonlinear systems li
     This helps cooling the Stepper motors between two print jobs.
     Overridden if EEPROM activated.
 */
-#define STEPPER_INACTIVE_TIME 600
+#define STEPPER_INACTIVE_TIME 360
 /** After x seconds of inactivity, the system will go down as far it can.
     It will at least disable all stepper motors and heaters. If the board has
     a power pin, it will be disabled, too.
@@ -1043,7 +1043,7 @@ matches, the stored values are used to o
 IMPORTANT: With mode <>0 some changes in Configuration.h are not set any more, as they are
            taken from the EEPROM.
 */
-#define EEPROM_MODE 1
+#define EEPROM_MODE 3 //1
 
 
 /**************** duplicate motor driver ***************
@@ -1141,8 +1141,8 @@ is always running and is not hung up for
 #define CASE_LIGHTS_DEFAULT_ON		 0
 
 /* Define a pin to turn the case fan on/off */
-#define	CASE_FAN_PIN				 9	// PINH.6, 18, HZ2
-#define	CASE_FAN_ON_TEMPERATURE		50	// B0C
+#define	CASE_FAN_PIN				 25	// PINA.3, 75, OUT1	// PINH.6, 18, HZ2 orig9
+#define	CASE_FAN_ON_TEMPERATURE		45	// °C
 #define	CASE_FAN_OFF_DELAY		 60000	// [ms]
 
 /* Enable the following define for applications where the case fan shall always be on */
@@ -1210,7 +1210,7 @@ Select the language to use.
 5 = Spanish
 6 = Swedish
 */
-#define UI_LANGUAGE 0
+#define UI_LANGUAGE 1
 
 /** Animate switches between menus etc. */
 #define UI_ANIMATION false
@@ -1386,7 +1386,7 @@ the Cura PC application may fall over th
 
 /** rief The following script allows to configure the exact behavior of the automatic object output
 */
-#define	OUTPUT_OBJECT_SCRIPT				"G21
G91
G1 E-10
G1 Z210 F5000
G1 X0 Y220 F7500
"
+#define	OUTPUT_OBJECT_SCRIPT				"G21
G91
G1 Z200 F5000
G1 X0 Y245 F7500
"
 
 /** rief Enables/disables the park feature
 */
@@ -1397,7 +1397,7 @@ the Cura PC application may fall over th
 #if FEATURE_PARK
 #define PARK_POSITION_X						0
 #define	PARK_POSITION_Y						120
-#define	PARK_POSITION_Z						175
+#define	PARK_POSITION_Z						200
 #endif // FEATURE_PARK
 
 /** rief Enables/disables the reset via the printer menu
@@ -1506,17 +1506,17 @@ Enabling of the following feature can be
 */
 #define SCAN_X_START_MM					15																// [mm]
 #define SCAN_X_START_STEPS				long(XAXIS_STEPS_PER_MM * SCAN_X_START_MM)						// [steps]
-#define SCAN_X_END_MM					5																// [mm]
+#define SCAN_X_END_MM					15																// [mm]
 #define SCAN_X_END_STEPS				long(XAXIS_STEPS_PER_MM * SCAN_X_END_MM)						// [steps]
-#define SCAN_X_STEP_SIZE_MM				20																// [mm]
+#define SCAN_X_STEP_SIZE_MM				10																// [mm]
 #define SCAN_X_STEP_SIZE_STEPS			long(XAXIS_STEPS_PER_MM * SCAN_X_STEP_SIZE_MM)					// [steps]
 #define SCAN_X_MAX_POSITION_STEPS		long(X_MAX_LENGTH * XAXIS_STEPS_PER_MM - SCAN_X_END_STEPS)		// [steps]
 
-#define	SCAN_Y_START_MM					30																// [mm]
+#define	SCAN_Y_START_MM					25																// [mm]
 #define	SCAN_Y_START_STEPS				long(YAXIS_STEPS_PER_MM * SCAN_Y_START_MM)						// [steps]
-#define	SCAN_Y_END_MM					5																// [mm]
+#define	SCAN_Y_END_MM					15																// [mm]
 #define	SCAN_Y_END_STEPS				long(YAXIS_STEPS_PER_MM * SCAN_Y_END_MM)						// [steps]
-#define SCAN_Y_STEP_SIZE_MM				20																// [mm]
+#define SCAN_Y_STEP_SIZE_MM				10																// [mm]
 #define	SCAN_Y_STEP_SIZE_STEPS			long(YAXIS_STEPS_PER_MM * SCAN_Y_STEP_SIZE_MM)					// [steps]
 #define SCAN_Y_MAX_POSITION_STEPS		long(Y_MAX_LENGTH * YAXIS_STEPS_PER_MM - SCAN_Y_END_STEPS)		// [steps]
 
@@ -1528,15 +1528,15 @@ Enabling of the following feature can be
 #define	SCAN_SLOW_STEP_DELAY_MS			100																// [ms]
 #define SCAN_IDLE_DELAY_MS				250																// [ms]
 
-#define SCAN_CONTACT_PRESSURE_DELTA		10																// [digits]
+#define SCAN_CONTACT_PRESSURE_DELTA		5																// [digits]
 #define SCAN_RETRY_PRESSURE_DELTA		5																// [digits]
 #define SCAN_IDLE_PRESSURE_DELTA		0																// [digits]
 #define SCAN_IDLE_PRESSURE_MIN			-5000															// [digits]
 #define SCAN_IDLE_PRESSURE_MAX			5000															// [digits]
 
-#define SCAN_RETRIES					3																// [-]
+#define SCAN_RETRIES					10																// [-]
 #define	SCAN_PRESSURE_READS				15																// [-]
-#define SCAN_PRESSURE_TOLERANCE			15																// [digits]
+#define SCAN_PRESSURE_TOLERANCE			10																// [digits]
 #define SCAN_PRESSURE_READ_DELAY_MS		15																// [ms]
 
 #define REMEMBER_PRESSURE				0
@@ -1563,16 +1563,16 @@ Enabling of the following feature can be
 
 /** rief Automatic filament change, unmounting of the filament - ensure that G1 does not attempt to extrude more than EXTRUDE_MAXLENGTH
 */
-#define	UNMOUNT_FILAMENT_SCRIPT				"G21
G90
G92 E0
G1 E50 F100
G92 E0
G1 E-90 F500
"
+#define	UNMOUNT_FILAMENT_SCRIPT				"G21
G90
G92 E0
G1 E20 F100
G92 E0
G1 E-100 F500
"
 
 /** rief Automatic filament change, mounting of the filament - ensure that G1 does not attempt to extrude more than EXTRUDE_MAXLENGTH
 */
-#define	MOUNT_FILAMENT_SCRIPT				"G21
G90
G92 E0
G1 E90 F100"
+#define	MOUNT_FILAMENT_SCRIPT				"G21
G90
G92 E0
G1 E100 F100"
 
 /** rief Printer name and firmware version
 */
-#define UI_PRINTER_NAME "RF1000"
+#define UI_PRINTER_NAME "RF1000-Dual"
 #define UI_PRINTER_COMPANY "Conrad SE"
-#define UI_VERSION_STRING "V " REPETIER_VERSION ".48"
+#define UI_VERSION_STRING "V " REPETIER_VERSION ".48dual"
 
 #endif
Für den Dualumbau sind folgende Zeilen wichtig (Rest hat nach meiner Meinung nichts mit dem Dualumbau zu tun) :

Code: Alles auswählen

+#define EEPROM_MODE 3
+#define UI_PRINTER_NAME "RF1000-Dual"
+#define UI_VERSION_STRING "V " REPETIER_VERSION ".48dual"
Erläuterung :
- EEPROM_MODE [Zahl] ist Variable, welche wie eine Versionskennzeichnung die Daten im EEPROM markiert. Ist die Zahl identisch gespeichert, dann stimmt das Zahlenformat im EEPROM mit dem der Firmware überein, ansonsten darf das EEPROM nicht geladen werden. Es sollte also bei jeder Änderung der Firmware bzw. der Art der Daten, die in der Firmware gespeichert werden diese Zahl erhöht bzw. verändert werden, damit nicht z.B. der Einstellwert des PID-Reglers als Schritte für die Z-achse verwendet wird.
- UI_PRINTER_NAME und UI_VERSION_STRING sind die Änderungen in der Displayanzeige zur Versionsinformation
- Alles andere sind vermutlich persönliche Detaileinstellungen welche ich hier nicht im Detail kommentieren werde - für Dual nicht notwendig

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 10:38
von wolfkarst
Änderungen in pins.h :

Code: Alles auswählen

diff -rupN Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/pins.h Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/pins.h
--- Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/pins.h	2014-11-24 17:50:08.000000000 +0100
+++ Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/pins.h	2014-12-16 14:35:57.000000000 +0100
@@ -1433,7 +1433,7 @@ STEPPER_CURRENT_CONTROL
 #define WATCHDOG_PIN		    37	// PINC.0
 
 #define HEATER_0_PIN		    10	// PINB.4, 23, HZ1
-#define HEATER_1_PIN		    -1
+#define HEATER_1_PIN		    9	// PINH.6, 18, HZ2
 #define HEATER_2_PIN		     8	// PINH.5, 17, HZ3
 
 // analog pin mappings
[/code:2iu1qekq]
Für den Dualumbau sind folgende Zeilen wichtig (Rest hat nach meiner Meinung nichts mit dem Dualumbau zu tun) :
[code:2iu1qekq]+#define HEATER_1_PIN		    9	// PINH.6, 18, HZ2
+#define TEMP_1_PIN		    14   // PINK.6, 83, TH2
+#define ORIG_E1_STEP_PIN           36	// PINC.1, 54, STP_DRV5
+#define ORIG_E1_DIR_PIN            34	// PINC.3, 56, DIR_DRV5
+#define ORIG_E1_ENABLE_PIN         30	// PINC.7, 60, ENA_DRV5
+#define E1_PINS		    ORIG_E1_STEP_PIN, ORIG_E1_DIR_PIN, ORIG_E1_ENABLE_PIN,
+
[/code:2iu1qekq]
Erläuterung :
- [b]HEATER_1_PIN[/b] : Definition des verwendeten Ausganges für die Heizung des zweiten Extruders. PIN 9 = PH6 (Name des Ausganges in der CPU) = 18 (Pin der CPU) = HZ2 (Name im Schaltplan) = [color=#ff0000:2iu1qekq]X8[/color:2iu1qekq] ( Ausgangsklemme an dem die Extruderheizung angeschlossen wird.)- [b]Für Dual notwendig[/b]
- [b]TEMP_1_PIN[/b] : Definition des verwendeten Einganges für die Temperatur des zweiten Extruders. PIN 14 = PK6 (Name des Ausganges in der CPU) = 83 (Pin der CPU) = TH2 (Name im Schaltplan) = [color=#ff0000:2iu1qekq]X6[/color:2iu1qekq] ( Eingangsklemme an dem die Temperaturmessung angeschlossen wird.)- [b]Für Dual notwendig, in der Stable bereits richtig eingestellt[/b]
- [b]*_E1_*[/b] : Definition des verwendeten Ausganges für den Schrittmotor Temperatur des zweiten Extruders. [color=#ff0000:2iu1qekq]X18[/color:2iu1qekq] ( Ausgangsklemme an dem der Schrittmotor angeschlossen wird.)- [b]Für Dual notwendig, in der Stable bereits richtig eingestellt[/b]
[color=#ff0000:2iu1qekq]Achtung Kollision der Pinbelegung !!! :[/color:2iu1qekq]
In Configuration.h ist bei ca. Zeile 1141 der Case-FAN mit HZ2 belegt. Dieses Kollidiert mit dem Heater_1_Pin in dieser Belegung.
Aus diesem Grund sollte der Case-Fan entweder deaktiviert werden mit 
[code:2iu1qekq]diff -rupN Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/Configuration.h Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/Configuration.h
--- Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/Configuration.h	2014-11-24 17:50:08.000000000 +0100
+++ Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/Configuration.h	2014-12-16 14:35:57.000000000 +0100@@ -1141,8 +1141,8 @@ is always running and is not hung up for
 #define CASE_LIGHTS_DEFAULT_ON		 0
 
 /* Define a pin to turn the case fan on/off */
-#define	CASE_FAN_PIN				 9	// PINH.6, 18, HZ2
+#define	CASE_FAN_PIN				 -1
#define	CASE_FAN_ON_TEMPERATURE		50	// B0C
 #define	CASE_FAN_OFF_DELAY		 60000	// [ms]
 
 /* Enable the following define for applications where the case fan shall always be on */[/code:2iu1qekq]
oder auf OUT1 umgelegt werden mit 
[code:2iu1qekq]diff -rupN Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/Configuration.h Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/Configuration.h
--- Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/Configuration.h	2014-11-24 17:50:08.000000000 +0100
+++ Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/Configuration.h	2014-12-16 14:35:57.000000000 +0100@@ -1141,8 +1141,8 @@ is always running and is not hung up for
 #define CASE_LIGHTS_DEFAULT_ON		 0
 
 /* Define a pin to turn the case fan on/off */
-#define	CASE_FAN_PIN				 9	// PINH.6, 18, HZ2
+#define	CASE_FAN_PIN				 25	// PINA.3, 75, OUT1	
#define	CASE_FAN_ON_TEMPERATURE		50	// B0C
 #define	CASE_FAN_OFF_DELAY		 60000	// [ms]
 
 /* Enable the following define for applications where the case fan shall always be on */

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 10:41
von wolfkarst
Änderungen in RF1000.cpp :

Code: Alles auswählen

diff -rupN Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/RF1000.cpp Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/RF1000.cpp
--- Repetier-Firmware-0.91.48/src/ArduinoAVR/Repetier/RF1000.cpp	2014-11-24 17:50:08.000000000 +0100
+++ Repetier-Firmware-0.91.48-dual/src/ArduinoAVR/Repetier/RF1000.cpp	2014-12-16 14:35:57.000000000 +0100
@@ -2019,15 +2019,17 @@ void loopRF1000( void )
 
 	uTime = HAL::timeInMilliseconds();
 
-	if( Printer::prepareFanOff )
-	{
-		if( (uTime - Printer::prepareFanOff) > Printer::fanOffDelay )
-		{
-			// it is time to turn the case fan off
-			Printer::prepareFanOff = 0;
-			WRITE( CASE_FAN_PIN, 0 );
-		}
-	}
+#if defined(CASE_FAN_PIN) && CASE_FAN_PIN >= 0
+if( Printer::prepareFanOff )
+{
+if( (uTime - Printer::prepareFanOff) > Printer::fanOffDelay )
+{
+// it is time to turn the case fan off
+Printer::prepareFanOff = 0;
+WRITE( CASE_FAN_PIN, 0 );
+}
+}
+#endif // defined(CASE_FAN_PIN) && CASE_FAN_PIN >= 0
 
 #if FEATURE_Z_COMPENSATION
 	doZCompensation();
Erläuterung :
- Dieses ist eine Änderung in der Case-Fan Ansteuerung, welche nichts mit dem Dualumbau zu tun hat.

Re: Änderungen in Firmware .48 für Dual-Extruder

Verfasst: Mo 27. Apr 2015, 10:45
von wolfkarst
Das wars ...
Es wäre schön, wenn RF1000 oder Husky oder sonst wer sich meine Analyse mal anschaut und bei Bedarf passend kommentiert. Es ist gut möglich, dass ich bei der einen oder anderen Sache was übersehen oder falsch interpretiert habe.
Insbesondere folgende Frage sollte noch geklärt werden:
- Welche Einstellungen aus dem EEPROM sind für die Firmware wichtig, bzw. sind all diese richtig im Default oder was muss in den Defaults der Firmware angepasst werden