Welcome! Log In Create A New Profile

Advanced

Tutorial para cargar el firmware en la Labrap hot smiley

Posted by labotecno 
Tutorial para cargar el firmware en la Labrap hot smiley
October 08, 2015 05:57AM
Tutorial para cargar el firmware marlin en la Labrap

Para producir una impresora 3D se utilizan hay que meter la mano en el firmware. Este es un paso que puede postergar varios y en este tema voy a tratar de explicar los pasos necesarios para iniciar una impresora 3D . Para tranquilizarle vamos a modificar un archivo y nos centraremos para activar y desactivar las opciones y valores de las variables . Si usted tiene alguna pregunta no dude en preguntar ...

¿Qué es el firmware?


El firmware es el firmware que se encuentra en la placa base de la impresora 3D . Instrucciones de fabricación de modelos 3D ( código G) pueden ser similares a una impresora 3D a otro , el firmware es responsable de interpretar los movimientos que toman en cuenta las propiedades específicas de la máquina. La configuración del firmware es único para el modelo de impresora 3D , la relación entre el software y el hardware .

REÚNA LAS HERRAMIENTAS ADECUADAS :

Vamos a ocupar una placa base muy común entre todos los apasionados de RepRap , es decir, una tarjeta o compatible Arduino sheeld Mega 2560 y 1.4 RAMPS . Pero como muchas placas base son compatibles con el marlin firmware , los mismos principios se aplican de configuración para la mayoría.



poner los jumper del polulu de microstepping de los motors en la tarjeta ramps 1.4



poner los polulus driver motors !



firmware

Descarga el firmware directamente aquí y descomprimir el archivo .


Arduino IDE 1.0.5

Necesitaremos el editor de Arduino para editar e instalar el firmware de la impresora 3D . Es un software de código abierto para gráficos de control de programación de Arduino . Este es un estándar en el mundo de las impresoras 3D .

Descargue la versión apropiada para su sistema operativo aquí ( ventana, Mac o Linux ) e instalarlo.


CONFIGURACIÓN DEL FIRMWARE .

Los desarrolladores que diseñan firmware marlin ( Erik van der Zalm ) se aseguró de colocar todos los valores de las variables en un solo archivo y que simplificará nuestra tarea.


Inicie la aplicación Arduino

Seleccione el tipo de placa arduino : Arduino Mega 2560



Abrir el archivo pins.h ubicado en la carpeta de marlin


Active la siguiente línea si utiliza un sheeld rampas 1.3 o 1.4 .

#define RAMPS_V_1_3

Guardar

Configuration.h a continuación, abrir el archivo , seleccione la ficha


COMENTARIOS GENERALES

Configuration.h en el archivo, hay instrucciones para el computadore y otros que están reservados para los seres humanos a una mejor comprensión. Para evitar los intentos de computadora para descifrar las explicaciones de uso humano debe comentar símbolo "//". La doble barra en cada línea define lo que es el lenguaje de máquina y comentarios. En nuestro caso, los comentarios se utilizarán también para activar ciertas opciones.

Seleccione la velocidad de comunicación:

La velocidad de transferencia entre la impresora y el ordenador 3d placa base se establece en baud:

#define BAUDRATE 250000

// #define BAUDRATE 115200


La velocidad debe ser la misma para el controlador, para el dispositivo USB y el software de acogida, que a veces puede limitar la velocidad. Dos velocidades son utilizados: 250.000 y 115.200. Si uno no funciona, pruebe con otro.

Seleccione la placa base :
Arriba de la linea
#define MOTHERBOARD

hay una lista de diferentes de tarjetas madre disponibles. Sólo tu necesitas eleguir una configuracion de material con los diferentes numero . Por ejemplo, los mapas RAMPAS 1.3 / 1.4 (salidas de potencia: Extrusión , Ventilador , cama) se pueden configurar con el número 33 .

#define MOTHERBOARD 33


* Úsalo incluso si usted no utiliza fan ( ventilador) o hotbed (cama )
Da un nombre a la impresora:

