Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Umlaute auf dem LCD

geschrieben von jsturm 
Umlaute auf dem LCD
24. November 2012 08:59
Ich habe ein LCD Display am Arduino/RAMPS. Nun habe ich in der Marlin Software die Anzeige, unter language.h, auf Deutsch umgestellt. Leider werden die Umlaute auf dem LCD Display als japanische Zeichen angezeigt. angry smiley
Gibt es einen Weg dies zu ändern?

Danke
Achim
Re: Umlaute auf dem LCD
24. November 2012 09:07
Du hast ein Display mit westeuropäischem Zeichensatz erwischt. Die haben auch Umlaute aber an einer anderen Position wie original HD44870 controller. Aus diesem Grund habe ich bei meiner Firmware gestern einen Zeichensatzschalter eingebaut. Bei Marlin wirst du wohl von Hand die Texte ändern müssen und die Zeichen austauschen.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Umlaute auf dem LCD
24. November 2012 09:55
Ist natürlich anders herum, wenn du japanische Zeichen siehst! Da stehen die leider nur äöüß zur Verfügung. Hier die Codes:

#define STR_auml "\xe1"
#define STR_Auml "Ae"
#define STR_uuml "\365"
#define STR_Uuml "Ue"
#define STR_ouml "\357"
#define STR_Ouml "Oe"
#define STR_szlig "\342"


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Umlaute auf dem LCD
24. November 2012 10:21
Ich hab ein LCD von ReprapDiscount. Da gibt es offensichtlich (mindestens) 2 Versionen. Sie unterscheiden sich in der Displaygröße. Macht etwa 1mm aus. Evtl. ist ja auch der Zeichensatz verschieden?.
So kann ich jetzt die kleinen Umlaute darstellen -> ä=\xe1; ö=\xef; ü=\xf5; ß=\xe2;
Dankeschön
Achim
Re: Umlaute auf dem LCD
09. Dezember 2012 06:16
Hallo,
ich hab das Display gestern eingebaut und teste gerade etwas damit herum. Das Umlautproblem habe ich auch.

@ jsturm:
hast du in der language.h die Umlaute einfach durch die Codes ersetzt?

oder:
@repetier: kann ich die defines in Marlin irgendwo reinkopieren (wo) und er macht dann die Umlaute automatisch richtig?
(deine Firmware kriege ich leider nicht zum Laufen - häufiger Versatz in X-Richtung. Dazu bitte ich dich an anderer Stelle mal um Rat).

Nochwas zum Display:
- kann man dieses furchtbare Gepiepe abstellen oder leiser machen?
- ist der Drehencoder einstellbar? - bei mir läuft der sehr unrund. D. h. manchmal springt er bei einer Drehstufe schon auf die nächste Menüposition, manchmal erst nach einer halben Umdrehung.

Danke im Voraus
Stefan
Re: Umlaute auf dem LCD
09. Dezember 2012 06:57
In meiner Firmware ist das ein Schalter wo man die Darstellung wählt. Dazu habe ich alle vorkommen mit Umlauten mit Macros versehen. Bei Marlin wird das nicht klappen, da must du mit suchen/ersetzen alle vorkommen ersetzen.

Versatz in x richtung kann viele ursachen haben. Übersprechen der Endschalter, dann must du endstop abfrage ausschalten im Druck. Oder zu hoher Jerk/Beschleunigung.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Umlaute auf dem LCD
09. Dezember 2012 13:13
"hast du in der language.h die Umlaute einfach durch die Codes ersetzt?" Jups, so -> Abk\365hlen
"kann man dieses furchtbare Gepiepe abstellen" -> unter pins.h -> #define BEEPER -1 //37=on ; -1=off

Achim
Re: Umlaute auf dem LCD
09. Dezember 2012 15:21
Dank euch beiden! smiling bouncing smiley

Gruß
Stefan
Re: Umlaute auf dem LCD
04. November 2013 08:11
Quote
jsturm
"hast du in der language.h die Umlaute einfach durch die Codes ersetzt?" Jups, so -> Abk\365hlen
"kann man dieses furchtbare Gepiepe abstellen" -> unter pins.h -> #define BEEPER -1 //37=on ; -1=off

Achim

funktioniert bei meinem Display nicht. Ausprobiert habe ich von asci 150 bis 255 sad smiley
Re: Umlaute auf dem LCD
04. November 2013 08:44
@ softcell

