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
CONSULTA Hephestos 2 firmware
#21
Vamos entonces con ello.
Hay que descargar la versión 2.0.x-bugfix de Marlin y descomprimir el archivo zip.
A continuación, indico las modificaciones que hay que realizar a los archivos de configuración que vienen en la carpeta Marlin, suponiendo que la impresora está como salió de fábrica (sin cama caliente y con sensor), indicando las líneas que hay que cambiar en los dos archivos de configuración de esta forma: como está  ->  como debe quedar.

Configuration.h

#define MOTHERBOARD BOARD_RAMPS_14_EFB  ->  #define MOTHERBOARD BOARD_BQ_ZUM_MEGA_3D
#define BAUDRATE 250000  ->  #define BAUDRATE 115200
//#define CUSTOM_MACHINE_NAME "3D Printer"  ->  #define CUSTOM_MACHINE_NAME "BQ Hephestos 2"
#define TEMP_SENSOR_0 1  ->  #define TEMP_SENSOR_0 70
#define HEATER_0_MAXTEMP 275  ->  #define HEATER_0_MAXTEMP 250
#define X_MIN_ENDSTOP_INVERTING false  ->  #define X_MIN_ENDSTOP_INVERTING true
#define Y_MIN_ENDSTOP_INVERTING false  ->  #define Y_MIN_ENDSTOP_INVERTING true
#define X_DRIVER_TYPE  A4988  ->  #define X_DRIVER_TYPE DRV8825
#define Y_DRIVER_TYPE  A4988  ->  #define Y_DRIVER_TYPE DRV8825
#define Z_DRIVER_TYPE  A4988  ->  #define Z_DRIVER_TYPE DRV8825
#define E0_DRIVER_TYPE A4988  ->  #define E0_DRIVER_TYPE DRV8825
#define DEFAULT_AXIS_STEPS_PER_UNIT  { 80, 80, 400, 500 }  ->  #define DEFAULT_AXIS_STEPS_PER_UNIT  {160, 160, 8000, 210.02}
#define DEFAULT_MAX_FEEDRATE  { 300, 300, 5, 25 }  ->  #define DEFAULT_MAX_FEEDRATE  { 100, 100, 3, 25 }
#define DEFAULT_MAX_ACCELERATION  { 3000, 3000, 100, 10000 }  ->  #define DEFAULT_MAX_ACCELERATION  { 1000, 1000, 100, 3000 }
#define DEFAULT_ACCELERATION  3000  ->  #define DEFAULT_ACCELERATION  650
#define DEFAULT_RETRACT_ACCELERATION  3000  ->  #define DEFAULT_RETRACT_ACCELERATION  1000
#define DEFAULT_TRAVEL_ACCELERATION  3000  ->  #define DEFAULT_TRAVEL_ACCELERATION  1000
#define JUNCTION_DEVIATION_MM 0.013  ->  #define JUNCTION_DEVIATION_MM 0.062
//#define S_CURVE_ACCELERATION  ->  #define S_CURVE_ACCELERATION
//#define FIX_MOUNTED_PROBE  ->  #define FIX_MOUNTED_PROBE
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }  ->  #define NOZZLE_TO_PROBE_OFFSET { -34.4, -14.75, 0 }
#define XY_PROBE_FEEDRATE (133*60)  ->  #define XY_PROBE_FEEDRATE (50*60)
#define Z_PROBE_FEEDRATE_FAST (4*60)  ->  #define Z_PROBE_FEEDRATE_FAST (3*60)
//#define MULTIPLE_PROBING 2  ->  #define MULTIPLE_PROBING 2
#define INVERT_X_DIR  false  ->  #define INVERT_X_DIR  true
#define INVERT_Y_DIR  true  ->  #define INVERT_Y_DIR  true
#define INVERT_Z_DIR  false  ->  #define INVERT_Z_DIR  true
#define INVERT_E0_DIR  false  ->  #define INVERT_E0_DIR  true
#define X_BED_SIZE 200  ->  #define X_BED_SIZE  210
#define Y_BED_SIZE 200  ->  #define Y_BED_SIZE  297
#define Z_MAX_POS 200  ->  #define Z_MAX_POS 220
//#define AUTO_BED_LEVELING_BILINEAR  ->  #define AUTO_BED_LEVELING_BILINEAR
//#define RESTORE_LEVELING_AFTER_G28  ->  #define RESTORE_LEVELING_AFTER_G28
//#define LEVEL_BED_CORNERS  ->  #define LEVEL_BED_CORNERS
//#define Z_SAFE_HOMING  ->  #define Z_SAFE_HOMING
#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) }  ->  #define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (3*60) }
//#define EEPROM_SETTINGS  ->  #define EEPROM_SETTINGS
//#define NOZZLE_PARK_FEATURE  ->  #define NOZZLE_PARK_FEATURE
  #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }  ->    #define NOZZLE_PARK_POINT { (X_MIN_POS + 20), (Y_MAX_POS - 20), 20 }
#define NOZZLE_PARK_XY_FEEDRATE 100  ->  #define NOZZLE_PARK_XY_FEEDRATE 50
#define NOZZLE_PARK_Z_FEEDRATE  5  ->    #define NOZZLE_PARK_Z_FEEDRATE    3
#define LCD_LANGUAGE en  ->  #define LCD_LANGUAGE es
//#define SDSUPPORT  ->  #define SDSUPPORT
//#define ENCODER_PULSES_PER_STEP 4  ->  #define ENCODER_PULSES_PER_STEP 1
//#define ENCODER_STEPS_PER_MENU_ITEM 1  ->  #define ENCODER_STEPS_PER_MENU_ITEM 5
//#define BQ_LCD_SMART_CONTROLLER  ->  #define BQ_LCD_SMART_CONTROLLER



Configuration_adv.h

//#define ADAPTIVE_STEP_SMOOTHING  ->  #define ADAPTIVE_STEP_SMOOTHING
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 }  ->  #define DIGIPOT_MOTOR_CURRENT {150, 170, 180, 190, 180}
#define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 }  ->  #define MANUAL_FEEDRATE { 50*60, 50*60, 3*60, 2*60 }
#define ARC_SUPPORT  ->  //#define ARC_SUPPORT


Un par de consideraciones sobre esos cambios: para los valores de los parámetros que ya existían en versiones anteriores de Marlin, he utilizado los que tiene configurados BQ en el firmware para la Hephestos 2, que puede obtenerse en su Github, excepto para algunos valores  en los que creo que BQ es demasiado optimista (velocidades y aceleraciones); para los que no existían, he configurado las opciones que creo son más apropiadas y recomendables.
Hechos esos cambios, ya se puede compilar y subir a la placa.
Para la compilación habrá que utilizar PlatformIO en Visual Studio Code: se descarga e instala VSC y dentro de él, se instalan las extensiones PlatformIO y Auto Build Marlin.
Para la compilación, se abre en VSC la carpeta Marlin-bugfix-2.0.x, se pincha en el icono del Auto Build Marlin y se selecciona Show ABM panel.
Teniendo la impresora conectada por USB y encendida, se pulsa en la opción Upload del entorno de la placa (mega2560ext).
Dará un error debido a que aún no está creada la carpeta de compilación para el entorno: solo hay que volver a pulsar Upload y ya debería compilar sin errores y subir el firmware a la placa (al terminar la carga, hay que inicializar la EEPROM).
Una vez se tenga el firmware instalado en la placa, habrá que regular el Z Probe Offset y calibrar tanto el PID como la extrusión.

P.S.: Para los que necesiten el firmware con cama caliente y sin sensor, estás son las modificaciones a realizar sobre lo indicado anteriormente, todas en el archivo Configuration.h:

#define TEMP_SENSOR_BED 0  ->  #define TEMP_SENSOR_BED 1
#define Z_MIN_ENDSTOP_INVERTING false  ->  #define Z_MIN_ENDSTOP_INVERTING true
#define FIX_MOUNTED_PROBE  ->  //#define FIX_MOUNTED_PROBE
#define AUTO_BED_LEVELING_BILINEAR  ->  //#define AUTO_BED_LEVELING_BILINEAR


Si no se quiere mantener el home del eje Z en el centro de la cama, hay que realizar la siguiente modificación:

#define Z_SAFE_HOMING  ->  //#define Z_SAFE_HOMING
  Responder
#22
(15-03-2022, 10:59 PM)Macuho escribió: Con el firmware que tiene la impresora te funciona bien todo?

Hola Macuho.

Funciona bien, pero llevo tiempo queriendo actualizarlo a una versión más reciente y de paso aprender a modificarlo y compilarlo, que es algo que tenia pendiente desde hace mucho tiempo.

Gracias por responder.

(16-03-2022, 01:10 AM)Simemart escribió: Vamos entonces con ello.
Hay que descargar la versión 2.0.x-bugfix de Marlin y descomprimir el archivo zip.
A continuación, indico las modificaciones que hay que realizar a los archivos de configuración que vienen en la carpeta Marlin, suponiendo que la impresora está como salió de fábrica (sin cama caliente y con sensor), indicando las líneas que hay que cambiar en los dos archivos de configuración de esta forma: como está  ->  como debe quedar.

Configuration.h

