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
Impresora K.O
#21
(29-06-2022, 07:02 PM)Simemart escribió: La SKR 2 puede ser una buena opción.
No entiendo esos problemas que tienes con el VSCode, yo lo tengo instalado y compilo la última versión de Marlin sin ningún problema.
Para instalar Marlin, mejor hacerlo desde cero que utilizar los archivos preconfigurados, aunque los puedes utilizar para saber los valores a configurar en algunos parámetros.
Sobre las versiones, la 2.1 es la última versión estable y realmente sería la 2.1.0, pero se obvia el 0: cuando se indica 2.1.x se trata de la versión que se encuentra en desarrollo actualmente y a la que se le aplican las últimas correcciones de errores y las nuevas implementaciones: cuando pase a versión estable será  la 2.1.1.
Yo siempre utilizo esta versión, denominada bugfix, aunque siempre puede presentarse algún problema no descubierto hasta la fecha (nunca me ha pasado).

P.S.: Los errores que aparecen en esa captura se deben a varias causas.
Los de #include indican que no se puede acceder a la localización de los archivos de Marlin, seguramente porque no has descomprimido la carpeta en en un sitio accesible para PlatformIO.
Los cuatro errores siguientes se deben a que estás mezclando archivos de versiones diferentes de Marlin, siendo más antiguos los archivos de configuración que la versión que estás utilizando.
El último se debe a que has puesto más de tres elementos en la matriz que define las velocidades del homing, parámetro HOMING_FEEDRATE_MM_M (seguramente una coma de más).

Pues ya tengo pedida la SKR 2, me llegara la semana que viene. Voy a pelearme con el Marlin completamente desde 0 con la 2.1.x entonces..aclarado lo de las versiones.
Otra duda que tengo es que supongamos que sacan la 2.2..por decir algo, y yo tengo la 2.1, para actualizar ¿ hay que volver a programar todo el marlin ?
Me imaginaba que uno de los errores era por los archivos de configuración..lo que hago es copiarlos de la version vieja, y pegarlos en la carpeta de la version nueva..ya veo que no funciona.
Voy a mirar por curiosidad lo de homing, no recuerdo tocar eso
  Responder
#22
Cuando se decide cambiar el Marlin que se tiene instalado en la placa por una versión distinta, hay que compilar de nuevo el firmware y utilizar para ello los archivos de dicha versión.
Los motivos son dos: por una parte, los de configuración tienen un parámetro que indica de qué versión son y eso es lo que detectan los compiladores cuando dan el error.
Por supuesto que se puede cambiar en ellos el valor del parámetro para engañar al compilador, pero está la segunda razón: es bastante habitual que en la nuevas versiones se cambien de nombre parámetros (supongo que para forzar precisamente esta situación) y esto generará errores de compilación en todos los archivos donde aparezca el parámetro cambiado.
  Responder
#23
(30-06-2022, 07:12 PM)Simemart escribió: Cuando se decide cambiar el Marlin que se tiene instalado en la placa por una versión distinta, hay que compilar de nuevo el firmware y utilizar para ello los archivos de dicha versión.
Los motivos son dos: por una parte, los de configuración tienen un parámetro que indica de qué versión son y eso es lo que detectan los compiladores cuando dan el error.
Por supuesto que se puede cambiar en ellos el valor del parámetro para engañar al compilador, pero está la segunda razón: es bastante habitual que en la nuevas versiones se cambien de nombre parámetros (supongo que para forzar precisamente esta situación) y esto generará errores de compilación en todos los archivos donde aparezca el parámetro cambiado.

dudas aclaradas!!
Volveré con los errores al compilar, los voy a tener seguro!!!
  Responder
#24
Primer problema.

Tengo un driver para cada motor del eje Z y no encuentro la opcion NUM_Z_STEPPER_DRIVERS en adv.h. Me imagino que igual cambió de nombre la opción.
 y estos son los errores que me tira al compilar:

[Imagen: error-nuevo.jpg]

EDITO:

descomentando esta opción #define Z_SAFE_HOMING ya compiló el firmware, pero me sale esta advertencia en amarillo:

[Imagen: error-2.jpg]

parece que tiene que ver con lo del " Z2 "
  Responder
#25
El compilador puede dar varios tipos de mensajes, unos de error y otros de aviso: los primeros impiden realizar la compilación y hay que resolverlos; los segundos solo indican cosas que se deben tener en cuenta, pues podrían generar errores en la ejecución posterior del código, pero no impiden compilar.
Los que indicas son uno de error y otro de aviso: el de error, para indicar la conveniencia de activar el Z Safe Homing cuando se tiene un sensor como final de carrera del eje Z, para evitar que pueda hacerse el homing fuera de la cama; el aviso indica que se han asignado de forma automática los valores de algunos parámetros del eje Z2, cosa que es normal al habilitar dicho eje.
En la última versión de Marlin ya no se indica el número de motores del eje Z, pues esto se controla directamente por la asignación del tipo de driver: si tienes definido un tipo para el eje Z2, es como si en las anteriores versiones hubieses asignado al parámetro NUM_Z_STEPPER_DRIVERS el valor 2.
Si quieres evitar ese mensaje, solo tienes que colocar la siguiente línea (que pongo en verde) en uno de los dos archivos de configuración de Marlin, por ejemplo al comienzo del Configuration.h:

...
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once

#define NO_AUTO_ASSIGN_WARNING

/**
* Configuration.h
*
* Basic settings such as:
*
...


Pero, como digo, no tiene ninguna influencia en la compilación y en el funcionamiento posterior del firmware.
  Responder
#26
(02-07-2022, 10:58 AM)Simemart escribió: El compilador puede dar varios tipos de mensajes, unos de error y otros de aviso: los primeros impiden realizar la compilación y hay que resolverlos; los segundos solo indican cosas que se deben tener en cuenta, pues podrían generar errores en la ejecución posterior del código, pero no impiden compilar.
Los que indicas son uno de error y otro de aviso: el de error, para indicar la conveniencia de activar el Z Safe Homing cuando se tiene un sensor como final de carrera del eje Z, para evitar que pueda hacerse el homing fuera de la cama; el aviso indica que se han asignado de forma automática los valores de algunos parámetros del eje Z2, cosa que es normal al habilitar dicho eje.
En la última versión de Marlin ya no se indica el número de motores del eje Z, pues esto se controla directamente por la asignación del tipo de driver: si tienes definido un tipo para el eje Z2, es como si en las anteriores versiones hubieses asignado al parámetro NUM_Z_STEPPER_DRIVERS el valor 2.
Si quieres evitar ese mensaje, solo tienes que colocar la siguiente línea (que pongo en verde) en uno de los dos archivos de configuración de Marlin, por ejemplo al comienzo del Configuration.h:

...
*
* You should have received a copy of the GNU General Public License
* along with this program.  If not, see <https://www.gnu.org/licenses/>.
*
*/
#pragma once

#define NO_AUTO_ASSIGN_WARNING

