This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Cambiar drivers A4988 por TMC2209 v4
Eso creo que es lo que debería hacer, pero se queda fijo ese tiempo que es el transcurrido y no alterna entre transcurrido y restante.
Como ves también, el porcentaje lo marca con la barra de la parte inferior, no lo marca con numero, no se si se podría poner para que lo marcara con numero también.
  Responder
La verdad es que la implementación para esa pantalla está bastante descuidada y tiene algunas cosas extrañas, como la resolución de 480x320 que le asigna, cuando en todas las especificaciones que veo se indica que esa pantalla tiene 320x240: como parece que la información se muestra bien, quizá sea errónea esta última.
Con ese tipo de pantalla configurada, al seleccionar la interfaz COLOR_UI se habilita la implementación incluida en el archivo \Marlin\src\lcd\tft\ui_480x320.cpp y en ella se han olvidado de incluir el manejo del porcentaje en número y del tiempo restante. de ahí que no se muestre nada referido a ellos en la pantalla aunque se habiliten en la configuración.
Voy a estudiarlo un poco en detalle a ver si no es muy laborioso corregirlo.
  Responder
Muchas gracias @Simemart me estás ayudando mucho, la otra interfaz lvgl tiene muchísimos fallos y yo no sé programar como para corregirlos, en esta interfaz tiene muchos menos, funciona todo por el momento menos esos pequeños detalles que no influyen en el funcionamiento.
  Responder
He hecho una modificación para que se visualice el tiempo restante, pero tendrás que probarla.
En el archivo Marlin\src\lcd\tft\ui_480x320.cpp, hay que cambiar las lineas de la 331 a la 334 por las siguientes:

Código:
  char buffer1[14];
  char buffer2[14];
  duration_t elapsed = print_job_timer.duration();
  duration_t resto = ui.get_remaining_time();
  elapsed.toDigital(buffer1);
  resto.toDigital(buffer2);

  tft.canvas((TFT_WIDTH - 256) / 2, y, 256, 29);
  tft.set_background(COLOR_BACKGROUND);
  tft_string.set("|<: ");
  tft_string.add(buffer1);
  tft_string.add("    >|: ");
  tft_string.add(buffer2);
  tft.add_text(tft_string.center(256), 0, COLOR_PRINT_TIME, tft_string);

Si funciona, después me meteré con el porcentaje en número.
  Responder
Me da el siguiente error al compilar.

[Imagen: 17209389018521694549456181674237.jpg]


[Imagen: 17209390367883833308923628896303.jpg]

He reemplazado de la linea 331 a la linea 338 y compila bien, lo he metido y salen dos tiempos como puedes ver pero el tiempo restante baja de minuto en minuto, pero ya salen dos dos.


[Imagen: 17209398300822742215573005364446.jpg]
  Responder
Perdona, las líneas a cambiar son de la 331 a la 344, debes borrar las que aparecen en esa foto de la 345 a la 349, ambas incluidas.
Comprueba que en los comandos M73 el tiempo transcurrido tenga los segundos y no solo minutos: si eso está bien, entonces es un problema con el formato que devuelve la función del tiempo transcurrido, que tendré que investigar más a fondo.
  Responder
Si al ver que las lineas eran parecidas las he sustituido todas en el archivo original son de la 331 a la 344 y he compilado sin problemas. correcto en el gcode solo marca minutos así que será por eso, no se si en orcaslicer se puede cambiar eso pero bueno que minuto arriba minuto abajo no importa tampoco.
Eres un maquina, te tenían que contratar los creadores de marlin jeje muchas gracias
  Responder
Y esto sería para el porcentaje numérico del progreso, sustituyendo a las líneas de la 348 a la 359:

Código:
  const uint8_t progress = ui.get_progress_percent();
  tft.canvas(4, y, TFT_WIDTH - 28, 9);
  tft.set_background(COLOR_PROGRESS_BG);
  tft.add_rectangle(0, 0, TFT_WIDTH - 28, 9, COLOR_PROGRESS_FRAME);
  if (progress)
    tft.add_bar(1, 1, ((TFT_WIDTH - 30) * progress) / 100, 7, COLOR_PROGRESS_BAR);
   
  tft.canvas((TFT_WIDTH - 28), y, (TFT_WIDTH - 1), 29);
  tft.set_background(COLOR_BACKGROUND);
  tft_string.set(pcttostrpctrj(progress));
  tft_string.add('%');
  tft.add_text(0, 0, COLOR_PROGRESS_BAR , tft_string);

Quizá haya que ajustar algo las posiciones.
  Responder
He cambiado las líneas dejándolas así hasta la 361, compila bien

[Imagen: 17209566284645698045209963519067.jpg]

Pero en la pantalla ahora no se ve la linea de progreso y están los valores del porcentaje donde los ves ahora en color.azul oscuro.


[Imagen: 17209566875474879072939631976192.jpg]

El % está pegado a la izquierda y el número a la derecha por si no se aprecia bien en la foto.

Igual sería mejor ponerlo en medio del tiempo transcurrido y tiempo restante separando un poco estos entre si y ponerlo en el mismo color o ponerlo en verde como los de arriba
  Responder
No funciona lo que intenté, tiene que ser en un solo canvas.
Sí, quizá mejor junto a los tiempos.
Vuelve atrás el cambio anterior y cambia las siguientes líneas (vamos a quitar las dobles comillas o nos echarán los perros los expertos en C++):

Código:
tft_string.set('|<: ');
  tft_string.add(buffer1);
  tft_string.add('   >|: ');
  tft_string.add(buffer2);
  tft_string.add('   ');
  tft_string.add(pcttostrpctrj(porcentaje));
  tft_string.add('%');
  tft.add_text(tft_string.center(256), 0, COLOR_PRINT_TIME, tft_string);

A ver si cabe todo en ese espacio de la pantalla.
  Responder
A ver si lo he puesto como decías porque me sale error.

[Imagen: 17209616126321926457954649180421.jpg]
  Responder
Otro olvido. Hay que poner esta línea antes de las anteriores:

const uint8_t porcentaje = ui.get_progress_percent();
  Responder
Creo que algo estoy haciendo mal.
[Imagen: 17209630319072146657183497483694.jpg]


[Imagen: 1720963080292742423816347602512.jpg]

Igual es que estamos definiendo dos veces lo del porcentaje porque veo líneas similares en el siguiente bloque. Hablo sin saber eee
  Responder
Nunca me decido a estudiar bien C++ y de ahí estás meteduras de pata: la comilla simple es para caracteres individuales, las cadenas de hay que especificarlas con doble comilla.
Cámbialo asi:

Código:
  const uint8_t porcentaje = ui.get_progress_percent();
  tft.canvas((TFT_WIDTH - 256) / 2, y, 256, 29);
  tft.set_background(COLOR_BACKGROUND);
  tft_string.set("|<: ");
  tft_string.add(buffer1);
  tft_string.add("  >|: ");
  tft_string.add(buffer2);
  tft_string.add("  ");
  tft_string.add(pcttostrpctrj(porcentaje));
  tft_string.add('%');
  tft.add_text(tft_string.center(256), 0, COLOR_PRINT_TIME, tft_string);

A ver si de está ya va.
  Responder
Compilado y con buena pinta.
Lo único aver puesto el porcentaje en medio de los dos igual quedaba mejor pero da lo mismo se ve muy bien
[Imagen: 17209647228081966411658082122861.jpg]

Para no haberte decidido a estudiar c++ sabes un montón jajajjaa
  Responder
Ponerlo en medio es sencillo, solo hay que cambiar cómo se intercalan los valores.
Para ponerlo en medio habría que hacer esto:

Código:
  const uint8_t porcentaje = ui.get_progress_percent();
  tft.canvas((TFT_WIDTH - 256) / 2, y, 256, 29);
  tft.set_background(COLOR_BACKGROUND);
  tft_string.set("|<: ");
  tft_string.add(buffer1);
  tft_string.add("  ");
  tft_string.add(pcttostrpctrj(porcentaje));
  tft_string.add('%');
  tft_string.add("  >|: ");
  tft_string.add(buffer2);
  tft.add_text(tft_string.center(256), 0, COLOR_PRINT_TIME, tft_string);
  Responder
Mmm casi pero no jajaja
[Imagen: 17209661633176506190076717367186.jpg]

que si no como se queda con el porcentaje a la derecha esta bien no te preocupes @Simemart esta perfecto muchísimas gracias.
voy a tener que indagar un poco en el tema de programación c++ pero creo que es muy dificil
  Responder
Ah, parece que la función que convierte en cadena el progreso ya devuelve el signo %, solo que antes se salía del espacio fijado: elimina la línea tft_string.add('%');, a ver si cabe todo solo con eso, sino habrá que darle más espacio.
  Responder
Perfecto creo que así queda perfecto, como te gusta más con el % en medio o a la derecha?


[Imagen: 17209665118333934536093398798701.jpg]
  Responder
Así no está mal, pero me temo que cuando el porcentaje tenga dos o tres cifras no va a caber en el espacio que he reservado, habría que ampliarlo un poco: es el valor 256 (son los pixeles que tiene de ancho la zona donde se escriben esos valores) y habrá que ampliarlo un poco, pero sin que se solape con los iconos.
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Cambiar el Z_SAFE_HOMING del autolevel a una esquina de la cama Hugo43 6 2,214 05-07-2024, 03:13 PM
Último mensaje: Caballo Loco
  CONSULTA cambiar posicion del extrusor luego de cambiar a guia lineal cesargomezp 1 597 25-02-2024, 12:12 PM
Último mensaje: Simemart
  Error Firmware en Ender V1 con placa MKS Robin E3D 1.0, TMC2209 Palido 1 676 29-12-2023, 10:37 AM
Último mensaje: Simemart
  A4988 campatibilidad con TMC2130 Puig 4 688 27-12-2023, 03:32 PM
Último mensaje: Puig
  CONSULTA Cambiar homing Anet et4 laroja04 4 704 22-12-2023, 01:10 AM
Último mensaje: Simemart