This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
gcode de retracción
#1
hola he querido meter un gcode de retraccion tanto al principió y como al final de la impresión pero no me funciona 
la idea que el filamento no sude mientras se calienta y cree esos molestos trocitos
el gcode era G1. E1 
no se si estará bien lo pondría antes del g28 y al final de la impresión al principio 
no se si me explicado bien un saludo y muchas gracias
  Responder
#2
Hola, depende de donde hayas puesto el comando, si antes de las órdenes de calentamiento del hotend o después: si lo has puesto antes, no tiene ningún efecto, pues el firmware no deja moverse al motor del extrusor hasta que el hotend no sobrepasa una determinada temperatura (170ºC normalmente).
Por otra parte, antes de realizar una retracción, hay que saber qué tipo de movimiento está activo para el extrusor: si es absoluto, es necesario saber en que posición se encuentra el eje antes de ordenar la retracción; si es relativo, puede realizarse directamente indicando la distancia que se quiere retraer (negativas) y en su caso, después avanzar (positivas).
Cuando el movimiento es absoluto, lo que suele hacerse es fijar la posición a 0 antes de realizar la retracción, lo que permite indicar la distancia de la retracción como en el movimiento relativo y la de avanzar volviendo a la posición 0.
En tu caso, el comando G1 E1 puede hacer que el extrusor vaya a la posición 1 del eje (movimiento absoluto) o que avance 1 mm (movimiento relativo), por lo que tendrás que comprobar en que tipo está en ese momento.
Por otra parte, con el comando G1 es conveniente poner la velocidad a la que queremos que se realice el movimiento porque, en caso de no hacerlo, se hará a la del último movimiento realizado, lo que en algunas circunstancias puede no ser conveniente: se indica con la letra F seguida del valor de la velocidad en mm/min.
  Responder
#3
Exclamación 
hola  compañero te paso como lo quería poner 

g code de inicio 
G21 ; set units to millimeters
G90 ; use absolute positioning
M82 ; absolute extrusion mode
M104 S{material_print_temperature_layer_0} ; set extruder temp
M140 S{material_bed_temperature_layer_0} ; set bed temp
M190 S{material_bed_temperature_layer_0} ; wait for bed temp
M109 S{material_print_temperature_layer_0} ; wait for extruder temp
G1 E-1
G28 W ; home all without mesh bed level
G29 ; mesh bed leveling
M420 S1 Z2
G92 E0.0 ; reset extruder distance position
G1 Y2 F1000.0 ; go outside print area
G1 X45.0  Z0.2 E0.9 F1000.0 ; intro line
G1 X120.0 Z0.2 E21.5 F1000.0 ; intro line
G92 E0.0 ; reset extruder distance position

Gcode Final
G1 E-1
M104 S0 ; turn off extruder
M140 S0 ; turn off heatbed
M107 ; turn off fan
G1 X0 Y190; home X axis and push Y forward
M84 ; disable motors

Otra cosa estuve regulando los driver como me explicaste muchass gracias
  Responder
#4
Tienes que realizar algunos cambios para que esté bien:
- Coloca un comando G92 E0 antes de los dos G1 E-1, sobre todo del último porque, estando en modo absoluto, ese G1 E-1 final, probablemente sacaría todo el filamento de la impresora.
- Quizá 1mm sea poca retracción para lograr lo que buscas, por lo que puedes probar con algo más (sin pasar de 4 mm).
- Cambia los G1 E-1 por G1 E-1 Fn, donde n es el resultado de multiplicar la velocidad de retracción que utilizas por 60: por ejemplo, si tienes configurada una velocidad de retracción de 25mm/s, pon G1 E-1 F1500.
Con eso, debería funcionar bien.
  Responder
#5
Eres un crack mañana lo probare
Y me reía por que es verdad me sacaba todo el filamento al terminar queda como loco yo 
no se si recuerdas que instale una robin nano v3  con la pantalla tft 35
los driver son los tcm2209 están conectados en modo normal valdría la pena conectarlos en uart
lo estuve mirando pero no encontré mucha in formación de donde van los jumper y como configurarlos en marlin correctamente 
tengo miedo de cagarla y por el momento funciona bien 
si sabes de algún tutorial y la conexión de lo jumper pásamelo gracias un saludo
  Responder
#6
Esta es la wiki de esa placa, donde tienes toda la información.
La configuración de Marlin para controlar por UART los TMC2209 es bastante sencilla, poco más que indicar el tipo de driver en cada eje como TMC2209 (en los que se tengan) y definir el parámetro TMC_DEBUG en el archivo Configuration_adv.h, para tener información sobre su estado y funcionamiento.
A partir de ahí, se pueden configurar directamente por software casi todos sus parámetros de funcionamiento (intensidad de corriente de los motores, micropasos, etc.), lo que es una gran comodidad, aparte de poder activar otras funcionalidades que traen estos drivers y que solo se pueden utilizar en ese modo.
  Responder
#7
hola buenos días ya esta configurado uart parece que funciona mejor y mas suave fue sencillo con tu ayuda
quemas se puede hace con la con figuración uart ?
Aqui te dejo como configure los gcode
gcode inicial
G21 ; set units to millimeters
G90 ; use absolute positioning
M82 ; absolute extrusion mode
M104 S{material_print_temperature_layer_0} ; set extruder temp
M140 S{material_bed_temperature_layer_0} ; set bed temp
M190 S{material_bed_temperature_layer_0} ; wait for bed temp
M109 S{material_print_temperature_layer_0} ; wait for extruder temp
G92 E0
G1 E-1.5 Fn
G28 W ; home all without mesh bed level
G29 ; mesh bed leveling
M420 S1 Z2
G92 E0.0 ; reset extruder distance position
G1 Y-3.5 F1000.0 ; go outside print area
G1 X45.0 Z0.2 E0.9 F1000.0 ; intro line
G1 X120.0 Z0.2 E21.5 F1000.0 ; intro line
G92 E0.0 ; reset extruder distance position
gcode final
G92 E0
G1 E-1.5 Fn
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 positionin
G1 X0 Y170 ;Extender cama para retirar pieza

Asi estas bien Simemart
  Responder
#8
No está bien, tienes que sustituir la letra n en G1 E-1.5 Fn: repasa lo que te indiqué en la respuesta #4.
Si va más suave ahora con UART, probablemente sea porque los drivers estaban regulados antes con la intensidad un poco alta.
Los ajustes pueden hacerse directamente en el firmware, son estas líneas del archivo Configuration_adv.h:

