Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Problema verificar Marlin (antes no pasaba)
#1
Exclamación 
Buenas noches, 
Estoy teniendo problemas al compilar Marlin, me sale una serie de errores que antes no pasaba y no hice ningún cambio que recuerde.
Tengo Arduino 1.8.6 y Marlin 1.1.8


Una de las impresoras de vez en cuando empieza a moverme el eje X en una unica dirección, por alguna razón se corrompe el firm y solo lo soluciono instalandolo de nuevo, pero hoy me he topado con que no puedo cargar ningún Marlin.

Copio el mensaje de error que surge en Marlin con varias lineas y adjunto foto... agradeceria cualquier ayuda con esto.

EDITO, enseño las imagenes con los pantallazos de ambos arduinos 1.8.5 y 1.8.6

resim

resim

Arduino:1.8.5 (Windows 10), Tarjeta:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from sketch\Marlin_main.cpp:278:0:

sketch\buzzer.h: In constructor 'Buzzer::Buzzer()':

buzzer.h:95: error: 'SET_OUTPUT' was not declared in this scope

SET_OUTPUT(BEEPER_PIN);

^

sketch\Marlin_main.cpp: In function 'void setup_killpin()':

Marlin_main.cpp:896: error: 'SET_INPUT_PULLUP' was not declared in this scope

SET_INPUT_PULLUP(KILL_PIN);

^

sketch\Marlin_main.cpp: In function 'void setup_powerhold()':

Marlin_main.cpp:920: error: 'OUT_WRITE' was not declared in this scope

OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE);

^

sketch\Marlin_main.cpp: In function 'void gcode_M80()':

Marlin_main.cpp:8167: error: 'OUT_WRITE' was not declared in this scope

OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE); // GND

^

sketch\Marlin_main.cpp: In function 'void gcode_M81()':

Marlin_main.cpp:8220: error: 'OUT_WRITE' was not declared in this scope

OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP);

^

In file included from sketch\MarlinConfig.h:26:0,

from sketch\Marlin.h:36,

from sketch\Marlin_main.cpp:247:

sketch\Marlin_main.cpp: In function 'void kill(const char*)':

fastio.h:105: error: '_SET_INPUT' was not declared in this scope

#define SET_INPUT(IO) _SET_INPUT(IO)

^

sketch\Marlin_main.cpp:14259:5: note: in expansion of macro 'SET_INPUT'

SET_INPUT(PS_ON_PIN);

^

exit status 1
'SET_OUTPUT' was not declared in this scope

Este reporte podría tener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.
Citar
#2
Hola, aunque en todo eso que pones no hay ningún mensaje de error y no adjuntas la imagen que mencionas, puedo decirte que el problema que tienes, casi con toda seguridad, está en la última versión del IDE de Arduino (1.8.6). Supongo que ese es el cambio que no recuerdas haber hecho.
Por lo que se ve, esta versión no está aún madura. A mi me da un error en las directivas de compilación del SPI de la tarjeta SD. Te recomiendo que utilices la versión anterior (1.8.5).
Lo que si puedes utilizar es la última versión de Marlin (1.1.9). Trae algunas mejoras interesantes respecto a la que estás usando.
Citar
#3
(05-09-2018, 11:14 PM)Simemart escribió: Hola, aunque en todo eso que pones no hay ningún mensaje de error y no adjuntas la imagen que mencionas, puedo decirte que el problema que tienes, casi con toda seguridad, está en la última versión del IDE de Arduino (1.8.6). Supongo que ese es el cambio que no recuerdas haber hecho.
Por lo que se ve, esta versión no está aún madura. A mi me da un error en las directivas de compilación del SPI de la tarjeta SD. Te recomiendo que utilices la versión anterior (1.8.5).
Lo que si puedes utilizar es la última versión de Marlin (1.1.9). Trae algunas mejoras interesantes respecto a la que estás usando.

Tienes razón, no comprobe que se viese todo, adjunto la imagen del error con el arduino 1.8.5. y la anterior con el 1.8.6

resim

resim

Copio y Pego:

Arduino:1.8.5 (Windows 10), Tarjeta:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from sketch\Marlin_main.cpp:278:0:

sketch\buzzer.h: In constructor 'Buzzer::Buzzer()':

buzzer.h:95: error: 'SET_OUTPUT' was not declared in this scope

SET_OUTPUT(BEEPER_PIN);

^

sketch\Marlin_main.cpp: In function 'void setup_killpin()':

Marlin_main.cpp:896: error: 'SET_INPUT_PULLUP' was not declared in this scope

SET_INPUT_PULLUP(KILL_PIN);

^

sketch\Marlin_main.cpp: In function 'void setup_powerhold()':

