hardware:3d_druck:65_btt_knomi
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
hardware:3d_druck:65_btt_knomi [2023/10/28 14:22] – removed - external edit (Unknown date) 127.0.0.1 | hardware:3d_druck:65_btt_knomi [2023/10/29 18:16] (current) – [Klipper Konfig] dominik | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Knomi - ESP C3 Hack ====== | ||
+ | |||
+ | Knomi ist ein extra Display für den Stealthburner das von BTT entwickelt wurde. Es zeigt während dem Druck diverse Statusinformationen, | ||
+ | |||
+ | Der original Knomi basiert auf einem ESP32 Wroom. Nun gibt es aber diverse andere Runddisplays, | ||
+ | |||
+ | Im Folgenden wird beschrieben, | ||
+ | |||
+ | ===== YouTube Video #65 ===== | ||
+ | {{youtube> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== WICHTIG ===== | ||
+ | **Diese Firmware funktioniert nur auf einem Display Modul mit einem ESP32 <color # | ||
+ | |||
+ | ===== Vorbereitungen & Infos ===== | ||
+ | Die Anleitung basiert darauf das die alte Arduino IDE (legacy) genutzt wird. Diese kann in einem portablen Modus genutzt werden - sprich alle nötigen Dateien & Ordner befinden sich in einem Ordner auf der Platte. | ||
+ | |||
+ | Als Vorbereitung muss also auf der Festplatte ein Ordner angelegt werden in dem später die Arduino IDE und der Quellcode abgelet werden. Ich werde im Folgenden beispielhaft den Ordner '' | ||
+ | |||
+ | ===== Downloads ===== | ||
+ | * Die Arduino IDE kann hier geladen werden \\ https:// | ||
+ | * Die Datei '' | ||
+ | * Als nächstes muss der Knomi C3 Quellcode von Github geladen werden. Am einfachsten geht das über den direkten Link \\ https:// | ||
+ | * Das geladene ZIP '' | ||
+ | * Danach sollte euer Ordner folgendermaßen aussehen: \\ {{: | ||
+ | |||
+ | ===== Arduino IDE portabel ===== | ||
+ | Damit die Arduino IDE portabel wird muss ein extra Ordner angelegt werden. Und zwar in '' | ||
+ | |||
+ | > **Die Arduino IDE starten** \\ (über '' | ||
+ | |||
+ | |||
+ | ===== Arduino IDE einrichten ===== | ||
+ | |||
+ | * Arduino IDE Starten und Einstellungen (Datei -> Voreinstellungen) anpassen \\ Die Einstellungen sind nicht zwingend notwendig, helfen aber ggf. bei der Fehlersuche :-) \\ {{: | ||
+ | * Jetzt muss im Board Manager ein extra Paket für die ESP32 installiert werden. Den Board Manager findet man im Menü über Werkzeuge. \\ {{: | ||
+ | |||
+ | > **Die Arduino IDE schließen** | ||
+ | |||
+ | |||
+ | |||
+ | ===== Bibliotheken ===== | ||
+ | Für das korrekte Kompilieren müssen noch 3 Bibliotheken kopiert werden. | ||
+ | |||
+ | * Die Bibliotheken (Libs) aus dem Ordner \\ '' | ||
+ | |||
+ | ===== extra ESP32 Partition ===== | ||
+ | Es muss eine neues Partition Layout hinzugefügt werden (beschreibt die Einteilung des Flash in bestimmte Bereiche). Sonst passt die compilierte Firmware nicht komplett in den Seicher. | ||
+ | * Die Partition Datei \\ '' | ||
+ | * Dann muss noch ein Eintrag im Partiton Menü hinzugefügt werden \\ Die Datei '' | ||
+ | * Im Bereich '' | ||
+ | esp32c3.menu.PartitionScheme.knomi_c3=Knomi C3 (3,3MB No OTA/1MB SPIFFS) | ||
+ | esp32c3.menu.PartitionScheme.knomi_c3.build.partitions=c3_partitions | ||
+ | esp32c3.menu.PartitionScheme.knomi_c3.upload.maximum_size=3342336 | ||
+ | </ | ||
+ | * Datei speichern und schließen. | ||
+ | |||
+ | > **Die Arduino IDE starten** \\ (über '' | ||
+ | |||
+ | ===== Controller einstellen ===== | ||
+ | * In der Arduino IDE muss ein ESP32 C3 Controller ausgewählt werden (Menü Tools bzw. Werkzeuge). | ||
+ | * Zusätzlich sind alle Einstellungen wie folgt zu setzen \\ {{: | ||
+ | |||
+ | > **Hinweis: | ||
+ | |||
+ | ===== Code laden und kompilieren ===== | ||
+ | * In der Arduino IDE über öffnen aus dem Ordner '' | ||
+ | * In der Datei '' | ||
+ | // WEB Config | ||
+ | String wifi_ssid | ||
+ | String wifi_pass | ||
+ | String klipper_ip = " | ||
+ | </ | ||
+ | * Dann im Menü Sketch -> Überprüfen/ | ||
+ | * Wenn am Ende dann sowas da steht: < | ||
+ | Der Sketch verwendet 2999696 Bytes (89%) des Programmspeicherplatzes. Das Maximum sind 3342336 Bytes. | ||
+ | Globale Variablen verwenden 184460 Bytes (56%) des dynamischen Speichers, 143220 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes. | ||
+ | </ | ||
+ | * Jetzt könnt ihr den Code auf den Controller übertragen, | ||
+ | |||
+ | ===== Test ===== | ||
+ | Wenn der Knomi C3 jetzt bootet sollte er erst einen Startschirm zeigen und dann die rollenden Augen. Das bedeutet er ist verbunden :-) \\ {{: | ||
+ | |||
+ | ===== Klipper Konfig ===== | ||
+ | * Eine neue Konfig Datei (z.B. knomi.cfg) mit folgendem Inhalt anlegen: \\ <code | knomi.cfg> | ||
+ | ### KNOMI ADDON | ||
+ | [gcode_macro BedLevelVar] | ||
+ | variable_leveling : False | ||
+ | |||
+ | gcode: | ||
+ | SET_GCODE_VARIABLE MACRO=BedLevelVar VARIABLE=leveling VALUE=False | ||
+ | |||
+ | [gcode_macro HomeSetVar] | ||
+ | variable_homing : False | ||
+ | |||
+ | gcode: | ||
+ | SET_GCODE_VARIABLE MACRO=HomeSetVar VARIABLE=homing VALUE=False | ||
+ | |||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | #gcode: | ||
+ | # SET_GCODE_VARIABLE MACRO=HomeSetVar VARIABLE=homing VALUE=True | ||
+ | # G0028 {rawparams} | ||
+ | # SET_GCODE_VARIABLE MACRO=HomeSetVar VARIABLE=homing VALUE=False | ||
+ | </ | ||
+ | * Wenn ihr einen Drucker ohne ein '' | ||
+ | * Die Datei in der '' | ||
+ | * Jetzt müsst ihr an der Stelle wo euer Leveling passiert (bei mir ist das beim QGL) 2 Zeilen ergänzen: \\ < | ||
+ | SET_GCODE_VARIABLE MACRO=BedLevelVar VARIABLE=leveling VALUE=True | ||
+ | QUAD_GANTRY_LEVEL | ||
+ | SET_GCODE_VARIABLE MACRO=BedLevelVar VARIABLE=leveling VALUE=False | ||
+ | </ | ||
+ | * Dann müssen wir noch das Homing mit einem extra Status versehen. Wenn ihr kein '' | ||
+ | * Zum Schluss noch im Printer_Start Macro die Werte zum Druckstart zurücksetzen: | ||
+ | SET_GCODE_VARIABLE MACRO=BedLevelVar VARIABLE=leveling VALUE=False | ||
+ | SET_GCODE_VARIABLE MACRO=HomeSetVar VARIABLE=homing VALUE=False | ||
+ | </ | ||
+ | |||
+ | ===== Stromversorgung ===== | ||
+ | Da das Board keinen direketen nutzbaren Anschluss hat kann man sich so behelfen: \\ {{: | ||
+ | |||
+ | Im Schaltplan ist das an der Schottky Diode: \\ | ||
+ | {{: | ||
+ | |||
+ | ===== Probleme ===== | ||
+ | * TFT_eSPI ist der fasche Grafiktreiber -> lvyx... muss rein | ||
+ | * Es muss auch eine extra konfig Klasse eingebaut werden ! | ||
+ | * Das Startlogo (BTT_LOGO) ist zu groß \\ Der C3 hat 400KB Ram, der Wroom 520kb \\ Das Startbild ist aber ca. 110kb Groß und freier Speicher nach Knomi Start sind beim C3 nur ~76KB -> Boot Loop !! | ||
+ | * Die Hintergrundbeleuchtung ist auf IO3 und nicht 2 oder 16 | ||
+ | * Konvertierung des Sketch für Arduino IDE (Main Datei umbenennen) | ||
+ | * Zahlreiche Includes müssen umgebaut werden von <> nach "" | ||
+ | * Es braucht das letzte Paket von ESP32 in der Arduino IDE, sonst ist der C3 nicht verfügbar | ||
+ | * Die Partition Table muss umgebaut werden. Sonst passt das BIN nicht in den Controller | ||
+ | * Die EEPROM Klasse funktioniert nicht richtig -> Daten weren nicht gespeichert | ||
+ | * USB CDC macht ein wenig Probleme \\ -> Der Port ist nach dem Start in der Arduino IDE nicht mehr gültig (falsches Handle) \\ -> wenn sich der C§ aufhängt geht gar kein Upload mehr. Dann muss man den Controller manuell in den Boot Modus bringen -> BOOT halten -> Reset drücken -> BOOT loslassen \\ CDC muss auch extra aktiviert werden in der Arduino IDE !! | ||
+ | * Der Controller muss in der Arduino IDE umgestellt werden auf C3 Dev | ||
+ | * ggf. kleine Anpassungen an lv_conf.h | ||
+ | * {{: | ||
+ | |||
+ | Anpassungen / Script | ||
+ | * Neues Bootlogo | ||
+ | * Angepasste GIF Animationen | ||
+ | * Problem -> HTTP Blockt wegen einem Kern | ||
+ | * Anpassung Status Abfrage Klipper ! | ||
+ | * https:// | ||
+ | * Teil drucken mit Aussparung | ||
+ | * Es gibt auch ein Display mit 2 kernen / 520k Ram -> https:// | ||
+ | * Voron Logo entfernt | ||
+ | * Logik angepasst | ||
+ | * lv_conf.h Anpassung wegen Farbne invert -> #define LV_COLOR_16_SWAP 0 | ||
+ | * GIF kann man extrahieren mit Seite ... | ||
+ | * http:// | ||
+ | * Anpassen hiermit : https:// | ||
+ | * Zurückwandeln in Hex String hiermit : http:// | ||
+ | * Startbitmap | ||
+ | * 240x240 Bixel RGB je 8 Farben -> Export Gimp Optionen ! -> 24 Bit | ||
+ | * Converter : https:// | ||
+ | * Color Format -> CF_TRUE_COLOR | ||
+ | * Output -> C Array | ||
+ | * Optionen aus | ||
+ | * Gif Tools | ||
+ | * https:// | ||
+ | * Moonraker Remote API | ||
+ | * https:// | ||
+ | |||
+ | Flashen | ||
+ | * D: | ||
+ | |||
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | * ESP Tool EXE -> https:// | ||
+ | |||
+ | ===== Hardware DIFF ===== | ||
+ | ^ Funktion | ||
+ | | Boot Taster | ||
+ | | Backlight | ||
+ | | Bildschirm Reset | Screen-rst | ||
+ | | WIFI Reset | WIFI RESET | EN | ||
+ | | WIFI Mosi | WIFI MOSI | IO23 | 10 SDIN | SDA | IO7 | 10 SPIMOSI | ||
+ | | WIFI Miso | WIFI MISO | IO19 | 7 RS | D/C | IO2 | 7 SPIMISO | ||
+ | | WIFI SCK | WIFI SCK | IO18 | 9 SCLK | SCL | IO6 | 9 SPICLK | ||
+ | | WIFI CS | WIFI CS | IO5 | 8 CS | CS | IO10 | 8 SPICS | | ||
+ | | Uart TX | U0TXD | TXD0 | ||
+ | | Uart RX | U0RXD | RXD0 | ||
+ | | LED | ?? | IO32 | ||
+ | |||
+ | ===== Hardware Knomi ===== | ||
+ | **ESP** \\ {{: | ||
+ | **Display** \\ {{: | ||
+ | **Backlight** \\ {{: | ||
+ | |||
+ | ===== Hardware new ===== | ||
+ | **ESP** \\ {{: | ||
+ | **Display** \\ {{: | ||
+ | **Backlight** \\ {{: | ||
+ | |||
+ | ===== Links ====== | ||
+ | * ESP Chip Info \\ https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Display Libraries & Docs \\ http:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | |||
+ | ===== Direkt flashen ===== | ||
+ | * '' | ||
+ | |||
+ | ===== Firmware compilieren ===== | ||
+ | |||
+ | https:// | ||
+ | ===== Klipper Konfig ===== | ||
+ | |||
+ | |||
+ | ===== Verbindung einrichten ===== | ||
+ | |||
+ | |||
+ | |||
+ | ===== Reset ===== | ||
+ | |||
+ | '' | ||
+ | ===== Zukunft ===== | ||
+ | 520kb Display | ||