exit status 1 using typedef-name ‘fpos_t’ after ‘struct’


Si está viendo  este página probablemente se deba que esta intentando actualizar el firmware Marlin  de su impresora 3d  desde el IDE de Arduino  y no lo logra.

Marlin es un firmware de código abierto para la familia RepRap de replicar prototipos rápidos, popularmente conocidos como “impresoras 3D”. Se deriva de Sprinter y grbl,y se convirtió en un proyecto de código abierto independiente el 12 de agosto de 2011 con su lanzamiento de Github. Marlin tiene licencia bajo la GPLv3 y es gratis para todas las aplicaciones.

Desde el principio Marlin fue construido por y para los entusiastas de RepRap para ser un controlador de impresora sencillo, confiable y adaptable que “simplemente funciona”. Como testimonio de su calidad, Marlin es utilizado por varias impresoras 3D comerciales respetadas. Ultimaker, Printrbot, AlephObjects (Lulzbot) y Prusa Research son solo algunos de los vendedores que envían una variante de Marlin. Marlin también es capaz de conducir CNC y grabadores láser.

Una clave de la popularidad de Marlin es que se ejecuta en microcontroladores Atmel AVR de 8 bits de bajo costo – Marlin 2.x ha añadido soporte para placas de 32 bits. Estos chips están en el centro de la popular plataforma de código abierto Arduino/Genuino. Las plataformas de referencia para Marlin es un Arduino Mega2560 con RAMPS 1.4 y Re-Arm con rampas 1.4.

Como producto comunitario, Marlin tiene como objetivo ser adaptable a tantas placas y configuraciones como sea posible  intentando ser configurable, personalizable, extensible y económico tanto para aficionados como para proveedores. Una construcción Marlin puede ser muy pequeña, para su uso en una impresora sin cabeza con solo hardware modesto. Las características se habilitan según sea necesario para adaptar Marlin a los componentes añadidos.

 

Marlin Firmware se ejecuta en la placa principal de la impresora 3D, gestionando todas las actividades en tiempo real de la máquina. Coordina los calentadores, pasos, sensores, luces, pantalla LCD, botones y todo lo demás involucrado en el proceso de impresión 3D.

Marlin implementa un proceso de fabricación aditiva llamado Fused Deposition Modeling (FDM), también conocido como Fused Filament Fabrication (FFF). En este proceso, un motor empuja el filamento de plástico a través de una boquilla caliente que funde y extruye el material mientras la boquilla se mueve bajo control informático. Después de varios minutos (o muchas horas) de colocar finas capas de plástico, el resultado es un objeto físico.

El lenguaje de control para Marlin es un derivado del código G. Los comandos de código G le dicen a una máquina que haga cosas simples como “establecer el calentador de 1 a 180o” o “mover a XY a la velocidad F.” Para imprimir un modelo con Marlin, debe convertirse en código G utilizando un programa llamado “slicer”. Dado que cada impresora es diferente, no encontrará archivos de código G para descargar; tendrás que cortarlos tú mismo.

A medida que Marlin recibe comandos de movimiento, los agrega a una cola de movimiento para ser ejecutados en la orden recibida. La “interrupción paso a paso” procesa la cola, convirtiendo los movimientos lineales en pulsos electrónicos con precisión en los motores paso a paso. Incluso a velocidades modestas Marlin necesita generar miles de pulsos paso a paso cada segundo. (p. ej., 80 pasos por mm * 50 mm/s a 4000 pasos por segundo!) Dado que la velocidad de la CPU limita la velocidad con la que la máquina puede moverse, ¡siempre estamos buscando nuevas formas de optimizar la interrupción paso a paso!

Los calentadores y sensores se gestionan en una segunda interrupción que se ejecuta a una velocidad mucho más lenta, mientras que el bucle principal controla el procesamiento de comandos, la actualización de la pantalla y los eventos del controlador. Por razones de seguridad, Marlin realmente se reiniciará si la CPU se sobrecarga demasiado para leer los sensores.

What is Marlin?

 

Instalación de Marlin en su impresora

Normalmente todas las impresoras 3d ya llevan el firmware instalado ( incluso las que vienen en kit )   pero   conviene estar al tanto de las actualizaciones   de  este   ( en cuyo caso habar  que seguir el procedimiento siguiente)  o puede que sea  necesario cambiarlo para añadir alguna funcionalidad extra como por ejemplo la autonivelación o el cambio de idioma

En todos estos casos normalmente estos son los pasos que se siguen:  

1. Instale Arduino en su PC.
Si su impresora es A10/A10M/A20/A20M, utilice Arduino 1.8.5 para finalizar la  carga; Si es Prusa I3 Pro B/W/X/C, por favor vaya por Arduino 1.0.1!! De lo contrario, es posible que reciba algunos errores durante la verificación.

Descargue Arduino 1.0.1 o Arduino 1.8.5  aquí: https://www.arduino.cc/en/Main/OldSoftw … s-anterior

Arduino 1.0.1.jpg
Arduino 1.8.5.jpg
Arduino 1.8.5.jpg (27.86 KiB) Visto 60177 veces


2. Conecte la impresora al PC con el cable USB.
3. Descomprima el  firmware.  Aquí  tomaremos el firmware para el extrusor dual I3 pro C, por  ejemplo el proceso para la serie A10/A20 es bastante similar, excepto el Arduino en una versión diferente.   Puede descargar el de su impresora aquí:
http://www.geeetech.com/forum/viewtopic … 10&t-17046

02.jpg


4. Haga doble clic en el Marlin.ino, luego abrirá todo el firmware en el arduino.

03.jpg
04.jpg

5. Seleccione el puerto Com adecuado.

06.jpg
06.jpg (205.84 KiB) Viewed 189584 times


6. En Herramientas, en Board, seleccione Mega 2560 .

05.jpg


7. Finalmente haga clic en la flecha para compilar y cargar el firmware en su impresora.

07.jpg

 

Bien   es cierto que debería de compilar el sw  y nuestra impresora ya si estaría actualizada, pero lamentablemente  no siempre es así,  y desgraciadamente puede que  nos lance un error de que no se puede compilar  .

 

 