#define MOTHERBOARD BOARD_RAMPS_14_EFB  ->  #define MOTHERBOARD BOARD_BQ_ZUM_MEGA_3D
#define BAUDRATE 250000  ->  #define BAUDRATE 115200
//#define CUSTOM_MACHINE_NAME "3D Printer"  ->  #define CUSTOM_MACHINE_NAME "BQ Hephestos 2"
#define TEMP_SENSOR_0 1  ->  #define TEMP_SENSOR_0 70
#define HEATER_0_MAXTEMP 275  ->  #define HEATER_0_MAXTEMP 250
#define X_MIN_ENDSTOP_INVERTING false  ->  #define X_MIN_ENDSTOP_INVERTING true
#define Y_MIN_ENDSTOP_INVERTING false  ->  #define Y_MIN_ENDSTOP_INVERTING true
#define X_DRIVER_TYPE  A4988  ->  #define X_DRIVER_TYPE DRV8825
#define Y_DRIVER_TYPE  A4988  ->  #define Y_DRIVER_TYPE DRV8825
#define Z_DRIVER_TYPE  A4988  ->  #define Z_DRIVER_TYPE DRV8825
#define E0_DRIVER_TYPE A4988  ->  #define E0_DRIVER_TYPE DRV8825
#define DEFAULT_AXIS_STEPS_PER_UNIT  { 80, 80, 400, 500 }  ->  #define DEFAULT_AXIS_STEPS_PER_UNIT  {160, 160, 8000, 210.02}
#define DEFAULT_MAX_FEEDRATE  { 300, 300, 5, 25 }  ->  #define DEFAULT_MAX_FEEDRATE  { 100, 100, 3, 25 }
#define DEFAULT_MAX_ACCELERATION  { 3000, 3000, 100, 10000 }  ->  #define DEFAULT_MAX_ACCELERATION  { 1000, 1000, 100, 3000 }
#define DEFAULT_ACCELERATION  3000  ->  #define DEFAULT_ACCELERATION  650
#define DEFAULT_RETRACT_ACCELERATION  3000  ->  #define DEFAULT_RETRACT_ACCELERATION  1000
#define DEFAULT_TRAVEL_ACCELERATION  3000  ->  #define DEFAULT_TRAVEL_ACCELERATION  1000
#define JUNCTION_DEVIATION_MM 0.013  ->  #define JUNCTION_DEVIATION_MM 0.062
//#define S_CURVE_ACCELERATION  ->  #define S_CURVE_ACCELERATION
//#define FIX_MOUNTED_PROBE  ->  #define FIX_MOUNTED_PROBE
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }  ->  #define NOZZLE_TO_PROBE_OFFSET { -34.4, -14.75, 0 }
#define XY_PROBE_FEEDRATE (133*60)  ->  #define XY_PROBE_FEEDRATE (50*60)
#define Z_PROBE_FEEDRATE_FAST (4*60)  ->  #define Z_PROBE_FEEDRATE_FAST (3*60)
//#define MULTIPLE_PROBING 2  ->  #define MULTIPLE_PROBING 2
#define INVERT_X_DIR  false  ->  #define INVERT_X_DIR  true
#define INVERT_Y_DIR  true  ->  #define INVERT_Y_DIR  true
#define INVERT_Z_DIR  false  ->  #define INVERT_Z_DIR  true
#define INVERT_E0_DIR  false  ->  #define INVERT_E0_DIR  true
#define X_BED_SIZE 200  ->  #define X_BED_SIZE  210
#define Y_BED_SIZE 200  ->  #define Y_BED_SIZE  297
#define Z_MAX_POS 200  ->  #define Z_MAX_POS 220
//#define AUTO_BED_LEVELING_BILINEAR  ->  #define AUTO_BED_LEVELING_BILINEAR
//#define RESTORE_LEVELING_AFTER_G28  ->  #define RESTORE_LEVELING_AFTER_G28
//#define LEVEL_BED_CORNERS  ->  #define LEVEL_BED_CORNERS
//#define Z_SAFE_HOMING  ->  #define Z_SAFE_HOMING
#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) }  ->  #define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (3*60) }
//#define EEPROM_SETTINGS  ->  #define EEPROM_SETTINGS
//#define NOZZLE_PARK_FEATURE  ->  #define NOZZLE_PARK_FEATURE
  #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }  ->    #define NOZZLE_PARK_POINT { (X_MIN_POS + 20), (Y_MAX_POS - 20), 20 }
#define NOZZLE_PARK_XY_FEEDRATE 100  ->  #define NOZZLE_PARK_XY_FEEDRATE 50
#define NOZZLE_PARK_Z_FEEDRATE  5  ->    #define NOZZLE_PARK_Z_FEEDRATE    3
#define LCD_LANGUAGE en  ->  #define LCD_LANGUAGE es
//#define SDSUPPORT  ->  #define SDSUPPORT
//#define ENCODER_PULSES_PER_STEP 4  ->  #define ENCODER_PULSES_PER_STEP 1
//#define ENCODER_STEPS_PER_MENU_ITEM 1  ->  #define ENCODER_STEPS_PER_MENU_ITEM 5
//#define BQ_LCD_SMART_CONTROLLER  ->  #define BQ_LCD_SMART_CONTROLLER



