Re-ARM Marlin


My latest back up marlinfirmware.zip


https://github.com/MarlinFirmware/Marlin
https://www.youtube.com/watch?v=H-c8UTg-EMU
Z probe https://www.thingiverse.com/thing:2841443


Set steps per mm
https://marlinfw.org/docs/gcode/M092.html

Cold extrusion
https://marlinfw.org/docs/gcode/M302.html

M302         ; report current cold extrusion state
M302 P0      ; enable cold extrusion checking
M302 P1      ; disable cold extrusion checking
M302 S0      ; always allow extrusion (disable checking)
M302 S170    ; only allow extrusion above 170
M302 S170 P1 ; set min extrude temp to 170 but leave disabled


Bed size

#define X_BED_SIZE 340
#define Y_BED_SIZE 280

\\Heater pin

#define HEATER_0_PIN               RAMPS_D10_PIN
#define HEATER_BED_PIN            RAMPS_D8_PIN
#define FAN_PIN                 RAMPS_D9_PIN


Octoprint filament sensor set up using Raspberry Pi
https://www.thingiverse.com/thing:2095911
https://www.youtube.com/watch?v=ChjwIGxnivw
https://www.thingiverse.com/thing:2095911


Filament sensor reloaded plugin
https://github.com/ssorgatem/Octoprint-Filament-Reloaded
octoprint-filament-reloaded.zip
GPIO 18 and 20




https://www.yirco.me/octoprint-pause-change-filament/#:~:text=Clicking%20on%20Pause%20in%20Octoprint,to%20resume%20the%20print%20successfully.

After print job is paused

{% if pause_position.x is not none %}
; relative XYZE
G91
M83

; retract filament of 0.8 mm up, move Z slightly upwards and 
G1 Z+5 E-0.8 F4500

; absolute XYZE
M82
G90

; move to a safe rest position, adjust as necessary
G1 X0 Y0
{% endif %}


Before print job is resumed

{% if pause_position.x is not none %}
; relative extruder
M83

; prime nozzle
G1 E-0.8 F4500
G1 E0.8 F4500
G1 E0.8 F4500

; absolute E
M82

; absolute XYZ
G90

; reset E
G92 E{{ pause_position.e }}

; WARNING!!! - use M83 or M82(exruder absolute mode) according what your slicer generates
M83 ; extruder relative mode

; move back to pause position XYZ
G1 X{{ pause_position.x }} Y{{ pause_position.y }} Z{{ pause_position.z }} F4500

; reset to feed rate before pause if available
{% if pause_position.f is not none %}G1 F{{ pause_position.f }}{% endif %}
{% endif %}


Notes on baby stepping https://community.octoprint.org/t/how-to-still-control-z-adjustment-during-print/19413/11
https://3dprintbeginner.com/octoprint-baby-stepping/
Zprobe set up

#define Z_MIN_PROBE_PIN P1_28 //Z_MAX_PIN
#define Z_PROBE_SERVO_NR 0       // Defaults to SERVO 0 connector.
#define Z_SERVO_ANGLES { 100, 0 } // Z Servo Deploy and Stow angles


Offsets for Z probe
https://marlinfw.org/docs/gcode/M851.html
Zprobe bilinear
G29 L20 R330 F20 B250 V4
https://marlinfw.org/docs/gcode/G029-abl-bilinear.html
Zprobe offsets set up via gcode
https://marlinfw.org/docs/gcode/M851.html
set up via configuration.h

#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }


https://marlinfw.org/docs/gcode/M280.html


SERVO set up

#define NUM_SERVOS 1 // Note: Servo index starts with 0 for M280-M282 commands

// (ms) Delay before the next move will start, to give the servo time to reach its target angle.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
#define SERVO_DELAY { 300 }

// Only power servos during movement, otherwise leave off to prevent jitter
#define DEACTIVATE_SERVOS_AFTER_MOVE


* Sorted by      Sorted by
* Arduino        port and then
* logical pin    by pin
* 0_3  D0        0_0  D20
* 0_2  D1        0_1  D21
* 1_25 D2        0_2  D1
* 1_24 D3        0_3  D0
* 1_18 D4        0_4  D24
* 1_19 D5        0_5  D28
* 1_21 D6        0_6  D80
* 2_7  D8        0_7  D81
* 2_4  D9        0_8  D82
* 2_5  D10       0_9  D83
* 1_20 D11       0_10 D38
* 2_12 D12       0_11 D55
* 4_28 D13       0_15 D52
* 1_26 D14       0_16 D16
* 1_27 D15       0_17 D50
* 0_16 D16       0_18 D51
* 1_29 D18       0_19 D56
* 1_28 D19       0_20 D61
* 0_0  D20       0_21 D62
* 0_1  D21       0_22 D48
* 0_4  D24       0_23 D67
* 2_0  D26       0_24 D68
* 0_5  D28       0_25 D69
* 4_29 D30       0_26 D63
* 3_26 D31       0_27 D57
* 3_25 D33       0_28 D58
* 2_13 D34       1_0  D78
* 2_11 D35       1_1  D79
* 2_8  D36       1_4  D77
* 1_30 D37       1_8  D76
* 0_10 D38       1_9  D74
* 1_22 D41       1_10 D75
* 2_3  D46       1_14 D73
* 0_22 D48       1_15 D72
* 1_31 D49       1_16 D70
* 0_17 D50       1_17 D71
* 0_18 D51       1_18 D4
* 0_15 D52       1_19 D5
* 1_23 D53       1_20 D11
* 2_1  D54       1_21 D6
* 0_11 D55       1_22 D41
* 0_19 D56       1_23 D53
* 0_27 D57       1_24 D3
* 0_28 D58       1_25 D2
* 2_6  D59       1_26 D14
* 2_2  D60       1_27 D15
* 0_20 D61       1_28 D19
* 0_21 D62       1_29 D18
* 0_26 D63       1_30 D37
* 0_23 D67       1_31 D49
* 0_24 D68       2_0  D26
* 0_25 D69       2_1  D54
* 1_16 D70       2_2  D60
* 1_17 D71       2_3  D46
* 1_15 D72       2_4  D9
* 1_14 D73       2_5  D10
* 1_9  D74       2_6  D59
* 1_10 D75       2_7  D8
* 1_8  D76       2_8  D36
* 1_4  D77       2_11 D35
* 1_0  D78       2_12 D12
* 1_1  D79       2_13 D34
* 0_6  D80       3_25 D33
* 0_7  D81       3_26 D31
* 0_8  D82       4_28 D13
* 0_9  D83       4_29 D30
*/