Por ejemplo en el caso de una Geetech Prusa i 3 W este es el mensaje que lanza el IDE de Arduino al intentar verificar el firmware: 

 

Arduino:1.8.10 (Windows 10), Tarjeta:”Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

In file included from sketch\Marlin.h:23:0, from sketch\ConfigurationStore.cpp:1:

sketch\pins.h:2956:0: warning: “X_MAX_PIN” redefined

#define X_MAX_PIN -1   sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24 sketch\pins.h:2957:0: warning: “Y_MAX_PIN” redefined

#define Y_MAX_PIN 28  In file included from sketch\Marlin.h:23:0,  from sketch\BlinkM.cpp:5:

sketch\pins.h:2956:0: warning: “X_MAX_PIN” redefined

#define X_MAX_PIN -1 sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24 sketch\pins.h:2957:0: warning: “Y_MAX_PIN” redefined

#define Y_MAX_PIN -1 sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28 In file included from sketch\Marlin.h:23:0, from sketch\thermistortables.h:4, from sketch\Configuration.h:792, from f:\Users\Carlos\Documents\Arduino\I3 ProW GT2560A+ with 3dtouch (1)\Marlin\Marlin.ino:33:sketch\pins.h:2956:0: warning: “X_MAX_PIN” redefined #define X_MAX_PIN -1 sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24 sketch\pins.h:2957:0: warning: “Y_MAX_PIN” redefined

#define Y_MAX_PIN -1 sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28 In file included from sketch\Marlin.h:23:0,  from sketch\Marlin_main.cpp:30: sketch\pins.h:2956:0: warning: “X_MAX_PIN” redefined

#define X_MAX_PIN -1 sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24 sketch\pins.h:2957:0: warning: “Y_MAX_PIN” redefined

#define Y_MAX_PIN -1 sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28 In file included from sketch\Marlin.h:23:0, from sketch\MarlinSerial.cpp:23:sketch\pins.h:2956:0: warning: “X_MAX_PIN” redefined

#define X_MAX_PIN -1 sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24 sketch\pins.h:2957:0: warning: “Y_MAX_PIN” redefined

#define Y_MAX_PIN -1 sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28 In file included from sketch\Marlin.h:23:0, from sketch\Sd2Card.cpp:20:

sketch\pins.h:2956:0: warning: “X_MAX_PIN” redefined

#define X_MAX_PIN -1 sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24 sketch\pins.h:2957:0: warning: “Y_MAX_PIN” redefined

#define Y_MAX_PIN -1 sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28 sketch\Marlin_main.cpp:2667:36: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix] LCD_MESSAGEPGM(MACHINE_NAME” “MSG_OFF”.”); ^In file included from sketch\Marlin.h:23:0,  from sketch\SdBaseFile.cpp:21:sketch\pins.h:2956:0: warning: “X_MAX_PIN” redefined

#define X_MAX_PIN -1 sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24 sketch\pins.h:2957:0: warning: “Y_MAX_PIN” redefined

#define Y_MAX_PIN -1 sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28 In file included from sketch\SdFile.h:27:0, from sketch\cardreader.h:8, from sketch\Marlin_main.cpp:44:SdBaseFile.h:38:8: error: using typedef-name ‘fpos_t’ after ‘struct’ struct fpos_t { ^~~~~~  In file included from sketch\Marlin.h:10:0,  from sketch\Marlin_main.cpp:30:c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:950:33: note: ‘fpos_t’ has a previous declaration here extension typedef long long fpos_t; ^~~~~~ sketch\Marlin_main.cpp: In function ‘void set_bed_level_equation_lsq(double*)’:

sketch\Marlin_main.cpp:998:36: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]  planeNormal.debug(“planeNormal”); ^

In file included from sketch\SdBaseFile.cpp:24:0:SdBaseFile.h:38:8: error: using typedef-name ‘fpos_t’ after ‘struct’ struct fpos_t {  ^~~~~~

In file included from sketch\Marlin.h:10:0,  from sketch\SdBaseFile.cpp:21:c:\program files (x86)\arduino\hardware\tools\avr\avr\include\stdio.h:950:33: note: ‘fpos_t’ has a previous declaration here extension typedef long long fpos_t; ^~~~~~

sketch\SdBaseFile.cpp: In member function ‘void SdBaseFile::getpos(fpos_t*)’:SdBaseFile.cpp:298:8: error: request for member ‘position’ in ‘* pos’, which is of non-class type ‘fpos_t {aka long long int}’ pos->position = curPosition_; ^~~~~~~~

SdBaseFile.cpp:299:8: error: request for member ‘cluster’ in ‘* pos’, which is of non-class type ‘fpos_t {aka long long int}’ pos->cluster = curCluster_; ^~~~~~~

sketch\SdBaseFile.cpp: In member function ‘void SdBaseFile::setpos(fpos_t*)‘:

SdBaseFile.cpp:1496:23: error: request for member ‘position’ in ‘* pos’, which is of non-class type ‘fpos_t {aka long long int}’  curPosition_ = pos->position; ^~~~~~~~

SdBaseFile.cpp:1497:22: error: request for member ‘cluster’ in ‘* pos’, which is of non-class type ‘fpos_t {aka long long int}’ curCluster_ = pos->cluster; ^~~~~~~

In file included from sketch\Marlin.h:23:0, from sketch\SdFatUtil.cpp:20:

sketch\pins.h:2956:0: warning: “X_MAX_PIN” redefined

#define X_MAX_PIN -1 sketch\pins.h:1363:0: note: this is the location of the previous definition

#define X_MAX_PIN 24 sketch\pins.h:2957:0: warning: “Y_MAX_PIN” redefined

#define Y_MAX_PIN -1 sketch\pins.h:1369:0: note: this is the location of the previous definition

#define Y_MAX_PIN 28 Se encontraron varias bibliotecas para “LiquidCrystal.h”


Usado: C:\Program
exit status 1
using typedef-name ‘fpos_t’ after ‘struct’

Este informe podría contener más información con “Mostrar salida detallada durante la compilación” opción habilitada en Archivo -> Preferencias.

Bueno   , este error nos impide  actualizar el firmarware Marlin de nuestra impresora, pero  en las siguientes líneas veremos que lograr que compile el sw Marlin para nuestra impresora en particular puede ser un juego de niños

 

 

Tip1 : todo lo que necesita hacer es cambiar   todas las ocurrencias fpos_t a filepos_t

 

Para solucionar el problema  de  compilación, anterior sólo tiene que abrir ide Arduino con el firmware y hacer una búsqueda global y reemplazar.

Esto se hace haciendo Ctrl-F y selecciona la casilla de búsqueda de todas las pestañas. A continuación, buscar y reemplazar  fpos_t  por  filepos_t. Volver a compilar y estará todo listo. 

Se trata de un cambio en las nuevas versiones del software de Arduino IDE que está haciendo esto. Las versiones más recientes del firmware del Marlin tienen que la estructura  filepos_t   se llama así ,lo  que  no tendrá ningún efecto negativo en el firmware

sí que la raíz del problema con las nuevas versiones de Arduino es que ya definen un objeto denominado fpos_t en uno de los archivos globales instaladas con Arduino llamado stdio.h. Destacar en el el fichero stdio.h  ha sido un problema con muchos usuarios en línea de cambiar al nuevo Arduino y la compilación de los firmwares más antiguas basadas Marlin. Es por ello que las nuevas versiones de Marlin han pasado a utilizar filepos_t para el nombre de estructura en su lugar. Si se realiza  ese cambio a sus versiones de firmware publicadas, a continuación nadie más tendría los problemas que tenía con cargar el firmware original pero bueno sabiéndolo podemos poner el remedio.  

 

 

 

Tip 2

Si la solución  anterior  no le fue suficiente   alguien informó recientemente el mismo problema con Marlin y así  ha  solucionado el  problema

  • Herramientas > Tablero > Administrador de placas… > Arduino AVR Boards(haga clic en él) > seleccione 1.6.11 en el menú “Seleccionar versión” > Instalar
  • Una vez completada la instalación, haga clic en el botón “Cerrar”



El problema es causado por la nueva versión del compilador incluida con Arduino AVR Boards 1.6.12 y más tarde, es más exigente con el código malo que alguien escribió. Tendrá sin necesidad de actualizar a cualquier versión de Arduino AVR Boards por encima de 1.6.11 hasta que alguien solucione el problema en el código Marlin.
¿Está utilizando la última versión del firmware real de Marlin o es alguna versión anterior o una versión modificada no  estándar?

Problemas con eje z en impresoras 3D tipo Prusa


La Geeetech prusa i3 Pro W es unos de los modelos de impresora 3d  caseras  mas conocidas del mercado ( la version «w», se diferencia de las otras por su marco de madera de 6 mm, para dar a la impresora, mas estabilidad a la hora de trabajar con ella ). 

El precio de la impresora 3D Geeetech prusa i3 Pro W, es de lo mas económico que se pueden encontrar online ( en Amazon por unos 149€) , en parte motivado porque viene  en kit ,lo que implica horas de montaje, y luego hay que calibrarla, lo cual quizás nos pueda  desanimar bastante pues  puede llevarnos unas 6 horas como mínimo y  ademas debemos añadir tiempo extra del proceso de calibración.

En el caso de la Geetech Prusa i3 W el manual viene bastante bien explicado , lo cual podemos ( y debemos complementar con el  canal de youtube donde técnicos del propio fabricante  explican paso a paso como montarla en una serie de 20 vídeos muy completos, que sin duda nos  ayudaran en el montaje). 

Antes de  profundizar en los problemas de ajustes de esta impresora, lo primero es asegurarnos de  que hemos montado correctamente  la impresora  asegurándonos  que todos los tornillos  y tuercas están afianzados  y no existe holgura ni ninguna parte suelta   que nos pueda malograr el funcionamiento   del conjunto , así que no es mala idea repasar los 20 pasos que nos propone el fabricante por si hemos omitido algo

 

En el primer vídeo vemos vemos el montajes de uno de  las  barras con sus rodamientos para el eje Y (como podrá adivinar tenemos que hacer lo mismo para la segunda barra)

Es importante la colocación de las dos barras sobre el soporte  y que este perfectamente paralelas ambas tablillas, por lo que debería  tratar de mantener paralelas las varillas de rosca y las cuatro piezas de madera paralelas. El eje Y debe ser un rectángulo, es decir, las varillas en ambos lados deben ser paralelas, por lo que es la placa frontal y trasera. De lo contrario, causará obstrucción para el cinturón más tarde. Puede usar un calibrador digital para medir.

 

En el siguiente vídeo podemos ver paso a paso el montaje de este conjunto de  las cuatro  varillas con junto el ensamblaje del motor del eje y:

    En este paso veremos como montar la pieza horizontal   de grandes dimensiones  donde descansara la cama caliente  que ademas  estará dotada de movilidad.

En realidad este paso es muy sencillo  y lo veremos de forma muy parecido en otros pasos similares del montaje

Y ahora  toca  colocar todas al piezas anteriores junto a la plataforma que albergara la cama caliente

 

En este paso  nos centraremos en los interruptores de fin de carrera ( en esta impresora son 3) .  Internamente los usados en esta impresora   contiene  interruptores normalmente abiertos (NA), de modo que  al actuar sobre ellos  en la palanquilla abrirán el circuito al que estén conectados

En este  video simplemente se monta el tope final en la placa de soporte trasera del eje Y , con un tornillo M2.5 x 16mm, arandela M2.5 y tuerca hexagonal M2.5.

 

En  esta nueva fase simplemente se trata de montar el esqueleto de la impresora

 

Para alojar los dos motores   del eje  z, los cuales  van a trabajar en paralelo,   en este paso  vamos a dotar a la estructura anterior de dos pequeños soportes donde irán los otros dos motores :

Ahora  para mantener la placa  refrigerada  ,fije el ventilador en la parte posterior izquierda del bastidor con 4 tornillos M3 x 20, arandela M3 y tuercas M3. Tenga cuidado con la dirección del ventilador pues el lado con la etiqueta debería ir  hacia afuera.

Por cierto, el ventilador suministrado hace machismo ruido, por lo que perfectamente es recomendable reemplazarlo por uno similar de otro fabricante cuyo modelo sea menos ruidoso ( por ejemplo sirven los usados para refrigerar las Raspberry Pi que suelen ser de las mismas medidas  y mucho menos ruidosos)

En este paso se trata de montar por fin la estructura que soportara  la cama caliente  al resto de estructura de la impresora

En este paso se trata de montar el interruptor de fin de carrera del eje z ( es decir el eje profundidad  o altura), el cual por cierto es uno de los pocos ajustes que podremos hacer gracias a un tornillo de ajuste 

Ahora toca montar lso dos motores  que se moverán al unisono para mover el eje  Z

Ahora se trata  ahora de añadir a los   motores un acoplador o husillo para poder después conectarle un eje  en forma de varilla roscada

Los pasos a seguir son los siguientes:

  •  Fijar los dos acoplamientos en ambos del eje del motor.Tenga en cuenta:La apertura de ambos extremos, uno es de 5 mm, otro es de 8 mm, conectar el orificio de 5 mm. al eje del motor.
  • Atornille firmemente el tornillo de la pieza de 5 mm en la parte superior del lado plano del eje del motor; puede ver el límite en el interior del acoplamiento.
  • Haga lo mismo con el acoplamiento del eje del motor derecho de acuerdo con los pasos anteriores.

 

 

 

Ahora toca montar el tope final y el gatillo de tope

Montaje del extremo intermedio del eje X

 Montaje del carro del extrusor

Ahora se trata de acoplar el resto de ejes X y Z al cuerpo de la Impresora. 

Aqui vemos el montaje  del soporte superior del eje Z

Ahora toca  añadir la correa dentada del eje X

Ya entramos en la parte sencilla de montar el panel de control con el LCD y el lector de tarjetas SD  ,el cual por cierto  se puede colocar aparte  gracias a la longitud de los dos cables de cinta si así lo  desea

Una de las ultimas partes es  colocar la cama caliente ,la  cual nos deberíamos asegurar qeu quede completamente horizontal aunque posteriormente se hará  un ajuste mas exhaustivo

La fuente de 12V  se coloca en un lateral , siendo lo único complejo no equivocarnos en las conexiones , porque si nos equivocamos  si que podemos malograr la impresora, así que tenga un cuidado muy especial en este punto

 

Por ultimo  toca fijar la placa de control con todas sus conexiones:

 

 

Observe que en la placa  lleva 4 zócalos para  los   drivers de los controladores de los motores paso  a paso, los  cuales suelen venir ajustados de fabrica .
 
Normalmente los drivers vienen preajustados de fabrica , asi que no es necesario realizar este paso, tanto es que de hecho no deberíamos andar tocando el potenciómetro que tiene el driver del eje Z así sin más ya que hay que hacerlo mientras se mide el voltaje de referencia del driver o mejor, la intensidad que manda al motor. Si se va a girar acerlo con un destornillador no conductor porque se  puede destruir  el driver.
 
En caso de tener problemas podríamos probar  los drivers uno a uno por separado la intensidad que demanda, la cual  debería tener un valor de 0,2A para cada motor, recordando que el driver del eje Z debe de tener 0,4A ya que lleva conectados dos motores en paralelo y sumando la intensidad que demanda la resistencia interna de nuestra placa, esta suele estar entre los 0,04A y 0,1A, 
En caso   de no estar ajustados dichos drivers ,si tuviésemos problemas para regular la intensidad que pasan por los drivers, localizamos un pequeño tornillo en la placa, se trata de un potenciómetro que podemos regular a mayor o menor resistencia.
 

Para saber como conectar el driver a la ramps, debemos fijarnos en la placa donde pone la configuración del bobinado que debemos conectar del motor paso a paso.
Si no conocemos los cables del motor que corresponden a cada bobina del motor podemos comprobar con el polímetro continuidad entre los extremos de los 4 conectores que tiene, también con un Led conectado entre dos de los cuatro cables y girando el eje del motor cuando se encienda tenemos localizados los pares de bobinas.
 
 Una vez tenemos localizadas las dos bobinas del motor bipolar paso a paso conectamos el motor a la ramps donde se une a las patillas correspondiente del driver:
 

 

 
 
 
En resumen ,mas abajo vemos  el conexionado  completo de  este modelo .  En el esquema general no se conecta los fines de carrera Xmax, Ymax y Zmax pues este modelo no cuenta con ellos
Tampoco se conecta el segundo extrusor  y toda la electrónica relacionada ( motor del extrusor , termistor   y calentador)
Y por ultimo tenemos un ventilador fijo ( el de refrigeración de la placa) y uno controlado por pulsos para el primer extrusor

esqeumanew.png

 

 

 

Una vez concluido el montaje, antes de intentar la primera impresión, es vital que la impresora esté correctamente calibrada. Si se salta o se apresura este paso, esto puede producir frustración   y probablemente ademas  podrá  tener errores en las impresiones más tarde, así que  es importante tomarse el tiempo para asegurarse de que la máquina está correctamente configurada.

Como el proceso de montaje es bastante largo como se puede apreciar en los vídeos anteriores , debemos ser muy ordenados y meticulosos  a la hora de ensamblar las diferentes piezas, pues el esfuerzo debería compensar el resultado ya que  una vez terminado es una impresora 3d que funciona muy bien.  

El Software suministrado por Geetech  es el EasyPrint , el cual  esta diseñado para impresoras  de Geetch ,pero por supuesto , una vez ajustada la impresora, puede usarse  el famoso programa  Cura de Ultimaker

Para el ajuste de la impresora y primeras  pruebas de   la Geeetech prusa i3 Pro W , lo idea es usar es el  prograna  EasyPint  pues no va a permitir hacer los primeros ajustes  de los motores de lso tres ejes x,y , z  de un modo muy cómodo  como vamos a  ver mas adelante

Cada impresora lógicamente tiene  su propio procedimiento de calibración pero hay una lista de puntos clave que deben ser abordados:

  • El marco es estable y correctamente alineado.
  • Las varillas están correctamente alineadas
  • Las correas  están tensas.
  • La rueda motriz gira suavemente
  • La cama esta nivelada con relación a la trayectoria de la extrusora.
  • El filamento rueda libremente desde el carrete, sin causar demasiada tensión en el extrusor.
  • La corriente para motores paso a paso se ajusta al nivel correcto.
  • Los cables están correctamente conectados
  • Los acoplamientos y las poleas se fijan firmemente
  • Los ajustes del firmware son correctos incluyendo: velocidades de movimiento del eje y aceleración; control de temperatura; topes finales; direcciones del motor.
  • La extrusora se calibra en el firmware con los pasos correctos por mm de filamento.El punto respecto a la velocidad de paso de la extrusora es vital. No puede esperar que la máquina producirá con precisión una cantidad fija de filamento cuando se le indique que lo haga. Demasiado resultará en gotas y otras imperfecciones en la impresión, muy poco resultará en lagunas y la mala adherencia entre capas.

 

EsasyPrint

 

EasyPrint 3D es el software de impresión 3D  oficial  para configurar   y tambien para usar  la Prusa I3 W  Este programa es muy  fácil de usar y esta desarrollado por GEEETECH  siendo es capaz de convertir un modelo 3D digital en instrucciones de impresión para su impresora 3D gracias a que incluye el modulos de slicing junto con el propio control de la impresora.

Se  puede descargar desde el sitio oficial  http://www.geeetech.com/forum/viewforum.php?f=43

Estos son los parámetros específicos para la impresora la Prusa I3 W  :

printer.PNG

Ademas  estos son  los parámetros recomendados para la impresión 3d con este modelo

parameters.PNG

 

Esta es la configuración recomendada por el fabricante pera el  material en el caso de usar PLA ( el cual es que mejores resultados da con esta impresora):

 

material

 

Programa Ultimaker Cura

Al ser  la Prusa I3 W  una impresora con código libre es posible usar otros programas diferentes tanto para el slicing como a la  propia impresión  3D ,  diferentes del recomendado  por el fabricante (EasyPrint ) como por ejemplo el  famoso sw de cura, el cual es un programa más elaborado y con idioma español

Puede parece descabellado usar otro sw, pero  es fácil percibir con la practica que el sw oficial EasyPrint es lamentablemente  un producto en proceso de depuración lo cual normalmente se traduce en muchas piezas mal impresas o  que tenemos desechar  por interrupciones o cuelgues de propio programa ( aunque ha mejorado bastante en su  ultima version este .

Este  programa es ligeramente mas complejo que usar  el EasyPrint 3D , ahora bien una vez configurado su manejo es también muy sencillo  (y todo el interfaz esta traducido  en Español a diferencia del EasyPrint3d que esta en chino y en ingles únicamente)

El cura necesita configurarse para este modelo de impresora ya que aparece la Prusa I3  pero no la Prusa I3 W,, por lo que debemos  cambiar algunos ajustes  que vamos a describir

En primer lugar , si disponemos de un equipo con W10 64 bits  con al menos dos núcleos , descargaremos  el sw de Cura desde su sitio oficial https://ultimaker.com/en/products/ultimaker-cura-software

Para poder realizar la descarga nos piden unas pocas preguntas en ingles  pero al responderlas , en  pocos segundos estaremos descargando el sw

Una vez instalado el sw , ejecutaremos este  y nos  iremos a la sección de los ajustes

Estos son los ajustes de la impresora Prusa I3 W,:

 

ajustes2.PNG

Y estos son los del extrusor:

 

ajusters3.PNG

 

Usar el programa Cura puede ser una buena idea sobre para las impresiones   problemáticas  gracias a los soportes ya  que no están implementados en el  EsayPrint y son decisivos a  la hora de  imprimir piezas con muchos voladizos o huecas   .Ademas   la posibilidad de girar las  piezas para acomodarlas en  la cama caliente  y con ello mejorar la sustentación  en un determinado plano   puede ser determinante  a la hora de lograr una pieza bien impresa. Personalmente  he impreso piezas que solo lo he logrado llevarlas  con éxito cuando las he girado en una determinada posición, labor que es fácilmente realizable con el programa Cura.

No obstante  solo una puntualización : no desistale el easyprint  aunque le funcione el Cura, ya que aun este programa nos puede  ser muy útil    para re-calibrar la impresora ,forzar el calentamiento del fusor para eliminar  atasques en la boquilla, cambiar de filamento  y un largo etcétera, tal y como  vamos a ver a continuación.

 

 

Primeros  Ajustes con  EasyPrint 3D

Es relativamente  habitual que en el momento de hacer las primeras pruebas con los modelos tipo Prusa, cuando intentamos mover el eje Z ( el eje  que mueve en altura la boquilla de impresión )   con  el programa de control  EasyPrint de Geetech  para comprobar su correcto funcionamiento  y linealidad , se queden ambos motores “como bloqueados generando vibraciones    y ruidos muy intensos    que desde luego no son un buen presagio de un buen funcionamiento    y que  nos deben hacernos percatar de que debemos hacer algunos ajustes

Para ajustar correctamente la impresora 3d  ,por tanto, lo recomendable es usar el programas EasyPrint 3D , que es el software de impresión 3D diseñado para los productos Geeetech

Estos son los pasos para su primera configuración :

  • Instalar EasyPrint 3D  si   aun no lo ha instalado .Puede desacargarlo de : http://www.geeetech.net/firmware/EasyPrint.msi
  • Una vez finalizada la instalación, encuentre el icono EasyPrint 3D. Haga doble clic en él para iniciar el software.easyprint1
  •  A continuación, puede elegir el idioma inglés en Config –> Language.( lamentablemente solo  esta disponible en idioma ingles o Chino)
  • Haga clic en el menú Printer (Impresora) y, a continuación, seleccione el puerto COM correspondiente. El puerto COM se refiere al puerto que se puede utilizar para conectar la impresora y su ordenador   que es  USB que aparece en el administrador de dispositivos.En caso de que no pueda encontrar el puerto COM, asegúrese de que el interruptor de encendido de la impresora está encendido y el cable USB está bien conectado con el ordenador.
  • Haga clic en el menú Impresora  y, a continuación, seleccione el tipo de impresora adecuado: Pro W.
  • Hacer clic en el botón Conectar  situado en la parte superior derecha. Se puede observar el estado en tiempo real de la impresora en la parte inferior de la interfaz de software.
  • Antes de continuar actualizar tanto  la ultima version del EasyPrint  desde el menú de  Help–>Software Upgrador como el propio  firmware de la impresora en el menú de Help–> Firmware Upgrador

 

Prueba de movimiento de ejes  X e Y con EasyPrint 3d 

Actualizado  todo  el software ,  ahora  ya nos podemos ir al menú de Control   del programa     donde comprobaremos  el correcto funcionamiento de los ejex X e Y ,pulsando respectivamente sobre  los botones X+  y X-  así como Y+ e Y- .

Algunos problemas que nos podemos encontrar:

    • Si no reacciona en alguno de los  dos  ejes X o Y  , esto puede ser síntoma de estar mal conectados los motores correspondientes  a  la  placa principal ,  por lo que antes de continuar debería revisar  su correcta conexión.                          esqeumanew.png
    • Si no se  parasen alguno de  los dos motores puede ser  sinónimo de mala conexión  de los finales de carrera de los ejex X o Y , por lo que es vital  estén bien conectados estos . Si duda usted  incluso puede probarlos con un polímetro su correcto funcionamiento: al accionar la palanquilla de  cada switch debería oírse un “click”  y por supuesto cerrar el circuito  ( recuerde que las conexiones correctas son las de los extremos  ignorando el centro como se ve en la imagen inferior )                                                                                                                                              findecarrera.PNG
    • Si el movimiento en algunos de los ejes  es irregular, debe  asegurase de que las correas  para ambos ejes  están tensadas  y correctamente colocadas 

 

AJUSTES EJE Z

 Este es  uno de lso ejes que mas problemas puede dar  precisamente por  la falta de alinealidad   de las varillas verticales  con sus dos respectivos motores que deben moverse en perfecta sincronía

Para ajustar este eje  nos iremos al menú de Control    del Easy Print    para comprobar  el correcto funcionamiento deL EJEX  Z pulsando respectivamente sobre  los botones Z+  y Z-  .

 

Algunos problemas que nos podemos encontrar:

    • Si no reacciona en alguno de los ejes puede ser síntoma de estar mal conectados los motores correspondientes  a  cada eje por lo que antes de continuar debería revisar  su correcta conexión    , asegurándonos sobre todo que los dos motores están  en configuración paralela                                                                                                                                     esqeumanew.png
    • Si no se  paran los motores puede ser  sinónimo de mala conexión  del  final de carrera de los eje z, por lo que es vital que este bien conectado . Si duda, incluso puede probarlos con un polímetro su correcto funcionamiento 
    • En caso de ruidos  ,movimientos imprecisos , falta de fueza , desalinealidad entre las varillas  y en general movimiento deficiente del eje z, ese desfase  es debido a que uno de los motores está perdiendo pasos respecto al derecho por lo que debería comprobar si el giro del husillo izquierdo va más duro que el derecho.Si es así es posible que no tenga bien alineado el eje Z, por lo que debe tomar como referencia una parte fija de la máquina (el chasis) y medir en cada extremo ( lógicamente deberían medir exactamente igual en ambos lados) .                                                                                                                                                                       Si aprecia una diferencia,por muy pequeña  que sea  se puede corregir rotando el motor del eje Z que corresponda con la mano (motores apagados) hasta que consiga que el eje X esté completamente horizontal.                                       
    • En caso de persistir las vibraciones, deberíamos desmontar  los husillos ( la pieza que une el eje de cada motor con la varilla  roscada)  pues probablemente esta muy por encima del eje del motor impidiendo transmitir toda la potencia a la varilla. Una buena idea para volver a ajustar precisamente los husillo es colocar una galga ( por ejemplo una llave allen pequeña)   entre el husillo  y el bastidor  de  modo   que esa distancia sea exactamente en los dos motores y luego asegurar  que la muesca del motor esta justo debajo del tornillo  pequeño  alen y luego apretar todos los demas   .                                                                                                        Una vez ajustados los husillos como  posible que no tenga bien alineado el eje Z debe volver a tomar como referencia una parte fija de la máquina (el chasis) y medir en cada extremo ( lógicamente deberían medir exactamente igual en ambos lados) .                                                                                                                                                                                                                            Si aprecia una diferencia, se puede corregir rotando el motor del eje Z que corresponda con la mano (motores apagados) hasta que consiga que el eje X esté completamente horizontal.                                       
    • Si todo lo  anterior falla y seguimos teniendo vibraciones  pruebe a desconectar las varillas y mueva los motores en solitario: así puede analizar mejor el movimiento y el sentido de giro ( incluso  también podría probar también a intercambiar la conexión en la ramps).;                                                    
  •  

 

 

RESUMEN

Lo primero al abrir la caja te das cuenta lo bien que lo tiene todo pensado Geeetech para esta impresora. Se trata de un Kit de montaje donde montas la impresora absolutamente desde 0, con todas las piezas por separado, la infinidad de tornillos, la placa, cables, partes metálicas, herramientas y un largo etcétera. Todo embolsado y con un número en cada bolsa con una lista donde dice de que se trata cada número, una cosa muy buena sobretodo por los tornillos al haber tantas medidas diferentes. A la hora de montarla, yo con cierta experiencia tardé unas 4 horas aprox.. lo mejor de todo es seguir el vídeo que tienen en Youtube ya que lo hacen paso a paso, te dicen que tornillos usar y demás.. 

Sorprende mucho que pese a sera una DIY tiene cosas muy muy buenas, como unos tensores de correas, un ajustador para el tope de Z, una placa GT 2560 con drivers intercambiables para poder montar unos 2208 y hacerla silenciosa, unas piezas para la cama y el carro para agarrar la correa bien y sin necesidad de bridas. Todo eso son mejoras que por ejemplo que una A8 no tiene y es de agradecer, ya que  facilita mucho la vida a la hora de montarla.

Lo del marco de madera del modelo analizado (Geeetech prusa i3 Pro W)no es ningún problema porque realmente el resultado es bastante   robusto .Ahora bien, el montaje no es  tan trivial como cuenta  el fabricante . Afortunadamente con los vídeos y el manual del propio  fabricante se puede solucionar bien, aunque hay que andar  con mucho cuidado  por el tema de la construcción simétrica ( nada que no se pueda arreglar desarmando y poner al otro lado). 
La instalación eléctrica, lleva su rato, pero se consigue.   
No debemos olvidar   la instalación de driver, software y demás… que no tiene nada que ver con “instalar y darle a imprimir”
 
Y una vez con todo listo esta,  el tema de los primeros ajustes  , tema que es especialmente importante si queremos obtener resultados aceptables, por lo que en este post hemos querido centrarnos en posibles problemas de ruidos o mal funcionamiento  y como corregirlos.
 
Resumidamente pues este tipo de  impresora tipo Prusa , son  bastante compactas, se montan sin demasiada complicidad y con un buen ajuste del eje X (que esté calibrado) y otro buen ajuste de la cama, son fáciles ponerlas a imprimir. Ademas desde la pantalla además vemos que tiene un Firmware personalizado donde podemos tocar diferentes opciones como aceleraciones, jerk y demás, que son cosas avanzadas pero que se agradecen cuando vayamos aprendiendo.
 
! Esperamos  que con estas ideas  amigo lector   hayamos intentado   ayudar algo en caso de que se  haya  encontrado con este tipo de problemas  y este post le  haya resultado  útil !  
 
 
 
 

Algunos recursos adicionales 

Cómo borrar cualquier aplicación en Android sin root


El proceso de rooteo de un terminal   destinado  a conceder permisos de super-usuario al usuario con el que se accede a  Androud esta destinado a usuarios un poco más avanzados y que saben lo que hacen, porque con una modificación del sistema incorrecta podemos dejar nuestro sistema corrupto pero en efecto una vez que tengamos acceso a root podemos suprimir aquellas aplicaciones que el fabricante haya pre-instalado    así como incluso algunas  propias de aplicaciones de Android   que vengan incluidas con el sistema operativo  y que no necesitamos ( por ejemplo  salvapantallas , animaciones , clientes de correo, etc. )  , lo cual   en muchos  casos nos permitirá  rebajar en gran medida  no  solo  la tasa de ocupación de la memoria interna    sino  también el numero de procesos que tenemos corriendo en nuestro terminal contribuyendo así a mejorar el rendimiento del terminal

Sin embargo como ya adelantábamos, no todo es perfecto al tener privilegios de root   , sobre todo cuando se desconocen los riesgos, pues llegar a este punto  también tiene sus inconvenientes :

  1. Se pierde la garantía: es decir ,realizando el proceso de root en el terminal e instalando las aplicaciones necesarias, se anula la garantía del fabricante ( a no ser  que el fabricante lo comercialice ya rooteado ) . Afortunadamente  no obstante el proceso de rooteo en casi todos los terminales es revertible.  

  2. Se pierden las actualizaciones vía OTA: Al hacer root estamos modificando el sistema, por lo que en los pasos previos a una actualización OTA se detectará que el sistema ha sido modificado, inhabilitando el servicio de actualización oficial. En algunos casos podrá llevar a cabo la actualización, pero lo más probable es que se elimine el root del terminal.

  3. Disminuye la seguridad del sistema: El fin principal de hacer root a un terminal es poder dar permisos de super-usuario ( es decir sin restricciones  )  a determinadas aplicaciones para que realicen cambios en el sistema lo cual puede generar bastantes problemas  cuando desde las propias aplicaciones se tiene acceso a todo el sistema de ficheros  y proceso en cursos sin limitaciones .

  4. Puede crear conflicto con algunas aplicaciones: Como cualquier modificación de software, este proceso puede entrar en conflicto con otras aplicaciones. 

  5. Inestabilidad del sistema: Aunque por norma general este proceso se realiza para mejorar el sistema, si no sabemos bien lo que hacemos podemos provocar mucha inestabilidad en el sistema, haciendo que este disminuya su rendimiento o aumente su uso de batería. Por ejemplo, si no prestamos atención al dar permisos podemos dotar de privilegios a una aplicación para que consulte nuestra ubicación constantemente, cualquier aplicación del tiempo por ejemplo, con lo que esto aumentará el uso de batería y disminuirá el rendimiento al tener constantemente un proceso realizando operaciones en nuestro sistema.

Vemos que rootear un terminal tiene  sus peligros , pero ¿y  si pudiésemos  tener las ventajas del rooteo   pero sin disminuir la seguridad,ni perder la garantía ni las actualizaciones?  Pues en efecto se puede  como a vamos a ver a  continuación  

 

Una de las utilidades  mas interesantes del rooteo es desinstalar aplicaciones que no podemos  quitar desde el propio dessistalador al estar incluidas enla rom del so  bien porque se han incluido por el propio fabricante o bien porque vengan incluidas en el propio SO

Para desistalar estas aplicaciones “especiales ” vamos a necesitar la aplicación App Inspector, disponible gratis en la Google Play Store. Esta app sirve para inspeccionar las propiedades detalladas de todas las aplicaciones instaladas en su dispositivo. Estas propiedades están disponibles desde  PackageManager interno de Android, por lo general muchas de ellas no están expuestas por la interfaz de usuario por defecto del sistema (como el código de la versión, Target SDK versión, etc)  de modo que esta app es util  no solo para los desarrolladores   sino para  usuarios curiosos por igual.

 

Captura de pantalla

 

Al abrirla, entonces podremos ver el nombre de ‘paquete’ de cualquiera de las aplicaciones que estén instaladas en nuestro teléfono inteligente. Es decir, que lo que deberíamos hacer con ella es identificar cuál es el ‘nombre interno’ de la app pre-instalada de la que nos queremos deshacer. Y a partir de aquí podremos continuar.

Captura de pantalla

Esta interesante aplicación   incluso no  da acceso a información del bloatware preinstalado, para que sin necesidad de tener el móvil rooteado podemos  desinstalarlo   ,como vamos a  ver a continuación mediante la utilidad  adb

Si sólo necesita el ADB no hay necesidad de instalar el SDK completo pues es posible  instalar una versión versión mínima de dicha herramienta.

El  ADB es básicamente un software o programa de PC a través del cual se puede darle órdenes especiales al móvil, usando comandos de texto. Estos comandos incluyen órdenes básicas que se usan en el sistema Linux (copiar, pegar, mover, son algunos ejemplos) así como una variedad de comandos específicos para desarrolladores.

Los comandos ADB se pueden mandar al teléfono cuando el mismo está encendido/arrancado, y también cuando se encuentra en modo recovery. La herramienta ADB se puede utilizar para enviar comandos hacia dispositivos con y sin root.

Si tiene instalado Android Studio , este se instala por defecto  junto con el resto del software , pero  tendremos después que invocarlo o donde hayamos almacenado los archivos binarios de ADB, para lo cual pulsaremos Shift y clic derecho en la carpeta correspondiente, para que la consola de comandos se abra exactamente ahí.

Si no tiene el adb instalado , siga estos pasos:

  • Descargue la ultima versión disponible(en este momento la 1.4.3)   para 32 y 64 bits para Windows en el foro  de xda-developes http://forum.xda-developers.com/showthread.php?t=2317790.
  • Ejecute el instalador haciendo doble clic en  minimal_adb_fastboot_v1.4.3_setup.exe
  • Instale normalmente siguiendo las instrucciones.
  • Se instalara: en C:\Program Files (x86)\Minimal ADB and Fastboot
  • Al finalizar se abrirá la ventana a través de la cual podrás enviar los comandos a tu móvil.

 

Ahora tendremos que abrir nuestro ordenador, y con el móvil conectado por el cable USB, abriremos Símbolo del sistema mediante el comando  cmd

 Hecho esto, tendremos que irnos  a  la ruta  C:\Program Files (x86)\Minimal ADB and Fastboot     e   introducir el  comando :

  • adb shell pm disable-user –user 0  <package_to_disable>
  • package_to_disable>  : indica  el nombre de paquete de la aplicación que queremos eliminar de nuestro dispositivo  y que hemos conseguido con la aplicación App Inspector )

En el  siguinte ejemplo  con el citado comadno vamos a desactivar el instalador de facebook :

Ahroa en el caso de que quisiéramos recuperar unlistado de las aplicaciones que hemos deshabilitado siguiendo este método, entonces tendríamos que ejecutar el siguiente comando:

  • adb shell pm list packages -d

Con este  comando  se mostrarán las aplicaciones que han sido deshabilitadas , dpnde como vemos  donde ya se ha incluido el instalador de la app de facebook que desactivamos con el comando del ejemplo anterior:

Para habilitar  una app , el comando que tendríamos que ejecutar es el siguiente, sustituyendo , de nuevo, por el nombre de paquete que corresponda

  • adb shell pm enable

Algunos ejemplos  de  app que se pueden desinstalar o congelar sin peligro:

  • Calculadora: No es necesaria, aunque tal vez si la borra  nos convenga en otro momento  instalar otra  alternativa.
  • Calendario: Igual que la calculadora, esta aplicación no afectará al funcionamiento de tu smartphone.
  • Cámara: La aplicación de Cámara no supondría ningún problema para su terminal para  ser desinstalada, pero   personalmente nunca la eliminaria  puesto que si desistalamos no podremos acceder a la cámara.
  • Correo: Si no le interesa el cliente de correo nativo de Android siempre podemos desinstalarlo y con ello liberarnos memoria interna, Sobre todo tiene sentido cuando usamos otros gestores de correo como gmail o el propio outlook  para este cometido.
  • Fondos Animados: Esta es una de las funciones que, personalmente, veo más inútiles. Mediante estos desinstaladores podremos borrar los fondos animados, aunque no vienen todos en un pack. Algunos de estos fondos son: Burbujas, Agujero Negro, Humo Mágico o Phase Beam. Dependiendo del dispositivo y del fabricante  incluso puede haber muchos más.
  • Galería: si utilizá alguna alternativa, como Quickpic, tal vez no necesita la galería por defecto (o la que os haya instalado el fabricante).
  • Gmail: Por la misma razón  que exponíamos anteriormente con el cliente de correo nativo , si no le interesa el cliente de correo de Google puede desinstalarlo sin problemas.
  • Google+: Esta red social de Google cada  vez tiene menos adeptos desde que Google decidió dejarla  solo para  clientes empresariales.     Sin duda , si no es un lciemte empresarial , lo mejor  es desinstalarla.
  • Google Chrome: Si sois usuarios de otros navegadores, tal vez no queráis tener en vuestro smartphone el navegador de Google.
  • Google Maps: Se puede borrar sin que tenga ningún efecto en el rendimiento del terminal.La aplicación de mapas de Google  está rastreando la ubicación todo el tiempo, para lanzar notificaciones cuando se acerca a un sitio u otro  por lo que su so en primer plano consume muchísima batería, y en segundo plano, si tiene el GPS activado, también
  • Google Play: Google Play y sus diversas aplicaciones (Music, Libros, Kiosco, Películas y Games) se pueden desinstalar sin efectos graves, aunque siempre es recomendable tener una tienda alternativa.
  • StreetView: Si hemos borrado Google Maps esta app no nos servirá para nada puesto que es complementaria.
  • YouTube: La aplicación de YouTube no afecta en nada al sistema.
  • Google Calendar: La aplicación de calendario de Google no deja de sincronizar en segundo plano, y además sabe perfectamente qué estás haciendo, cuándo y dónde lo estás haciendo. La única forma de limitarlo es o bien desactivando la sincronización automática o deshabilitándola / desinstalándola.
  • Google Now:La aplicación de Google es el asistente virtual que, hasta que llegue Google Assistant, hay instalado en todos los terminales. Dicha app no deja de actualizarse en segundo plano, obteniendo información del tráfico, del tiempo, noticias, información de interés… Eso consume muchísima batería sin que nos demos cuenta. Si no usas el desbloqueo por voz o no eres demasiado fan de Google Now, no pierdes nada por desinstalarla de tu terminal.
  • Google Photos:Aunque es una de las apps más útiles que nos podemos encontrar en el panorama Android, la aplicación de sincronización en la nube y galería de Google consume muchísima batería. Cada vez que hacemos una foto o un vídeo y estamos conectados a una red WiFi, Google Fotos se pone a sincronizar en segundo plano y a subir todos los nuevos archivos a la nube. Si no la tenemos bien configurada, puede llegar a consumir mucha batería. Sobre todo , si no se hace uso de su servicio, lo mejor es deshabilitarla o desistalarala

A %d blogueros les gusta esto: