NKC Forum
Register | FAQ | Search | Who is online? | Member list | Today's posts | Calendar | Login



Author Topic: LVGL (Light and Versatile Graphics Library) für den NKC
fin55
Kennt sich schon aus
**
ID # 223


  Posted on January 27, 2026 06:02 PM (#41)  |  Quote Quote   PM PM   E-mail E-mail
Ja, das ist Open-Sans-Regular mit 14 und 20 Pixel.
Die ttf-Datei habe ich von https://www.fontsquirrel.com/fonts/list/popular heruntergeladen.
Der LVGL-Fontkonverter erzeugt dann ein c-File mit dem Namen des Fonts.
Die c-Datei kannst du dann ohne Probleme direkt einbinden.
Der Konverter benötigt einen gültigen lvgl-Font als Fallback?? z. Bsp: lv_font_montserrat_14.

LG
Werner

Posts: 60 | Member since: April 2022 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 27, 2026 07:11 PM (#42)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Werner,
hast du den Source dazu wo eingecheckt. Würd mich interessieren.
Arbeite gerade an der 24-bit CLUT. Damit sind dann 256 Graustufen darstellbar.

LG,
Andi

Posts: 472 | Member since: May 2021 | IP address: not saved
fin55
Kennt sich schon aus
**
ID # 223


  Posted on January 27, 2026 08:58 PM (#43)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Andi,

hier sind die Sourcen.
in der lv_color_565_to_gdp.h ist die Konvertierungstabelle.
Beachte bitte: Das Programm arbeitet mit den 256 Standard-Farben der GDP.

lvgl_565.tgz

LG
Werner

Posts: 60 | Member since: April 2022 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 27, 2026 10:29 PM (#44)  |  Quote Quote   PM PM   E-mail E-mail
Hallo,
vielen dank.
Ich hab hier ein FPGA-File mit 24-bit CLUT (allerdings aktuell nur mit der neuen CPU, sollte aber keinen Unterschied machen).
https://github.com/avg67/nkc/blob/main/tang_nano_20k/NKC_68k_FAST_PS2_KEYB_PCB.fs

CLUT-Routinen:
static uint32_t clut_backup[256];
static inline __attribute__((always_inline)) void GDP_backup_clut(void)
{
GDP_Clut.color_idx = 0;
for(uint16_t i=0;i<256;i++) {
uint32_t tmp = GDP_Clut.color_h<<24;
tmp|= (GDP_Clut.color_m << 16);
tmp|= (GDP_Clut.color_l);
clut_backup[i] = tmp;
}
}

static inline __attribute__((always_inline)) void GDP_set_clut_grey(void)
{
GDP_Clut.color_idx = 0;
for(uint16_t i=0;i<256;i++) {
GDP_Clut.color_h = i; // R
GDP_Clut.color_m = i; // G
GDP_Clut.color_l = i; // B
}
}

static inline __attribute__((always_inline)) void GDP_restore_clut(void )
{
GDP_Clut.color_idx = 0;
for(uint16_t i=0;i<256;i++) {
const uint32_t tmp = clut_backup[i];
GDP_Clut.color_h = (tmp>>24) & 0xff; // R
GDP_Clut.color_m = (tmp>>16) & 0xff; // G
GDP_Clut.color_l = tmp & 0xff; // B
}
}

Achtung folgendes File muss ebenfalls upgedatet werden: https://github.com/avg67/nkc/blob/main/SW/SysGCC-delta/m68k-elf/m68k-elf/include/sys/gdp9366.h



Hier ist ein Beispiel für die aktualisierte CLUT.

Posts: 472 | Member since: May 2021 | IP address: not saved
retroniker
Stammgast
**
ID # 243


  Posted on January 28, 2026 05:56 PM (#45)  |  Quote Quote   PM PM   E-mail E-mail
Um Euch mal kurz eine Rückmeldung zu geben: Ich bin echt begeistert.
Dann wird das ja doch noch was mit Farbe am NKC ... super!
Ich verfolge den Thread schon gern, verstehe aber meistens nur Bahnhof :D
Euch weiterhin ein gutes Gelingen
Schöne Grüße

-----------------------
68008/GDP64HS/BootRAM68k/KEYr4/IOEenh mit 2xSD-Karte/Sound3/UHR3/IOEenh mit Joystick/BUS3 ;)

Posts: 190 | Member since: February 2025 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 28, 2026 07:04 PM (#46)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Werner,
ich hab das heute bei mir ausprobiert, aber leider bleibt bei mir der Bildschirm dunkel. Die LVGL-Library hab ich neu compiliert. Ich vermute mal es liegt an lv_conf.h.
Was muss ich denn dort umstellen? Oder hast einen Tipp für mich woran es liegen könnte?

Posts: 472 | Member since: May 2021 | IP address: not saved
fin55
Kennt sich schon aus
**
ID # 223


  Posted on January 28, 2026 08:16 PM (#47)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Andi,

hast du in der lv_conf.h für LV_COLOR_DEPTH 16 eingetragen für RGB565?

Posts: 60 | Member since: April 2022 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 28, 2026 08:27 PM (#48)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Werner,
ja das hab ich und ich hab auch
#define LV_DRAW_SW_SUPPORT_RGB565 1
gesetzt.
Jetzt seh ich was aber die Farben sind sehr blaustichig (nicht so wie in deinem Bild)
Kannst du mir dein lv_conf.h zusenden?

Posts: 472 | Member since: May 2021 | IP address: not saved
fin55
Kennt sich schon aus
**
ID # 223


  Posted on January 28, 2026 08:49 PM (#49)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Andi,

ok,
#define LV_DRAW_SW_SUPPORT_RGB565 1
muss auch gesetzt werden.

lv_conf_fin55.h

LG Werner

Posts: 60 | Member since: April 2022 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 28, 2026 09:03 PM (#50)  |  Quote Quote   PM PM   E-mail E-mail
Hallo,

Danke. Nun schaut das Bild auch bei mir so aus wie bei dir.
Bei mir braucht er übrigens für den Bildaufbau ~3 sek, dank der schnellen CPU. Bei dieser werde ich nun alle weiteren Optionen aufdrehen (68020 Instruction set).
Und durch einen Instruction cache (an dem ich gerade arbeite) wird sie sicher noch mal mind. 50% schneller.
LG,
Andi

Posts: 472 | Member since: May 2021 | IP address: not saved
fin55
Kennt sich schon aus
**
ID # 223


  Posted on January 28, 2026 09:13 PM (#51)  |  Quote Quote   PM PM   E-mail E-mail
Hallo,

super, aber woran lag jetzt die Farbverfälschung? Ich habe gerade mal meine lv_conf.h mit der aktuellen von smed verglichen.
Bei smed ist noch ...SW_SUPPORT_RGB888 und ...SW_SUPPORT_ARGB8888
gesetzt. Lag es daran?

Posts: 60 | Member since: April 2022 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 28, 2026 09:22 PM (#52)  |  Quote Quote   PM PM   E-mail E-mail
Hallo,
das weiss ich auch nicht genau. Als ich dein lv_conf.h rein kopiert und dann alles neu gebaut hatte hat es gepasst :confused:
Möglicherweise lag es an dem RGB888-Support der bei dir abgedreht ist. Ich werd das morgen mal testen und das testhalber mal wieder aufdrehen
LG,
Andi

Posts: 472 | Member since: May 2021 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 29, 2026 02:45 PM (#53)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Werner,
Übrigens Wenn du auch die schnellere CPU auf deinem Tang-Nano willst brauchst nur das folgende FPGA-File rein laden: https://github.com/avg67/nkc/blob/main/tang_nano_20k/NKC_68k_FAST_PS2_KEYB_PCB.fs
Da ist alles genau gleich wie bisher, nur die CPU ist neu (4x schneller). Ich verwende schon seit längerer Zeit nur noch diese auf dem Tang-Nano
LG,
Andi

Posts: 472 | Member since: May 2021 | IP address: not saved
fin55
Kennt sich schon aus
**
ID # 223


  Posted on January 29, 2026 06:28 PM (#54)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Andi,

danke für die Info. Ich habe auch schon überlegt, auf die schnellere Variante umzusteigen, habe mich aber nicht getraut ohne Rückfrage das FPGA-File zu laden.
Ich war bisher mit der Leistung zufrieden - mit LVGL hat sich das nun geändert. Ich werde am Wochenende auf die schnellere CPU umsteigen.

LG
Werner

Posts: 60 | Member since: April 2022 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 29, 2026 08:03 PM (#55)  |  Quote Quote   PM PM   E-mail E-mail
Hallo,
man kann bei der schnellen CPU übrigens noch ~10% Performance rausholen wenn die GDP-Darstellung abgeschaltet wird (GDP-CTRL1 bit2=1) weil sich da die CPU die Speicherbandbreite nicht mit der GDP teilen muss -> wär ev. Interessant für das kopieren LVGL Framebuffer -> GDP Memory.
Bei der langsameren CPU ist das sicher auch der Fall, aber der Faktor ist dort sicherlich weit geringer weil die CPU viel weniger Speicherbandbreite braucht.
Die alte (langsame) CPU entspricht zu 100% einem 68000 mit 10MHz (Ausführungszeiten der Befehle, Bustiming, ...). Die neue ist da optimiert. Der Bus ist viel schneller und läuft mit 20MHz (1 Zyklus pro zugriff). Die meissten Befehle werden ebenfalls in einem 20MHz Taktzyklus ausgeführt. Die größte Bremse (bisher) ist die verfügbare Speicherbandbreite vom SDRAM, welche die CPU doch erheblich ausbremst. Aber trotzdem ist sie ~4x so schnell wie die alte.

Posts: 472 | Member since: May 2021 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 31, 2026 07:10 PM (#56)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Smed,
haben sich deine Probleme erledigt?
Hab jedenfalls das FPGA file, für alle Fälle, neu erstellt.
Bei mir hat aber auch das alte funktioniert.

LG,
Andi

Posts: 472 | Member since: May 2021 | IP address: not saved
smed
Stammgast
**
ID # 114


  Posted on January 31, 2026 07:33 PM (#57)  |  Quote Quote   PM PM   E-mail E-mail
Alles klar, ging dann doch noch. Nun geht der NKC aber ab, ziemlicher Geschwindigkeits boost !

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k und eine FPGA-GDP.

NKC - OpenSource since 1983

Posts: 308 | Member since: January 2011 | IP address: not saved
andi
Fühlt sich wie zu Hause
***
ID # 213


  Posted on January 31, 2026 07:41 PM (#58)  |  Quote Quote   PM PM   E-mail E-mail
Hallo Smed,
freut mich dass das nun auch bei dir läuft :)
Die schnelle CPU ist in der Tat ein gewaltiger Geschwindigkeits-boost. Hab da auch einiges im GP patchen müssen weil die CPU zu schnell war und die HW überfahren hat.
Beim SDRAM wird die CPU doch noch erheblich ausgebremst weil ein Zugriff doch im Duchschnitt ~3-5 Taktzyklen dauert. Beim GP-ROM ist das nicht der Fall da kann die CPU die volle Geschwindigkeit erreichen weil da jeder Zugriff nur einen Takt dauert (und die CPU fast alle Befehle in einem Takt ausführen kann). Da geht so richtig die Post ab. Bin schon gepannt wie das dann mit Cache für den SDRam wird.
Komplexere Programme wie TFTP und LVGL profitieren gewaltig davon. Ich verwende schon seit langem nur noch die schnelle CPU am Tang-Nano.
LG,
Andi

Posts: 472 | Member since: May 2021 | IP address: not saved
fin55
Kennt sich schon aus
**
ID # 223


  Posted on January 31, 2026 10:27 PM (#59)  |  Quote Quote   PM PM   E-mail E-mail
Hallo,

bei mir läuft jetzt auch der Turbo, super.

@smed: Für die Fonts hast du einen super Platz gefunden. Willst du mit RGB565 weitermachen?

LG
Werner

Posts: 60 | Member since: April 2022 | IP address: not saved
smed
Stammgast
**
ID # 114


  Posted on February 01, 2026 06:02 PM (#60)  |  Quote Quote   PM PM   E-mail E-mail
Hi,
habe deine fonts nach ../lvgl/scr/font geschoben. Dank deiner rgb565_to_nkc_256lut() läuft jetzt der LVGL 16 color depth Modus mit der FPGA-GDP. Müsste man mal mit einem Farbverlauf testen.

Als nächstes ist der Slider 'dran - der lässt sich noch nicht schieben und beschwert sich über einen Nullpointer.

Habe LV_DEF_REFR_PERIOD auf 5 [ms] gestellt, ist auch für 'input device read' zuständig - nun ist die Maus flüssiger.

Ich habe die letzten Code-Beitrage auf Github ge-updated.

Gruss
smed

PS Leider zZT NULL Zeit für NKC

-----------------------
NKC'ler seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,UHR3,PROMER,CENT,SER,SOUND,CAS,6xBUS2,4xBUS3,3xPOW5V,2xTAST..und einen ArduinoMEGA mit auf dem BUS, und eine selbstgebastelte MEM960k und eine FPGA-GDP.

NKC - OpenSource since 1983

Posts: 308 | Member since: January 2011 | IP address: not saved



| https://nkcforum.de | Board rules | Privacy policy


Tritanium Bulletin Board 1.8
© 2010–2021 Tritanium Scripts


Site created in 0.051357 seconds
Processed 17 files
gzip compression enabled
2311.76 KiB memory usage