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

MS1 MS2 MS3 Microstep
Low Low Low Paso completo
High Low Low Semipaso(½)
Low High Low ¼ paso
High High Low 1/8 paso
High High High 1/16 paso

*Tabla de selección de microstepping para DRV8825

Mode0 Mode1 Mode2 Microstep
Low Low Low Paso completo
High Low Low Semipaso(½)
Low High Low ¼ paso
High High Low 1/8 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:

GT2 36 Dientes
44.44ppmm
GT2 20 Dientes
80 ppmm
GT2 16 Dientes
100ppmm

Varilla roscada

M5 (0.8mm/vuelta)
4000ppmm
M6 (1mm/vuelta)
3200ppmm
M8 (1.25mm/vuelta)
2560ppmm

Extrusor

Hobbed bolt con reductora tipo Greg's
800 ppmm
Hobbed Gear Mk5
95 ppmm
Hobbed Gear Mk7
85 ppmm
Hobbed Gear Mk8
125 ppmm

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:

http://prusaprinters.org/calculator/

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:

http://reprap.org/wiki/RAMPS_1.4/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:

http://reprap.org/wiki/Megatronics_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:

http://reprap.org/wiki/SAV_MKI/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:

http://reprap.org/wiki/Sanguinololu/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.

[http://es.wikipedia.org/wiki/Controlador_PID]

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:

http://es.wikipedia.org/wiki/G-code.

Aqui os dejamos una pequeña guía con algunos de los comandos mas útiles para las impresoras 3D:

http://wiki.makespacemadrid.org/index.php?title=G-code

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: http://wiki.makespacemadrid.org/index.php?title=G-code_music