14-02-2017, 12:23 AM
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, .
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:
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:
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:
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:
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".
10.- Si todo está correcto, compilamos y subimos a nuestro arduino.
El resultado será el que vosotros os curréis:
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, .
Cualquier duda, ya sabéis, pero creo que es bastante claro. Para todo lo demás, Spainlabs
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, .
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:
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:
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".
10.- Si todo está correcto, compilamos y subimos a nuestro arduino.
El resultado será el que vosotros os curréis:
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, .
Cualquier duda, ya sabéis, pero creo que es bastante claro. Para todo lo demás, Spainlabs