Configuration_adv.h

//#define ADAPTIVE_STEP_SMOOTHING  ->  #define ADAPTIVE_STEP_SMOOTHING
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 }  ->  #define DIGIPOT_MOTOR_CURRENT {150, 170, 180, 190, 180}
#define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 }  ->  #define MANUAL_FEEDRATE { 50*60, 50*60, 3*60, 2*60 }
#define ARC_SUPPORT  ->  //#define ARC_SUPPORT


Un par de consideraciones sobre esos cambios: para los valores de los parámetros que ya existían en versiones anteriores de Marlin, he utilizado los que tiene configurados BQ en el firmware para la Hephestos 2, que puede obtenerse en su Github, excepto para algunos valores  en los que creo que BQ es demasiado optimista (velocidades y aceleraciones); para los que no existían, he configurado las opciones que creo son más apropiadas y recomendables.
Hechos esos cambios, ya se puede compilar y subir a la placa.
Para la compilación habrá que utilizar PlatformIO en Visual Studio Code: se descarga e instala VSC y dentro de él, se instalan las extensiones PlatformIO y Auto Build Marlin.
Para la compilación, se abre en VSC la carpeta Marlin-bugfix-2.0.x, se pincha en el icono del Auto Build Marlin y se selecciona Show ABM panel.
Teniendo la impresora conectada por USB y encendida, se pulsa en la opción Upload del entorno de la placa (mega2560ext).
Dará un error debido a que aún no está creada la carpeta de compilación para el entorno: solo hay que volver a pulsar Upload y ya debería compilar sin errores y subir el firmware a la placa (al terminar la carga, hay que inicializar la EEPROM).
Una vez se tenga el firmware instalado en la placa, habrá que regular el Z Probe Offset y calibrar tanto el PID como la extrusión.

P.S.: Para los que necesiten el firmware con cama caliente y sin sensor, estás son las modificaciones a realizar sobre lo indicado anteriormente, todas en el archivo Configuration.h:

#define TEMP_SENSOR_BED 0  ->  #define TEMP_SENSOR_BED 1
#define Z_MIN_ENDSTOP_INVERTING false  ->  #define Z_MIN_ENDSTOP_INVERTING true
#define FIX_MOUNTED_PROBE  ->  //#define FIX_MOUNTED_PROBE
#define AUTO_BED_LEVELING_BILINEAR  ->  //#define AUTO_BED_LEVELING_BILINEAR


Si no se quiere mantener el home del eje Z en el centro de la cama, hay que realizar la siguiente modificación:

#define Z_SAFE_HOMING  ->  //#define Z_SAFE_HOMING

Hola de nuevo Simemart.

Muchisimas gracias por tu respuesta, un gran trabajo con una explicación clara y concisa que te habra llevado tu tiempo preparar. Tengo información para entretenerme.

Después de leerlo, creo tenerlo todo claro, repasaré bien todos los pasos para no cometer errores y haber que tal me va.

Voy a leer un Tema (Power_loss_Recovery en marlin 1.1.9) que teneis también por ahí referente al Power loss recovery que me gustaria activarlo, le instalé hace algún tiempo un mini SAI/UPS y quería activarlo con la opción del pin indicador.

Iré comentando los resultados.

Saludos.
  Responder
#23
Buenas tardes Simemart.

He seguido todos los pasos y he compilado y subido firmware a la impresora, todo bien.

He modificado esta linea poque sino no me hacia centrado el homing.
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }  ->  #define NOZZLE_TO_PROBE_OFFSET { -34.4, -14.75, 0 } _> #define NOZZLE_TO_PROBE_OFFSET { 34.4, 14.75, 0 }

Pero tengo un problema que no se solucionar, no funciona el ventilador del extrusor, caliento  en nozzle y deberia de empezar a funcionar a los 50º pero no funciona.
A traves del LCD puedo encender el ventilador 1 pero el que se enciende es el ventilador de capa, si le doy al ventilador 2, no hace nada.

Te agradecería un poco de ayuda, gracias.

Saludos.
  Responder
#24
Pues sí, los offsets del sensor tienen que ser los dos positivos: me confundieron los valores que tiene BQ configurados, que debe de utilizarlos con los signos cambiados.
Si no te funciona bien el ventilador del extrusor, seguramente sea porque no lo has conectado en el conector que le corresponde: el ventilador de capa va en E0FAN y el del extrusor en E0FAN2.
Efectivamente, el ventilador del extrusor debe encender cuando el hotend alzance los 50 ºC de temperatura.
  Responder
#25
El ventilador 1 de la pantalla corresponde al ventilador de capa, si el ventilador que enfría el disipador del hotend no se enciende pasados los 50 grados es porque no lo has configurado en el archivo Configuration_adv.h