Mediante la conexión de una impresora de LCD , usted puede ver el nombre de su impresora

CUSTOM_MENDEL_NAME #define "LABRAP "

hacer funcionar su pantalla lcd

necesitamos agregar algunas lineas para que el firmware reconoce el lcd sino tenemos puro cuadrado negro en el display angry smiley
en la seccion lcd y sd support
lo que no queremos empeza por //
y lo que queremos empeza por #
// The RepRapDiscount Smart Controller (white PCcool smiley
// [reprap.org]
#define REPRAP_DISCOUNT_SMART_CONTROLLER
este codigo es para los que tiene este tipo de lcd
lcd de la labrap

y este otro lcd mas angosto
// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCcool smiley
// [reprap.org]
//
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: [code.google.com]
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
aqui el link
lcd mas largo

Funcionamiento del menu del lcd



para poner el idioma español y activar la sd card

agregamos algunas lineas tambien al principio de la seccion lcd y sd support
//LCD and SD support
// Define your display language below. Replace (en) with your language code and uncomment.
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu, kana, kana_utf8, test
// See also language.h
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(es)
//#define ULTRA_LCD  //general LCD support, also 16x2
//#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
#define SDSUPPORT // Enable SD Card Support in Hardware Console
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
//#define ULTIPANEL  //the UltiPanel as on Thingiverse
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000	// this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click

display en español

¿Cuántos extrusors :

Indique el número de extrusoras que planea utilizar .

EXTRUSER #define 1


**PARÁMETROS TÉRMICOS**

Elección de la sonda de temperatura

Entre la lista se enumeran en el código anterior , elija el termistor más cerca nuestro. En caso de duda lo mejor es preguntar a su vendedor. Si el termistor es desconocida, es posible obtener un error de lectura al tiempo que permite el control de temperatura . A priori un termistor en reposo debe indicar la temperatura de una pieza o una temperatura cerca . Es posible obtener una buena impresión calibrando correctamente, pero habrá diferencias en comparación con otras impresoras .

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1


TEMP_SENSOR_0 es utilizado por el primer hotend mientras TEMP_SENSOR_BED está conectado a la cama caliente . Ocupar 0 para desactivar la sonda.

Temperatura Mínima

Definir la temperatura mínima de utilización superior a 0 ° C La razón es que el sensor de temp desconectado indica una temperatura de 0 ° C.
Esta seguridad evitará calentar el hotend o la cama caliente a la máxima potencia de forma indefinida. Este es un parámetro importante que se define a 5 ° C por defecto.

#define HEATER_0_MINTEMP 5
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 5


**Temperatura máxima**

Dependiendo de los hotend seleccionados , algunos son más resistente a la temperatura . Por ejemplo, un tubo de PTFE ( teflón ) se utiliza para guiar el filamento en la zona caliente , pero este material es resistente a la temperaturas -- 240 ° C .Aqui Lo mejor es dejar un poco de margen porque se puede exceder ligeramente la temperatura deseada .

#define HEATER_0_MAXTEMP 235
#define HEATER_1_MAXTEMP 235
#define HEATER_2_MAXTEMP 235
#define BED_MAXTEMP 120


Controlador de temperatura PID

Esta es una opción avanzada que se detallará más adelante , pero por ahora puede funcionar sin tocar la opción.



Prevenir extrusiones peligrosas :

Estos parámetros se definen de forma predeterminada.

Por razones de seguridad queremos evitar la extrusión de un material sólido . Como es imposible la extrusión de un material sólido , la impresora podría romper intentar hacerlo .

#define PREVENT_DANGEROUS_EXTRUDE


Si se produce un error en las instrucciones de movimiento de la impresora , como la posición de una coma o un punto , para evitar demasiado tiempo extrusión.

#define PREVENT_LENGTHY_EXTRUDE


Aquí podemos determinar la temperatura mínima de extrusión mas arriba del punto de fusion del PLA y ABS

