Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[MARLIN] Cambiar logo inicial con Bootscreen.h
#1
Fotografía 
Muy buenas!!

Aunque es algo que se puede hacer desde los principios (recuerdo haberlo hecho ya hace 4 años aproximadamente), ahora podemos tunear el Marlin con un logo de inicio, como si fuera un ordenador cuando nos tira el logo de la placa base. Las últimas versiones de Marlin incluyen un fichero extra llamado _bootscreen.h donde podemos añadir un dibujo.

Para ello necesitaremos:

- Tener pantalla LCD 12864, la conocida RepRap Full Graphics LCD Controller.
- Un programa tipo Paint.
- Un conversor de bmp (Link a LCDassistant).

Lo primero será preparar la imagen/dibujo:

  1.- Necesitamos que el lienzo tenga un tamaño exacto de 128 x 64 pixels (ancho x alto). 
  2.- Una vez dibujado/ajustado el dibujo al lienzo, si no está en blanco y negro, deberemos convertirlo. Recomiendo que no tenga sombras ni nada raro, cuanto más definido quede, mejor.
  3.- Guardaremos el fichero en formato .BMP.

Lo siguiente, convertir la imagen BMP a "algo entendible" por el LCD,  Smash2 .

  Voy a centrar el tuto en el programa que os dejaba arriba, el LCDassistant, que es sencillo y lleva tiempo funcionando perfectamente para esto. 
  4.- Abrimos el LCDassistant y cargamos la imagen BMP clickando en File --> Load image.
  5.- Configuramos la orientación como Horizontal y si no la marca, ponemos el tamaño de la imagen, 128x64.
 
En este momento, deberíamos de tener lo siguiente:
resim

  6.- Si todo está correcto, guardamos el resultado en File --> Save Output.

El fichero _bootscreen.h.

Este fichero no viene integrado en Marlin, tenemos que localizarlo en alguna de las carpetas donde vienen configuraciones de ejemplo. Por ejemplo, en la carpeta de la Hephestos 2 lo podéis copiar y pegarlo en la carpeta raíz de vuestro Marlin, para que sea detectado por este.

  7.- Usando un bloc de notas, sublime text, notepad++ o vuestro editor preferido, abrimos el fichero creado con el LCDassistant. Dentro de este debemos copiar todo lo que se encuentra dentro de las llaves { }, que es un motón de cosas del estilo "0x00, 0x00, 0x1F, 0xFF,".
  8.- Con ese mismo editor, abriremos el fichero _bootscreen.h que copiamos a la raíz de Marlin, donde veremos algo muy similar a esto:

resim

     y sustituiremos todo lo que se encuentra entre las llaves por lo copiado del fichero que generamos anteriormente.

Por último, verificaremos los valores de esas tres variables:

Código:
#define CUSTOM_BOOTSCREEN_TIMEOUT   2500
#define CUSTOM_BOOTSCREEN_BMPWIDTH  128
#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64

CUSTOM_BOOTSCREEN_TIMEOUT hace referencia al tiempo que se mostrará la imagen al iniciar. y CUSTOM_BOOTSCREEN_BMPWIDTH y BMPHEIGHT se corresponden al tamaño de la imagen, como ya habías supuesto.

  También debemos asegurarnos de que el tamaño del array es de 1024. Algunos vienen a 512, así que deberemos tener lo siguiente:

Código:
const unsigned char custom_start_bmp[1024] PROGMEM = {

Guardamos los cambios, y estamos listos para hacer que Marlin lea el fichero _bootscreen.h.

Modificando marlin para usar el _bootscreen.h.

  9.- En el fichero configuration.h, tenemos que buscar la linea "//#define SHOW_CUSTOM_BOOTSCREEN" y descomentarla. Está sobre la línea 98 aproximadamente. OJO: No confundir con la línea que aparece un poco más arriba "//#define SHOW_BOOTSCREEN".

resim

   10.- Si todo está correcto, compilamos y subimos a nuestro arduino.

El resultado será el que vosotros os curréis:

resim

resim

resim

NOTA
Esto no sustituye el logo inicial de Marlin, sino que se muestra ANTES. Si lo que queremos es modificar el logo de Marlin, así como la información que muestra, tendremos que editar otros ficheros, que veremos en un post llamado "Destripando Marlin" que estoy redactando.

P.D.: Para los logos, también hay webs online donde podéis pintar a mano alzada pixel a pixel, opción a tener en cuenta si no conseguís los resultados que buscáis, Gran sonrisa.

Cualquier duda, ya sabéis, pero creo que es bastante claro. Para todo lo demás, Spainlabs  B1
Citar
#2
Brutal, quería trastear con esto pero no caía con la forma de convertir el logo a hexadecimal
Citar
#3
De lujo junkillo. Es un alivio el saber que la última versión de Marlin incluye el _bootscreen.h porque hace años ya me peleé lo suyo para ponerle un logo personalizado y quitar la pantalla de principal.
En cuanto saquen la 1.1 estable lo pongo en práctica.

Muchas gracias.
resim resim
-Eh! Mira detrás de tí, ¡¡UN MONO de TRES CABEZAS!!
-Piratas importantes: ¿Que quieres chico?
-Guybrush: Quiero ser bombero.
Citar
#4
Muchas gracias jukillo, me has quitado muchas horas de lectura !!

Estoy empezando con esto del marlin.

Gracias.

Sent from my SM-G900F using Tapatalk
Citar
#5
Muchas gracias por la información, está muy bien explicado.
Citar
#6
(14-02-2017, 01:05 AM)Xsion escribió: De lujo jukillo. Es un alivio el saber que la última versión de Marlin incluye el _bootscreen.h porque hace años ya me peleé lo suyo para ponerle un logo personalizado y quitar la pantalla de principal.
En cuanto saquen la 1.1 estable lo pongo en práctica.

Muchas gracias.

Si... cuando no se tenía muy claro que tamaño tenía que tener el logo a la izquierda del texto y toda la parafernalia, jeje.

Decirte que yo estoy trasteando con la RC8 en una delta y es bastante estable, las impresiones salieron todas perfectas. Hay algún detalle que intentan generalizar más, pero si no te va con los parámetros estándar, vuelves a la vieja usanza, Gran sonrisa
Citar
#7
(14-02-2017, 09:28 AM)jukillo escribió:
(14-02-2017, 01:05 AM)Xsion escribió: De lujo jukillo. Es un alivio el saber que la última versión de Marlin incluye el _bootscreen.h porque hace años ya me peleé lo suyo para ponerle un logo personalizado y quitar la pantalla de principal.
En cuanto saquen la 1.1 estable lo pongo en práctica.

Muchas gracias.

Si... cuando no se tenía muy claro que tamaño tenía que tener el logo a la izquierda del texto y toda la parafernalia, jeje.

Decirte que yo estoy trasteando con la RC8 en una delta y es bastante estable, las impresiones salieron todas perfectas. Hay algún detalle que intentan generalizar más, pero si no te va con los parámetros estándar, vuelves a la vieja usanza, Gran sonrisa

Ya te digo y más si querías usar como yo el logo y letras Gran sonrisa

Yo aún estoy usando la 1.0.2, siempre prefiero esperarme a las versiones estables.

Saludos.
resim resim
-Eh! Mira detrás de tí, ¡¡UN MONO de TRES CABEZAS!!
-Piratas importantes: ¿Que quieres chico?
-Guybrush: Quiero ser bombero.
Citar
#8
buenas...

Soy bastante nuevo pero me apunto a seguirte en el destripe....

C di en la uni asi que lo tengo un poco oxidado pero si que tengo ganicas de destripar merlin.... asi me ruedo un poco en C antes de tocar cosas mas mas (sutil?) perjudiciales para la salud.

Me encanta programar.
Citar
#9
gracias por el aporte..!!
está genial..!!
Citar
#10
Hola compañero y bueno gracias por el tutorial , aunque  la verdad es que me sale un error y no entiendo el porque, ya que esta todo tal cual sale. esto es lo que me sale

Código:
In file included from sketch\ultralcd_impl_DOGM.h:54:0,

                from sketch\ultralcd.cpp:56:

sketch\_Bootscreen.h:127:6: error: too many initializers for 'const unsigned char [1024]'

0x00 };

     ^

In file included from sketch\ultralcd.cpp:56:0:

sketch\ultralcd_impl_DOGM.h: In function 'void lcd_implementation_init()':

sketch\ultralcd_impl_DOGM.h:276:98: warning: large integer implicitly truncated to unsigned type [-Woverflow]

            CEILING(CUSTOM_BOOTSCREEN_BMPWIDTH, 8), CUSTOM_BOOTSCREEN_BMPHEIGHT, custom_start_bmp);

                                                                                                 ^

exit status 1
Error compilación en tarjeta Arduino/Genuino Mega or Mega 2560.

La verdad no estoy muy puesto en programar Arduino y las pequeñas cosas las he podido solventar pero esto me ha matado, si fueris tan amable de tirarme un cable os lo agradeceria 

Un saludo
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  ¿MKS Sbase + Marlin 2.0? 3Dsastre 5 138 Hace 5 horas
Último mensaje: neoxM3
  El marlin no me hace caso spa_sergio 10 1,337 05-11-2018, 01:17 PM
Último mensaje: Simemart
  Marlin 1.1.9 en Anet A8 PatogomaII 9 1,401 18-10-2018, 07:45 PM
Último mensaje: jhony85
  Problema autolevel con Marlin 1.1.9 klipendorf 3 816 07-08-2018, 06:15 PM
Último mensaje: Simemart
  CONSULTA Problema con marlin Vicente48 2 289 23-07-2018, 07:50 AM
Último mensaje: Vicente48