====== Creality 4.2.7 ======
Schrittweise Anleitung, um das Creality 4.2.7 Board mit Klipper in Betrieb zu nehmen.
{{klipper_faq:flash_guide:stm32f103:pasted:20231018-142920.png}}
===== YouTube Video #72 =====
{{youtube>C0rd6dIhRJc?half}}
\\
===== Hinweise =====
* **SBC** bedeutet in der Anleitung **S**ingle **B**oard **C**omputer. Also meistens wohl ein Raspberry Pi.
* Es wird davon ausgegangen, dass auf dem SBC Klipper und MainSail eingerichtet ist.
* Ein Zugang zum SBC über SSH ist notwendig!
* Das [[klipper_faq:flash_guide:stm32f103:creality_4.2.7#variante_1sd_karte|Flashen über SD-Karte]] scheint bei diesem Board das kleinste "Übel" zu sein ... ;-)
===== Board Infos =====
* Schaltplan \\ https://klipper.discourse.group/t/creality-board-4-2-2-and-4-2-7-schematics/3104 \\ https://klipper.discourse.group/uploads/short-url/3uL2dJ54wULdfFvdLsui9LPZKpA.pdf \\ {{ :klipper_faq:flash_guide:stm32f103:creality.4.2.7.-.schematic.28-5-22-1-5.pdf |}}
* Klipper Konfig \\ https://github.com/Klipper3d/klipper/blob/master/config/generic-creality-v4.2.7.cfg
* **ACHTUNG** : Das Board hat einen CH340 Chip und kein direktes USB ! \\ {{klipper_faq:flash_guide:stm32f103:pasted:20231106-182637.png?800}}
===== Probleme =====
* Extra CH340 USB/Seriell Chip
* Dadurch muss beim Kompilieren Serial anstatt USB gewählt werden!
* Unnötig, da der Controller durchaus einen seriellen Port bereitstellen kann.
* Der Kontroller ist nicht sichtbar beim Listen der Ports unter Linux (nur der CH340 Chip !)
* Dateiname auf der SD-Karte muss bei jedem Flashvorgang anders sein
* Die Datei auf der SD-Karte darf nicht so heißen wie der vorhergehende Dateiname!
* Dadurch kann man nicht das ''./scripts/flash-sdcard.sh'' verwebden!
* Katapult / Klipper kriegt den F103 nicht in den Bootloadermodus
* Flashen über Katapult geht nur, wenn man Board neu startet / resettet und dann einen Pin auf GND oder 3,3V legt.
* Katapult über Doppelklick Reset geht auch nicht, weil das Board keinen Reset Taster hat.
* Kein USB DFU-Modus. Das loegt aber am F103 Controller.
* Im Normalfall max. 8GB SD-Karte zum Flaschen verwenden
* Große Karten lassen sich umpartitionieren (2GB / FAT16 oder FAT32)
* ICP Header nicht bestückt
===== Stromversorgung =====
Zum Flashen kann das Board kann über USB oder über den 24V Anschluss versorgt werden.
===== Original Flash =====
* Beschreibung siehe : http://www.drklipper.de/doku.php?id=klipper_faq:flash_guide:stm32_firmware_sichern
* Es wird ein ST-Link Adapter benötigt
* Es müssen noch Dupon Stecker im Board eingelötet werden: \\
==== Sichern ====
* ''st-info %%--%%probe %%--%%connect-under-reset'' \\ Flashgröße ermitteln anhand der Ausgabe vom vorherigen Befehl \\ Bsp: **flash: 524288 (pagesize: 2048)** -> 524288 : 1024 = 512k
* ''st-flash %%--%%connect-under-reset read firmware.bin 0x8000000 512k''
==== Widerherstellen ====
* Extrahiertes Original Flash Abbild {{ :klipper_faq:flash_guide:stm32f103:creality_4.2.7.zip |}}
* Alternativ kann man es auch hier finden: https://drucktipps3d.de/forum/topic/4-2-7-mainboard-bootloader-zerschossen/
* ''st-flash %%--%%connect-under-reset erase''
* ''st-flash %%--%%connect-under-reset write firmware.bin 0x8000000''
===== Klipper flashen =====
==== Variante 1: SD-Karte ====
Einfachste Variante : Flashen über SD Karte
* ''cd ~/klipper''
* ''make menuconfig'' \\
[*] Enable extra low-level configuration options
Micro-controller Architecture (STMicroelectronics STM32) --->
Processor model (STM32F103) --->
[ ] Only 10KiB of RAM (for rare stm32f103x6 variant)
[ ] Disable SWD at startup (for GigaDevice stm32f103 clones)
Bootloader offset (28KiB bootloader) --->
Clock Reference (8 MHz crystal) --->
Communication interface (Serial (on USART1 PA10/PA9)) --->
(250000) Baud rate for serial port
() GPIO pins to set at micro-controller startup
* beenden mit ''Q'' und ''Y''
* Klipper kompilieren \\ ''make -j4''
* Klipper flashen
* die Datei ''~/klipper/out/klipper.bin'' auf die SD-Karte kopieren
* Die Datei auf der SD-Karte umbenennen - am besten einfach das Datum nehmen. Bsp: ''06_12_2023.bin''. Damit verhindert man direkt, dass die Datei wie beim vorherigen Flashen heißt.
* SD-Karte in das Board stecken und dann einschalten
* Nach ~15-20 Sekunden sollte Klipper geflasht sein. Sehen kann man das leider an gar nichts, erst wenn man eine Verbindung zu Klipper testet!
* Board stromlos machen, SD-Karte entfernen und wieder starten
==== Variante 2: Katapult ====
* Blinkt wenn Katapult aktiv
* Muss über Deployer installiert werden
* Braucht extra Taster für Katapult Warten auf Firmware
* Kein Reset Taster vorhanden für Doppelklick
===== Port ermitteln =====
* Den USB Stecker abziehen
* ''dmesg -HW'' starten \\
pi@Pi3Test:~ $ dmesg -HW
[Dec 6 15:09] usb 1-1.5: new full-speed USB device number 107 using dwc_otg
[ +0.132924] usb 1-1.5: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ +0.000033] usb 1-1.5: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ +0.000017] usb 1-1.5: Product: USB Serial
[ +0.003542] ch341 1-1.5:1.0: ch341-uart converter detected
[ +0.005151] usb 1-1.5: ch341-uart converter now attached to ttyUSB0
* Wir brauchen die Information mit **tty...** also in diesem Fall **ttyUSB0**
* ''STRG+C'' drücken, um die Meldungen zu beenden
* Den zugehörigen Link ermitteln \\ ''ls -lR /dev/ | grep -v '\%%->%%\s../tty' | grep -e 'tty%%[[:%%alpha%%:]]%%' -e serial''
* Wir brauchen die Info unter ''/dev/serial/by-id:'' : \\ ''lrwxrwxrwx 1 root root 13 Dec 6 15:08 **usb-1a86_USB_Serial-if00-port0** -> ../../ttyUSB0''
* Achte darauf das am Ende die gleiche tty Bezeichnung steht wie sie im vorherigen Schritt ermittelt wurde (hier also ttyUSB0)
* Was für für die Konfig brauchen ist dann am Ende: \\ ''/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0''
===== kurzer Test =====
Ob das Board korrekt mit Klipper läuft, lässt sich mit folgendem Befehl schnell testen: \\ ''~/klippy-env/bin/python ~/klipper/klippy/console.py /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0''
Der Pfad am Ende muss natürlich mit dem übereinstimmen was ihr im vorherigen Schritt ermittelt habt!
Wenn ihr ein ''**connected**'' am Anfang des Textes seht, ist das Board richtig geflasht. \\ {{:klipper_faq:flash_guide:stm32g0b1:pasted:20231111-152555.png}}
===== Konfig =====
* ''cd ~/printer_data/config''
* ''wget https://raw.githubusercontent.com/Klipper3d/klipper/master/config/generic-creality-v4.2.7.cfg -O printer.cfg''
* ''nano ~/printer_data/config/printer.cfg''
* am Anfang einfügen ''[include mainsail.cfg]''
* Die Zeile mit ''serial'' entsprechend mit dem ermittelten Pfad von oben anpassen \\ [mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
===== Klipper Update =====
* Das Update erfolgt genau wie das normale Flashen über den SD-Karten Weg.