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 | ||
