Compilar Mi Firmware 1.4.3 (Mi Solución. Basado en el firmware 1.4.2)



  • Hola


    Un vídeo con una forma de compilar el firmware marlin bq 1.4.2 -> 1.4.3 

    Saludos

    PD: Si os va lento o rápido el vídeo, podéis ajustar la velocidad en las opciones de youtube, así como el volumen del sonido (depende del navegador)

    PD2: URL
    Hilo foro que trata el tema con un titulo confuso. "Actualización 1.4.2 para Prusa i3 Hephestos"
    Enlaces de los que obtengo los ficheros
    Enlace al repositorio git  Marlin en GitHub de BQ , para descargar el codigo fuente

    PD3:
    ###################################################################################
    #####################    COMPILAR MI FW VERSION R2D2 v1.4.3   #####################
    ###################################################################################

    // Intento continuar la sintaxis C // comentar
    // Los apuntes no son literales el texto intenta aportar algun tipo de informacion como puede ser:
    Un valor concreto,  un nombre de una cadena, un comentario, una expresión literal
    ###Descomprimir codigo fuente
        A)Copiar todos los archivos a raiz de la carpeta Marlin. Y copiar los archivos que contenga tu configuracion (carpeta config/hephestos) y  sobrescribir en la carpeta Marlin.
        B1) Extrer todas las carpetas del directorio marlin, solo deben quedar archivos.
        B2) Copiar archivos a raiz de Marlin:
            Todos los archivos de la carpeta Sdfat
            Los 2 archivos U8glib de la carpeta U8glib
            El archivo u8g.h  de la carpeta U8glib/utility
            Todos los archivos de la carpeta config/hephestos

    ### Documentar "Modificar README.md"

    ### Abrir con el ide de arduino el Marlin.pde

        Para evita problemas de compatiblidad abro la extension .pde en primer lugar, en algun momento al recompilar Laza un error con el archivo.pde y se borra el fichero pde.
        Cuando ocurra reabrir el Marlin.ino

    AL Compilar da error en el fichero Marlin_marlin.cpp (Línea 30)    #include "Marlin.h"

    Marlin.h (Línea 15)        #include <avr/delay.h> //#include <util/delay.h> //Recompilar Da un error en el foro pone ir a la linea 2163
    Marlin_marlin.cpp (Línea 2163)    delay(beepP); //_delay_ms(beepP); //Recompilar Da error en fichero U8lib.cpp (Línea 38) #include "U8glib.h"
    U8glib.h (Línea 42) #include "u8g.h" //#include "utility/u8g.h" //Recompilar ¡Compilo!

    ### Modificaciones Iniciales

    language.h (Línea 23)    LANGUAGE_CHOICE 5
    language.h (Línea 29)    MACHINE_NAME "R2D2"
    language.h (Línea 31)    FIRMWARE_VER "v1.4.3"

    ### Compilamos y subimos. ## Es una version Base para hacer modificaciones

    Debe funcionar igual que la version 1.4.2 ya que el unico cambio es renombrar la version del firmware



  • Hola
    Se me ha planteado una dificultad.
    En el post anterior he compartido un modo de obtener un sketch arduino Marlin BQ 1.4.2 que compila.
    He cambiado en language.h el idioma 5 Español y la versión 1.4.3 .Todo parece ir bien, en el sentido que no se observa problemas ( no significa que este bien en el sentido de que el funcionamiento sea el deseable/esperado).

    El problema está cuando hago las modificaciones para el autobed level.
    ¿Alguien sabe que hay que modificar para el FW 1.4.2, auto nivelado con sensor capacitivo normalmente cerrado?
    Saludos

    PD: Intento explicar que modificaciones estoy usando.

    ###################################################################################
    ######################      AUTO NIVELAR LA BASE HEPHESTOS      ######################
    ###################################################################################

    Marlin_marlin.cpp (Línea 1151)    //codigo fuente definición del code
    G29, solo si esta activado el auto nivel de la cama.(#ifdef
    ENABLE_AUTO_BED_LEVELING)


    language.h (Línea 23)    LANGUAGE_CHOICE 5
    language.h (Línea 29)    MACHINE_NAME "Auto Nivel Sensor Capacitivo"
    language.h (Línea 31)    FIRMWARE_VER "v1.4.4"

    Configuration.h (Línea 12)    STRING_CONFIG_H_AUTHOR "(Hephestos FW v1.4.4)"
    Configuration.h (Línea 53)    //Configurar cama caliente
    Configuration.h (Línea 209)     ENDSTOPPULLUP Hay dos grupos comentar el primero. En el segundo grupo unicamente //#define ENDSTOPPULLUP_ZMIN
    Configuration.h (Línea 231)    true/false  Invertir logica del final de carrera
    Configuration.h (Línea 257)    Invertir dirección Z
    Configuration.h (Línea 284)    ENABLE_AUTO_BED_LEVELING Descomentar, borrar // al comienzo de la linea //Activar el Autonivelado y el gcode G29
    Configuration.h (Línea 336)    OFFSET posición relativa del extrusor al sensor    (??¿¿)

    Configuration_adv.h (Línea 89)    ENDSTOPS_ONLY_FOR_HOMING Descomentar, borrar // al comienzo de la linea

    ### Compilamos y subimos


    PD2:
    Tema Duda abierto : ¿Texto para menus LCD?



  • Bajo tu responsabilidad hacerme caso o no.
    ##################################################################################
    MI
    PUNTO DE VISTA PARA |  DOCUMENTACIÓN DE
    EJEMPLO PARA HACER MODIFICACIONES EN TU
    PRUSA i3 HEPHESTOS BQ
    ##################################################################################
    (VARIOS MÉTODOS)
    AUTO NIVELADO DE LA BASE 
    CAMA CALIENTE
    SENSOR DE FIN DE FILAMENTO
    DOS EXTRUSORES VS MÚLTIPLES HERRAMIENTAS
    ##################################################################################

    APRECIO QUE SE ANTOJA NECESARIO BUSCAR EL MODO DE:
    •  "SEPARAR" EL CONTROL DEL EXTRUSOR.
       MANTENIENDO LA POSIBILIDAD DE NO HACERLO
    • CREAR OPCIONES DE MENU LCD.
      CAMA CALIENTE , AUTO NIVEL, NUMERO EXTRUSORES , SENSOR FIN DE FILAMENTO , ETC... . Depende de que esquema seguir.

    ##################################################################################

    Me falta "documentación" /deducir:
    1. Uso de: (seguro que las respuestas están por la red, de momento no las he encontrado)
      1.  SERVOS (ni idea para que esta previsto)
      2.  AUX-1 (ni idea para que esta previsto)
      3. AUX-2 (ni idea para que esta previsto)
      4. AUX-3 (ni idea para que esta previsto)
      5. AUX-4 (ni idea para que esta previsto)
        @{JAD}   me indico que bajo ese "grupo" esta el pin D32 por una alusiones a un código. Otra cosa es la motivación del uso de ese PIN en aquel codigo, simplemente no lo se.
        Yo veo una disposición "estratégica" y dejar un PIn libre en el LCD en previsión a futuras ampliaciones vía comunicación serie, o un pin de algún dispositivo que se quito como pudiera ser algún dispositivo para producir sonido, o un pin de libre designación. 
      6. I2C (ni idea para que esta previsto)
      7. E1 (No usada) (Conexión sin el modulo de control del motor de pasos de un segundo Motor, Segundo extrusor)
      8. T1 (No usada) (Termistor cama caliente)
      9. T2 (No usada) (Termistor E1, segundo extrusor)
    2. Faltan Ejemplo/s de uso de todo lo anterior Servo ....
    3. Dificultades para cambiar el código. Voy a obviar la versión y problemas de compilación, eso lo damos por bueno. Hace falta un "doc" un "texto" (algo así), que venga a documentar, a parte del código fuente y los propios cambios del código:
      1.  Desde el punto de vista del código (cuando escribes codigo), hace falta un modo concreto de hacer las cosas y estas están limitadas por la realidad física.
        ¿Que podemos hacer y "como" o no, con cualquier pin de la RAMPs 1.4?. 
        Tabla (Referido al esquema publico)
        ID PIN ARDUINO MEGA D32
        ID PIN RAMPS 1.4 D32
        FUNCION DEL PIN (Desconocido)
        Grupo/ubicacion RAPMS 1.4 AUX-4  (cuenta pines 3)
        CODIGO Asignacion del PIN [Archivo] [(Línea ????)][ Lo que estimes oportuno]
        _________
        [Archivo] 
        Un enlace a un archivo de una versión concreta de un repositorio concreto
        [(Línea ????)]
        Una referencia a una linea o lineas por ejemplo
        Archivo.ejemplo (30) #Debería ser literalmente el texto al que apunta o modificación de la linea
        Archivo.ejemplo (30 -120) #En estas lineas seguidas de texto

        Archivo.ejemplo (10-20) (40) (978) #Lineas de código que tienen algún elemento común (variable, función, proceso, etc)
        _________

    4. Descubrir "Funciones tipo" :
    1. Serial en AUX1
    Falta el "hipotético" uso y para ello hay que no solo identificar el "nombre" del pin y su ubicación física , tanto en los esquemas como en la placa física.
    Falta el estudio electrónico, esquema funcional... llámalo X
    Se puede deducir de esquema electrónico que se pueden hacer unas cuantas combinaciones, el problema es:
    ¿matemático? "
    ¿Calcular cuantas combinaciones existen?. Muchas, cierto. Luego es sensato pensar en algún modo de definir/referencia/explicar "Nombres de las cosas", o lo que se suele conocer como esquema de conexión o esquemas. No son mas que soluciones de problemas de combinatoria. Vamos "que te toque la primitiva".
    "

    ¿Un problema de como formular la pregunta y a quien?"
    ¿Que esquema hay que seguir? Ya que las modificaciones hago o tengo en cuenta, en el código que elija compilar deben ser "coherentes" entre ambas cosas.
    "

    Definir que versión del código fuente del firmware usar
    Cada interpretación esquema requiere de una versión de FW, no es un verdad absoluta pero creo que me estoy explicado.
    Si usas uno u otro te podrás encontrar con dificultades como:
    • Problemas con la compilación
    • Que esa versión concreta interprete un esquema distinto al tuyo :
      • Y que requiera pequeños ajustes
      • o que solo se parece en el blanco de los ojos.
    ##################################################################################
    Documentación . Info en Español acerca del uso de Aux1 y Aux2 .
    Como se habilita/ deshabita un pin, otra cosa es saber si es PWM, digital , in o out.)
    http://www.reprap.org/wiki/Custom_GCODES_con_los_pines_AUX_de_la_tarjeta_RAMPS.

    Esquema  electrónico "completo""¿libre? en PDF de la RAMPS 1.4  (hay una advertencia de seguridad, desconozco el estado y gravedad de la alerta)(Acerca de la advertencia¿?)
    http://www.reprap.org/wiki/File:ArduinoMegaPololuShield.zip
    Descarga directa del ZIP que contiene un PDF que contiene los esquemas 

    Articulo Medición y corrección del offset en tu impresora 3D , bajo mi opinión aporta información a la tarea de auto nivelado
    #####################################################################################

    Saludos
    PD: Disculpas a los moderadores por la cuestión técnica de que no manejo el modo de hacerlo de otro modo y esto contraviene una norma que entiendo tiene otra finalidad.


  • .


  • Hola Andurino, gracias por realizar este aporte.


    Tengo una Prusa I3 Hepestos la cual he modificado un poco para aumentar los recorridos en X y en Y y quisiera instalar el firmware 1.4.2 o bien el 2.5.1 con los limites modificados.

    He logrado hacer los cambios en el la versión 2.5.1 y compilar, pero me hace cosas raras durante la impresión. Aleatoriamente se para la impresión, o hace amagos de ir a los finales de carrera. 

    Por lo que he vuelto a la versión 1.4.2 ya compilada por BQ y sin problema.

    Entre otras cosas también he seguido los pasos que indicas en este hilo, pero al final me seguía dando un error al compilar. 

    ¿Podrías pasarme los archivos de la versión 1.4.3 que has realizado a mi correo?



    Muchas gracias de antemano.


  • MVP

    En el área de descargas se ha publicado nuevos firmwares ya compilados



  • En el área de descargas se ha publicado nuevos firmwares ya compilados

    Lo sé, pero no quiero una versión ya compilada. Quiera una versión que pueda modificar a mi gusto y no me de problemas de compilación o de ejecución en la máquina.

    Por eso le pido si me puede facilitar esa versión 1.4.3

  • MVP

    El firm 1.4.3 es el que hizo @Andurino, el firm 1.4.2 lo puedes encontrar en:
    https://github.com/bq/Marlin/releases/tag/1.4.2



  • La versión 1.4.2 al menos a mí, me da muchos problemas de compilación.

    He seguido varios hilos intentado solucionar cada uno de los problemas que aparecían al intentar compilar.
    @Andurino ha publicado el post mas completo que he podido seguir ya que me aparecían los mismos problemas que a el, y aun así me han seguido apareciendo errores al compilar.


  • MVP

    Prueba a contactar por privado con él.



  • Feliz Año Nuevo @todos: 


    @{bulone},

    Esta "todo explicado", si te da mas errores , sera pre visiblemente porque estés usando versiones distintas para compilar los archivos.
    Lo único que hace el ejemplo es compilar la versión 1.4.2 a una versión propia compilada, que llamo 1.4.3 como podría haberla llamado de otro modo.

    Mira el vídeo ponlo en lento, Verifica las versiones del código fuente y del arduino ide. 
    Si usaras windows, desconozco los posibles problemas que puede haber con este método.

    Un saludo.