(17-03-2022, 10:08 PM)Simemart escribió: Pues sí, los offsets del sensor tienen que ser los dos positivos: me confundieron los valores que tiene BQ configurados, que debe de utilizarlos con los signos cambiados.
Si no te funciona bien el ventilador del extrusor, seguramente sea porque no lo has conectado en el conector que le corresponde: el ventilador de capa va en E0FAN y el del extrusor en E0FAN2.
Efectivamente, el ventilador del extrusor debe encender cuando el hotend alzance los 50 ºC de temperatura.
No es tan fácil en la placa de BQ, viene un conector cuadrado para los 2 ventiladores, solo ese conector y faltan algunos pines que no están soldados, no se el porqué de querer ahorrarse esos pines
  Responder
#26
Para esta placa no es necesario configurar el encendido automático del ventilador del extrusor en el archivo Configuration_adv.h, pues lo hace en su archivo de pines.
No tengo esa placa a mano para comprobar si los conectores tienen todos sus pines soldados o no, solo sé lo que indica BQ en el esquema y lo que veo en las fotos de la misma: en principio hay dos conectores de ventiladores, uno con dos puertos y otro con tres, rotulados E0FAN, E0FAN2, E1FAN, E1FAN2 y AUXFAN.
Según el esquema, el control del mosfet del E0FAN va conectado al pin 12, asignado en el archivo de pines al ventilador de capa; el del E0FAN2 va conectado al pin 11, asignado al ventilador del extrusor; el del E1FAN va conectado al pin 7, sin uso; el del E1FAN2 va conectado al pin 6, sin uso y el del AUXFAN no está del todo claro, pero creo que va conectado al pin 2, sin uso.
  Responder
#27
[Imagen: IMG-20220318-144637.jpg]
Te dejo la captura de la que llevaba la mía

Los ventiladores tanto de capa como el del hotend van entre los 2 conectores verdes, E0FAN y EOFAN2

Que compruebe que el ventilador funcione bien, que esté bien conectado y que no se haya partido el cable dentro de la cadeneta, curva encima del carro del extrusor, que es uno de sus talones de Aquiles, se parten los cables con mucha facilidad
  Responder
#28
Con toda la información que me habeis dado, he estado repasandolo todo.

El caso es que el ventilador hasta el día instalar en nuevo firmware habia funcionado bien, así he descartado problemas del cable y de conexiones, porque no las he tocado.

Me he centrado más en lo que comentaba Macuho que debería ser un problema del firmware, así que he repasado algunos archivos Configuration_adv.h que tengo y he realizado el siguiente cambio.

#define E0_AUTO_FAN_PIN -1 => //#define E0_AUTO_FAN_PIN -1
#define E1_AUTO_FAN_PIN -1 => //#define E1_AUTO_FAN_PIN -1

Después de estos cambios he vuelto a compilar y se ha resuelto el problema, vuelve a funcionar el ventilador del extrusor normalmente.

Estais consiguien entre los dos que aprenda, gracias.

Ahora voy a seguir, echo en falta algunas ópciones en el menu, como por el ejemplo la opción de cargar y descargar filamento y la opcion BABYSTEPPING. Algunas ya las he encontrado, como hacer home en cada eje individualmente,
  Responder