"funktioniert bei meinem Display nicht." -> glaube ich dir sofort

Was für ein Display hast Du? Die Aussage bezieht sich, wie weiter oben schon beschrieben, auf einen "HD44870" zur Ansteuerung des Displays.

Und was hast Du für eine Firmware? Die Aussage bezieht sich auf die Marlin FW. Bei der von mir verwendeten RepetierFW macht es keine Probleme

Achim
Re: Umlaute auf dem LCD
04. November 2013 15:26
hab ein Full Graphic Smart Controller aber das grüne von Saintsmart und ein recht aktuelles Marlin
Re: Umlaute auf dem LCD
04. November 2013 23:00
"ein Full Graphic Smart Controller" -> ist eine andere Technik. Beim "HD44870" ist der Zeichensatz fest abgelegt. Bei deinem LCD wird der Zeichensatz wie bei einem PC Monitor aufgebaut.
Als ich meine Frage formuliert habe, (November 24, 2012) waren die Full Graphic Smart Controller noch nicht so weit verbreitet..

Da kenne ich mich nicht so aus und kann Dir leider nicht richtig weiterhelfen. Und da du nicht schreibst, welchen genauen Typ du hast, ja, es gibt verschiedene, stochere ich im Nebel.

Zur Marlin Software gibt es hier einen Hinweis, ich weis nicht, ob es hilft -> [reprap.org]
Marlin V1 (new)
In "Configuration.h”
Change “#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER” (just remove the // at the beginning)
==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: [code.google.com]

Und weiter findest Du hier Software für das ReprapDiscount Full Graphics Smart Controller

Achim
Re: Umlaute auf dem LCD
05. November 2013 02:43
Danke für den Link, aber den und einige andere hab ich schon durch. Die U8lib hab ich auch installiert. Beim Kompilieren gab es auch keine Fehlermeldung.
Re: Umlaute auf dem LCD
24. Dezember 2013 18:46
Hallo

gibt es zu diesem Thema schon weiter Ergebnisse, da ich auch davor stehe mit meinem Full Graphic Display von sainsmart unter Verwendung von der Firmware Marlin.
Re: Umlaute auf dem LCD
24. Dezember 2013 23:59
Ein "Full Graphic Display" baut die Texte als Grafik auf, da gibt es das Problem der Umlaute nicht.
Ansonsten - z.Z. läuft es nur unter Marlin FW, nicht unter Repetier FW, da wird es (noch) nicht unterstützt

Aber das steht ja weiter oben schon alles

1-mal bearbeitet. Zuletzt am 25.12.13 00:19.

Achim
Re: Umlaute auf dem LCD
25. Dezember 2013 02:00
Dem muss ich wiedersprechen. In der development version wird das GLCD mittlerweile sehr gut unterstützt:-) Allerdings erst seit ein paar Wochen.


Repetier-Software - the home of Repetier-Host (Windows, Linux and Mac OS X) and Repetier-Firmware.
Repetier-Server - the solution to control your printer from everywhere.
Visit us on Facebook and Twitter!
Re: Umlaute auf dem LCD
25. Dezember 2013 03:25
Gut zu wissen thumbs up Deshalb habe ich ja auch vorsichtig "(noch) nicht" dazu geschrieben.
Dann werde ich mein GLCD jetzt mal anwerfen grinning smiley


Achim
Re: Umlaute auf dem LCD
25. Dezember 2013 03:54
geht aber sieht nicht so schön aus finde ich wie in marlin smiling smiley


Commercium ----> Ramps, RADDS, e3d-Hotends und Filament kauft man hier.. und neu auch Schrauben,Muttern und Unterlegscheiben
Probleme mit dem e3d und bei mir gekauft? Schickt es ein, ich teste es für euch ob es wirklich defekt ist smiling smiley
Print Quality Troubleshooting Guide hier lang..
Re: Umlaute auf dem LCD
27. Februar 2014 03:33
Hi,
hat jemand die Darstellung der Umlaute auf dem "Full Graphic Smart Controller" hinbekommen?

Danke!
Manu
Re: Umlaute auf dem LCD
27. Februar 2014 13:49
du kannst doch selber in der firmware das ändern
mach halt aus ü zur not ue und ruhe ist smiling smiley


