Cold Extrusion or Wire Feeder

Hello everyone, I am trying to use the extrusion port on Ramps 1.4 shield (Arduino Mega 2560) to wire feed a spool of wire that has a stepper motor already mechanically setup and ready to go. Having said that, I am having trouble with the temperature requirements which I am currently trying to disable. Overall, I would like to have my "wire feeder" motor play the role of my extruder without any required temperature parameters. I have already used the option to fake the temperature to 25C but that has not worked. Can anyone help me with this? Thank you.

Comments

  • M302 S1

    enables cold extrusion so you can extruder with cold extruders as well. You can even put that in the startup gcode to enable automatcically on printer startup.
  • Thank you. I tried that but for some reason the software does not recognize my "extruder". I have a stepper motor connected to Extruder 0 port on the ramps 1.4 but no movement during the print even with cold extrusion allowed. It seems like the extruder port is disabled.
  • Make sure dry run is not enabled. That would prevent all extruder moves. This happens by host debug options or if your heaters are not working or you send a heat command to fake heater. So do not try to heat the faked extruder heater!
  • No it is not enabled, I disabled it in the manual option.
  • Have a look at th elog when you connect and see if it contains a message saying firmware disabled it. If you have no thermistor (or fake) it will do so. Or you have not configured the right extruder motor.
  • How can I set it to disable dry run automatically on startup? I have been manually clicking the circle mark next to dry run in the manual options to do so.
  • Normally it is not enabled only if error conditions require, so remove the condition enabling it.

     Host can do on connect since it remembers last set options, but that can be changed in host.
  • When I connect the microcontroller, there are no error messages. Thus, i go to the manual control tab and i put in the code M302 S1. Then, I put in a STL file, slice it, and click print. Result: It moves all axes but extruder motor has no rotation. 
    This is the log when I click connect: 
    11:15:23.847 : Printer reset detected - initalizing
    11:15:23.847 : start
    11:15:23.862 : Transformation matrix: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000
    11:15:26.488 : Free RAM:3888
    11:15:26.488 : SelectExtruder:0
    11:15:26.519 : FIRMWARE_NAME:Repetier_0.92.9 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3
    11:15:26.519 : Printed filament:0.00m Printing time:0 days 0 hours 0 min
    11:15:26.519 : PrinterMode:FFF
    11:15:26.519 : X:-0.01 Y:-0.01 Z:-0.012 E:NAN
    11:15:26.519 : DebugLevel:6
    11:15:26.535 : SelectExtruder:0
    11:15:26.535 : Begin file list
    11:15:26.535 : End file list
    11:15:26.535 : DebugLevel:6
    11:15:26.535 : SelectExtruder:0

  • So, now I think I have gotten through the cold extrusion part but when I try to rotate the extruder motor, it screeches from a low to high pitch noise depending on amps regulated. I already doubled checked if it is the stepper driver and that isn't the problem. I even checked different cables to be sure it wasn't a wiring problem. 
  • Screaming motors are normally lost steps. Check in eeprom what steps per mm are. Too high value or too high start speed can cause loosing steps from start on. Also check motor can rotate when not powered and is not blocked.
  • The steps per mm are set at 80, also the motor spins manually using the x y or z axes ports on the ramps.
  • Yes, so E port is defect or you have settings not working for that. E has much higher jerk (start speed), acceleration and steps per mm set normally then x,y and z, so check that in your eeprom.
  • This is my eeprom:
    #ifndef _EEPROM_H
    #define _EEPROM_H

    // Id to distinguish version changes
    #define EEPROM_PROTOCOL_VERSION 16

    /** Where to start with our datablock in memory. Can be moved if you
    have problems with other modules using the eeprom */

    #define EPR_MAGIC_BYTE              0
    #define EPR_ACCELERATION_TYPE       1
    #define EPR_XAXIS_STEPS_PER_MM      3
    #define EPR_YAXIS_STEPS_PER_MM      7
    #define EPR_ZAXIS_STEPS_PER_MM     11
    #define EPR_X_MAX_FEEDRATE         15
    #define EPR_Y_MAX_FEEDRATE         19
    #define EPR_Z_MAX_FEEDRATE         23
    #define EPR_X_HOMING_FEEDRATE      27
    #define EPR_Y_HOMING_FEEDRATE      31
    #define EPR_Z_HOMING_FEEDRATE      35
    #define EPR_MAX_JERK               39
    //#define EPR_OPS_MIN_DISTANCE       43
    #define EPR_MAX_ZJERK              47
    #define EPR_X_MAX_ACCEL            51
    #define EPR_Y_MAX_ACCEL            55
    #define EPR_Z_MAX_ACCEL            59
    #define EPR_X_MAX_TRAVEL_ACCEL     63
    #define EPR_Y_MAX_TRAVEL_ACCEL     67
    #define EPR_Z_MAX_TRAVEL_ACCEL     71
    #define EPR_BAUDRATE               75
    #define EPR_MAX_INACTIVE_TIME      79
    #define EPR_STEPPER_INACTIVE_TIME  83
    //#define EPR_OPS_RETRACT_DISTANCE   87
    //#define EPR_OPS_RETRACT_BACKLASH   91
    #define EPR_EXTRUDER_SPEED         95
    //#define EPR_OPS_MOVE_AFTER         99
    //#define EPR_OPS_MODE              103
    #define EPR_INTEGRITY_BYTE        104   // Here the xored sum over eeprom is stored
    #define EPR_VERSION               105   // Version id for updates in EEPROM storage
    #define EPR_BED_HEAT_MANAGER      106
    #define EPR_BED_DRIVE_MAX         107
    #define EPR_BED_PID_PGAIN         108
    #define EPR_BED_PID_IGAIN         112
    #define EPR_BED_PID_DGAIN         116
    #define EPR_BED_PID_MAX           120
    #define EPR_BED_DRIVE_MIN         124
    #define EPR_PRINTING_TIME         125  // Time in seconds printing
    #define EPR_PRINTING_DISTANCE     129  // Filament length printed
    #define EPR_X_HOME_OFFSET         133
    #define EPR_Y_HOME_OFFSET         137
    #define EPR_Z_HOME_OFFSET         141
    #define EPR_X_LENGTH              145
    #define EPR_Y_LENGTH              149
    #define EPR_Z_LENGTH              153
    #define EPR_BACKLASH_X            157
    #define EPR_BACKLASH_Y            161
    #define EPR_BACKLASH_Z            165

    #define EPR_Z_PROBE_X_OFFSET      800
    #define EPR_Z_PROBE_Y_OFFSET      804
    #define EPR_Z_PROBE_HEIGHT        808
    #define EPR_Z_PROBE_SPEED         812
    #define EPR_Z_PROBE_X1            816
    #define EPR_Z_PROBE_Y1            820
    #define EPR_Z_PROBE_X2            824
    #define EPR_Z_PROBE_Y2            828
    #define EPR_Z_PROBE_X3            832
    #define EPR_Z_PROBE_Y3            836
    #define EPR_Z_PROBE_XY_SPEED      840
    #define EPR_AUTOLEVEL_MATRIX      844
    #define EPR_AUTOLEVEL_ACTIVE      880
    #define EPR_DELTA_DIAGONAL_ROD_LENGTH 881
    #define EPR_DELTA_HORIZONTAL_RADIUS 885
    #define EPR_DELTA_SEGMENTS_PER_SECOND_PRINT 889
    #define EPR_DELTA_SEGMENTS_PER_SECOND_MOVE 891
    #define EPR_DELTA_TOWERX_OFFSET_STEPS 893
    #define EPR_DELTA_TOWERY_OFFSET_STEPS 895
    #define EPR_DELTA_TOWERZ_OFFSET_STEPS 897
    #define EPR_DELTA_ALPHA_A         901
    #define EPR_DELTA_ALPHA_B         905
    #define EPR_DELTA_ALPHA_C         909
    #define EPR_DELTA_RADIUS_CORR_A   913
    #define EPR_DELTA_RADIUS_CORR_B   917
    #define EPR_DELTA_RADIUS_CORR_C   921
    #define EPR_DELTA_MAX_RADIUS      925
    #define EPR_Z_PROBE_BED_DISTANCE  929
    #define EPR_DELTA_DIAGONAL_CORRECTION_A 933
    #define EPR_DELTA_DIAGONAL_CORRECTION_B 937
    #define EPR_DELTA_DIAGONAL_CORRECTION_C 941
    #define EPR_TOUCHSCREEN           946 // - 975 = 30 byte for touchscreen calibration data

    // Axis compensation
    #define EPR_AXISCOMP_TANXY 976
    #define EPR_AXISCOMP_TANYZ 980
    #define EPR_AXISCOMP_TANXZ 984

    #define EPR_DISTORTION_CORRECTION_ENABLED      988
    #define EPR_RETRACTION_LENGTH                  992
    #define EPR_RETRACTION_LONG_LENGTH             996
    #define EPR_RETRACTION_SPEED                  1000
    #define EPR_RETRACTION_Z_LIFT                 1004
    #define EPR_RETRACTION_UNDO_EXTRA_LENGTH      1008
    #define EPR_RETRACTION_UNDO_EXTRA_LONG_LENGTH 1012
    #define EPR_RETRACTION_UNDO_SPEED             1016
    #define EPR_AUTORETRACT_ENABLED               1020
    #define EPR_Z_PROBE_Z_OFFSET      1024
    #define EPR_SELECTED_LANGUAGE                 1028
    #define EPR_ACCELERATION_FACTOR_TOP           1032
    #define EPR_BENDING_CORRECTION_A              1036
    #define EPR_BENDING_CORRECTION_B              1040
    #define EPR_BENDING_CORRECTION_C              1044

    #if EEPROM_MODE != 0
    #define EEPROM_FLOAT(x) HAL::eprGetFloat(EPR_##x)
    #define EEPROM_INT32(x) HAL::eprGetInt32(EPR_##x)
    #define EEPROM_BYTE(x) HAL::eprGetByte(EPR_##x)
    #define EEPROM_SET_BYTE(x,val) HAL::eprSetByte(EPR_##x,val)
    #define EEPROM_FLOAT(x) (float)(x)
    #define EEPROM_INT32(x) (int32_t)(x)
    #define EEPROM_BYTE(x) (uint8_t)(x)
    #define EEPROM_SET_BYTE(x,val)

    #define EEPROM_EXTRUDER_OFFSET 200
    // bytes per extruder needed, leave some space for future development
    #define EEPROM_EXTRUDER_LENGTH 100
    // Extruder positions relative to extruder start
    #define EPR_EXTRUDER_STEPS_PER_MM        0
    #define EPR_EXTRUDER_MAX_FEEDRATE        4
    // Feedrate from halted extruder in mm/s
    #define EPR_EXTRUDER_MAX_START_FEEDRATE  8
    // Acceleration in mm/s^2
    #define EPR_EXTRUDER_MAX_ACCELERATION   12
    #define EPR_EXTRUDER_HEAT_MANAGER       16
    #define EPR_EXTRUDER_DRIVE_MAX          17
    #define EPR_EXTRUDER_PID_PGAIN          18
    #define EPR_EXTRUDER_PID_IGAIN          22
    #define EPR_EXTRUDER_PID_DGAIN          26
    #define EPR_EXTRUDER_DEADTIME EPR_EXTRUDER_PID_PGAIN
    #define EPR_EXTRUDER_PID_MAX            30
    #define EPR_EXTRUDER_X_OFFSET           31
    #define EPR_EXTRUDER_Y_OFFSET           35
    #define EPR_EXTRUDER_WATCH_PERIOD       39
    #define EPR_EXTRUDER_ADVANCE_K          41
    #define EPR_EXTRUDER_DRIVE_MIN          45
    #define EPR_EXTRUDER_ADVANCE_L          46
    #define EPR_EXTRUDER_WAIT_RETRACT_TEMP 50
    #define EPR_EXTRUDER_WAIT_RETRACT_UNITS 52
    #define EPR_EXTRUDER_COOLER_SPEED       54
    // 55-57 free for byte sized parameter
    #define EPR_EXTRUDER_MIXING_RATIOS  58 // 16*2 byte ratios = 32 byte -> end = 89
    #define EPR_EXTRUDER_Z_OFFSET            90
    #ifndef Z_PROBE_BED_DISTANCE
    #define Z_PROBE_BED_DISTANCE 5.0

  • Also, do i need a thermistor installed if I'm only trying to cold extrude using the "fake 25C at all times"
  • Fake thermistor is ok for cold extrusion.

    Above is not your eeprom. It is eeprom.h whcih is just a file identical for all users. To see eeprom send M205 and copy log output.
  • 14:20:58.777 : EPR:0 1028 0 Language
    14:20:58.777 : EPR:2 75 115200 Baudrate
    14:20:58.777 : EPR:3 129 0.000 Filament printed [m]
    14:20:58.793 : EPR:2 125 0 Printer active [s]
    14:20:58.793 : EPR:2 79 0 Max. inactive time [ms,0=off]
    14:20:58.793 : EPR:2 83 360000 Stop stepper after inactivity [ms,0=off]
    14:20:58.793 : EPR:3 3 80.0000 X-axis steps per mm
    14:20:58.793 : EPR:3 7 80.0000 Y-axis steps per mm
    14:20:58.809 : EPR:3 11 80.0000 Z-axis steps per mm
    14:20:58.809 : EPR:3 15 200.000 X-axis max. feedrate [mm/s]
    14:20:58.809 : EPR:3 19 200.000 Y-axis max. feedrate [mm/s]
    14:20:58.809 : EPR:3 23 2.000 Z-axis max. feedrate [mm/s]
    14:20:58.824 : EPR:3 27 40.000 X-axis homing feedrate [mm/s]
    14:20:58.824 : EPR:3 31 40.000 Y-axis homing feedrate [mm/s]
    14:20:58.824 : EPR:3 35 2.000 Z-axis homing feedrate [mm/s]
    14:20:58.824 : EPR:3 39 20.000 Max. jerk [mm/s]
    14:20:58.824 : EPR:3 47 0.300 Max. Z-jerk [mm/s]
    14:20:58.840 : EPR:3 133 0.000 X min pos [mm]
    14:20:58.840 : EPR:3 137 0.000 Y min pos [mm]
    14:20:58.846 : EPR:3 141 0.000 Z min pos [mm]
    14:20:58.850 : EPR:3 145 200.000 X max length [mm]
    14:20:58.854 : EPR:3 149 200.000 Y max length [mm]
    14:20:58.854 : EPR:3 153 120.000 Z max length [mm]
    14:20:58.859 : EPR:3 51 1000.000 X-axis acceleration [mm/s^2]
    14:20:58.863 : EPR:3 55 1000.000 Y-axis acceleration [mm/s^2]
    14:20:58.867 : EPR:3 59 100.000 Z-axis acceleration [mm/s^2]
    14:20:58.871 : EPR:3 63 1000.000 X-axis travel acceleration [mm/s^2]
    14:20:58.879 : EPR:3 67 1000.000 Y-axis travel acceleration [mm/s^2]
    14:20:58.883 : EPR:3 71 100.000 Z-axis travel acceleration [mm/s^2]
    14:20:58.883 : EPR:3 1024 0.000 Coating thickness [mm]
    14:20:58.883 : EPR:0 880 0 Autolevel active (1/0)
    14:20:58.883 : EPR:0 1020 0 Enable retraction conversion [0/1]
    14:20:58.883 : EPR:3 992 3.000 Retraction length [mm]
    14:20:58.898 : EPR:3 1000 40.000 Retraction speed [mm/s]
    14:20:58.898 : EPR:3 1004 0.000 Retraction z-lift [mm]
    14:20:58.898 : EPR:3 1008 0.000 Extra extrusion on undo retract [mm]
    14:20:58.898 : EPR:3 1016 20.000 Retraction undo speed
    14:20:58.914 : EPR:3 200 370.000 Extr.1 steps per mm
    14:20:58.914 : EPR:3 204 50.000 Extr.1 max. feedrate [mm/s]
    14:20:58.914 : EPR:3 208 20.000 Extr.1 start feedrate [mm/s]
    14:20:58.914 : EPR:3 212 5000.000 Extr.1 acceleration [mm/s^2]
    14:20:58.914 : EPR:0 216 3 Extr.1 heat manager [0-3]
    14:20:58.929 : EPR:0 217 230 Extr.1 PID drive max
    14:20:58.929 : EPR:0 245 40 Extr.1 PID drive min
    14:20:58.929 : EPR:3 218 7.0000 Extr.1 PID P-gain/dead-time
    14:20:58.945 : EPR:3 222 2.0000 Extr.1 PID I-gain
    14:20:58.945 : EPR:3 226 40.0000 Extr.1 PID D-gain
    14:20:58.945 : EPR:0 230 255 Extr.1 PID max value [0-255]
    14:20:58.945 : EPR:2 231 0 Extr.1 X-offset [steps]
    14:20:58.945 : EPR:2 235 0 Extr.1 Y-offset [steps]
    14:20:58.961 : EPR:2 290 0 Extr.1 Z-offset [steps]
    14:20:58.961 : EPR:1 239 1 Extr.1 temp. stabilize time [s]
    14:20:58.961 : EPR:1 250 150 Extr.1 temp. for retraction when heating [C]
    14:20:58.961 : EPR:1 252 0 Extr.1 distance to retract when heating [mm]
    14:20:58.976 : EPR:0 254 255 Extr.1 extruder cooler speed [0-255]

  • alright, I was able to get my extruder to work, but now i have a question on how to increase the extruding amount. For example, my wire feeder is barely feeding any wire so how would I increase the amount of rotations per say.
  • Increasing steps per mm increases the amount permanently. You can change them in eeprom editor in host or server.
Sign In or Register to comment.