Código:
...
  #if AXIS_IS_TMC_CONFIG(X)
    #define X_CURRENT      800        // (mA) RMS current. Multiply by 1.414 for peak current.
    #define X_CURRENT_HOME  X_CURRENT  // (mA) RMS current for sensorless homing
    #define X_MICROSTEPS    16        // 0..256
    #define X_RSENSE          0.11    // Multiplied x1000 for TMC26X
    #define X_CHAIN_POS      -1        // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ...
    //#define X_INTERPOLATE  true      // Enable to override 'INTERPOLATE' for the X axis
    //#define X_HOLD_MULTIPLIER 0.5    // Enable to override 'HOLD_MULTIPLIER' for the X axis
  #endif

  #if AXIS_IS_TMC_CONFIG(X2)
    #define X2_CURRENT      800
    #define X2_CURRENT_HOME X2_CURRENT
    #define X2_MICROSTEPS    X_MICROSTEPS
    #define X2_RSENSE        0.11
    #define X2_CHAIN_POS    -1
    //#define X2_INTERPOLATE true
    //#define X2_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(Y)
    #define Y_CURRENT      800
    #define Y_CURRENT_HOME  Y_CURRENT
    #define Y_MICROSTEPS    16
    #define Y_RSENSE          0.11
    #define Y_CHAIN_POS      -1
    //#define Y_INTERPOLATE  true
    //#define Y_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(Y2)
    #define Y2_CURRENT      800
    #define Y2_CURRENT_HOME Y2_CURRENT
    #define Y2_MICROSTEPS    Y_MICROSTEPS
    #define Y2_RSENSE        0.11
    #define Y2_CHAIN_POS    -1
    //#define Y2_INTERPOLATE true
    //#define Y2_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(Z)
    #define Z_CURRENT      800
    #define Z_CURRENT_HOME  Z_CURRENT
    #define Z_MICROSTEPS    16
    #define Z_RSENSE          0.11
    #define Z_CHAIN_POS      -1
    //#define Z_INTERPOLATE  true
    //#define Z_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(Z2)
    #define Z2_CURRENT      800
    #define Z2_CURRENT_HOME Z2_CURRENT
    #define Z2_MICROSTEPS    Z_MICROSTEPS
    #define Z2_RSENSE        0.11
    #define Z2_CHAIN_POS    -1
    //#define Z2_INTERPOLATE true
    //#define Z2_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(Z3)
    #define Z3_CURRENT      800
    #define Z3_CURRENT_HOME Z3_CURRENT
    #define Z3_MICROSTEPS    Z_MICROSTEPS
    #define Z3_RSENSE        0.11
    #define Z3_CHAIN_POS    -1
    //#define Z3_INTERPOLATE true
    //#define Z3_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(Z4)
    #define Z4_CURRENT      800
    #define Z4_CURRENT_HOME Z4_CURRENT
    #define Z4_MICROSTEPS    Z_MICROSTEPS
    #define Z4_RSENSE        0.11
    #define Z4_CHAIN_POS    -1
    //#define Z4_INTERPOLATE true
    //#define Z4_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(I)
    #define I_CURRENT      800
    #define I_CURRENT_HOME I_CURRENT
    #define I_MICROSTEPS    16
    #define I_RSENSE        0.11
    #define I_CHAIN_POS    -1
    //#define I_INTERPOLATE  true
    //#define I_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(J)
    #define J_CURRENT      800
    #define J_CURRENT_HOME J_CURRENT
    #define J_MICROSTEPS    16
    #define J_RSENSE        0.11
    #define J_CHAIN_POS    -1
    //#define J_INTERPOLATE  true
    //#define J_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(K)
    #define K_CURRENT      800
    #define K_CURRENT_HOME K_CURRENT
    #define K_MICROSTEPS    16
    #define K_RSENSE        0.11
    #define K_CHAIN_POS    -1
    //#define K_INTERPOLATE  true
    //#define K_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(U)
    #define U_CURRENT      800
    #define U_CURRENT_HOME U_CURRENT
    #define U_MICROSTEPS    8
    #define U_RSENSE        0.11
    #define U_CHAIN_POS    -1
    //#define U_INTERPOLATE  true
    //#define U_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(V)
    #define V_CURRENT      800
    #define V_CURRENT_HOME V_CURRENT
    #define V_MICROSTEPS    8
    #define V_RSENSE        0.11
    #define V_CHAIN_POS    -1
    //#define V_INTERPOLATE  true
    //#define V_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(W)
    #define W_CURRENT      800
    #define W_CURRENT_HOME W_CURRENT
    #define W_MICROSTEPS    8
    #define W_RSENSE        0.11
    #define W_CHAIN_POS    -1
    //#define W_INTERPOLATE  true
    //#define W_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(E0)
    #define E0_CURRENT      800
    #define E0_MICROSTEPS    16
    #define E0_RSENSE        0.11
    #define E0_CHAIN_POS    -1
    //#define E0_INTERPOLATE true
    //#define E0_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(E1)
    #define E1_CURRENT      800
    #define E1_MICROSTEPS  E0_MICROSTEPS
    #define E1_RSENSE        0.11
    #define E1_CHAIN_POS    -1
    //#define E1_INTERPOLATE true
    //#define E1_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(E2)
    #define E2_CURRENT      800
    #define E2_MICROSTEPS  E0_MICROSTEPS
    #define E2_RSENSE        0.11
    #define E2_CHAIN_POS    -1
    //#define E2_INTERPOLATE true
    //#define E2_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(E3)
    #define E3_CURRENT      800
    #define E3_MICROSTEPS  E0_MICROSTEPS
    #define E3_RSENSE        0.11
    #define E3_CHAIN_POS    -1
    //#define E3_INTERPOLATE true
    //#define E3_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(E4)
    #define E4_CURRENT      800
    #define E4_MICROSTEPS  E0_MICROSTEPS
    #define E4_RSENSE        0.11
    #define E4_CHAIN_POS    -1
    //#define E4_INTERPOLATE true
    //#define E4_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(E5)
    #define E5_CURRENT      800
    #define E5_MICROSTEPS  E0_MICROSTEPS
    #define E5_RSENSE        0.11
    #define E5_CHAIN_POS    -1
    //#define E5_INTERPOLATE true
    //#define E5_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(E6)
    #define E6_CURRENT      800
    #define E6_MICROSTEPS  E0_MICROSTEPS
    #define E6_RSENSE        0.11
    #define E6_CHAIN_POS    -1
    //#define E6_INTERPOLATE true
    //#define E6_HOLD_MULTIPLIER 0.5
  #endif

  #if AXIS_IS_TMC_CONFIG(E7)
    #define E7_CURRENT      800
    #define E7_MICROSTEPS  E0_MICROSTEPS
    #define E7_RSENSE        0.11
    #define E7_CHAIN_POS    -1
    //#define E7_INTERPOLATE true
    //#define E7_HOLD_MULTIPLIER 0.5
  #endif
...
Puedes ajustar para cada eje el valor de la corriente (parámetros *_CURRENT en mA), buscando el valor más pequeño con el que se mueva de forma correcta el eje (que no pierda pasos el motor).
Este ajuste también se puede hacer desde el menú Configuración>Ajustes avanzados>Controladores TMC>Amperaje Controlador o mediante el comando gcode
M906 (se puede ver su sintaxis aquí).
  Responder
#9
vale gracias n por 1500
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Ender 3 y retracción Bear 4 5,818 11-03-2023, 02:42 PM
Último mensaje: EstebanAguas
  CONSULTA Ender 5 plus no imprime el gcode gastonf91 4 1,188 16-01-2023, 05:19 PM
Último mensaje: Rafa C@ndela
  Retracción Ender 3-Pro Valurian 1 3,399 04-02-2020, 11:03 AM
Último mensaje: Simemart
  DUDA Tiempos de impresión distintos al gcode Secanito 4 1,408 24-09-2018, 10:18 AM
Último mensaje: Secanito
  Problemas retracción o impresión si sacar material Aitor 3 1,977 30-10-2017, 05:05 PM
Último mensaje: Aitor