Commercium ----> Ramps, RADDS, e3d-Hotends und Filament kauft man hier.. und neu auch Schrauben,Muttern und Unterlegscheiben
Probleme mit dem e3d und bei mir gekauft? Schickt es ein, ich teste es für euch ob es wirklich defekt ist smiling smiley
Print Quality Troubleshooting Guide hier lang..
Re: Umlaute auf dem LCD
28. Februar 2014 15:15
Super, dann kann ich das gleich auf englisch lassen!
Re: Umlaute auf dem LCD
23. Mai 2014 06:18
Quote
jsturm
Ich hab ein LCD von ReprapDiscount.
So'n Gebilde mit so 'nem Aufdruck habe ich seid einigen Tgane ebenfalls. Plus Aufkleber, QC Pass smiling smiley

Quote
jsturm
Ich hab ein LCD von ReprapDiscount.
So kann ich jetzt die kleinen Umlaute darstellen -> ä=\xe1; ö=\xef; ü=\xf5; ß=\xe2;[/quote]
Mein Test erfolgte gestern abend mit aktuell angepasstem Marlin:

Nach meinem Kenntnisstand (UT8, fontgroupx11) sollten das folgende sein:
ä: \0xe4
ö: \0xf6
ü: \0xfc

Tatsächlich bekommt man auch Was zu sehen, was mit viel Phantasie an einen Umlaut erinnert.
Wenn man einen Schritt weiter geht und die nicht übersetzten also nach wie vor englischsprachigen Stringfolgen ebenfalls übersetzt, erntet man Übersetzungsfehler:
"hex escape sequence out of range".
Beispiel,
#define MSG_A_RETRACT "a-retract"
ist in mehrerer Hinsicht interessant.
Eine Änderung auf "A-Rückzug" wird akzeptiert und übersetzt, im Menu wird anstelle des "ü" ein 3-stelliger Salat ausgegeben, das erste Zeichen erinnert an ein "Ä".
in dem Unteruntermenu zur Einstelleung desselben wird zusammengeschobener Müll agezeigt, A-Ükselbrützel über die gesamte Breite und rechtsbündig erahnen kann man den Wert "3000".
Eigentlich soll die Stringlänge 17 Zeichen betragen dürfen, allerdings wurde für die Ausgabe ein etwas größerer Font gewählt: u8g.setFont(u8g_font_9x18);
Mit dessen Riesenlettern kann "A-retract:3000" so eben gerade über das gesamte Display gestreckt dargestellt werden.
Also nix mit 17 lettern, nach gerade mal 9 ist bereits Ende der fahnenstange.
Wer mehr möchte, muss in der dogm_lcd_implementation.h erst mal den Font anpassen.
Versuche, bei dieser Variable Umlaute via esc-seq auf den Schirm zu zaubern, lassen die Sequenz wie bereits erwähnt ausrangieren.
Warum genau hier un dnicht anderswo?
Genau verifiziert habe ich das nicht, dezimale Codes werden scheinbar erkannt. "Offiziell" übersetzt wurde jedenfalls nicht..

Falls irgendwer inzwischen schlauer ist..immer heraus damit.

PS: Den Reprap-Tropfen kann man relativ einfach tauschen, die Bitmap befindet sich in DOGMbitmaps.h, schaut nach bytecode aus, genaues weiß ich nicht mehr, aber dafür sollte es Werkzeug geben.
Re: Umlaute auf dem LCD
24. Mai 2014 09:53
Die Ursache für die Probleme mit den Umlauten liegen im verwendeten Zeichensatz begründet, die letzen 17 Zeichen (EF-FF) wurden mit eigenen Sonderzeichen überschrieben..

Des weiteren ist zwar eine max. Stringlänge von 17 vorgesehen, leider sprengt sie bei voller Ausnutzung den Rahmen. Nur beim englischen Originaltext passt es mit den konkreten Zeichenfolgen gerade so eben, sowohl bei deutschen als auch franz. Texten gibt es Kollisionen.

Also :
Schriftarten und Abstände angepasst (dogm_lcd_implementation.h, ultralcd.cpp)
deutsche und französische Texte angepasst, deutsch ist vorgewählt (language.h)


1-mal bearbeitet. Zuletzt am 25.05.14 12:52.
Anhänge:
Öffnen | Download - Marlin_umlaut.zip (33 KB)
Re: Umlaute auf dem LCD
25. Mai 2014 05:54
Hi,