#29
Efectivamente, se me pasó por alto que en el archivo de pins se define el E0_AUTO_FAN_PIN solo si no está ya definido, por lo que hay que comentar la línea que lo define en el archivo Configuration_adv.h o bien configurar ahí el valor 11 en lugar del -1: la del E1_AUTO_FAN_PIN no es necesario comentarla, pues no hay un ventilador del segundo extrusor.
Para el cambio de filamento, tienes que activar la pausa avanzada, descomentando (quitar el // inicial) en el archivo Configuration_adv.h la línea #define ADVANCED_PAUSE_FEATURE y configurar los valores de los parámetros que sean adecuados.
Para activar el BABYSTEPPING, tienes que descomentar en el mismo archivo la línea #define BABYSTEPPING y configurar también sus parámetros de forma adecuada.
  Responder
#30
Para activar la carga y descarga de filamento, a parte de lo que te comenta Simemart, tienes que mirar que esté descomentado #define FILAMENT_LOAD_UNLOAD_GCODES y para que el carro se aparque en un cambio de filamento y no quede encima de la pieza impresa #define PARK_HEAD_ON_PAUSE
  Responder
#31
Perfecto, he introducido las nuevas modificaciones indicadas, este fin de semana voy a aprovechas para hacer algunas impresiones de prueba a ver que tal. Para ver si todo funciona bien o echo algo en falta.

Por si a alguien le sirve, comentar que aunque sigo utilizando el sensor que trae de fábrica, aparte le monté un final de carrera mecánico en el eje Z, conectado a la placa en el conector ZMIN, (el que realmente se utiliza para hacer home en Z es el sensor), regulado para se encienda el led a 0.2 mm., que la altura normal que le pongo a la primera capa en mis impresiones. Que consigo, que si al empezar una impresión el led no se enciende, se que está alto, así que puedo utilizar el BABYSTEPPING para bajar Z justamente hasta que se encienda el led y con eso sé que la impresión comienza bien. Por cierto la opción del BABYSTEPPING es ahora mucho más grafico y funciona muy bien.
  Responder
#32
Después de estar estos días entretenido modificando y subiendo firmware a mi impresora, he conseguido que funcione a mi gusto, mejorando algunos aspectos que aunque ya contaba con ellos, ahora van mucho mejor.

En primer lugar y por si alguien sigue los pasos indicados en los anteriores mensajes, he vuelto a comentar las siguientes lineas, para que el mando ruleta-pulsador vaya mejor.
//#define ENCODER_PULSES_PER_STEP 4
//#define ENCODER_STEPS_PER_MENU_ITEM 1

El ajuste del desfase de Z se regula muy bien ahora y el menú en la LCD es muy chulo.
Se puede nivelar la cama en 9 puntos y dejar guardados las diferentes mediciones, en el menú también puedes optar por utilizar la nivelación o no antes de la impresión.
Le he montado un Mini UPS 12V. y también he conseguido activar el POWER_LOSS_RECOVERY y sobre todo que funcione, utilizando el PIN 79 conectado a X_MAX. Cuando hay un corte de corriente, al volver de nuevo me da la opción de reanudar la impresión, caliente el hotend, hace un home en los ejes X é Y y comienza imprimir donde se quedo.

Mi agradecimiento a Simemart y Macuho porque sin su ayuda no lo hubiera conseguido.

Os dejo el firmware Marlin 2.0.x bugfix (2.0.9.3) compilado para la BQ Hephestos 2 sin cama caliente y con el sensor de fábrica. Por si alguien quiere probarlo.


Archivos adjuntos
.zip   firmware.zip (Tamaño: 137.3 KB / Descargas: 9)
  Responder
#33
Podrias colgar los ficheros sin compilar, me gustaria mirar tus config y añadir la cama caliente. y posteriormente grabar los pid de la cama y el extrusor. Mola
  Responder
#34
(31-03-2022, 09:48 AM)shiryu55 escribió: Podrias colgar los ficheros sin compilar, me gustaria mirar tus config y añadir la cama caliente. y posteriormente grabar los pid de la cama y el extrusor. Mola

Los archivos de la versión de Marlin que he utilizado los puedes descargar desde aquí:
GitHub - MarlinFirmware/Marlin at bugfix-2.0.x

Te adjunto los archivos de configuración que he modificado


Archivos adjuntos
.zip   Marlin.zip (Tamaño: 85.5 KB / Descargas: 16)
  Responder
#35
Gracias, anteriormente e compilado marlin para mis maquinas pero se agradece un monton el tener uno ya para comparar y ver los fallos tip¡cos.

(23-03-2022, 02:13 PM)Bermu2022 escribió: Después de estar estos días entretenido modificando y subiendo firmware a mi impresora, he conseguido que funcione a mi gusto, mejorando algunos aspectos que aunque ya contaba con ellos, ahora van mucho mejor.

En primer lugar y por si alguien sigue los pasos indicados en los anteriores mensajes, he vuelto a comentar las siguientes lineas, para que el mando ruleta-pulsador vaya mejor.
//#define ENCODER_PULSES_PER_STEP 4
//#define ENCODER_STEPS_PER_MENU_ITEM 1

El ajuste del desfase de Z se regula muy bien ahora y el menú en la LCD es muy chulo.
Se puede nivelar la cama en 9 puntos y dejar guardados las diferentes mediciones, en el menú también puedes optar por utilizar la nivelación o no antes de la impresión.
Le he montado un Mini UPS 12V. y también he conseguido activar el POWER_LOSS_RECOVERY y sobre todo que funcione, utilizando el PIN 79 conectado a X_MAX. Cuando hay un corte de corriente, al volver de nuevo me da la opción de reanudar la impresión, caliente el hotend, hace un home en los ejes X é Y y comienza imprimir donde se quedo.

Mi agradecimiento a Simemart y Macuho porque sin su ayuda no lo hubiera conseguido.

Os dejo el firmware Marlin 2.0.x bugfix (2.0.9.3) compilado para la BQ Hephestos 2 sin cama caliente y con el sensor de fábrica. Por si alguien quiere probarlo.

unas dudas:

la placa utiliza los drv8825

los parametros : teniendo en cuenta que tiene el sensor inductivo y cama caliente claro esta..

#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
yo los tengo del ejemplo del marlin en true.

#define EXTRAPOLATE_BEYOND_GRID ,, la tienes comentada
#define Z_PROBE_END_SCRIPT "G27 P0" . la tienes comentada

esto en cuanto al config, mirare el advanced

se me escapo esta linea

//#define ENDSTOP_INTERRUPTS_FEATURE,    no tengo claro por que la comentas



(31-03-2022, 11:20 AM)shiryu55 escribió: Gracias, anteriormente e compilado marlin para mis maquinas pero se agradece un monton el tener uno ya para comparar y ver los fallos tip¡cos.

(23-03-2022, 02:13 PM)Bermu2022 escribió: Después de estar estos días entretenido modificando y subiendo firmware a mi impresora, he conseguido que funcione a mi gusto, mejorando algunos aspectos que aunque ya contaba con ellos, ahora van mucho mejor.

En primer lugar y por si alguien sigue los pasos indicados en los anteriores mensajes, he vuelto a comentar las siguientes lineas, para que el mando ruleta-pulsador vaya mejor.
//#define ENCODER_PULSES_PER_STEP 4
//#define ENCODER_STEPS_PER_MENU_ITEM 1

El ajuste del desfase de Z se regula muy bien ahora y el menú en la LCD es muy chulo.
Se puede nivelar la cama en 9 puntos y dejar guardados las diferentes mediciones, en el menú también puedes optar por utilizar la nivelación o no antes de la impresión.
Le he montado un Mini UPS 12V. y también he conseguido activar el POWER_LOSS_RECOVERY y sobre todo que funcione, utilizando el PIN 79 conectado a X_MAX. Cuando hay un corte de corriente, al volver de nuevo me da la opción de reanudar la impresión, caliente el hotend, hace un home en los ejes X é Y y comienza imprimir donde se quedo.

Mi agradecimiento a Simemart y Macuho porque sin su ayuda no lo hubiera conseguido.

Os dejo el firmware Marlin 2.0.x bugfix (2.0.9.3) compilado para la BQ Hephestos 2 sin cama caliente y con el sensor de fábrica. Por si alguien quiere probarlo.

unas dudas:

la placa utiliza los drv8825

los parametros :  teniendo en cuenta que tiene el sensor inductivo y cama caliente claro esta..

#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   
yo los tengo del ejemplo del marlin en true.

#define EXTRAPOLATE_BEYOND_GRID ,, la tienes comentada
#define Z_PROBE_END_SCRIPT "G27 P0" . la tienes comentada

esto en cuanto al config,  mirare el advanced
  Responder
#36
en advanced:

//#define FAST_PWM_FAN

* Idle Stepper Shutdown
* Set DISABLE_INACTIVE_? 'true' to shut down axis steppers after an idle period.
* The Deactive Time can be overridden with M18 and M84. Set to 0 for No Timeout.
*/
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DISABLE_INACTIVE_X true --- los tengo en false
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true

// On the Info Screen, display XY with one decimal place when possible
//#define LCD_DECIMAL_SMALL_XY --- la tengo descomentada.


#define XYZ_HOLLOW_FRAME ,, esta la tienes descomentada.. no tengo ni pajolera de esta linea jjj.

con el tema de los buffe de memoria, no suelo tocarlos y me intriga si estan correctos con los del ejemplo puesto que tu los tienes diferentes.
#define BLOCK_BUFFER_SIZE 16 ---- yo tengo del ejemplo en 64

#define TX_BUFFER_SIZE 0 -----------------------------32


//#define NO_TIMEOUTS 1000 // Milliseconds

// Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary.
//#define ADVANCED_OK --- en el ejemplo estan descomentadas.
  Responder
#37
Si has leído los mensajes anteriores, veras que soy un principiante en la compilación de Marlin, con ayuda de algunos compañeros, leyendo y buscando información, he compilado esta versión para mi impresora.

Seguramente encontrara fallos y cosas que no entiendas.

Yo no te puedo ayudar con tus dudas porque no tengo los conocimientos necesarios. Seguramente hay por aquí gente que puede ayudarte mejor.

Cualquier aporte o mejora que puedas hacer sera bien recibida.
  Responder
#38
Hola, antes de pasar a las dudas, indicar que sería conveniente que no se utilizase de forma predeterminada el botón Responder para colocar mensajes, pues estos se vuelven ilegibles en cuanto se realiza esto en bucle unas pocas veces: simplemente basta con escribir el mensaje en el cuadro de texto al efecto y pulsar Enviar respuesta, pudiendose visualizar la misma con el botón Vista previa del mensaje antes de enviarla.
Sobre las dudas de configuración, voy a intentar aclararlas aunque, como siempre indico, los comentarios que tráe el código de Marlin son siempre de mucha ayuda en esta cuestión.
La configuración de la lógica de los endstops, solo se aplica a los que se hayan definido por lo que, en este caso, no sirve de nada definir la de los MAX, pues solo están definidos los MIN.
En concreto, para la placa BQ Zum Mega hay una cosa a tener en cuenta y que viene comentada en el archivo de pines de la placa (Marlin\src\pins\ramps\pins_BQ_ZUM_MEGA_3D.h) y es que BQ no utiliza para el sensor el conector del Z_MIN, sino el IND_S_5V, quedando definidos los pines de forma correcta en dicho archivo: en todo caso, teniendo sensor no hay que tocar nada y solo es necesario conectarlo correctamente en la placa.
El parámetro EXTRAPOLATE_BEYOND_GRID indica si el autolevel bilinear utilizará la malla calculada para realizar la corrección de altura, cuando la boquilla se encuentre imprimiendo fuera de la rejilla de medición: esto es bastante recomendable, sobre todo cuanto más porcentaje de cama abarque dicha zona exterior, lo que viene determinado por la posición del sensor respecto a la boquilla, siendo mayor cuanto más alejados estén.
Cuando se define el parámetro Z_PROBE_END_SCRIPT, se procesarán los comandos incluídos en él cuando se termine de realizar el G29, como lo que indicas (G27 P0 = aparcar el cabezal de impresión, para lo que hay que tener definido también el parámetro NOZZLE_PARK_FEATURE).
El parámetro ENDSTOP_INTERRUPTS_FEATURE se utiliza para indicar si los pines de la MCU a los que van conectados los endstop permiten el uso de interrupciones, lo que en caso afirmativo permite reducir la carga de proceso de la MCU: si no me equivoco, los pines del DRV8825 que utiliza esta placa lo permiten.
El parámetro FAST_PWM_FAN incrementa la frecuencia de los pulsos PWM que se envían al ventilador, cosa que no es necesaria en este caso: si se habilita, puede ocasionar calentamiento en el MOSFET o la MCU.
Los parámetros DISABLE_INACTIVE_* indican si se aplicará la desconexión del motor correspondiente cuando se alcance el tiempo fijado en el parámetro DEFAULT_STEPPER_DEACTIVE_TIME: si se indica true, el motor correspondiente se desactivará en estado de reposo, una vez transcurridos los segundos indicados en aquél; si se pone false, el motor permanecerá siempre activado (útil para que no baje el eje Z en algunas impresoras).
El parámetro LCD_DECIMAL_SMALL_XY indica que se utilice un decimal para visualizar la posición de los ejes XY en la pantalla, siempre que sea posible en función del valor a visualizar y del espacio en pantalla disponible (el eje Z tiene esto siempre activado): si no se define, los valores visualizados serán siempre enteros.
El parámetro XYZ_HOLLOW_FRAME agiliza la realización de cuadros de enmarcado en la pantalla de información.
Los buffers de memoria solo son partes de esta que se reservan para acomodar información que se va a procesar proximamente, de forma que esta sea accesible con mayor celeridad: contra más se reserve, suele ser mejor para la velocidad de ejecución, pero tiene el inconveniente de que puede que la memoria sea un recurso escaso en nuestra placa y no convenga utilizar demasiada para este propósito.
En la mayoria de los casos, los valores que tráe Marlin por defecto son los más adecuados, pues se han fijado así con la experiencia acumulada durante muchos años.
Por último, los parámetros NO_TIMEOUTS y ADVANCED_OK se utilizan para las comunicaciones entre el firmware de la placa y un ordenador que esté conectado a ella, regulando cómo se comportan ambos durante el envío de comandos de este a aquel: su configuración depende de la aplicación que se utilice en el ordenador para este fin y como en el punto anterior, la configuración por defecto suele funcionar suficientemente bien en casi todos los casos.
  Responder
#39
Gracias por la rapida respuesta,  solo que me queda la duda con esta placa para compilar  
[platformio]
src_dir      = Marlin
boards_dir  = buildroot/share/PlatformIO/boards
default_envs = mega2560  ----------------, es la primera vez que compilo para esta placa , las otras que mire eran skr , y encontre rapidamente que parametro tenia que poner.
  Responder
#40
En concreto, para la BQ Zum Mega el entorno de compilación es el ATMega2560ext: si para compilar utilizas PlatformIO sobre Visual Studio Code, te recomiendo que instales la extensión Auto Build Marlin, que automatiza la selección del entorno en función del modelo de placa configurada en Marlin.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Hephestos 2 cama caliente shiryu55 12 196 07-04-2022, 11:39 PM
Último mensaje: shiryu55
  Ender 3 pro firmware alcudel 1 377 16-10-2021, 10:14 AM
Último mensaje: Simemart
  GCODE al acabar de imprimir in firmware jjvelar 4 1,022 02-09-2021, 09:21 AM
Último mensaje: Carlos Jesus
  MKS no actualiza Firmware mangelh 4 769 14-02-2021, 08:06 PM
Último mensaje: mangelh
  MKS ROBIN E3D eje z no responde después de cambiar el firmware Xucu 1 1,014 11-01-2021, 01:39 AM
Último mensaje: mangelh