Marlin_main.cpp:920: error: 'OUT_WRITE' was not declared in this scope

OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE);

^

sketch\Marlin_main.cpp: In function 'void gcode_M80()':

Marlin_main.cpp:8167: error: 'OUT_WRITE' was not declared in this scope

OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE); // GND

^

sketch\Marlin_main.cpp: In function 'void gcode_M81()':

Marlin_main.cpp:8220: error: 'OUT_WRITE' was not declared in this scope

OUT_WRITE(PS_ON_PIN, PS_ON_ASLEEP);

^

In file included from sketch\MarlinConfig.h:26:0,

from sketch\Marlin.h:36,

from sketch\Marlin_main.cpp:247:

sketch\Marlin_main.cpp: In function 'void kill(const char*)':

fastio.h:105: error: '_SET_INPUT' was not declared in this scope

#define SET_INPUT(IO) _SET_INPUT(IO)

^

sketch\Marlin_main.cpp:14259:5: note: in expansion of macro 'SET_INPUT'

SET_INPUT(PS_ON_PIN);

^

exit status 1
'SET_OUTPUT' was not declared in this scope
Citar
#4
Nada, no hay manera, he probado hasta con Arduino 1.6.0 y nada... es muy frustrante, Triste

Tenia los Marlin muy bien configurados y me iban genial, me da rabia.. si alguien me pudiese iluminar el camino por favor
Citar
#5
Hola Manu.
Creo que en una de las imagenes está la clave, la linea de código " Dual Stepper Drivers" es un comentario, pero en tu sketch aparece con colores como si fueran operaciones.  Te debe faltar algún /*---------*/
resim
El código que he visto en Github es:
/**
* Dual Stepper Drivers
*/
#if ENABLED(X_DUAL_STEPPER_DRIVERS) && ENABLED(DUAL_X_CARRIAGE)
 #error "DUAL_X_CARRIAGE is not compatible with X_DUAL_STEPPER_DRIVERS."
#elif ENABLED(X_DUAL_STEPPER_DRIVERS) && (!HAS_X2_ENABLE || !HAS_X2_STEP || !HAS_X2_DIR)
 #error "X_DUAL_STEPPER_DRIVERS requires X2 pins (and an extra E plug)."
#elif ENABLED(Y_DUAL_STEPPER_DRIVERS) && (!HAS_Y2_ENABLE || !HAS_Y2_STEP || !HAS_Y2_DIR)
 #error "Y_DUAL_STEPPER_DRIVERS requires Y2 pins (and an extra E plug)."
#elif ENABLED(Z_DUAL_STEPPER_DRIVERS) && (!HAS_Z2_ENABLE || !HAS_Z2_STEP || !HAS_Z2_DIR)
 #error "Z_DUAL_STEPPER_DRIVERS requires Z2 pins (and an extra E plug)."
#endif

/**
* Validate that the bed size fits
*/
static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
 "Movement bounds ([XY]_MIN_POS, [XY]_MAX_POS) are too narrow to contain [XY]_BED_SIZE.");
Saludos
Citar
#6
Hola, como bien indica @PauFerlo, esa línea debería ser un comentario. Está cortada la imagen, pero tiene pinta de que no es así y eso genera una cascada de errores.
Se necesitarían ver completas esas líneas para poder concretar más.
De todas formas, yo en esa imagen no veo que sea la versión 1.8.5 del IDE de Arduino como se indica, sino la versión 1.0.5 r2 (muy antigua).
Sobre el error que te da en el IDE 1.8.6, puede ser debido a que, al comienzo del archivo buzzer.h, no esté incluido el archivo fastio.h, que es donde se define esa función.
Comprueba que al comienzo del archivo buzzer.h están estas dos líneas: #include "fastio.h" y #include "MarlinConfig.h".
Y sobre lo que indicas del motivo de cargar cada poco el firmware (que de vez en cuando se mueva solo hacia un lado el eje X), parece más bien un problema de hardware que de software.
Ese comportamiento suele ser síntoma de problemas con el final de carrera, bien en el circuito de la placa o en el interruptor.
El firmware, una vez cargado en la memoria y funcionando correctamente, sería muy raro que se corrompiese.
Y mucho más, que siempre lo hiciese en el mismo punto y con el mismo resultado.
Citar
#7
En cuanto a la carga del firmware estoy totalmente de acuerdo contigo @Simemart
Citar
#8
Gracias chicos, despues de muuchos intentos, resulta que no puedo compilar absolutamente ningún Marlin con ningún arduino.
He probado incluso con Marlin testados de paginas web como hta3d y con distintas versiones de arduino y nada, todos me lanzan errores.