Quote
bianchifan
Die Ursache für die Probleme mit den Umlauten liegen im verwendeten Zeichensatz begründet, die Implementierung der Grafikroutinen erfolgte offensichtlich nicht von den Marlin-Entwicklern, sondern von einem Bordhersteller, der sein Display q&d irgendwie rein geprügelt hat.

Du drückst Dich sehr diplomatisch aus ... wenn bei mir alles tut, werd' ich einen Blogeintrag schreiben. Der Herr "Entwickler" wird da nicht gut davonkommen. Schon sein "Gehäuse" auf Thingiverse ... mit schwebenden Platinenzapfen ... Eine Kommunikationsschwäche hat er auch noch ... da wundert es mich nicht, dass er auch im Programmieren schwach ist. Es handelt sich um dieses LCD.

Quote
bianchifan
Schriftarten und Abstände angepasst (dogm_lcd_implementation.h, ultralcd.cpp)
deutsche und französische Texte angepasst, deutsch ist vorgewählt (language.h)

Ich hab' mir Deine Änderungen zunächst mal in einem diff angesehen - fehlt da nicht noch eine dogm_font_data_marlin.h mit dem passendem Font?


MfG / Regards

Stefan

Blog / Gallery / Wiki / Mendel90 kit since Sep 2013 from Nophead
OpenScad Workshop: Kursdateien
Octoprint Patron since April 2016
Re: Umlaute auf dem LCD
25. Mai 2014 06:49
Ich nomml. Habs grad compiliert und hochgeladen: Es tut. Umlaute gut. Alles gut.


MfG / Regards

Stefan

Blog / Gallery / Wiki / Mendel90 kit since Sep 2013 from Nophead
OpenScad Workshop: Kursdateien
Octoprint Patron since April 2016
Re: Umlaute auf dem LCD
25. Mai 2014 07:12
Hallo,
erstmal Danke für die Umlaute thumbs up thumbs up
beim Überprüfen meldet mir die IDE folgendes:

In file included from dogm_lcd_implementation.h:38,
                 from ultralcd.cpp:36:
dogm_font_data_marlin.h:13: error: 'u8g_fntpgm_uint8_t' does not name a type
dogm_font_data_marlin.h:172: error: 'u8g_fntpgm_uint8_t' does not name a type
In file included from dogm_lcd_implementation.h:40,
                 from ultralcd.cpp:36:
ultralcd_st7920_u8glib_rrd.h:43: error: 'u8g_t' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:43: error: 'u8g' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:43: error: 'u8g_dev_t' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:43: error: 'dev' was not declared in this scope
ultralcd_st7920_u8glib_rrd.h:43: error: expected primary-expression before 'msg'
ultralcd_st7920_u8glib_rrd.h:43: error: expected primary-expression before 'void'
ultralcd_st7920_u8glib_rrd.h:43: error: initializer expression list treated as compound expression
ultralcd_st7920_u8glib_rrd.h:44: error: expected ',' or ';' before '{' token

