Knomi ist ein extra Display für den Stealthburner das von BTT entwickelt wurde. Es zeigt während dem Druck diverse Statusinformationen, an die es über WLAN vom Drucker bezieht. Siehe dazu auch die Doku für mehr Informationen: https://bigtreetech.github.io/docs/KNOMI.html .
Der original Knomi basiert auf einem ESP32 Wroom. Nun gibt es aber diverse andere Runddisplays, die ebenfalls einen EPS32 verwenden. Eines dieser Displays ist das folgende Display:
https://de.aliexpress.com/item/1005005453515690.html
Zu haben für ca. 12€ und damit deutlich günstiger als ein original Knomi. Der Nachteil ist, dass dieses Display einen ESP32 C3 verwendet, der leider nur mit 400 anstatt 520kb RAM ausgestattet ist und zudem nur einen CPU Kern hat (und nicht zwei wie der Knomi).
Im Folgenden wird beschrieben, wie die Firmware kompiliert werden kann und was es ggf. noch an nützlichen Infos gibt …
Diese Firmware funktioniert nur auf einem Display Modul mit einem ESP32 C3!
Die Firmware funktioniert nicht auf einem original Knomi!
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 C:\Build
verwenden. Wenn ihr einen anderen Ordner habt muss das ggf. angepasst werden.
arduino-1.8.19-windows.zip
muss in den Ordner c:\Build\
entpackt werden KNOMI_C3-master.zip
wird dann ebenfalls in den c:\Build\
Ordner entpackt
Damit die Arduino IDE portabel wird muss ein extra Ordner angelegt werden. Und zwar in C:\Build\arduino-1.8.19\
der Ordner portable
. Der muss auch wirklich genauso heißen!
Die Arduino IDE starten
(überarduino.exe
)
Die Arduino IDE schließen
Für das korrekte Kompilieren müssen noch 3 Bibliotheken kopiert werden.
C:\build\KNOMI_C3-master\Firmware\lib
C:\build\arduino-1.8.19\portable\packages\esp32\hardware\esp32\2.0.11\libraries
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.
C:\Build\KNOMI_C3-master\Firmware\c3_partitions.csv
C:\Build\arduino-1.8.19\portable\packages\esp32\hardware\esp32\2.0.11\tools\partitions\
C:\Build\arduino-1.8.19\portable\packages\esp32\hardware\esp32\2.0.11\boards.txt
in einem Texteditor öffnen esp32c3.menu.PartitionScheme
( Auf das esp32c3
/ ESP32C3 Dev Module
achten ) muss am Ende folgendes ergänzt werden: 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
Die Arduino IDE starten
(überarduino.exe
)
Hinweis:
Der COM Port muss natürlich ermittelt werden! Das geht z.B. über den Geräte Manager von Windows.
C:\Build\KNOMI_C3-master\Firmware\KnomiC3
die Datei KnomiC3.ino
öffnen. WifiUser.cpp
eure Daten eintragen. Die Datei findet ihr in den Reitern in der Arduino IDE oben. // WEB Config String wifi_ssid = "SSID"; // Wifi SSID String wifi_pass = "Password"; // Wifi Password String klipper_ip = "192.168.xxx.xxx"; // Klipper IP
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.
… hat das Kompilieren geklappt
Wenn der Knomi C3 jetzt bootet sollte er erst einen Startschirm zeigen und dann die rollenden Augen. Das bedeutet er ist verbunden
### 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_macro G28] #rename_existing: G0028 #variable_homing:False # #gcode: # SET_GCODE_VARIABLE MACRO=HomeSetVar VARIABLE=homing VALUE=True # G0028 {rawparams} # SET_GCODE_VARIABLE MACRO=HomeSetVar VARIABLE=homing VALUE=False
[homing_override]
habt, dann müsst ihr das untere Makro ([gcode_macro G28]) noch aktivieren. Dazu alle # am Anfang der Zeilen entfernen printer.cfg
inkludieren : [include knomi.cfg]
SET_GCODE_VARIABLE MACRO=BedLevelVar VARIABLE=leveling VALUE=True QUAD_GANTRY_LEVEL SET_GCODE_VARIABLE MACRO=BedLevelVar VARIABLE=leveling VALUE=False
Bei mir ist das in einem Printer_Start Makro. Die erste Zeile setzt den Status “Leveln” und die letzte Zeile setzt den Status wieder zurück. Wo ihr das bei euch genau eintragt müsst ihr mal selber ermitteln. Das hängt sicherlich auch vom Drucker und eurer Konfig ab.
[homing_override]
in eurer Konfig habt, dann reicht dsas G28 Makro in der Extra Konfig. Habt ihr aber [homing_override]
, dann kommt folgendes an den Anfang: SET_GCODE_VARIABLE MACRO=HomeSetVar VARIABLE=homing VALUE=True
SET_GCODE_VARIABLE MACRO=HomeSetVar VARIABLE=homing VALUE=False
Anpassungen / Script
Flashen
esptool.exe --chip esp32c3 --port COM4 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x0 KnomiC3.ino.bootloader.bin 0x8000 KnomiC3.ino.partitions.bin 0xe000 boot_app0.bin 0x10000 KnomiC3.ino.bin
Funktion | Knomi Desc. | Knomi Pin | Knomi Display | Clone Desc. | Clone Pin | Clone Display |
---|---|---|---|---|---|---|
Boot Taster | BOOT | IO0 | BOOT | IO9 | ||
Backlight | Backlight | IO2 | 2 LEDK (vom Mosfet) | IO3 | LED- | |
Bildschirm Reset | Screen-rst | IO4 | 11 RES | REST | EN | 11 REST |
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 | USB_DN | IO18 | ||
Uart RX | U0RXD | RXD0 | USB-DP | IO19 | ||
LED | ?? | IO32 |
esptool.exe --chip esp32c3 --port COM4 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x0 KnomiC3.ino.bootloader.bin 0x8000 KnomiC3.ino.partitions.bin 0xe000 boot_app0.bin 0x10000 KnomiC3.ino.bin
esptool.exe –port COM4 erase_flash
520kb Display