avier Fernández Ajero
PUESTA EN MARCHA Y CALIBRACIÓN DE UNA IMPRESORA 3D
Obtener buenos resultados de nuestra impresora depende de unos cuantos factores, como la robustez mecánica
de la misma, la suavidad de los mecanismos de los ejes, el correcto ajuste del firmware y la configuración del
fileteador. Además todas estas variables se pueden interferir entre ellas confundiéndonos, por lo que cuando
hagamos pruebas lo haremos siempre tocando sólo una cosa a la vez, pera poder ver el resultado claro de esa
modificación.
Hay muchas impresoras diferentes, aunque los procedimientos que vamos a explicar se pueden adaptar
fácilmente de una a otra, a lo largo de estas fichas ilustraremos una prusaI3, por ser uno de los modelos mas
populares.
1. Puesta en marcha de la impresora
En la puesta en marcha, o primera configuración haremos un primer ajuste de la impresora utilizando los valores
de las tablas o los calculados para configurar nuestra impresora, después en el proceso de calibración
ajustaremos los valores, calibre en mano, para ajustar las pequeñas desviaciones que tengamos.
En la puesta en marcha cubriremos estos puntos:
● Configurar la intensidad y el microstepping de los drivers.
● Calcular los pasos por mm de los ejes.
● Conexiones en las principales placas.
● Configurar los valores en el firmware.
Calibración de la impresora:
● Tamaños y aporte con el cubo de calibración espiralizado.
● PID del calentador.
2. Drivers de potencia; intensidad y microstepping
Los drivers de potencia dan vida
a los motores, regulando la
corriente que se envía a sus
bobinas. Es importante que
estén bien ajustados para que se
muevan de forma fiable y los
drivers nos duren mucho
tiempo.
Hay varios fabricantes de
drivers de potencia y distintas
necesidades que los hacen
diferentes entre si. Los más
comunes en impresión 3d son
los Pololu, que nos valdrán para
ilustrar el ajuste de uno de estos
drivers.
Los dos modelos que solemos
encontrar en las electrónicas de
las impresoras 3d son el A4988
y el DRV8825.
Ambos vienen en formato de
circuito con cabeceras de
conexión, listos para enchufar
en nuestra aplicación.
Estos drivers no tienen ninguna
pestaña o mecanismo que nos
impida colocarlos mal, y hacerlo
supondrá dañar el controlador
con casi toda probabilidad, por
esto es siempre importante
comprobar en las inscripciones
de la placa que los estamos
colocando bien.
2.1 Microstepping
Para conseguir una mayor
precisión, un movimiento mas
suave, e incluso un sonido de los
motores mas agradable los
drivers utilizan el
microstepping para crear pasos
intermedios con las bobinas del
motor, regulando la cantidad de
potencia que le entrega a cada
una para lograr que el rotor se
pare entre medias de las dos.
Dependiendo del driver puede
soportar diferentes modos, que
pueden ir desde el Paso
completo (1/1) hasta
microstepping de 1/32 de paso,
esto es por cada 32 pasos que
recibe el driver el motor se
mueve 1 paso mecánico(con 32
posiciones intermedias).
La selección de modo de paso se
hace con los pines M0,M1 y M2,
que normalmente están
conectados a unos interruptores
o jumpers.
*Tabla de selección de microstepping para A4988 *Tabla de selección de microstepping para DRV8825
MS1 MS2 MS3 Microstep Mode0 Mode1 Mode2 Microstep
Low Low Low Paso completo Low Low Low Paso completo
High Low Low Semipaso(½) High Low Low Semipaso(½)
Low High Low ¼ paso Low High Low ¼ paso
High High Low 1/8 paso High High Low 1/8 paso
High High High 1/16 paso Low Low High 1/16 paso
High High High 1/32 paso
2.2 Intensidad
La intensidad (Amperios) que se le mandan a las bobinas es otro parámetro que hay que tener bien ajustado.
Con poca intensidad los motores no tendrán suficiente fuerza para moverse con seguridad y perderán pasos en
cuanto cojan velocidad o encuentren más rozamiento del esperado en eje. Por la contra si la intensidad es
demasiada los motores y los drivers se calentaran mas de lo debido reduciendo su vida útil. Además al sobre-
calentarse es posible que se active el circuito de protección del controlador que desconectara brevemente el
controlador, causando que el movimiento se interrumpa.
¿Cual es la intensidad que le tengo que aplicar al motor?
La intensidad a la que regularemos los drivers dependerá del tipo de mecanismo al que vaya conectado el motor,
algunos requieren más fuerza que otros para moverse.
Potencia máxima del motor.
Primero empecemos por averiguar cual es la potencia máxima que le podemos aplicar al motor
(manteniéndonos dentro de los parámetros del fabricante). Para ello miraremos el motor o el datasheet del
mismo.
El clásico NEMA 17 que se utiliza en la mayoría de las impresoras 3D suele tener una pegatina en el lado en la
que pone 3'6V 2'5A. Esto quiere decir que si enchufamos directamente una de las bobinas del motor a 3'6 Voltios
consumirá 2'5Amperios a plena potencia. Con estos dos datos y la fórmula de la potencia podemos calcular la
potencia del motor.
P = V*I ; P = 3'6*2'5 ; P = 9W
Este motor desarrolla una potencia máxima de 9W por bobina.
Cogiendo el voltaje de nuestra fuente de alimentación (generalmente 12V) calcularemos la intensidad
equivalente a los 9W. Para ello utilizaremos la fórmula de la potencia con el voltaje de nuestra fuente de
alimentación.
P = V*I ; I = P/V
I = 9W/12V ; I = 0,75A
0,75A es la intensidad máxima (por bobina) que le podemos suministrar al motor respetando los parámetros
de fabrica, y en la mayoría de las situaciones no es necesario tanto. El ajuste se hará entre la potencia que
permita mover el mecanismo con la fuerza suficiente y sin superar 0.75A.
Como referencia podemos usar estos valores con los que se suelen ajustar las impresoras 3D.
Valores de referencia:
● Mecanismos 'ligeros':
Como podría ser el eje X o Y de una Prusa. 0.3A - 0.4A.
● Mecanismos 'pesados' :
Como podría ser el eje Z de una Prusa o el extrusor 0.6A - 0.8A
2.3 Métodos de ajuste de la intensidad en el driver
La intensidad que el driver le entrega a las bobinas del motor se regula mediante un pequeño potenciómetro, en
forma de tornillo, que hay en la placa del circuito. Girándolo aumentaremos o disminuiremos la intensidad. Es
importante apuntar que el DRV8825 no solo se coloca al revés en el slot, sino que también se regula al
revés que el A4988
A4899:
Girar a las agujas del reloj:
+ Aumenta potencia
Girar contrario a las agujas:
- Disminuye potencia
DRV8825:
Girar a las agujas del reloj:
- Disminuye potencia
Girar contrario a las agujas:
+ Aumenta potencia
Algunos modelos tienen además
una pequeña marca en el
potenciómetro para facilitarnos la
tarea de ajustarlo (como se indica
en la Figura de la derecha).
1. "Como todos los demás".
Este método solo vale para los
drivers que tienen la marca en
el potenciómetro y no es nada
científico, pero cuando estas
ajustando drivers del mismo
modelo todo el día al final todos
te quedan con el potenciómetro
en el mismo sitio.
'Mecanismos ligeros'
(Con la marca del Pololu a la 1)
A4988
'Mecanismos pesados'
(Con la marca del Pololu a las 3)
2. Medir la intensidad de las bobinas
Este método, aunque es el más
popular en internet, es el más
engorroso de preparar pues hay
que conectar en serie el
polímetro con las bobinas del
motor o la entrada de
alimentación de corriente.
No es nuestro método
recomendado en absoluto, pues
complica innecesariamente la
medida, aun así si vas a hacerlo
asegúrate de que pones el
driver en modo paso completo,
pues si no el driver puede estar
haciendo microstepping y la
medida promediada del
polímetro no será fiable.
3. Medir Vref para calcular la intensidad
Este es el método recomendado por
Pololu para ajustar la intensidad
midiendo la referencia de voltaje en el
potenciómetro. Es bastante más
sencilla y precisa que intentar medir la
intensidad de las bobinas del motor.
Para ello hay que medir con el
polímetro el voltaje entre el negativo
y la parte metálica del
potenciómetro.
- A4988 → Intensidad = VREF * 2.5
- DRV8825 → Intensidad = VREF * 2
'Mecanismo ligero'
-A4988 : VREF = 0,65V
-DRV8825 : VREF = 0,50V
'Mecanismo pesado' 0.5A
- A4988 : VREF = 0,90V
- DRV8825 : VREF = 0,70V
2.4 ¡Precaución!
Los drivers de los motores son elementos muy sensibles y se dañan fácilmente, algunas de las cosas que los
pueden estropear sin que hayan llegado a dar siquiera su primer paso:
● Colocarlos desplazados de sus pines, o al revés.
● Bobinas del motor mal conectadas.
● Sobrecalentamiento.
● Si durante el ajuste de la potencia le das sin querer una vuelta completa al potenciómetro (cruzar de mínimo
a máximo) el driver se puede quedar bloqueado y hay que desconectarlo de la corriente para que vuelva a
reaccionar.
● Por descarga electrostática. Asegúrate de manejarlo con cuidado, no tocar pistas o pines que no sean de tierra
y de descargarte de electricidad estática (por ejemplo tocando la carcasa de un PC conectado a tierra o mejor,
utilizar herramientas específicas para esto) antes de manipular electrónica sensible como los drivers o la propia
placa controladora
3. Pasos por milímetro
Los pasos por mm es una variable clave para conseguir que los resultados de la impresión sean fieles a las
medidas que les hemos dado.
Este valor determina cuantos pulsos (pasos) le tiene que mandar el microcontrolador al driver del motor para
que el eje se mueva 1.00mm.
Dependiendo de los fabricantes de los materiales, mínimas desviaciones en la construcción de las poleas o
varillas pueden generar pequeñas diferencias en los pasos por mm que luego ajustaremos en el apartado de
calibración. Sin embargo, los valores de estas tablas son un buen punto de partida.
Los valores de los pasos están calculados para el driver de potencia en modo 1/16 de paso (Ver apartado de
Microstepping).
Poleas: Extrusor
Hobbed
bolt con
GT2 36
reductor
Dientes
a tipo
44.44ppm
Greg's
m
800
ppmm
Hobbed
GT2 20 Gear
Dientes Mk5
80 ppmm 95
ppmm
Hobbed
GT2 16 Gear
Dientes Mk7
100ppmm 85
ppmm
Varilla roscada
M5
(0.8mm/vuelta Hobbed
) Gear
4000ppmm Mk8
125
ppmm
M6
(1mm/vuelta)
3200ppmm
M8
(1.25mm/vuelt
a)
2560ppmm
La calculadora de Josef Prusa.
Las tablas anteriores cubren la gran mayoría de los
casos, para otros elementos podemos usar la
calculadora de Prusa para calcular los valores de los
pasos por mm de poleas, varillas roscadas y husillos
que no están en este capitulo
La podemos encontrar en:
[Link]
4. Diferentes electrónicas utilizadas en Impresoras 3D
En el siguiente sección vamos a hacer un repaso a las electronicas más utilizadas en las impresoras 3D:
4.1 RAMPS 1.4
Wiki reprap:
[Link]
/es
La Ramps es una shield que en
combinación con un arduino mega
forma un conjunto de electrónica
para controlar impresoras 3d
versátil y barato.
Drivers : 5
Mosfet : 3
Termistores : 3
Esquema de conexiones:
-Conexión de los finales de carrera: -Colocación de los drivers de motores:
-a4988
Precauciones:
- Verifica siempre que los finales de carrera están bien conectados para no fundir el regulador.
-La polaridad de los cables de alimentación en las tomas de alimentación no es la misma en las tomas de hotend
y cama caliente, comprueba siempre las inscripciones de la placa.
-Asegúrate de que todos los pines de la ramps han encajando bien en el arduino.
4.2 Megatronics V2
wiki reprap:
[Link]
2.0
La Megatronics nació como solución
todo-en-uno para mejorar la
combinación de RAMPS+Arduino
Drivers : 6
Mosfet : 4
Termistores : 3+2 Termopares
-Conexión de los finales de carrera: -Colocación de los drivers de motores:
-a4988
Precauciones:
- Verifica siempre que los finales de carrera están bien conectados para no fundir el regulador.
Información extra:
Numero de pin de la toma FAN2: 6 (D6)
Para impresión autónoma hay que colocar el jumper de selección de alimentación(Junto al conector usb)
4.3 SAV MKI
wiki reprap:
[Link]
es
Esta electrónica se desarrollo por
Fernando Malpartida con las
colaboraciones del grupo Clone
Wars España. La placa SAV MkI
deriva de las placas Teensylu y
Printerboard, que a su vez estaban
originalmente basadas en la
Sanguinololu
Drivers : 4
Mosfet : 3
Termistores : 2
-Conexión de los finales de carrera: -Colocación de los drivers de motores:
-a4988
Precauciones:
● Verifica siempre que los finales de carrera están bien conectados, la SAV lleva protecciones contra corto-
circuito, aun así mejor no hacerlas trabajar .
4.4 Sanguinololu
wiki reprap:
[Link]
/es
Drivers : 4
Mosfet : 2
Termistores : 2
-Conexión de los finales de carrera: -Colocación de los drivers de motores:
-a4988
Precauciones:
● Verifica siempre que los finales de carrera están bien conectados para no fundir el regulador.
● No encender la fuente de alimentación si los motores no están conectados, el microcontrolador puede explotar.
● Algunas versiones de esta placa no llevan separación entre la linea de 5V del regulador y la del USB, en algunos
portátiles que que no suministran 5V exactos en el USB puede causar flujos de corriente inesperados y quemar
el cable USB o dañar el equipo.
Si el cable USB se calienta al conectarlo al ordenador mejor no uses la Sanguinololu con ese equipo.
5. Configurando el Firmware
Los firmwares para las impresoras 3D normalmente tienen montones de parámetros para poder adaptarlos a
un gran abanico de opciones y construcciones, al configurar el firmware debes adaptarlo a como es tu impresora,
la mínima configuración para poner a funcionar nuestra maquina seria:
● Tipo de termistor de los calentadores.
● Pasos por mm de los ejes.
● Tamaño de los ejes.
● Lógica de los finales de carrera(NO/NC).
Aun así hay un montón de parámetros más, en esta ficha explicaremos los más comunes.
Tomaremos como referencia los parámetros del firmware Marlin 1.0.2, para una Prusa i3.
● Velocidad de conexión:
#define BAUDRATE 115200
Con este parámetro se configura la velocidad de la conexión serie a la impresora,no afecta mucho a la velocidad
de impresión.
250000 da problemas en algunos equipos/electrónicas clónicas.
115200 Es un valor que suele funcionar bien en todos los equipos.
● Tipo de placa base
#define MOTHERBOARD BOARD_RAMPS_13_EFB
Con este parámetro configuraremos que tipo de electrónica tenemos, reemplazando BOARD_RAMPS_13_EFB
por el nombre o código de nuestra placa sacado del boards.h
Códigos de las placas mas comunes:
BOARD_RAMPS_OLD 3
BOARD_RAMPS_13_EFB 33 Salidas Extrusor - Ventilador - Base caliente
BOARD_RAMPS_13_EEB 34 Salidas Extrusor0 - Extrusor1 - Base caliente
BOARD_RAMPS_13_EFF 35 Salidas Extrusor - Ventilador0 - Ventilador1
BOARD_RAMPS_13_EEF 36 Salidas Extrusor0 - Extrusor1 - Ventilador
BOARD_MEGATRONICS_2 701
BOARD_MEGATRONICS_3 702
BOARD_SANGUINOLOLU_11 6
BOARD_SANGUINOLOLU_12 62
BOARD_SAV_MKI 83
● Nombre de la impresora
#define CUSTOM_MENDEL_NAME "Notillus"
Si descomentamos esta linea podemos ponerle un nombre a la impresora que después aparecerá en el display
● Tipo de termistor
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
Los más típicos son los tipo 1(EPCOS Genérico), los 5(semitec) para los que vienen en los hotend tipo Jhead, y
los 7 para los Honeywell que vienen instalados de serie en los budaschnozzle.
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
● Protecciones de temperatura
#define HEATER_0_MAXTEMP 260
#define HEATER_1_MAXTEMP 260
#define HEATER_2_MAXTEMP 260
#define BED_MAXTEMP 150
Máxima temperatura que puede alcanzar el sensor antes de desconectar la impresora por seguridad.
● Finales de carrera:
+Pullups
Si estamos usando finales de carrera auto-alimentados u ópticos entonces hay que desconectar los pullups,
comentando la linea del eje concreto. Si por lo contrario estamos usando finales de carrera mecánicos los
dejaremos conectados.
#ifdef ENDSTOPPULLUPS
#define ENDSTOPPULLUP_XMAX – Con pullup(endstop mecanico)
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_XMIN – Sin pullup(endstop autoalimentado)
#define ENDSTOPPULLUP_YMIN
#define ENDSTOPPULLUP_ZMIN
#endif
● Invertir la lógica
Si los finales están conectados al normalmente cerrado(al pulsar desconecta) se configura a false, y si están
conectados el normalmente abierto(al pulsar conecta) se configura a true.
const bool X_MIN_ENDSTOP_INVERTING = false;
const bool Y_MIN_ENDSTOP_INVERTING = false;
const bool Z_MIN_ENDSTOP_INVERTING = false;
const bool X_MAX_ENDSTOP_INVERTING = true;
const bool Y_MAX_ENDSTOP_INVERTING = true;
const bool Z_MAX_ENDSTOP_INVERTING = true;
● Desactivar los finales de carrera no presentes
Algunas máquinas solo tienen presentes los finales de carrera de posiciones mínimas(0,0,0), como podría ser
una Prusa i3, si es el caso podemos desactivar los finales de carreras que no están presentes descomentando la
linea pertinente.
#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS
● Dirección de los ejes
Si el motor no gira para donde esperamos podemos darle la vuelta al sentido de giro por software con estas
opciones.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR true
● Posiciones máximas
Con estos valores configuraremos las posiciones mínimas y máximas que los ejes pueden alcanzar. Estos valores
sirven como sistema de seguridad para que el eje no siga avanzando y golpeándose en los extremos.
#define X_MAX_POS 120
#define X_MIN_POS 0
#define Y_MAX_POS 120
#define Y_MIN_POS 0
#define Z_MAX_POS 95
#define Z_MIN_POS 0
-Velocidad de 'Homing' {X mm/min , Y mm/min, Z mm/min, E mm/min}
#define HOMING_FEEDRATE {60*60, 60*60, 4*60, 0}
Con estos parámetros se configura la velocidad a la que los ejes se moverán en busca del final de carrera. Este
valor es en milímetros por minuto, por eso se suele expresar como una multiplicación : 60(mm)*60(segundos).
El extrusor no hace home, y por eso el valor de Homing esta a 0.
● Pasos pormilímetro {X ppm , Y ppm, Z ppm, E ppm}
#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 4020, 800}
En este parámetro se define cuantos pasos hay que mandarle al controlador del motor de cada eje para que ese
eje se mueva 1mm. En el apartado de puesta en marcha y calibración veremos como calcular estos valores.
Los valores de este ejemplo son para una prusa i3 con extrusor con reductora tipo gregs.
● Máximavelocidad{X mm/s , Y mm/s, Z mm/s, E mm/s}
#define DEFAULT_MAX_FEEDRATE {300, 300, 2, 25}
Estos parámetros limitan la velocidad máxima de los ejes, evitando que los mecanismos intenten ir a velocidades
no seguras. Valores de referencia para una Prusa i3
● Aceleraciones {X mm/min , Y mm/min, Z mm/min, E mm/min}
#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E
#define DEFAULT_ACCELERATION 2500
#define DEFAULT_RETRACT_ACCELERATION 3500
Máxima aceleración en mm/minuto de los ejes, valores de referencia para una Prusa i3
● Activar EEPROM
Si activamos la EEPROM podremos reconfigurar después el firmware sin necesidad de volver a volcarlo, pues
habilitara una zona en la memoria del microcontrolador para almacenar los cambios que hagamos a los valores
desde el display, o con comandos GCODE.
#define EEPROM_SETTINGS
● Pantalla LCD
Dependiendo del LCD que tengamos, si tenemos uno, habremos de descomentar la linea adecuada para nuestro
display, los mas populares son los conocidos como 'Smart Discount' que tiene 4 lineas de caracteres y el 'Full
graphic' que tiene una pantalla de 128x64pixeles.
#define REPRAP_DISCOUNT_SMART_CONTROLLER
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
6. Calibración
6.1 Tamaño y aporte de material:
El tamaño final de un objeto no solo depende de cuanto se mueven los ejes (pasos por mm), el ajuste del aporte
de material influye también.
Si el aporte de material es demasiado generoso veremos que los objetos crecen en las esquinas, y los agujeros
serán más pequeños porque ese 'extra' de materia tendera a expandirse.
Para ajustar estos dos parámetros vamos a imprimir un cubo espiralizado en cura, lo que nos permitirá probar
mecánica y aporte en una sola prueba.
El modo espiralizado de Cura
Cura tiene un modo especial pensado para hacer
vasijas, en este modo intenta construir el objeto con un
único perímetro y sin retracciones, haciéndolo en
espiral, subiendo a la vez que construye el objeto.
Una de las peculiaridades de este modo es que nos
permitirá fijar el grosor de la pared que queramos, y
forzar al extrusor a construirlo de una sola pasada.
Normalmente si le pedimos al fileteador que haga 1mm
de pared hará dos pasadas de 0,5mm cada una, en el
modo espiralizado intentara construir la pared de 1mm
de una sola pasada.
Para activar el modo espiralizado hay que entrar en el
menú de 'Expert settings' de cura, y marcar la casilla
'Spiralize the other contour', recuerda que este modo se
queda activo hasta que lo desactives, así que asegúrate
de desactivarlo cuando quieras volver a imprimir
piezas normales.
El cubo de calibración
En esta prueba imprimiremos un cubo espiralizado de 50mmx50mmx50mm, y con el calibre comprobaremos
los tamaños de las paredes así como el tamaño del cubo.
Para esta prueba podemos usar un cubo descargado de internet o crear el nuestro como se explica en el capitulo
de diseño de este manual.
*Cargamos el cubo en cura
*Activamos el modo
espiralizado en la ventana
experto
*Configuramos el fileteo con los
siguientes parámetros:
-Layer heigth : 0.2mm
-Shell thickness : 1mm
-Bottom/top thickness :
0.6mm
-Print Speed : 40mm/s
Una vez impreso este cubo nos servirá para comprobar el tamaño y el aporte de nuestra maquina.
*Calibracion de los pasos por mm
Una vez impreso el cubo le medimos con el calibre, y comprobamos si tiene las medidas que debería (50mm en
cada lado y 1mm de grosor en la pared), si no lo fuera podemos ajustar los pasos por mm con una regla de tres:
NuevosPasosPorMM =PasosPorMM * tamaño esperado / tamaño real
Por ejemplo:
En la prueba teníamos configurado el X con 80ppmm, y el cubo al medirlo en la dirección X tenia 49.67mm, la
formula para ajustarlo quedaría:
PasosPorMM = 80 * 50 / 49.67
Pasos por mm eje X = 80.53 ppmm
Podemos hacer el proceso para los tres ejes XYZ, y también con el extrusor, pues la pared del cubo debería de
medir 1mm.
Para cargar los nuevos valores lo podemos con el comando M92:
M92 X80.53
o para cambiar los pasos en todos los ejes:
M92 X80.53 Y80.53 Z4020 E782
Y si tenemos la EEPROM activada podemos hacer los cambios permanentes con el comando M500
6.2 Temperatura
Cada impresora tiene su propia temperatura de impresión óptima, y por eso es siempre difícil recomendar una
temperatura, los valores que funcionan bien para una impresora pueden no hacerlo bien en otra.
Esta variabilidad de temperaturas se suele deber,entre otros factores, al uso de termistores como sensor de
temperatura, el termistor o termo-resistor, es un componente cuya resistencia varia en función de la
temperatura. Es una solución barata para medir la temperatura y relativamente fiable, pero sensible a que
diferentes montajes modifiquen ligeramente el valor de resistencia que da el sensor(longitud de los cables y
calidad de las soldaduras p.e.). En general nos ajustaremos a los valores del fabricante del plastico que estemos
usando, aunque hay que tener en cuenta que depende de la maquina puede variar +-15 grados.
Ajuste del PID
La regulación de temperatura de los calentadores de los hotend se suele hacer mediante un controlador PID, que
es un mecanismo de control por realimentación ampliamente utilizado en sistemas de control industrial. Este
calcula la desviación o error entre un valor medido y un valor deseado.
[[Link]
Este algoritmo de control considera tres parámetros para su funcionamiento ;
Kp :Parte proporcional
Kd :Parte derivativa
Ki :Parte integral
Por defecto el firmware viene configurado
con unos valores que suelen funcionar en
un amplio abanico de situaciones, pero si
queremos podemos ajustarlo a las
peculiaridades de nuestro hotend con el
comando M303.
Este comando realizara una serie de ciclos
de calentamiento y enfriado probando
diferentes valores para determinar los que
mejor se adaptan.
Para iniciar la prueba lo tenemos que hacer
con el calentador frio, y utilizar el comando
M303 especificando la temperatura a la que
queremos que caliente, 220 es la
temperatura que utilizaremos en este
ejemplo
M303 S220
El proceso tardara unos minutos y al final
dará los nuevos valores de calibración a
través de la salida serie.
Los valores los podemos configurar en el firmware y volver a cargarlo, o si tenemos la EEPROM activada
configurarlo con el siguiente comando gcode:
M301 P43.34 I1.94 D242.33
Y hacerla permanente salvando los valores en la EEPROM con el comando
M500
7. Apéndice: Comandos Gcode
G-code es el nombre del lenguaje con el que hablan las maquinas de control numérico (cnc), son una serie de
comandos para activar, desactivar o configurar sus funcionalidades a través del terminal serie. Con estos
comandos podemos reconfigurar la impresora sin necesidad de volver a cargar el firmware. Para una explicación
mas en profundidad mirad:
[Link]
Aqui os dejamos una pequeña guía con algunos de los comandos mas útiles para las impresoras 3D:
[Link]
Movimiento/posición de la maquina:
G28 : "Home" Ir a la posición inicial de los tres ejes, también se puede usar con argumentos para hacer el 'home'
en solo uno de los ejes. Ejemplos: G28 -Hacer 'home' en los tres ejes G28 X0 -Hacer 'home' en el eje X
G0/G1: "Move & rapid move" En las reprap no suele haber diferencia entre G0 y G1, son comandos para
desplazar el cabezal. Ejemplos: G1 X0 Y0 Z5 - Mueve la cabeza a la posición 0, 0, 5. G1 X5 Y5 F3000 - Mueve la
cabeza a X5 Y5 a velocidad F3000 (3000 mm / min). G1 X5 Y5 E5 F3000 - Mueve la cabeza a X5 Y5 a velocidad
F3000 (3000 mm / min) extruyendo 5mm de material. Como la reprap es una maquina de estados si omitimos
alguno de los parámetros(X,Y,Z,E) se usara el ultimo valor.
M114 : "Get position" Devuelve la posición actual del cabezal.
M120 : "Push" Guarda la posición del cabezal.
M121 : "Pop" Recupera la posición del cabezal.
M220 : "Modificar la velocidad de impresión" Modifica la velocidad de impresión mientras esta imprimiendo
Parámetro 'S' para ajustar la velocidad. Ej. M220 S120; Aumenta la velocidad de impresión un 20%; M220 S80 ;
Reduce la velocidad de impresión un 20%;
M221 : "Modificar el multiplicador de extrusión" Modifica el multiplicador de extrusión mientras esta
imprimiendo. Un valor mas alto extruira mas material. Parámetro 'S' para ajustar la velocidad. Ej. M220 S120;
Aumenta la cantidad de material un 20%; M220 S80 ; Reduce la cantidad de material un 20%;Manejo de la
EEPROM
Si tenemos activada la EEPROM en el firmware, se cargaran automáticamente los valores ahí guardados en la
memoria
M500 : Salvar los parámetros en memoria a la EEPROM.
M501 : Cargar los parámetros de la EEPROM en memoria.
M502 : Cargar los valores por defecto (codificados en el firmware) en la memoria.
Si se quiere hacer un 'factory reset' primero hay que hacer un M502 para cargar los valores programados en el
firmware y después un M500 para salvarlos en la EEPROM
Controles del hardware:
M17 : Encender motores.
M18 : Apagar Motores.
M80 : Encender ATX.
M81 : Apagar ATX.
M106 : Encender ventilador de capa. Acepta como parámetro un byte para controlar la potencia del
ventilador. Ejemplo: M106 S255 - Enciende el ventilador de capa al 100%. M106 S128 - Enciende el ventilador
de capa al 50%.
M107 : Apagar ventilador de capa.
Configuración del hardware:
M92 : "Steps per mm" Ajusta los pasos por milímetro de los motores. Acepta como parámetros 'X','Y','Z' y 'E',
este ultimo para ajustar los pasos del extrusor Ejemplo: M92 X80 Y80 Z80 E80
M201 "MAX_ACC" - M202 "MAX_TRAVEL_ACC" - M203 "MAX_DEFAULT_ACC" Estos tres comandos regulan
la velocidad máxima de los ejes y el extrusor. Acepta como parámetros 'X','Y','Z' y 'E', este ultimo para ajustar el
extrusor. Ejemplo: M203 X200 Y200 Z20 E120
Otros :
M999 : "Reset".
M302 : "Alow cold extrusion". Permite mover el extrusor con el hotend frío.
M300 : "Beeper" Emite un tono por el altavoz integrado. Parámetro S para la frecuencia y P para la duración.
Ejemplo: M300 S392 P436 Por supuesto que se puede tocar la marcha imperial con el altavoz:
[Link]