#define EXTRUDE_MINTEMP 170


PARÁMETROS MECÁNICOS


los endstops

Los endstop están destinados a estar activado cuando un eje alcanza su límite. Los interruptores de límite se utilizan también como posición de referencia. Cuando se aplicara un home (un dibujo en forma de casa en el programa Repetier ) , la impresora moverá cada eje de uno en uno en la dirección definida hasta que se activa el endstop .



Elección del interruptor de circuito



Se necesita una resistencia de pull-up entre los terminales de la fuente, de señales y de retorno a la tierra . cuidado si esta mal conectado usted puede quemar a la electronica con un cortocircuito ...

Una resistencia pull-up es integrado en el microcontrolador y es posiblede lo activar mediente del firmware. Es necesario seleccionar esta opción para conectar un interruptor mecánico directamente entre la señal y el retorno a tierra. Para cualquier otro tipo de interruptor (óptico, magnético, mecánico) se recomienda para estudiar el circuito para evitar cortocircuitos.

Para más información sobre las resistencias pull-up: wikipedia, arduino

Deje esta línea sin comentario // para activar las resistencias pull-up en cada interruptor.

ENDSTOPPULLUPS #define


De lo contrario, Marlin configura cada interruptor individualmente. Es posible utilizar diferentes tipos de interruptores en la misma impresora (óptico, magnético, mecánico, etc.).

ENDSTOPPULLUPS #ifndef
   #define ENDSTOPPULLUP_XMAX
   #define ENDSTOPPULLUP_YMAX
// #define ENDSTOPPULLUP_ZMAX
   ENDSTOPPULLUP_XMIN #define
   ENDSTOPPULLUP_YMIN #define
// ENDSTOPPULLUP_ZMIN #define
#endif


Revertir el foncionamiento de los interruptores

Algunos conmutadores permiten que la corriente fluya normalmente y para la corriente cuando esta activado son del tipo (NC)
Otros no dejan pasar la corriente a la condicion que se activa (NO).
Un circuito (No :normaly open ) deja la corriente pasar y abierto (Nc:normaly close ) no deja pasar la coriente
La ventaja de dejar la corriente pasar en una situación normal es practica cuando un cable se corta o un endstop esta defectuoso , por consequencia la impresora tomara este error como una señal de límite y no se moverá más.

NO = true

NC = false

X_MIN_ENDSTOP_INVERTING bool const = false;
Y_MIN_ENDSTOP_INVERTING bool const = false;
Z_MIN_ENDSTOP_INVERTING bool const = false;
X_MAX_ENDSTOP_INVERTING bool const = false;
Y_MAX_ENDSTOP_INVERTING bool const = false;
Z_MAX_ENDSTOP_INVERTING bool const = false;


Utilice 3 o 6 interruptores.

En circunstancias normales, la posición proporcionada por la impresora sería siemrpe adecuada. En este caso, un interruptor de final de carrera sería suficiente para determinar la posición de referencia (origen de la impresora)
. Pero cuando se produce un incidente no dejara el seguimiento del motor (colisión, la falta de poder, perdida de pasos )
la posición prevista no es la posición real y es teóricamente posible que el control de la impresora tiene un movimiento más allá el extremo de los ejes. El uso de interruptores al principio y al final de cada eje evita que este tipo de comportamiento.

Retire los símbolos // comentarios sobre las siguientes líneas para desactivar los máximos y mínimos de los interruptores.

// #define DISABLE_MAX_ENDSTOPS
// #define DISABLE_MIN_ENDSTOPS


Invierta la dirección de moteurs
La mejor manera de saber si los motores están conectados bien o al revés es probar lo . Para ello lo mejor es esperar hasta que se haya completado la configuración y el firmware se envía al controlador. Volveremos a este tema más allá.

#define false INVERT_X_DIR
#define true INVERT_Y_DIR
#define true INVERT_Z_DIR
#define true INVERT_E0_DIR
#define true INVERT_E1_DIR
#define false INVERT_E2_DIR

