PID Autotune


Hotend: M303 E0 S200 C8


Bed: M303 E-1 S60 C8


Manually set PIDs


Extruder - M301 Pxx.xx Ixx.xx Dxx.xx (set values from M303)


Heated Bed - M304 Pxx.xx Ixx.xx Dxx.xx


M500 (save)


M503 (check)





Stop form LCD SD printing


Note, it does not stop immediatly, only after buffer commands.
I use it for testing printing so I need not temp turning off and etc.


    void lcd_sdcard_stop_g () {
      enqueue_and_echo_commands_P(PSTR("M117 Abort Print\nM25\nG91\nG0 Z10\nG90\nG0 X0 Y140\nM400\n"));


No custom user menu, simply change stock "Stop" to the below:


 //        MENU_ITEM(function, MSG_STOP_PRINT, lcd_sdcard_stop);
           MENU_ITEM(function, MSG_STOP_PRINT, lcd_sdcard_stop_g);



Here is some information to book mark for help with you 3D Printing.


Cura LulzBot Edition Manual


E3D Hotend and Extruder Wiki


E3D reseller in Australia.



Would be very easy to add this. Because, for example, auto-home is:
So, adding:
MENU_ITEM(gcode, "Home X/Y", PSTR("G28 X0 Y0"));
Would add the command you want :-)


I still need to fix the "multiple GCode commands" option, as the cooldown option:
MENU_ITEM(gcode, MSG_COOLDOWN, PSTR("M104 S0\nM140 S0"));
Only cools down the hotend, and not the heated bed. So the M140 S0 doesn't get executed.


// Include a page of printer information in the LCD Main Menu

Change Filament change to stop retraction for Titan Extruder
Configuration_adv.h line 804

  #define PAUSE_PARK_X_POS 3                  // X position of hotend
  #define PAUSE_PARK_Y_POS 3                  // Y position of hotend
  #define PAUSE_PARK_Z_ADD 10                 // Z addition of hotend (lift)
  #define PAUSE_PARK_XY_FEEDRATE 100          // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
  #define PAUSE_PARK_Z_FEEDRATE 5             // Z axis feedrate in mm/s (not used for delta printers)
  #define PAUSE_PARK_RETRACT_FEEDRATE 60      // Initial retract feedrate in mm/s
  #define PAUSE_PARK_RETRACT_LENGTH 2         // Initial retract in mm
                                              // It is a short retract used immediately after print interrupt before move to filament exchange position
  #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 0  // Unload filament feedrate in mm/s - filament unloading can be fast
  #define FILAMENT_CHANGE_UNLOAD_LENGTH 0   // Unload filament length from hotend in mm
                                              // Longer length for bowden printers to unload filament from whole bowden tube,
                                              // shorter length for printers without bowden to unload filament from extruder only,
                                              // 0 to disable unloading for manual unloading
  #define FILAMENT_CHANGE_LOAD_FEEDRATE 0     // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
  #define FILAMENT_CHANGE_LOAD_LENGTH 0       // Load filament length over hotend in mm
                                              // Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
                                              // Short or zero length for printers without bowden where loading is not used
  #define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 0   // Extrude filament feedrate in mm/s - must be slower than load feedrate
  #define ADVANCED_PAUSE_EXTRUDE_LENGTH 0    // Extrude filament length in mm after filament is loaded over the hotend,
                                              // 0 to disable for manual extrusion
                                              // Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
                                              // or until outcoming filament color is not clear for filament color change
  #define PAUSE_PARK_NOZZLE_TIMEOUT 90        // Turn off nozzle if user doesn't change filament within this time limit in seconds
  #define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
  #define PAUSE_PARK_NO_STEPPER_TIMEOUT       // Enable to have stepper motors hold position during filament change
                                              // even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
  //#define PARK_HEAD_ON_PAUSE                // Go to filament change position on pause, return to print position on resume
  //#define HOME_BEFORE_FILAMENT_CHANGE       // Ensure homing has been completed prior to parking for filament change


X Y Origin offset


G21        ;metric values
G90        ;absolute positioning
M82        ;set extruder to absolute mode
M107       ;start with the fan off
G28 X0 Y0  ;move X/Y to min endstops
G28 Z0     ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G1 X40 Y32              ; Move to print origin
G92 X0 Y0 Z15.0         ; Set this coordinate to 0,0,15
G92 E0                  ;zero the extruded length
G1 F200 E3              ;extrude 3mm of feed stock
G92 E0                  ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...


Wilson II Original Firmware Mods


Turn Off Retract when Changing Filament


Configuration_adv.h Line 432


change line 440 from 100 to 0 to stop retract.

//adds support for experimental filament exchange support M600; requires display 





Wilson II
From Line 763

static void lcd_move_menu()
    MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
    MENU_ITEM(submenu, MSG_MOVE_10MM, lcd_move_menu_10mm);
    MENU_ITEM(submenu, MSG_MOVE_1MM, lcd_move_menu_1mm);
    MENU_ITEM(submenu, MSG_MOVE_01MM, lcd_move_menu_01mm);

 // the movement jogging from the lcd seems horribly inaccurate, so for testing
    // I would like to have these movements easy to go to:
    MENU_ITEM(gcode, "Go to X=150",PSTR("G1 X150"));
    MENU_ITEM(gcode, "Go to X=20",PSTR("G1 X20"));
    MENU_ITEM(gcode, "Go to Y=150",PSTR("G1 Y150"));
    MENU_ITEM(gcode, "Go to Y=0",PSTR("G1 Y0"));
    MENU_ITEM(gcode, "Go to Z=150",PSTR("G1 Z150"));
    MENU_ITEM(gcode, "Go to Z=1",PSTR("G1 Z1"));



 Endstop Testing


No matter which type of endstop you use, it should be recognized by your electronics. Test procedure:


    Turn on your electronics/printer.
    Send M119 manually.
    Firmware should report back status "0" or "open".
    Engage the endstop by pressing the switch, putting cardboard into the light barrier, etc.
    Send M119 again.
    Firmware should report "1" or "triggered" or "closed".


Your endstop works if both reports are as expected.