Wersja testowana: V-Tom 7.12 i 7.13 oraz niemodowana wersja 0.9.720 (github)
Poniższa instrukcja krok po kroku opisuje proces przygotowania i implementacji własnej grafiki startowej dla wyświetlaczy opartych o sterownik ST7796 (480x320).
- Przygotuj plik graficzny (np.
.jpg,.png) o dowolnych wymiarach, ale nie większych niż rozdzielczość Twojego wyświetlacza.Przykład: moje logo dla ekranu 480x320 to plik o wymiarach 200x133 px.
- Wejdź na stronę konwertera: MarlinFW Bitmap Converter.
- Wgraj swój plik graficzny.
- Po konwersji zwróć uwagę na dwie rzeczy w wygenerowanym kodzie:
- wartość w nawiasie kwadratowym przy nazwie tablicy (rozmiar tablicy), np.
[26600], - zawartość tablicy w nawiasach klamrowych
{0x....}.
- wartość w nawiasie kwadratowym przy nazwie tablicy (rozmiar tablicy), np.
Stwórz nowy plik o nazwie odpowiadającej wymiarom logo, np. bootlogo200x133.h. Wklej do niego poniższy szablon i uzupełnij danymi z konwertera:
#ifndef bootlogo_h
#define bootlogo_h
#include <stdint.h>
// 1. Ustaw wymiary swojego logo
#define LOGO_WIDTH 200
#define LOGO_HEIGHT 133
// 2. Wklej tutaj tablicę z konwertera.
// UWAGA: Upewnij się, że liczba w [] zgadza się z tą wygenerowaną przez konwerter!
// W moim przypadku to 26600:
static const uint16_t logo[26600] PROGMEM = {
// Tu wklej zawartość wygenerowaną przez stronę, zaczynającą się od 0x....
0x0000, 0xFFFF, 0x0000,
// ... (reszta danych)
};
#endif- Umieść utworzony plik
bootlogo200x133.hw katalogufonts/(tam są już inne podobne pliki). - Otwórz plik
displayST7796.h. - Znajdź linię importującą stare logo i podmień ją na nową:
// displayST7796.h
// #include "fonts/bootlogo.h" <-- stara linia
#include "fonts/bootlogo200x133.h" // <-- nowa liniaAby logo wyświetlało się poprawnie (np. na środku w pionie), edytuj plik displayST7796conf:
- Znajdź definicję
#define bootLogoTop. - Dostosuj wartość wg wzoru:
(WysokośćEkranu - WysokośćLogo) / 2.Przykład: Dla logo o wysokości 133px wartość 90 była optymalna.
// displayST7796conf
#define bootLogoTop 90Jeśli chcesz, aby logo było widoczne dłużej przy starcie (np. 3 sekundy), oraz aby móc wyłączać to opóźnienie w prosty sposób, wykonaj dwie zmiany:
A. W pliku myoptions.h dodaj:
#define BOOTLOGO_DELAYB. W pliku commongfx.h dodaj obsługę opóźnienia:
Znajdź sekcję odpowiedzialną za rysowanie logo i dodaj:
#ifndef DSP_LCD
inline void loop(bool force=false){}
inline void drawLogo(uint16_t top){ drawRGBBitmap((width() - LOGO_WIDTH) / 2, top, logo, LOGO_WIDTH, LOGO_HEIGHT);
#ifdef BOOTLOGO_DELAY // 3 sekundy na obejrzenie logo
delay(3000); // 3 sekundy na obejrzenie logo
#endif // 3 sekundy na obejrzenie logo
}
#endif*Uwaga: dla innych ekranów postępuje się analogicznie - zmiany do wprowadzenia w odpowiednich dla nich plikach displayXXXXXX.h oraz displayXXXXXXconf.h *