LCDMenuLib2 Screensaver in Digitaluhr umbauen +1

Mach ich...
Zumindest liegt schonmal ein Geschirmtes Kabel auf dem beschriebenen Weg... :wink:

Zur Not kann ich auch noch ein S-STP (Netzwerkkabel) da her ziehen... Das hat noch ne bessere Schirmung...

Mit dem zweiten buf[22] funktioniert es zumindest schonmal...

Ich bastle jetzt gerade an der Uhr im Screensaver... (Zumindest erstmal am Grundkostrukt / Design - ist jetzt alles erstmal statisch, "leben" kommt dann später rein...)
Kann man bereits geladene Schriftarten skalieren? Eine neue Schriftart einzubinden kostet mal eben den rest des Speichers... :sweat_smile:

Leitungslänge: Kannst Du die zu messenden Spannungen nicht zum Nano hinter dem Display bringen?

Textformatierung:

Das kann ich nicht reproduzieren, mein UNO (selber µC wie Nano) macht das richtig.

Aber es geht auch ohne snprintf mit eigener Funktion, etwa so:

...
  uint32_t voltage12 = sensor12Value * 100UL * 15 / 1023;
  uint32_t voltage5 = sensor5Value * 100UL * 5 / 1023;

  u8g.firstPage();
  do {
    u8g.drawStr( 3, (_LCDML_DISP_font_h * 1), F("Blu Control v1.0"));
    u8g.drawStr( 3, (_LCDML_DISP_font_h * 4), F("Power Rails Voltage:"));
    ausgabeZahl( 3, (_LCDML_DISP_font_h * 5), "12V Rail: ", voltage12, " V" );
    ausgabeZahl( 3, (_LCDML_DISP_font_h * 6), " 5V Rail: ", voltage5, " V" );
  } while ( u8g.nextPage() );
...
void ausgabeZahl(byte xpos, byte ypos, const char * pre, uint32_t zahl, const char * pst)
{
  u8g.setCursor(xpos, ypos);
  u8g.print(pre);
  if (zahl / 100 < 10UL) u8g.print(' ');
  u8g.print(zahl / 100);
  u8g.print('.');
  zahl %= 100;
  if (zahl < 10UL) u8g.print('0');
  u8g.print(zahl);
  u8g.print(pst);
}

Auf einem Nano spart das sogar etwas Speicher.

Glücklicherweise ist Programmieren ja eine kreative Tätigkeit :slightly_smiling_face:

Ich war ja bei der anderen Bibliothek U8g2, wo in den Fontnamen spezielle Eigenschaften enthalten sind. Wenn Du bei U8g2 Font Names schaust, findest Du die Beschreibung.

Beispielsweise:

  • nur Zahlen mit _*n
  • Englisch _*r
  • Deutsch _*e mit UTF-8, also Umlauten

Hmm.... Das macht nicht wirklich sinn...
Zumal der Nano ja nicht nur dazu da ist das Display zu befeuern...
Das LCDML Menü soll ja Aktionen (Schaltvorgänge) im Auto ausführen...
Die Dafür nötigen Steuerleitungen müssen dann ja auch wieder "zurück" ins Handschuhfach (oder besser dahinter)... Teils bis in den Kofferraum hinter die Seitenverkleidung...

Dazu kommt dann noch das "Update - Problem"... Bei Änderungen des Sketches muss man ja auch wieder an den Nano ran um den Sketch zu flashen...

Aber das Bringt mich zu einer anderen Frage...
Läuft das LCDML auch auf nem ESP32 /ESP8266 ? (da währe dann auch OTA-Update ne Option - sofern das mit LCDML auch funktioniert)

Da ich Dein Gesamtprojekt nicht kenne ...

Wenn I²C direkt nicht funktioniert, kannst Du auch zwei µC verwenden:
µC1 - RS485 oder CAN-Bus - µC2 - Display

ESP32 mit Beispiel LCDML_000_serialMonitor.ino kompiliert:

Der Sketch verwendet 240657 Bytes (18%) des Programmspeicherplatzes. Das Maximum sind 1310720 Bytes.
Globale Variablen verwenden 17276 Bytes (5%) des dynamischen Speichers, 310404 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.

Wenn ich auf Funktion testen soll, mußt Du schreiben, Dein Display habe ich allerdings nicht.