und springt dann hierhin:
#include 
const u8g_fntpgm_uint8_t u8g_font_6x9[2300] U8G_SECTION(".progmem.u8g_font_6x9") = {
  0,6,9,0,254,6,1,137,2,254,32,255,254,7,254,6, cut

Hat vlt jemand ne Lösung dafür?
Und noch vielleichter kann mir jemand bei meinem anderen "Problemchen" helfen:
Ich würd gern die Servo-Pin´s als "Schaltausgänge" nutzen, also mit M42 auf HIGH bzw LOW schalten.
Danke schon mal vorwerg
Grüße
seefew
Re: Umlaute auf dem LCD
25. Mai 2014 13:23
Quote
bastard
Du drückst Dich sehr diplomatisch aus ...
Danke für den dezenten Hinweis, dass ich mich wie ne Axt im Walde benommen hatte..ich hab's geändert.

Quote
bastard
- fehlt da nicht noch eine dogm_font_data_marlin.h mit dem passendem Font?
Die "dogm_font_data_marlin.h" ist doch Bestandteil von Marlin.
Dort sind zwei Zeichensätze/Fonts declariert, u8g_font_6x9 und u8g_font_6x10_marlin jeweils mit den Sonderzeichen.
Die 2normalen" Fonts befinden sich in der u8glib in der Datei u8g_font_data.c, ein 6x9 Font ist dort nicht drin, deshalb wurde der "SPezialfont" wohl ohne Marlin-suffix belassen.
Ich habe meines Wissens nach alle Fontzuweisungen auf diese specials durch solche auf den Standardfont 6x10 ersetzt und an den Stellen, wo Spezialzeichen benötigt werden (Pfeil rechts bzw. zurück), eine Spezialfontzuweisung eingefügt.

@seefew
Von c++ habe ich keine AHnung..
Hattest Du Marlin schon mal erfolgreich für das Grafikdisplay übersetzt? Ist die U8GLIB richtig installiert?
Re: Umlaute auf dem LCD
27. Mai 2014 00:41
Quote
biancifan
Hattest Du Marlin schon mal erfolgreich für das Grafikdisplay übersetzt? Ist die U8GLIB richtig installiert?
Für's GFX nicht, aber für ein 2004'er.
Die Lib hab ich nach Anleitung installiert,
ist da sonst noch was zu beachten?
Grüße
seefew
Re: Umlaute auf dem LCD
27. Mai 2014 05:04
Der Hack mit dem Zeichensatz hin und her hat mir nicht gefallen, aber glücklicherweise ist die U8Glib recht ordentlich dokumentiert und bringt auch noch einige Werkzeuge mit, z.B. bdf2u8g. Also braucht man nur noch bdf-fonts. Und /oder einen BDF Font Editor.
Beides findet man Linux/X11, für Windoof habe ich "Fony" entdeckt und eine passende 8x10.bdf findet sich bei repetier.
Da mit der 7x14 Font mit seinen Kreuzen nicht gefiel habe ich auch diesen anpasst.

Kurz und gut, es gibt eine neue Version:

- Die Änderungen in der ultralcd.cpp wurden zurückgenommen.
- Die custom-Zeichensatzdatei "dogm_font_data_marlin.h" wurde angepasst.
Der vorhandene "u8g_font_6x10_marlin" wurde ersetzt, die special characters (xEF - xFF) wurden in einen freien Bereich geschoben (x8F-9F).
Ein angepasster "u8g_font_7x14_marlin" wurde hinzugefügt.
- Die "dogm_lcd_implementation.h" wurde entsprechend angepasst, die Anzeigedauer des Startbildschirms wurde auf 2 sec verlängert.

Wem der Reprap-Tropfen des Startbildschirmes nicht gefällt und statt dessen lieber eine individuelle Grafik anzeigen möchte, muss den ursächlichen Bytecode in der Datei "DOGMbitmaps.h" austauschen, ein prima Hilfsmittel dabei ist das Proggie "LCDAssistant". Benötigt eird eine Bimap 64x64 Bit, von der aber nur 62 Bit angezeigt werden, daher sollten in der Breite nur 60 Bit belegt werden, damit ein schmaler Abstand zum Text bleibt.
Zur Anzeige einer goldenen Ananas wird zusätzlich ein goldenes Display nötig spinning smiley sticking its tongue outsmiling bouncing smiley

Quote
seefew
Die Lib hab ich nach Anleitung installiert,
ist da sonst noch was zu beachten?
Wenn die lib ins passende ProgrammVerzeichnis kopiert wurde ist sie bei der nächsten Reinstallation futsch.
Wenn sie individuell über den Menupunkt "Lib importieren" installiert wurde und in einem abgegrenzten Bereich angezeigt wird, wird sie im Benutzerverzeichnis abgelegt und ist auch ne einer Reinstallation noch vorhanden.
Anhänge:
Öffnen | Download - Marlin_Umlaut.zip (38.6 KB)
Re: Umlaute auf dem LCD
27. Mai 2014 06:04
@bianchifan:
das mit der Lib hat sich erledigt, hatte ne veraltete IDE.
Neue IDE und der Fehler ist geschichte.

Aber jetzt gibt er mir eine neue Fehlermeldung:
ultralcd.cpp: In function 'void lcd_move_x()':
ultralcd.cpp:599: error: 'refresh_cmd_timeout' was not declared in this scope
ultralcd.cpp: In function 'void lcd_move_y()':
ultralcd.cpp:629: error: 'refresh_cmd_timeout' was not declared in this scope
ultralcd.cpp: In function 'void lcd_move_z()':
ultralcd.cpp:659: error: 'refresh_cmd_timeout' was not declared in this scope
ich krieg noch ne Macke.
Wo wird denn der refresh-timeout definiert?
Grüße
seefew
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen