Marlin

From BITPlan Wiki
Jump to: navigation, search

Marlin is a firmware being used by most 3D Printers

Original firmware for Geeetech A10

20190721 084252.jpg 20190721 090230.jpg

Building Marlin firmware yourself

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

Marlin 1.1.9 firmware for Geeetech A10

see

Configuration.h modification example

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
>