Naja... Ist schon recht umfangreich... Alle Pins des Nanos bis auf einen sind belegt...
Ansteuern tut der Nano 3 IRF 4ch Karten, die dann den Rest schalten...

Zum Testen am ESP32 habe ich:

  • SH1106
  • SSD1306
  • 4x20 LCD mit I²C
  • TFT ST7735

LCDML habe ich gerade das erste Mal verwendet, also Null Ahnung :crazy_face:

LCDML ist schon nice... Frisst aber auch ordentlich Speicher...

Hab das vor 2-3 (?) Jahren das erste mal kennengelernt... Hatte dabei nach ner Software gesucht die mittels Encoder mit Button ein Menü steuern kann...
Auf nem ESP32 hab ich das aber auch noch nicht verwendet...

Jetzt wollte ich das halt im Auto einsetzen, bisher hab ich das alles mit Schaltern gelöst, wird jetzt aber zu viel, daher "nur" noch nen Encoder einbauen und den Quatsch über den Nano laufen lassen...
Dafür ist halt auch ein Display Pflicht...

Laut Doku soll es auch auf den ESP laufen.
Nur dass du da auf die analogen achten musst.
Der ESP8266 hat nur einen, der ESP32 macht da mit WLAN Probleme.
Da würde ich dann einen externen analog-digital Wandler ADS1115 einsetzen.

Naja...
Die Spannungsanzeige ist eigentlich nur ein Gimmick... Für die geplante Funktion nicht unbedingt erforderlich... Quasi ein "Nice to have"...

Nochmal zurück zur Uhr.. (im Screensaver)
Kann man die Schrift skalieren? Also statt Größe 6 größe 72 oder so? Oder muss dafür tatsächlich ne zweite Schriftart geladen werden?

Würde den Screensaver gern als "Fullscreen-Uhr" missbrauchen... Nur die Standard Anzeige "Screensaver press any key to leave" ist schon etwas langweilig...

Soweit mir bekannt ist, nein. Da musst du schon eine zweite Schrift laden.....also doch einen ESP. :wink:

:sob::sob::sob:

Der einzige Vorteil am ESP32 ist, das der LevelShifter weg bleiben kann.. (abgesehen vom größeren Speicher...)
Nachteil: 3.3V Logic...

Hat evtl schon jemand die OTA-Update Funktion mit LCDML getestet?

Wieso Nachteil ?

Und mit dem ESP hast du Wlan und dein OTA.

Das Upgrade auf ESP32 war eigentlich erst für die V2.0 geplant...
Ab V2.0 soll der ESP32 mittels WLAN mit nem 2. ESP (der dann im Anhänger sitzt) kommunizieren und befehle senden die der andere dann ausführen soll... :thinking:

Aber ob das so klappt.... :man_shrugging:

Störanfälliger im KFZ?

Wozu 2 ESP32 ?
Was soll das bringen ?

Ach, das mit dem Anhänger kam später.

Anhänger ist mit Kameras ausgestattet... der andere ESP im Hänger soll dann einfach nur auf ne andere Cam umschalten...
Das VideoSignal wird drahtlos übertragen... Da läuft nix über die 13 Pol Buchse vom KFZ (Abgesehen von der Spannungsversorgung)

Bin mir aber noch nicht sicher ob da ne "Ad-Hoc" Verbindung funktioniert oder ob ich das besser auf "Infrastruktur" (Sprich nen Accesspoint im Auto) ausrichten sollte...

Nicht wirklich.
Abschirmen musst du eh alles. Nur lange Leitungen machen da Probleme.

Und ja, das WLAN von A nach B sollte so auch funktionieren.
Du musst nur ein eigenes Netz aufbauen oder ESP-NOW.

Die längste Leitung wird wohl um die 5m sein (nach hinten in den Kofferraum)
Da seh ich aktuell Probleme...

Kommt drauf an, was darüber läuft.

Steuerspannung für die IRF 4ch Karten

Nö, aber was nicht ist, das kann man ja machen. OTA wäre für mich kein Problem, sind nur ein paar Zeilen zusätzlich.

Analog muß man zusammen mit Wifi die Pins von ADC1 verwenden, allerdings ist der ADC wohl eher ein Schätzeisen.