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
Actualización marlin con BLTouch
#1
Hola a todos, os comento mi pequeño problema. Tengo una Anet A8 y le he montado un extrusor de Trianglelab-extrusora de Doble accionamiento con boquilla Trianglelab Highall-Soporte de ventilador de refrigeración para V6 Hotend, configure marlin con la opción de cambio de filamento con el m600 y funcionaba perfectamente pero ahora viene mi problema, me he comprado un BLTouch para nivelar la mesa y al configurarlo no lo consigo porque me excedo del tamaño que permite la placa ANET v1.0 que es la mía.
No me quería deshacer de la placa dado que le he cogido el tino, le compre una mejora para los drivers que consta de unos diodos y el resultado fue muy bueno, redujo el sonido de los motores mucho.
El caso que quería saber si se puede quitar algo que no haga falta de marlin para poder tener esas dos cosas activas dado que el cambio de filamento con ese extrusor viene muy bien. El acople para el extrusor, la boquilla y el bltouch me lo he diseñado yo y va genial.
Tras compilar con todo puesto me sale que me excedo en 3316 bytes.
  Responder
#2
Hola, hay varias cosas que se pueden quitar en Marlin para ahorrar memoria flash, pero habría que saber que tienes configurado en este momento.
Aunque supongo que ya la tendrás así, comprueba en el archivo Configuration_adv.h que tengas comentada la línea //#define ARC_SUPPORT, pues esa funcionalidad no está soportada por ningún programa de corte de los habituales y solo eso ya ahorra 3226 bytes según indica el comentario de esa línea, aunque yo creo que es más.
Antes de empezar a quitar cosas lo primero que yo haría, si no lo has hecho ya, sería cargar el bootloader optiboot, pues ya solo con eso amplías la memoria flash destinada al firmware en 3072 bytes.
  Responder
#3
(20-01-2023, 11:27 PM)Simemart escribió: Hola, hay varias cosas que se pueden quitar en Marlin para ahorrar memoria flash, pero habría que saber que tienes configurado en este momento.
Aunque supongo que ya la tendrás así, comprueba en el archivo Configuration_adv.h que tengas comentada la línea //#define ARC_SUPPORT, pues esa funcionalidad no está soportada por ningún programa de corte de los habituales y solo eso ya ahorra 3226 bytes según indica el comentario de esa línea, aunque yo creo que es más.
Antes de empezar a quitar cosas lo primero que yo haría, si no lo has hecho ya, sería cargar el bootloader optiboot, pues ya solo con eso amplías la memoria flash destinada al firmware en 3072 bytes.

Correcto esa opción ya está comentada.
He probado quitando cosas que he visto pero creo que alguna si que hace falta porque en la impresora no me salen ciertas opciones,
Por ejemplo no me marca el porcentaje de impresión... A demás no me sale la opción de autonivelar cama que es eso lo que quiero, simplemento hace el home en el centro de la mesa con el bltouch y vale.

Si hago el Marlin bajado directamente de su página con el archivo de configuración que está también en su página. Le modifico únicamente lo del bltouch y las opciones necesarias para el m600 me pone que faltan 4454 bytes.

He probado a quitar el SHOW_BOOTSCREEN ya que me da igual que no me marque la versión de marlin al iniciar  
Al quitar la opción SLIM_LCD_MENUS si que cabe justo 126800 bytes ocupa y hay 126976 bytes máximo pero no me salen esas opciones de autonivelar cama.
Me acabo de dar cuenta que cada vez que compilo me salen valores diferentes porque ahora con mis parámetros me da que falta 3370 bytes y antes me faltaban mas.

Esto me sale al final.

