Gracias Sacamantecas !!!!
Parece muy interesante, le daré un vistazo profundo al tema .... y buscaré una seta, a ver si la encuentro bien de precio .
Un saludo
La impresión 3D casera no es una ciencia exacta: a las mismas entradas y ejecutando el mismo proceso, no siempre sale el mismo resultado .... para desconsuelo de los que sólo queremos conseguir imprimir en 3D :(
Todo lo que sea aportar, bienvenido sea! A mi con el interruptor a "lo bruto" me sirve, pero igual me animo y hago algo más sofisticado como lo del pulsador is1:
Me voy a imprimir tu brazo para el auto level y el ventilador para ramps. Muchas gracias.
De nada, para eso están!
P.D. Te recomiendo hacer la pieza del ventilador maciza, si no los brazos te pueden partir... Éste finde hice la pieza que sujeta el cesto de un arcón que pesará fácilmente 15 kilos, y haciéndolo macizo y con buena temperatura para que peguen bien las capas, aguanta perfecto.
una duda... viendo el tema de la funcion kill()...
se podría asignar a un gcode, que se ponga al final de la impresion, para que cuando termine de imprimir, y el extrusor este por debajo de 50º, mande esas rutinas de apagado y apague completamente la máquina?
lo que no entiendo es, como controlas desde el arduino / ramps que se apague la fuente? no lo acabo de entender, ya que yo por ejemplo le tengo un interruptor en el puente famoso....
seria interesante todo ese proceso automatizado.
un saludo
Como diría Jack el destripador, vayamos por partes
Al terminar la impresión, puedes hacer: - G1 Y200 F6000 ; para facilitar el acceso a la pieza
- M84 ; apagar motores
- M140 S0 ; apagar cama
- M109 R50 ; llevar el extrusor a 50º y esperar a que se alcancen
- M104 S0 ; apagar extrusor (por si no funciona el apagado de la fuente)
- M81 ; apagar fuente
La RAMPS tiene un pin junto al botón de reset (el más próximo al borde) en el que hay que conectar el famoso cable verde de la fuente. Con ese cable conectado, la RAMPS puede encenderla y apagarla.
¿¿Encenderla?? Si: el arduino puede funcionar con corriente de USB, y ordenar el encendido y/o apagado de la fuente. Si desconectamos el USB, al apagar la fuente se queda todo sin corriente y se acaba el control.
Si no está pinchado el cable USB, cabe la posibilidad de que la fuente le vaya dando golpecitos de corriente al arduino. A mi me pasaba, y lo arreglé como expongo aquí:
Lógicamente, si tenemos un interruptor que puentea el PS_ON a masa estará en paralelo con el control de Marlin, y la fuente estará encendida siempre que dicho botón esté en corto y/o Marlin la mantenga activada.
Antes de ser impresora, mi máquina manejaba una dremel para ayudarme a hacer los engranajes del extrusor, y si se me escapaba algún detalle corría riesgo de romper la broca, o algo peor. Por eso la tenía que apagar apresuradamente, y el hecho de tener una doble forma de controlar la fuente me dio algún susto. Ahora sólo la enciendo desde la impresora (sin tocar el interruptor de la fuente) y la apago con la seta que comentaba hace unos post
Vale, muchas gracias, este finde me voy poner a ello jiji
Pero ahora con los retos.
Y si no quiero el usb de un ordenador alimentando? Por digamos que la maquina sea totalmente independiente....
Se me ocurren 2 maneras:
Para vagos: conectar el usb a un adaptador d corriente.
Para manitas jeje: no se podria conectar al cable gris de la fuente, q siempre tiene 5v aunque este apagada?
Enviado desde mi GT-H9500 usando Tapatalk 2
Efectivamente, puedes alimentar el arduino con el cable gris, que da corriente de sobra (me suena 1A)
Puedes hacerlo por el pin VIN pero entonces hay que quitar el diodo D1, pero me parece más práctico lo que dices tú: un cable USB adaptador que proporcione corriente.
De todas formas la impresora es independiente con un pulsador de apagado y otro de encendido como cuento en el vídeo. El botón de encendido se pulsa 1" para puentear el cable PS_ON lo suficiente como para que el arduino "despierte" y se encargue él de mantener encendida la fuente.
Pitaco escribió:Es genial, un avance impresionante sobre el "folio que rasca un poco pero pasa" :-) Y con tu añadido de regular por el LCD se hace comodisimo ajustar hasta que siempre va bien.
Ahi va el codigo a cambiar:
Código: ----------------------------
- Marlin _main.cpp ---------
----------------------------
Search (Line 1383):
bool zig = true;
Add after:
do_blocking_move_to(0,0, Z_RAISE_BEFORE_PROBING); // homes and raises hotend
engage_z_probe(); // Engage Z Servo endstop if available
Search (Line 1418):
engage_z_probe(); // Engage Z Servo endstop if available
Replace with:
// engage_z_probe(); // Engage Z Servo endstop if available
Search (Line 1421):
retract_z_probe();
Replace with:
// retract_z_probe();
Search (Line 1438):
xProbe += xInc;
}
}
Replace with:
xProbe += xInc;
}
}
retract_z_probe(); // Retracts the probe in the end.
Y eso es todo. Como tu comentabas los números de linea son orientativos, pero andarán muy cerca.
Puedo garantizar que a mí me funciona; quizas se pueda optimizar, que yo no se de esto mas que lo básico, pero funcionar, funciona.
Espero que sirva!
Saludos!
Adjunto como me queda el fichero una vez realizada las modificaciones. En rojo lo que he modificado y he dejado la línea anterior y porterior.
He probado así y no me baja el servo, con lo que toca con el FC normal.
Que puede estar mal?
Lo he comprobado y nada.
Saludos
sacamantecas escribió:Efectivamente, puedes alimentar el arduino con el cable gris, que da corriente de sobra (me suena 1A)
Puedes hacerlo por el pin VIN pero entonces hay que quitar el diodo D1, pero me parece más práctico lo que dices tú: un cable USB adaptador que proporcione corriente.
De todas formas la impresora es independiente con un pulsador de apagado y otro de encendido como cuento en el vídeo. El botón de encendido se pulsa 1" para puentear el cable PS_ON lo suficiente como para que el arduino "despierte" y se encargue él de mantener encendida la fuente.
Es decir, que tambien podria enlazar la señal de kill para apagar la fuente, con apagar como un toque al boton de power simulado, un ordenador... interesante jiji
El puerto, di quieres te paso mi fichero para q compares, mandame mail, q yo lo tengo funcionando
Enviado desde mi GT-H9500 usando Tapatalk 2
Se puede alimentar el arduino con el cable morado que sale de la fuente. Este siempre da 5v aún con la fuente apagada por software .
Hay un conectar en ramps de 3pines, uno tierra, otro software power y otro para alimentar con 5v.
Ahora bien. Alimentar por 5v o/y USB y/o vin es un arduino frito
Hola, que Martín usáis para poder añadir la opción del ajuste del offset al LCD?
La versión que yo uso, aunque si que me funciona perfecto el autolevel no tiene estas líneas a modificar.
En mi caso, tener que cambiar el firmware cada vez que se desajusta es un coñazo, también si cambio de nozzle, con lo poco que se fuerce es suficiente para que no se halla que variar el offset
Saludos
EDITO
Veo que subiste tu versión de marlin, creo que la baje y no encontré esas líneas
ahora estoy Fuera de casa y no lo puedo corroborar
La que subí lo tiene seguro, fue la que utilicé para modificarlo. Y ya incluye la comprobación de 4 o 9 puntos.
WeSo escribió:La que subí lo tiene seguro, fue la que utilicé para modificarlo. Y ya incluye la comprobación de 4 o 9 puntos.
Ok
ya recuerdo lo que pasaba, si están todas las líneas pero al darle a compilar me salta este error
Código: ConfigurationStore.cpp: In function 'void Config_ResetDefault()':
ConfigurationStore.cpp:291: error: 'autolevelingZOffset' was not declared in this scope
La variable esta parece que no esta bien declarada
Puedes subir la versión que ya tienes modificada a ver que talsi le pongo los parámetros de m maquina tendría que funcionar bien
gracias
Pues no voy a poder subirlo hasta dentro de unos días mínimo, porque lo tengo en el pueblo... de todos modos, el error que comentas, parece claro: que no tiene declarada la variable en el ámbito. Has añadido al fichero "ultralcd.cpp" lo que hay comentado en el post? Vamos, declarar la variable (es global).
Código: float autolevelingZOffset;
CORRECTO!!
Se me paso modificar el ultralcd.h en vez de ese que comentas, ya esta funcionando
Nueva consulta, en configuration.h tengo esto asi configurado
Código: // these are the offsets to the prob relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER -25.00
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10.00
#define Z_PROBE_OFFSET_FROM_EXTRUDER -7.9
Al entrar en la pantalla al menú Control-->Motion --> Auto.Lev.Z , pone 0.0 en vez de -7.9 como indique en el configuration.h y no puedo bajar de 0.0 en negativo, solo incrementar el valoren positivo
Esto es asi, es un valor global o actua como suma o incremento al valor configurado?
saludos
Está puesto así a propósito. Básicamente la idea es que la distancia entre el endstop del brazo y la punta del hotend es un valor positivo (internamente el código ya lo invierte), o dicho para andar por casa, el brazo cuando está bajado siempre va a sobresalir por debajo de la punta del hotend (si no, mal asunto).
Nosotros lo que regulamos es esa distancia, por lo que cuanto más próximo a 0, significa que más igualados estarán el nozzle y el endstop.
Si aumentamos el valor, más pegado estará el nozzle al cristal (le "engañamos" al decirle que están más separados, bajará más la punta). Por el contrario si lo disminuímos, tendremos justo lo contrario, la primera capa menos pegada.
Recomiendo activar las opciones de EEEPROM, y darle a store cada vez que cambiamos el valor, para que almacene los parámetros aunque apaguemos la máquina.
En tu caso, únicamente pon los 7.90 en el LCD, almacénalo en le EEEPROM y verás como la próxima vez que enciendas la máquina ya se ha quedado almacenado. A partir de ahí ya se puede jugar, repitiendo siempre el mismo proceso: regular y almacenar.
aaaa, Perfecto
se me había pasado por la cabeza pero tenia que preguntarlo por si acaso
gracias
Otra problemática
El homing con G28 me lo hace bien, X , Y y Z al centro del espejo
Con G29 el primer punto se va fuera de la cama
lo tengo configurado asi
Código: //============================= Bed Auto Leveling ===========================
#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
#ifdef ENABLE_AUTO_BED_LEVELING
// these are the positions on the bed to do the probing
#define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 200
#define BACK_PROBE_BED_POSITION 175
#define FRONT_PROBE_BED_POSITION 4
// these are the offsets to the prob relative to the extruder tip (Hotend - Probe)
#define X_PROBE_OFFSET_FROM_EXTRUDER -38.00
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10.00
#define Z_PROBE_OFFSET_FROM_EXTRUDER -7.9
#define Z_RAISE_BEFORE_HOMING 10 // (in mm) Raise Z before homing (G28) for Probe Clearance.
// Be sure you have this distance over your Z_MAX_POS in case
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
Me pasa solo con esta versión de marlín, si subo la que he estado usando con autolevel si que hace las medidas donde lo tengo configurado.
Alguna idea de por que?
Código: #define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 200
#define BACK_PROBE_BED_POSITION 175
#define FRONT_PROBE_BED_POSITION 4
No lo hagas tan extremo, empieza dando márgenes más grandes, algo tipo:
Código: #define LEFT_PROBE_BED_POSITION 50
#define RIGHT_PROBE_BED_POSITION 150
#define BACK_PROBE_BED_POSITION 150
#define FRONT_PROBE_BED_POSITION 50
|