la posicion del home

La posición de referencia que se llama HOME es el punto adonde la impresora va a tocar los interruptores y encontrar la ubicación real. Entonces será "a ciegas " y va a calcular su posición con respecto a este punto.

este punto de referencia sirve para revenir en cualquer situacion . Como los finales de carrera se encuentran en los extremos , se debe definir en qué dirección la impresora tendrá que moverse para lograr los tres que hemos seleccionado .

-1 Para el movimiento en una dirección negativa
y +1 en dirección positiva.

-1 # define X_HOME_DIR
-1 # define Y_HOME_DIR
#define Z_HOME_DIR 1


Tenga en cuenta que la posición de referencia puede ser diferente del centro del plano cartesiano (programa )

El eje Z es el de la superficie de impresión y se coloca muy cerca de la cabeza del hotend .La señal de interrupción debe estar muy preciso y muy rápido para que apunte a la impresora cuando parar el movimiento sin riesgo de colisión con la cama caliente .

El espacio para imprimir

Es aquí donde podemos decirle al rango máximo de viaje para cada controlador de eje a partir del punto de referencia. Por ejemplo, si la impresora puede imprimir una 200x200x200mm de espacio podemos decir que la posición máxima de X es 200 y el mínimo es 0.

* tomar en cuenta que la impresora aún no han sido calibrados y no se sabe si se va a mover bien 200mm cuando se le preguntó sino va depasar ligeramente . Para evitar que deja pasar o que tiene colisión, es mejor reducir ligeramente la distancia máxima por ahora. Podemos volver después de la calibración.

#define X_MAX_POS 190
#define X_MIN_POS 0
#define Y_MAX_POS 190
#define Y_MIN_POS 0
#define Z_MAX_POS 190
#define Z_MIN_POS 0


Movimientos Ajustes

Establecer la quantidad de movimientos x y z y extrusor

Esto es para definir la forma en que la impresora puede controlar los movimientos. Este es el número de ejes (3), además del extrusore.

#define NUM_AXIS 4


* Tenga en cuenta que cuando se utiliza más de una extrusora (por defecto) hay que añadir una coma para cada variable que contiene los movimientos en las siguientes líneas.

por ejemplo, la variable {X, Y, Z, E1, E2, E3, etc.}



indicio de velocidad al punto de referencia(home)

Esta es la velocidad de la impresora cuando se va al punto de referencia Home . Tenga cuidado con las unidades. Múltiples velocidades o aceleraciones en Marlin se expresan en [mm / s] o [mm / s2], pero esto es de [mm / min].

HOMING_FEEDRATE #define {50 * 60, 50 * 60, 60 * 4, 0}




quantidad de impulsione por unidad(calibrar el motor paso a paso)

Los motores paso a paso se mueven por impulsiones , los motores que ocupamos son de tipo NEMA 17 ,ellos tienen una resolución de 200 impulsiones por rotación.
los controladores (driver polulu) también envían impulsiones parciales (microstep) para aumentar la resolución de control.
Todo dependiendo del mecanismo, nosotros necesitamos conocer el número de impulsiones a enviar a los motores para tener un movimiento de un 1mm sobre un eje elegido

La manera de calcular es dividir la quantidad de impulsiones por la quantidad de mm para la misma distancia, en este caso una revolución completa del motor. El número total de impulsiones visto del firmware es el número de impulsiones por revolución del motor multiplicada por el número de microstep por controlador de pulso.

Polea y correa (generalmente ejes xy):

impulsiones _par_mm = (impulsions por revolucion completa del motor multiplicado por microsteps) dividido por (paso de la diente multiplicado por la quantidad _de_dientes_de_la_polea )

Tornillo de avance (eje z)

impulsion_par_mm = (impulsions por revolucion completa del motor multiplicado por microsteps) dividido por (hilo de la barra roscada o husillo)

Extrusora de tipo directo:

impulsion_par_mm = (impulsions_por_revolucion completa del motor multiplicado por microsteps) / (diamètro_efectivo_de_ * pi)

