Marlin


Wolfgang Fahl

Building Marlin firmware yourself[edit]

Get the Arduino IDE Software and download the Marlin firmware. You need to adapt the configuration to your printer.

Configuration.h modification example[edit]

This diff was done 2019-06-17 between the 1.1.9 Firmware downloaded from the Marlin site and the runUNDfun firmware sources downloaded from Thingiverse.

zeus:Marlin wf$diff Configuration.h /tmp/Configuration.h 
72,78d71
< //===========================================================================
< //============================= HANGPRINTER =================================
< //===========================================================================
< // For a Hangprinter start with the configuration file in the
< // example_configurations/hangprinter directory and customize for your machine.
< //
< 
134c127
<   #define MOTHERBOARD BOARD_RAMPS_14_EFB
---
>   #define MOTHERBOARD BOARD_GT2560_REV_A
152c145
< #define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
---
> #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
211c204
<  *   - Adds G-codes M163 and M164 to set and "commit" the current mix factors.
---
>  *   - Adds a new code, M165, to set the current mix factors.
213,215c206,208
<  *   - Optional support for Repetier Firmware's 'M164 S<index>' 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).
---
>  *   - Optional support for Repetier Firmware M163, M164, and virtual extruder.
>  *   - This implementation supports only a single extruder.
>  *   - Enable DIRECT_MIXING_IN_G1 for Pia Taubert's reference implementation
318c311
< #define TEMP_SENSOR_BED 0
---
> #define TEMP_SENSOR_BED 1
379a373,382
>   // Geeetech MK8 Extruder
>   #define DEFAULT_Kp 12.33
>   #define DEFAULT_Ki 0.51
>   #define DEFAULT_Kd 74.50
> 
>   // CTC MK8 Extruder
>   //#define DEFAULT_Kp 19.86
>   //#define DEFAULT_Ki 1.0
>   //#define DEFAULT_Kd 98.83
> 
383,385c386,388
<   #define DEFAULT_Kp 22.2
<   #define DEFAULT_Ki 1.08
<   #define DEFAULT_Kd 114
---
>   //#define DEFAULT_Kp 22.2
>   //#define DEFAULT_Ki 1.08
>   //#define DEFAULT_Kd 114
431a435,439
>   //12v (120 watt?) MK2a PCB Heatbed into 4mm borosilicate (Geeetech Prusa i3 Pro, Pro/B/C/X)
>   #define DEFAULT_bedKp 234.88
>   #define DEFAULT_bedKi 42.79
>   #define DEFAULT_bedKd 322.28
> 
434,436c442,444
<   #define DEFAULT_bedKp 10.00
<   #define DEFAULT_bedKi .023
<   #define DEFAULT_bedKd 305.4
---
>   //#define DEFAULT_bedKp 10.00
>   //#define DEFAULT_bedKi .023
>   //#define DEFAULT_bedKd 305.4
540,545c548,550
<  * Stepper Drivers
<  *
<  * These settings allow Marlin to tune stepper driver timing and enable advanced options for
<  * stepper drivers that support them. You may also override timing options in Configuration_adv.h.
<  *
<  * A4988 is assumed for unspecified drivers.
---
>  * Specify Stepper Driver types
>  * The options are used to determine driver pulse timings as well as more advanced functionality.
>  * Stepper timing options can be overridden in Configuration_adv.h
553,563c558,568
< //#define X_DRIVER_TYPE  A4988
< //#define Y_DRIVER_TYPE  A4988
< //#define Z_DRIVER_TYPE  A4988
< //#define X2_DRIVER_TYPE A4988
< //#define Y2_DRIVER_TYPE A4988
< //#define Z2_DRIVER_TYPE A4988
< //#define E0_DRIVER_TYPE A4988
< //#define E1_DRIVER_TYPE A4988
< //#define E2_DRIVER_TYPE A4988
< //#define E3_DRIVER_TYPE A4988
< //#define E4_DRIVER_TYPE A4988
---
> #define X_DRIVER_TYPE  A4988
> #define Y_DRIVER_TYPE  A4988
> #define Z_DRIVER_TYPE  A4988
> #define X2_DRIVER_TYPE A4988
> #define Y2_DRIVER_TYPE A4988
> #define Z2_DRIVER_TYPE A4988
> #define E0_DRIVER_TYPE A4988
> #define E1_DRIVER_TYPE A4988
> #define E2_DRIVER_TYPE A4988
> #define E3_DRIVER_TYPE A4988
> #define E4_DRIVER_TYPE A4988
611c616
< #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
---
> #define DEFAULT_AXIS_STEPS_PER_UNIT   { 78.74, 78.74, 2560, 105 }
618c623
< #define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }
---
> #define DEFAULT_MAX_FEEDRATE          { 400, 400, 2, 45 }
626c631
< #define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }
---
> #define DEFAULT_MAX_ACCELERATION      { 5000, 5000, 50, 5000 }
636,637c641,642
< #define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration for printing moves
< #define DEFAULT_RETRACT_ACCELERATION  3000    // E acceleration for retracts
---
> #define DEFAULT_ACCELERATION          1000    // X, Y, Z and E acceleration for printing moves
> #define DEFAULT_RETRACT_ACCELERATION  2000    // E acceleration for retracts
677c682
< #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
---
> //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
851c856
< #define INVERT_X_DIR false
---
> #define INVERT_X_DIR true
858,862c863,867
< #define INVERT_E0_DIR false
< #define INVERT_E1_DIR false
< #define INVERT_E2_DIR false
< #define INVERT_E3_DIR false
< #define INVERT_E4_DIR false
---
> #define INVERT_E0_DIR true
> #define INVERT_E1_DIR true
> #define INVERT_E2_DIR true
> #define INVERT_E3_DIR true
> #define INVERT_E4_DIR true
1226c1231
< //#define EEPROM_SETTINGS // Enable for M500 and M501 commands
---
> #define EEPROM_SETTINGS   // Enable for M500 and M501 commands
1532c1537
< //#define REPRAP_DISCOUNT_SMART_CONTROLLER
---
> #define REPRAP_DISCOUNT_SMART_CONTROLLER
1924c1929,1931
< // Only power servos during movement, otherwise leave off to prevent jitter
---
> // Servo deactivation
> //
> // With this option servos are powered only during movement, then turned off to prevent jitter.
1926a1934,1942
> /**
>  * Customize common displays for GT2560
>  */
> #if ENABLED(ULTIMAKERCONTROLLER) || ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) || ENABLED(G3D_PANEL) || ENABLED(MKS_MINI_12864)
>   #define SDSUPPORT   // Force SD Card support on for these displays
> #else
>   #define LCD_WIDTH_OVERRIDE 20 // Default is 22. For this Geeetech use 20.
> #endif
>
🖨 🚪