3D Printer

From Objectif Client Inc
Revision as of 16:34, 12 August 2018 by Nicolas (talk | contribs) (→‎Gcode)
Jump to navigation Jump to search

Hardware

Anet A8 Desktop 3D Printer

  • Overall, an excellent price-performance ratio. Relatively quickly to assemble. Good printing output, tested only with PLA so far. Easy to use software.




File:Exemple.jpg

Firmware

M303 E0 S235 C10
...
...
Recv: PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
Recv: #define  DEFAULT_Kp 15.42
Recv: #define  DEFAULT_Ki 0.65
Recv: #define  DEFAULT_Kd 91.61
    • Calculate Heat Bed thermistor PID
M303 E-1 S95 C10
...
...
Recv: PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
Recv: #define  DEFAULT_Kp 15.42
Recv: #define  DEFAULT_Ki 0.65
Recv: #define  DEFAULT_Kd 91.61
//###Nr001 #define BAUDRATE 250000
#define BAUDRATE 115200
      • MotherBoard
#ifndef MOTHERBOARD
  //###Nr001 #define MOTHERBOARD BOARD_RAMPS_14_EFB
  #define MOTHERBOARD BOARD_ANET_10
#endif
      • Filament
//###Nr001#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
      • Activate Temperature Sensor Extruder and Bed
//###Nr001#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_0 5
//###Nr001#define TEMP_SENSOR_BED 0 
#define TEMP_SENSOR_BED 5
      • Increase Temp Residency
//###Nr001 #define TEMP_RESIDENCY_TIME 6  // (seconds)
#define TEMP_RESIDENCY_TIME 10  // (seconds)
      • Reduce Max Bed Temp
//###Nr001 #define BED_MAXTEMP 150
#define BED_MAXTEMP 130
      • Increase PID Functional Range
//###Nr001 #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
#define PID_FUNCTIONAL_RANGE 15 // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
      • Add My Own PID value based on the automated calculation
//###Nr001 ANET A8 Customized Value
//###Nr001  #define  DEFAULT_Kp 21.0
//###Nr001  #define  DEFAULT_Ki 1.25
//###Nr001  #define  DEFAULT_Kd 86.0 
#define  DEFAULT_Kp 15.42
#define  DEFAULT_Ki 0.65
#define  DEFAULT_Kd 91.61
      • Enable Bed Limit Switch
//###Nr001 
#define BED_LIMIT_SWITCHING
      • Change ENDSTOP_INVERTING
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
//###Nr001 #define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
//###Nr001 #define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
//###Nr001 #define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
//###Nr001 #define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.

// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
//###Nr001
#define ENDSTOP_INTERRUPTS_FEATURE
      • Setup Stepper Direction.
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
//###Nr001 #define INVERT_Y_DIR true
#define INVERT_Y_DIR false
//###Nr001 #define INVERT_Z_DIR false
#define INVERT_Z_DIR true
      • Adjust Steps Per Unit (steps / mm)
//###Nr001 #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
#define DEFAULT_AXIS_STEPS_PER_UNIT   {100,  100, 400, 100}

/**
 * Default Max Feed Rate (mm/s)
 * Override with M203
 *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
 */
//###Nr001 #define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }
#define DEFAULT_MAX_FEEDRATE          {400, 400, 8, 50}

/**
 * Default Max Acceleration (change/s) change = mm/s
 * (Maximum start speed for accelerated moves)
 * Override with M201
 *                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
 */
//###Nr001 #define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }
#define DEFAULT_MAX_ACCELERATION      { 2000, 2000, 100, 10000 }
      • Adjust Accelerations
//###Nr001 #define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration for printing moves
#define DEFAULT_ACCELERATION          400     // X, Y, Z and E acceleration for printing moves
//###Nr001 #define DEFAULT_RETRACT_ACCELERATION  3000    // E acceleration for retracts
#define DEFAULT_RETRACT_ACCELERATION  1000    // E acceleration for retracts
//###Nr001 #define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration for travel (non printing) moves
#define DEFAULT_TRAVEL_ACCELERATION   1000    // X, Y, Z acceleration for travel (non printing) moves
      • Define Printer Characteristics