ejemplo de la extrusora Bowden

Extrusora con reducción de engranajes:
impulsion_par_mm = (micropasos impulsions_par_rev *) *
(diente del _grande _engrenaje ) / (dientes del chico engrenaje)
(diamètro_efectivo_de_ * pi)

DEFAULT_AXIS_STEPS_PER_UNIT {X, Y, Z, E1, E2}

{DEFAULT_AXIS_STEPS_PER_UNIT #define 80,80,200.0 * 8 / 3,760}

En la aplicación Arduino IDE , guardar los cambios realizados en el archivo configuration.h

(guardar)

Comprobar código

(Verify )

Si todo está en orden , se debe decir compilado si debe tener uno o más mensajes de error. Por lo general, la línea del error se indica y esto es a menudo un error o falta de // comentarios .

Una vez que se pasa la verificación , es el momento de conectar el arduino

Seleccione el puerto correspondiente a la impresora 3D.



Descargue el código compilado en la tarjeta

( save )


Ahora la impresora está lista para mover !! Queda por comprobar que los motores giren en la dirección correcta .

Este es el último paso antes de empezar a imprimir las partes de calibración .

Mantenga la impresora 3D conectado al puerto USB de la impresora.



La impresora de posición manualmente al centro de cada eje. Debe ser capaz de moverse en una dirección o la otra.
Encienda la fuente de alimentación .
En el software de arranque del comptadore como Pronterface o Repetier para menejar la impresora 3D .
Pulse el botón Conectar
Mantenga el dedo listo para intervenir sobre botón de reset del arduino . (por si acaso ... )
Enviar el comando para mover el eje X por una distancia tan pequeña como 1 o + 10mm
Si la impresora se mueve en la otra dirección , se invertirá la dirección del motor.
Repita el procedimiento para cada eje.

Para probar el movimiento de extrusoras , tenemos que pasar por encima de la protección. El comando M302 para girar la extrusora incluso si la boquilla no está a la temperatura extrusion.Il debe asegúrese de realizar la prueba sin filamento.

Enviar para extrusar 10mm y comprobar el sentido de giro del motor.

No hace ninguna diferencia si invertimos la dirección de los motores en el firmware o revertir la conexión de motores . Por contra hay que tener cuidado para que se apague la alimentación de la impresora y desconecte el cable USB antes de desconectar / reconectar los motores.

#define false  INVERT_X_DIR
#define true INVERT_Y_DIR
#define true INVERT_Z_DIR
#define true INVERT_E0_DIR
#define true INVERT_E1_DIR
#define false INVERT_E2_DIR

Buena impresión 3d que la fuerza estan con ustedes !!



Edited 2 time(s). Last edit at 10/21/2015 02:18PM by labotecno.
Re: Tutorial para cargar el firmware en la Labrap hot smiley
October 08, 2015 01:21PM
muy buena guia
Re: Tutorial para cargar el firmware en la Labrap hot smiley
October 08, 2015 07:12PM
Muy bueno!!!!!
foolproof!!!!!
Re: Tutorial para cargar el firmware en la Labrap hot smiley
October 10, 2015 03:41AM
bacán la guía, sólo me falta la electrónica
Re: Tutorial para cargar el firmware en la Labrap hot smiley
March 07, 2016 02:45PM
hola tengo problemas al cargar me sale el error avrdude: stk500v2_getsync(): can't communicate with device: resp=0x01 y ya no se que hacer.
El arduino es un clon.

saludos
Re: Tutorial para cargar el firmware en la Labrap hot smiley
March 21, 2016 05:58PM
Quote
racso
hola tengo problemas al cargar me sale el error avrdude: stk500v2_getsync(): can't communicate with device: resp=0x01 y ya no se que hacer.
El arduino es un clon.

saludos

Es el driver FTDI el que te está hinchando.
Si es un clon prueba hacer downgrade al driver.

Saludos!
Sorry, only registered users may post in this forum.

Click here to login