c:/users/luis_/appdata/local/arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/../lib/gcc/avr/7.3.0/../../../../avr/bin/ld.exe: C:\Users\Luis_\AppData\Local\Temp\arduino_build_486225/Marlin.ino.elf section `.text' will not fit in region `text'
c:/users/luis_/appdata/local/arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/../lib/gcc/avr/7.3.0/../../../../avr/bin/ld.exe: region `text' overflowed by 3370 bytes
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compilando para la tarjeta Anet V1.0.

Si modifico la versión de marlin que usaba hasta ahora que era la 2.0.9.1 y modifico los parámetros que creo que son necesarios me sale así.

c:/users/luis_/appdata/local/arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/../lib/gcc/avr/7.3.0/../../../../avr/bin/ld.exe: C:\Users\Luis_\AppData\Local\Temp\arduino_build_594533/Marlin.ino.elf section `.text' will not fit in region `text'
c:/users/luis_/appdata/local/arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/../lib/gcc/avr/7.3.0/../../../../avr/bin/ld.exe: region `text' overflowed by 5106 bytes
collect2.exe: error: ld returned 1 exit status
exit status 1
Error compilando para la tarjeta Anet V1.0.

Los parámetros que modifico son estos.
Mis parametros

Configuration.h

#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 400, 400 }
#define DEFAULT_MAX_FEEDRATE { 400, 400, 8, 80 }

#define X_MIN_POS -23
#define Y_MIN_POS -3
#define NOZZLE_PARK_FEATURE

Configuration_adv.h

#define ADVANCED_PAUSE_FEATURE



BLTouch

Configuration.h

#define Z_MIN_ENDSTOP_INVERTING false // Set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // Set to true to invert the logic of the probe.
#define BLTOUCH
#define SERVO0_PIN 27
#define NOZZLE_TO_PROBE_OFFSET { -30, 0, -1.7 }
#define PROBING_MARGIN 30
#define Z_SAFE_HOMING
#define AUTO_BED_LEVELING_BILINEAR
  Responder
#4
Hay dos tipos de mensajes relacionados con el espacio ocupado por la compilación: uno es de este tipo "region `text' overflowed by 3370 bytes", en el que el número que indica ahí no es lo que excede el firmware compilado del tamaño de memoria flash disponible (no tengo claro qué es, pero intuyo que es algo relacionado con el proceso de compilación y/o linkado).
El otro tipo de mensaje sí es el que indica claramente cuanto es lo que excede el firmware compilado de la cantidad de memoria flash disponible y no aparece hasta que se soluciona el anterior, por lo que en ese ejemplo se necesitan muchos más de 3370 bytes para poder compilar.
El porcentaje transcurrido de impresión, se habilita descomentando la línea #define SHOW_PROGRESS_PERCENT, en el archivo Configuration_adv.h: deshabilitar esta opción no ahorra una cantidad significativa de memoria.
Cosas prescindibles que se pueden quitar para conseguir cantidades relevantes de memoria:
- Desactivar la pantalla de arranque, comentando la línea //#define SHOW_BOOTSCREEN (algo menos de 1000 bytes);
- Deshabilitar el comando M503, descomentando la línea #define DISABLE_M503 (algo más de 1000 bytes);
- Configurar los menús de pantalla reducidos, descomentando la línea #define SLIM_LCD_MENUS (casi 5000 bytes).
Una cosa sin la que es posible funcionar, aunque con bastantes inconvenientes, es la memoria EEPROM y que si se desactiva se ahorran más de 5500 bytes, aunque yo prefiero tener esta funcionalidad y buscar memoria por otras vías: para desactivarla, hay que comentar la línea //#define EEPROM_SETTINGS y ya de paso, también  #define EEPROM_CHITCHAT y #define EEPROM_BOOT_SILENT.
El tamaño del firmware depende mucho del entorno que se utilice para compilarlo y para el ATMega1284P existen cuatro: el normal (sanguino1284p o melzi), que utiliza el bootloader estandar (126976 bytes libres para el firmware) y que compila sin realizar ninguna optimización del código, por lo que es el que genera el firmware mayor; el optimizado (sanguino1284p_optimized o melzi_optimized), con bootloader normal pero que optimiza el código y consigue un ahorro importante en el tamaño final del firmware; el melzi_optiboot, que utiliza el bootloader optiboot (130048 bytes libres para el firmware) y que realiza una compilación igual al del general (sin optimización) y el cuarto, que es el anterior optimizado.
  Responder
#5
Eso de compilarlo así imagino que es con el visual studio, me lo acabo de poner pero no sé muy bien cómo cargar el firmware a la placa. Mañana revisaré todo lo que me has puesto a ver si puedo rascar esos bytes y puedo meterlo.
Muchas gracias
  Responder
#6
Esos entornos que indico están disponibles utilizando PlatformIO y yo lo utilizo con Visual Studio Code: pensaba que también lo estabas utilizando, pues esos mensajes son los mismos compilando en este IDE.
No he utilizado la nueva versión del IDE de Arduino pero en la anterior, solo se tenían disponibles el normal y el optiboot, aunque en ella no se podía compilar Marlin 2.
Para poder activar todas las funcionalidades que quieres utilizando el entorno normal, tendrás que emplear las tres opciones para ahorrar memoria que te indiqué en mi anterior respuesta.
  Responder
#7
@Simemart
No se como se sube el marlin desde visual studio code que es lo que me he instalado. Yo usaba ardruino. ahora estoy liado pero no consigo que me salga la función de nivelar cama para que coja la referencia de las esquinas. Algo me estoy dejando. He desactivado las opciones de eeprom ya que tengo todo configurado y me ha dejado subir el ultimo marlin pero me falta esa opción que no se donde esta.
Pensaba que era el #define AUTO_BED_LEVELING_BILINEAR pero me he debido equivocar porque no me lo hace y en el LCD no sale la opción de nivelar cama.
  Responder
#8
Vale creo que la he conseguido, me falta probar bien la impresora a ver cómo va porque he actualizado también a la última versión de Marlin.
Tenía que descomentaLCD_BED_LEVELINGNG, para hacerlo de forma manual y incluir en el script inicial un G29 posterior al G28 para que lo nivele en casa impresión. Cuando verifique que todo es OK os digo.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Problema con BLtouch NarKeTe 9 0 18-02-2024, 11:17 AM
Último mensaje: Simemart
  CONSULTA geeetech prusa i3 con bltouch solo funciona de forma manual katxarix 5 0 29-12-2023, 03:37 PM
Último mensaje: katxarix
  Problema con autolevel con BLtouch Eresan 7 0 19-09-2023, 10:11 AM
Último mensaje: Eresan
  De Marlin 2.0.9 a Marlin 2.12 21Curiosos 3 268 22-01-2023, 09:36 PM
Último mensaje: 21Curiosos
  Problemas configuraion MARLIN BLTOUCH 21Curiosos 2 397 21-05-2022, 02:28 PM
Último mensaje: 21Curiosos