(06-09-2018, 02:25 PM)Simemart escribió: Hola, como bien indica @PauFerlo, esa línea debería ser un comentario. Está cortada la imagen, pero tiene pinta de que no es así y eso genera una cascada de errores.
Se necesitarían ver completas esas líneas para poder concretar más.
De todas formas, yo en esa imagen no veo que sea la versión 1.8.5 del IDE de Arduino como se indica, sino la versión 1.0.5 r2 (muy antigua).
Sobre el error que te da en el IDE 1.8.6, puede ser debido a que, al comienzo del archivo buzzer.h, no esté incluido el archivo fastio.h, que es donde se define esa función.
Comprueba que al comienzo del archivo buzzer.h están estas dos líneas: #include "fastio.h" y #include "MarlinConfig.h".
Y sobre lo que indicas del motivo de cargar cada poco el firmware (que de vez en cuando se mueva solo hacia un lado el eje X), parece más bien un problema de hardware que de software.
Ese comportamiento suele ser síntoma de problemas con el final de carrera, bien en el circuito de la placa o en el interruptor.
El firmware, una vez cargado en la memoria y funcionando correctamente, sería muy raro que se corrompiese.
Y mucho más, que siempre lo hiciese en el mismo punto y con el mismo resultado.

Si, me di cuenta que al pulsar sobre el exe directamente me salia esa versión, probe abriendo el marlin desde el comando abrir y me el 1.8.5 me da el mismo error que el 1.8.6
Citar
#9
Hola, te recomiendo que partas de una situación controlada.
Para ello, sigue los siguientes pasos al pie de la letra: borra la carpeta Arduino15 que se encuentra en %LOCALAPPDATA%\ y la carpeta Arduino que se encuentra en %USERPROFILE%\Documents\.
Descarga la última versión de Marlin de aquí.
Descarga la versión 1.8.5 del IDE de Arduino de aquí.
Descomprime los dos archivos zip en una carpeta nueva.
Si tu placa no viene incluida, copia en arduino-1.8.5\hardware\ la carpeta de configuración del hardware de tu impresora (si es una Anet, por ejemplo).
Ejecuta el Arduino.exe que se encuentra en la carpeta arduino-1.8.5\ que acabas de descomprimir.
Vuelve a instalar las librerías, si tenías alguna que no venga por defecto, como U8Glib. Esta la puedes descargar de aquí.
Configura el Marlin para tu impresora y el IDE para tu placa.
Vuelve a intentar compilar.
Por cierto, creo que no has dicho de que impresora se trata.
Citar
#10
Gracias Simemart, lo hare tal cual dices, tengo 3 steel de 40cm3 y una bcn3d+, pero como te digo me pasa con todos los marlin y arduinos.
Citar
#11
(07-09-2018, 07:13 PM)Simemart escribió: Hola, te recomiendo que partas de una situación controlada.
Para ello, sigue los siguientes pasos al pie de la letra: borra la carpeta Arduino15 que se encuentra en %LOCALAPPDATA%\ y la carpeta Arduino que se encuentra en %USERPROFILE%\Documents\.
Descarga la última versión de Marlin de aquí.
Descarga la versión 1.8.5 del IDE de Arduino de aquí.
Descomprime los dos archivos zip en una carpeta nueva.
Si tu placa no viene incluida, copia en arduino-1.8.5\hardware\ la carpeta de configuración del hardware de tu impresora (si es una Anet, por ejemplo).
Ejecuta el Arduino.exe que se encuentra en la carpeta arduino-1.8.5\ que acabas de descomprimir.
Vuelve a instalar las librerías, si tenías alguna que no venga por defecto, como U8Glib. Esta la puedes descargar de aquí.
Configura el Marlin para tu impresora y el IDE para tu placa.
Vuelve a intentar compilar.
Por cierto, creo que no has dicho de que impresora se trata.

Segui todos los pasos y solucione el problema con el arduino.
Te estoy muy agradecido por la ayuda.
Citar
#12
Me alegro que lo solucionases.
Un saludo.
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  ¿MKS Sbase + Marlin 2.0? 3Dsastre 4 112 Ayer, 12:11 PM
Último mensaje: 3Dsastre
  El marlin no me hace caso spa_sergio 10 1,332 05-11-2018, 01:17 PM
Último mensaje: Simemart
  Marlin 1.1.9 en Anet A8 PatogomaII 9 1,384 18-10-2018, 07:45 PM
Último mensaje: jhony85
  Problema autolevel con Marlin 1.1.9 klipendorf 3 804 07-08-2018, 06:15 PM
Último mensaje: Simemart
  CONSULTA Problema con marlin Vicente48 2 287 23-07-2018, 07:50 AM
Último mensaje: Vicente48