/**
* Configuration.h
*
* Basic settings such as:
*
...


Pero, como digo, no tiene ninguna influencia en la compilación y en el funcionamiento posterior del firmware.

ok, perfecto. Pues en cuanto me llegue y lo tenga todo en plan, comento!

una duda mas, no encuentro la opcion para nivelar en las 4 esquinas #define LEVEL_BED_CORNERS
  Responder
#27
Otro parámetro que ha cambiado de nombre: ahora se denomina LCD_BED_TRAMMING.
  Responder
#28
(03-07-2022, 08:14 PM)Simemart escribió: Otro parámetro que ha cambiado de nombre: ahora se denomina LCD_BED_TRAMMING.

gracias!, creo que lo tengo todo, la placa me llegó esta mañana, a ver si lo puedo montar entre hoy y mañana y a ver que me toca modificar de marlin!

[Imagen: firm.jpg]
  Responder
#29
(03-07-2022, 08:14 PM)Simemart escribió: Otro parámetro que ha cambiado de nombre: ahora se denomina LCD_BED_TRAMMING.

vale, montada, funcionando y primer problema......el eje X solo funciona de la mitad, hacia la derecha ( mirandola de frente ) y el home de X en vez de hacerlo hacia la izquierda, lo hace hacia la derecha. Algo parecido hace con el eje Y, funciona de la mitad, hacia adelante
  Responder
#30
Antes de realizar el home, los ejes solo se mueven en la parte correspondiente a la dirección positiva desde el punto donde se encuentre el cabezal de impresión.
Lo primero que debes comprobar es que los ejes se muevan en las direcciones correctas y si alguno no lo hace, debes cambiar el valor del parámetro INVERT_*_DIR: si está a false, poner true y viceversa.
Después debes comprobar que funcionen bien los finales de carrera: para ello, debes enviar el comando gcode M119, teniendo todos sin pulsar y con uno pulsado cada vez: cuando están sin pulsar debe responder open y cuando está pulsado TRIGGERED.
Si tienes los finales de carrera en las posiciones habituales de la Anet A8 (X a la izquierda, Y al fondo), debes configurar Marlin así:

...
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
...
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
...
  Responder
#31
(04-07-2022, 09:21 PM)Simemart escribió: Antes de realizar el home, los ejes solo se mueven en la parte correspondiente a la dirección positiva desde el punto donde se encuentre el cabezal de impresión.
Lo primero que debes comprobar es que los ejes se muevan en las direcciones correctas y si alguno no lo hace, debes cambiar el valor del parámetro INVERT_*_DIR: si está a false, poner true y viceversa.
Después debes comprobar que funcionen bien los finales de carrera: para ello, debes enviar el comando gcode M119, teniendo todos sin pulsar y con uno pulsado cada vez: cuando están sin pulsar debe responder open y cuando está pulsado TRIGGERED.
Si tienes los finales de carrera en las posiciones habituales de la Anet A8 (X a la izquierda, Y al fondo), debes configurar Marlin así:

...
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
...
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
...

En invert lo tengo como en la 1.4.
X en false, Y en false, y Z en true.

No tengo finales de carrera, eso se llamaba...StallGuard ???
  Responder
#32
Vale, en ese caso hay mucho más que configurar para que funcionen correctamente los finales de carrera, aunque te anticipo que StallGuard es un sistema muy ingenioso pero poco práctico: para lo poco que se utilizan los finales de carrera, no trae cuenta complicarse la vida por quitar unos cuantos cables.
Lo primero que debes comprobar es que tengas bien configurada la placa, colocando los pequeños puentes que conectan el pin DIAG de los TMC con el final de carrera del eje correspondiente (supongo que lo tendrás solo en X e Y).
Todo lo indicado en la respuesta anterior es válido y además hay que configurar en Marlin lo relaccionado con el sensorless (supondré que StallGuard solo está habilitado en X e Y y que tienes drivers TMC2209).

En el archivo Configuration.h:

#define X_MIN_ENDSTOP_INVERTING false
#define Y_MIN_ENDSTOP_INVERTING false

En el archivo [b]Configuration_adv.h
:

#define SENSORLESS_BACKOFF_MM  { 2, 2, 0 }
#define HOMING_BUMP_MM      { 0, 0, 2 }
#define SENSORLESS_HOMING
#define X_STALL_SENSITIVITY  127
//#define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY
#define Y_STALL_SENSITIVITY  127
//#define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY
#define IMPROVE_HOMING_RELIABILITY


La configuración de la sensibilidad de StallGuard es lo más importante en esta función y para los TMC2209, varía entre 0 y 255: para ajustar el valor correcto, lo mejor es poner inicialmente un valor medio (127 en este caso) y después ir bajando sensibilidad (pues seguramente con él dará falsos positivos) hasta conseguir que funcione de forma correcta y no golpée con mucha fuerza en el tope.
  Responder
#33
(05-07-2022, 11:08 AM)Simemart escribió: Vale, en ese caso hay mucho más que configurar para que funcionen correctamente los finales de carrera, aunque te anticipo que StallGuard es un sistema muy ingenioso pero poco práctico: para lo poco que se utilizan los finales de carrera, no trae cuenta complicarse la vida por quitar unos cuantos cables.
Lo primero que debes comprobar es que tengas bien configurada la placa, colocando los pequeños puentes que conectan el pin DIAG de los TMC con el final de carrera del eje correspondiente (supongo que lo tendrás solo en X e Y).
Todo lo indicado en la respuesta anterior es válido y además hay que configurar en Marlin lo relaccionado con el sensorless (supondré que StallGuard solo está habilitado en X e Y y que tienes drivers TMC2209).

En el archivo Configuration.h:

#define X_MIN_ENDSTOP_INVERTING false
#define Y_MIN_ENDSTOP_INVERTING false

En el archivo [b]Configuration_adv.h
:

#define SENSORLESS_BACKOFF_MM  { 2, 2, 0 }
#define HOMING_BUMP_MM      { 0, 0, 2 }
#define SENSORLESS_HOMING
#define X_STALL_SENSITIVITY  127
//#define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY
#define Y_STALL_SENSITIVITY  127
//#define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY
#define IMPROVE_HOMING_RELIABILITY


La configuración de la sensibilidad de StallGuard es lo más importante en esta función y para los TMC2209, varía entre 0 y 255: para ajustar el valor correcto, lo mejor es poner inicialmente un valor medio (127 en este caso) y después ir bajando sensibilidad (pues seguramente con él dará falsos positivos) hasta conseguir que funcione de forma correcta y no golpée con mucha fuerza en el tope.
[/b]

Si, tengo unos TMC2209 y para Z tengo el BLtouch

ostras pues no tengo bien los pines para el stallguard..en la 1.4 no hacia falta hacer nada, pero en esta, se ve que tengo que hacer puente en estos pines..no?

[Imagen: wqqwwq.jpg]

debo mantener igualmente los pines en modo uart?

[Imagen: fgdfdgfg.jpg]

el resto de opciones modificadas ya!
  Responder
#34
Sí, debes poner los puentes pequeños en los zócalos de X e Y; los puentes de UART son idependientes de los del StallGuard y debes ponerlos en los zócalos de los drivers que controles por UART, idependientemente de que tengan sensorless activado o no.
  Responder
#35
(05-07-2022, 01:50 PM)Simemart escribió: Sí, debes poner los puentes pequeños en los zócalos de X e Y; los puentes de UART son idependientes de los del StallGuard y debes ponerlos en los zócalos de los drivers que controles por UART, idependientemente de que tengan sensorless activado o no.

OK!!

otra duda, esta placa trae 3 conectores para conctrolar ventiladores, en marlin ¿ como puedo hacer para que el del hotend y el del motor se enciendan por ejemplo solo cuando esta imprimiendo ?
  Responder
#36
Lo normal es configurar el ventilador que refrigera el cuerpo del extrusor, para que se encienda cuando este llegue a una temperatura determinada.
Como indicas, la placa BTT SKR 2 lleva tres conectores de ventiladores, rotulados como FAN0, FAN1 y FAN2, todo ellos conectados a un pin de la MCU: el FAN0 al PB7, el FAN1 al PB6 y el FAN2 al PB5.
Marlin trae por defecto asignado al ventilador de capa el FAN0, quedando los otros dos libres para utilizarlos como quieras: si pones el ventilador del cuerpo del extrusor en el FAN1, para que comience a funcionar a una temperatura del hotend igual o superior a 50 ºC y a su máxima velocidad, solo hay que configurar las siguientes líneas en el archivo Configuration_adv.h:

...
#define E0_AUTO_FAN_PIN  PB6
...
#define EXTRUDER_AUTO_FAN_TEMPERATURE  50
#define EXTRUDER_AUTO_FAN_SPEED  255  // 255 == full speed
...


Para hacer que un ventilador funcione solo cuando se imprime (no sé bien a que ventilador te refieres con el del motor), puede configurarse para que lo haga cuando se activen los drivers, para lo que hay que definir el parámetro USE_CONTROLLER_FAN: en este caso, se pueden configurar más opciones que permiten un control preciso de su funcionamiento.
En tu caso, tendrías que conectar ese ventilador que indicas del motor en el FAN2, y configurar así las siguientes líneas del archivo Configuration_adv.h:

...
#define USE_CONTROLLER_FAN
...
#define CONTROLLER_FAN_PIN  PB5
...


y configurar, en su caso, los demás parámetros de ese apartado como quieras que se comporte el ventilador.
  Responder
#37
(05-07-2022, 03:59 PM)Simemart escribió: Lo normal es configurar el ventilador que refrigera el cuerpo del extrusor, para que se encienda cuando este llegue a una temperatura determinada.
Como indicas, la placa BTT SKR 2 lleva tres conectores de ventiladores, rotulados como FAN0, FAN1 y FAN2, todo ellos conectados a un pin de la MCU: el FAN0 al PB7, el FAN1 al PB6 y el FAN2 al PB5.
Marlin trae por defecto asignado al ventilador de capa el FAN0, quedando los otros dos libres para utilizarlos como quieras: si pones el ventilador del cuerpo del extrusor en el FAN1, para que comience a funcionar a una temperatura del hotend igual o superior a 50 ºC y a su máxima velocidad, solo hay que configurar las siguientes líneas en el archivo Configuration_adv.h:

...
#define E0_AUTO_FAN_PIN  PB6
...
#define EXTRUDER_AUTO_FAN_TEMPERATURE  50
#define EXTRUDER_AUTO_FAN_SPEED  255  // 255 == full speed
...


Para hacer que un ventilador funcione solo cuando se imprime (no sé bien a que ventilador te refieres con el del motor), puede configurarse para que lo haga cuando se activen los drivers, para lo que hay que definir el parámetro USE_CONTROLLER_FAN: en este caso, se pueden configurar más opciones que permiten un control preciso de su funcionamiento.
En tu caso, tendrías que conectar ese ventilador que indicas del motor en el FAN2, y configurar así las siguientes líneas del archivo Configuration_adv.h:

...
#define USE_CONTROLLER_FAN
...
#define CONTROLLER_FAN_PIN  PB5
...


y configurar, en su caso, los demás parámetros de ese apartado como quieras que se comporte el ventilador.

ok, perfecto! me referia al ventilador del motor del extrusor. Me imagino que funcionando solo mientras imprime, está bien, si no..es un coñazo todo el rato encendido.
El del hotend a partir de 50 grados estaria bien.

Bueno el tema de los movimientos parece resuelto, pero tengo otro problema, que ya en su dia me costó mucho con la 1.4 y nunca me llegó a quedar bien del todo.
El asunto es...me hace home mas o menos en el centro, pero al nivelar cama, lo hace muy a la derecha, tanto que en el punto del extremo derecho el bltouch queda fuera de la cama
Otro problema es que antes en modo marlin tenia la opcion de guardar los cambios en la eeprom..ahora no tengo la opcion por ningun sitio con lo que no puedo guardar cambios, y desde la tft tactil, antes mandaba el comando M500 para guardar y funcionaba bien, ahora ,me da error. Desconozco si es una opcion para activar en marlin.,
  Responder
#38
Con el problema del posicionamiento para la nivelación de la cama, ¿te refieres a la función Level Corners, ahora llamada Tramming o al autolevel?.
Si tienes activado el Z Safe Homing y configurado que lo haga en el centro de la cama, debería colocar el sensor exactamente en ese punto, ni más ni menos: si no es así, es que no está bien configurada el área de impresión o los offsets del BL-Touch: dado que tienes activado el sensorless para el homing de X e Y, quizá no tengas bien definida el área de impresión en función de donde se activa el final de carrera.
Efectivamente, existe un parámetro en Marlin que activa el uso de la memoria EEPROM: es EEPROM_SETTINGS y se encuentra en el archivo Configuration.h.
La MCU STM32F4, que integra la placa BTT SKR 2, no tiene memoria EEPROM, pero permite realizar una emulación utilizando una memoria SRAM no volatil específica de 4 KiB que incorpora o bien parte de su memoria flash: en esa placa, si se activa el uso de la EEPROM, Marlin utiliza por defecto la memoria flash, aunque puede cambiarse si se desea (en el archivo pins_BTT_SKR_V2_0_common.h); si no se define ninguna de las dos opciones de la MCU, Marlin utilizará la tarjeta SD para hacer la emulación (si hay una disponible).
  Responder
#39
(05-07-2022, 09:04 PM)Simemart escribió: Con el problema del posicionamiento para la nivelación de la cama, ¿te refieres a la función Level Corners, ahora llamada Tramming o al autolevel?.
Si tienes activado el Z Safe Homing y configurado que lo haga en el centro de la cama, debería colocar el sensor exactamente en ese punto, ni más ni menos: si no es así, es que no está bien configurada el área de impresión o los offsets del BL-Touch: dado que tienes activado el sensorless para el homing de X e Y, quizá no tengas bien definida el área de impresión en función de donde se activa el final de carrera.
Efectivamente, existe un parámetro en Marlin que activa el uso de la memoria EEPROM: es EEPROM_SETTINGS y se encuentra en el archivo Configuration.h.
La MCU STM32F4, que integra la placa BTT SKR 2, no tiene memoria EEPROM, pero permite realizar una emulación utilizando una memoria SRAM no volatil específica de 4 KiB que incorpora o bien parte de su memoria flash: en esa placa, si se activa el uso de la EEPROM, Marlin utiliza por defecto la memoria flash, aunque puede cambiarse si se desea (en el archivo pins_BTT_SKR_V2_0_common.h); si no se define ninguna de las dos opciones de la MCU, Marlin utilizará la tarjeta SD para hacer la emulación (si hay una disponible).

Tengo activado el Z Safe Homing para que lo haga en el centro, y en el centro queda el BLTouch, no la boquilla, no se si eso es correcto.
Cuado le doy a que la boquilla se desplace por las 4 esquinas para nivelar con un folio, queda mas o menos bien, pero cuando le doy a nivelar cama ( lo de los 9 puntos con el bltouch ) automaticamente ahi es donde esa desfasado.

Lo de la eeprom..si lo activo, guardara los cambios ?
  Responder
#40
Sí, cuando se tiene sensor es este el que debe quedar en el centro de la cama.
Es raro que haga el home del eje Z bien centrado, pero que no tenga centrada la rejilla de mediciones del autolevel, pues la ajusta Marlin de forma automática con solo definir el parámetro PROBING_MARGIN.
Para comprobar el área de impresión, debes hacer un home solo de X e Y y mover el cabezal de impresión a X=0 Y=0 (si no queda en él): el punto justo debajo del centro de la boquilla es el origen del área de impresión.
El punto contrario en ambos ejes, situado a la distancia X_MAX_POS en X e Y_MAX_POS en Y, es el vértice opuesto del rectángulo que contiene el área de impresión.
Si activas la EEPROM, descomentando la línea del parámetro EEPROM_SETTINGS, tendrás habilitados los comandos que la controlan (M500 y M501) y te debería guardar los cambios.
Cuando cargues el firmware con la EEPROM activada, si no te sale el mensaje de refrescarla, utiliza las opciones del menú Configuración>Rest. fábrica y depués Configuración>Guardar EEPROM o envía los comandos M502 y M500.
  Responder