// The size of the print bed
//###Nr001 #define X_BED_SIZE 200
#define X_BED_SIZE 220
//###Nr001 #define Y_BED_SIZE 200
#define Y_BED_SIZE 220

// Travel limits (mm) after homing, corresponding to endstop positions.
//###Nr001 #define X_MIN_POS 0
#define X_MIN_POS     -33
//###Nr001 #define Y_MIN_POS 0
#define Y_MIN_POS     -10
//###Nr001 #define Z_MAX_POS 200
#define Z_MAX_POS     240
      • Perform Z Autohome on the bed Z_SAFE_HOMING
// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//###Nr001
#define Z_SAFE_HOMING
      • Enable SD Card
//###Nr001 
#define SDSUPPORT
      • Enable LCD for Anet A8
//###Nr001 
#define ZONESTAR_LCD
      • Setup Autoleveling
//###Nr001
#define FIX_MOUNTED_PROBE

//###Nr001
#define AUTO_BED_LEVELING_LINEAR

//###Nr001  #define G26_MESH_VALIDATION   // Enable G26 mesh validation

//###Nr001 #define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_X 4
      • Adjust Probe
// Set the boundaries for probing (where the probe can reach).
//###Nr001 #define LEFT_PROBE_BED_POSITION 15
#define LEFT_PROBE_BED_POSITION 20
//###Nr001 #define RIGHT_PROBE_BED_POSITION 170
#define RIGHT_PROBE_BED_POSITION 195
//###Nr001 #define FRONT_PROBE_BED_POSITION 20
#define FRONT_PROBE_BED_POSITION 30
#define BACK_PROBE_BED_POSITION 190

SoftWare

Cura

Setup

Machine Setup
  • Printer Setting
x: 220
Y: 220
Z: 240
  • Print Head Setting
X min: 0
Y min: 0
X max: 0
y max: 0
  • Ganty height: 0
  • Nozzle size: .04
  • Machine Center is Zero: Not Selected
  • Heated Bed  : Select
  • Start GCode
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
G29 ;Autoleveling
G1 Z15.0 F9000 ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F9000
M117 Printing...
  • End GCode
M104 S0 ;extruder heater off
M140 S0 ;heated bed heater off (if you have it)
G91 ;relative positioning
G1 E-1 F300  ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
M84 ;steppers off
G90 ;absolute positioning

OctoPrint

Switch On/Off

  • In /etc/init.d/octoprint, add the following before RETVAL="$?"
gpio export 18 out
  • Add switch on off

/home/pi/.octoprint/config.yaml

system:
  actions:
  - action: led on
    command: gpio -g write 18 1
    name: Turn on the led
  - action: led off
    command: gpio -g write 18 0
    confirm: You are about to turn off the led.
    name: Turn off the led

Stream On/Off

  • Add switch on off

/home/pi/.octoprint/config.yaml

system:
  actions:
  - action: streamon
    command: /home/pi/scripts/webcam start
    confirm: false
    name: Start video stream
  - action: streamoff
    command: /home/pi/scripts/webcam stop
    confirm: false
    name: Stop video stream

Z-Offset

  • Display and change Z-Offset Value

/home/pi/.octoprint/config.yaml

controls:
- children:
  - command: M628
    default: ''
    name: Get
    regex: z zero offset value:(?P<offset>\d+(\.\d*))
    template: 'Current: {offset} mm'
    width: '5'
  - command: M628 Z%(offset)s
    input:
    - default: '0.00'
      name: New (mm)
      parameter: offset
      slider: false
    name: Set
    width: '5'
  - command: G28 Z0
    name: Home Z
    width: '2'
  collapsed: true
  layout: horizontal_grid
  name: Adjust Z Offset

Slic3r

Gcode

Adjust Z Offset

M851 Z0; // Set the Z offset to zero height
G28;     // Home Z in the middle of the bed
G1 Z0;   // This will move the head to zero height;
M211 S0; // This will disable the end stops so that you 
         // will be able to proceed lower than Z=0

Now adjust Z height (note the negative Z height)

M851 Z-1.23; // Define the Z offset
M500;        // Store the settings
M211 S1;     // Enable the end stops again

-1.23 is a fictive value that should be replaced by your own value.

Set Extruder Step

M92 Exyyy (x=Extruder number 0) (yyy=Step value mn)

M92 E0206; // Define the E0 Step value 206