Hola, vamos con la respuesta a tus preguntas, que va a ser algo larga.
Puedes cargar cualquier Marlin, aunque yo te aconsejo que pongas la última versión (1.1.9). Puedes descargarla de
aquí.
Para compilarlo y grabarlo en la placa, puedes utilizar el IDE de Arduino en su última versión (1.8.5). Puedes descargarlo de
aquí.
Una vez descomprimido el archivo zip, puedes utilizar el Marlin tal y como está, cambiando la configuración de los parámetros necesarios para la A8.
En lo que sigue, doy por sentado que vas a utilizar la A8 tal y como viene de serie, excepto la placa y la pantalla.
En el archivo
Configuration.h que trae el Marlin por defecto, deberás cambiar lo siguiente:
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_BED 5
Dependiendo de como quieras controlar el calentamiento de la cama, tendrás que descomentar (quitar // del comienzo) una de estas dos líneas (o una o la otra, nunca las dos):
//#define PIDTEMPBED para que lo haga mediante PID,
//#define BED_LIMIT_SWITCHING, para que lo haga por Bang-Bang (es como lo hace la A8 con la placa y el firmware de serie).
Yo te recomiendo que lo hagas por PID y que regules los parámetros, tanto de la cama como del fusor del extrusor. Tienes videos en Youtube explicando cómo se hace.
Edito: Me olvidé de indicar que para controlar por PID la cama caliente, hay que utilizar un mosfet o relé SSR externos.
De todas formas, se haga por PID o no, es muy conveniente hacerlo para evitar que la gran intensidad de corriente que demanda la cama pase por la circuitería de la placa.
Seguimos configurando:
#define X_MIN_ENDSTOP_INVERTING true
#define Y_MIN_ENDSTOP_INVERTING true
#define Z_MIN_ENDSTOP_INVERTING true
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 400, 100 }
#define DEFAULT_MAX_ACCELERATION { 1000, 1000, 50, 5000 }
#define DEFAULT_ACCELERATION 650
#define DEFAULT_RETRACT_ACCELERATION 1000
#define DEFAULT_TRAVEL_ACCELERATION 1000
En esta versión, Marlin trae una nueva característica (hay varias más), que puede que mejore los movimientos.
Puedes habilitarla descomentando la siguiente línea:
#define S_CURVE_ACCELERATION
Las siguientes líneas ponlas así y cuando enciendas la impresora, comprueba como se mueven los motores.
Si alguno lo hace al revés, invierte el conector en la RAMPS:
#define INVERT_X_DIR false
#define INVERT_Y_DIR fase
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
Las siguientes líneas son las medidas de la A8:
#define X_BED_SIZE 220
#define Y_BED_SIZE 220
#define X_MIN_POS -33
#define Y_MIN_POS -10
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 240
Velocidad del "homing":
#define HOMING_FEEDRATE_XY (60*60)
#define HOMING_FEEDRATE_Z (6*60)
Temperaturas de precalentamiento:
#define PREHEAT_1_TEMP_HOTEND 190
#define PREHEAT_1_TEMP_BED 60
#define PREHEAT_2_TEMP_HOTEND 240
#define PREHEAT_2_TEMP_BED 90
Idioma de la pantalla en castellano:
#define LCD_LANGUAGE es
Soporte de la tarjeta SD (descomenta la línea):
#define SDSUPPORT
Modelo de pantalla, si como indicas tienes una Reprap Discount Full Graphics (descomenta la línea):
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
Ten en cuenta que, si tienes esta pantalla, tendrás que instalar en el IDE de Arduino la librería U8Glib.
Para ello, descárgala de
aquí.
Selecciona en el menú
Programa>Incluir librería>Añadir librería .ZIP... y seleccionas el archivo descargado antes.
Si no me he olvidado nada, con esto tendrías configurado Marlin para tu A8 con Arduino Mega + RAMPS 1.4 + LCD Reprap Discount Full Graphics.
En el IDE de Arduino, en el menú
Herramientas, tendrás que tener configurados en Placa:
Arduino/Genuino Mega or Mega 2560, en Procesador:
ATMega2560 (Mega 2560) y en Puerto: el COM del ordenador al que tengas conectada la placa.
Debería compilar y subir sin problemas.
Para la conexión de todos los componentes a la RAMPS, hazte con un esquema.
Muy importante: nunca conectes o desconectes nada estando alimentada la placa.
Ojo con los interruptores de final de carrera. Van conectados en los pines - y S (da igual como se conecten) de X-, Y- y Z-. El + queda sin conectar.
Sobre lo que indicas de la alimentación, si sólo se hace por las conexiones de la RAMPS, esta alimentará el Arduino Mega si tiene los diodos D1 y D2 (normalmente suelen venir todas con ellos), pero hay la posibilidad de que no le entregue suficiente intensidad para soportar la pantalla gráfica.
De todas formas, es mejor alimentar el Arduino Mega mediante el jack. Si lo haces así, no lo alimentes con 12V o puede que se te queme el regulador interno.
Lo mejor es hacerlo a 9V, para lo que puedes utilizar un regulador externo. Yo uso
este.
Sobre la regulación de los drivers, olvídate de los voltios. Es mucho más sencillo regular la intensidad.
En teoría, se debe poner la mínima que haga que funcionen bien y esta depende de lo afinada que esté la mecánica.
Contra menor sea (siempre que el motor pueda mover el eje sin perder pasos), menos se calentarán el conjunto driver/motor y menos ruido/vibraciones en los motores.
Si tienes la mecánica de serie, no es una maravilla y puedes tener problemas si pones poca, sobre todo en el eje Y.
Yo probaría con 0,3A para X, 0,4A para Y, 0,5A para Z y 0,4A para el extrusor. Y a partir de ahí, ver como va y obrar en consecuencia.
Como orientación, mi A8 daba cuando la monté por primera vez, 0,55A para X, Y y extrusor, 0,16A para Z (en la Anet los dos motores del Z van en serie, en la RAMPS van en paralelo, por eso hay que duplicar la intensidad).
Pero con esos valores, la A8 hace un ruido de mil demonios y los motores se calientan bastante.
Para hacer la regulación, si no sabes cómo, puedes mirar el clásico video de Obijuan,
aquí.
Espero que lo consigas sin mayores problemas.
Un saludo.