====== Mellow Fly-Super8Pro (USB) ======
Schrittweise Anleitung, um das Mellow **Fly-Super8Pro** Board über über **USB** in Betrieb zu nehmen.
**Mellow Fly-Super8Pro** \\ {{:klipper_faq:flash_guide:stm32h723:pasted:20241127-062220.png}}
===== YouTube Video #119 =====
{{youtube>smm12y70KkM?half}}
\\
===== Hinweise =====
* **SBC** bedeutet in der Anleitung **S**ingle **B**oard **C**omputer. Also meistens wohl ein Raspberry Pi.
* Es wird davon ausgegangen das auf dem SBC Klipper und MainSail eingerichtet ist.
* Ein Zugang zum SBC über SSH ist notwendig!
* Wenn ''dmesg -HW'' einen Fehler bringt, einfach ''dmesg -Hw'' verwenden.
* Der SD-Slot ist bei diesem Controller komplett überflüssig 8-)
===== Verkabelung =====
==== Stromversorgung ====
* Der Jumper direkt hinter dem USB-C Anschluss muss gesetzt sein wenn das Board nur am USB Port hängt und **nicht an 24V**. \\ {{:klipper_faq:flash_guide:stm32h723:pasted:20241129-182311.png}}
* :!: Der Jumper muss im normalen Betrieb gezogen werden!
* **Betrieb**
* Im Betrieb wird das Board mit 24V versorgt (Anschluss POWER Board / + -)
* :!: Der Jumper für 5V muss gezogen sein!
* **Firmware flashen**
* Das Board wird **nicht mit 24V versorgt**. \\ Den Jumper muss gesteckt sein!
* Das Board wird **mit 24V betrieben**. \\ Den Jumper muss gezogen sein!
* Anschluss \\ {{:klipper_faq:flash_guide:stm32h723:pasted:20241129-181835.png}}
==== Versorgung Raspberry Pi ====
Auf dem Board ist unter dem USB Port ein 4 Port Connector mit 5V, GND und Tx/Rx. Hier könnte ein Raspberry Pi direkt versorgt und mit dem Board betrieben werden. Das führt aber fast immer zu Unterspannungswarnungen. Besser mit USB Verkabeln und den Pi extra versorgen!
==== 48V Anschluss ====
Alle Treiber können mit 12V, 24V oder 48V betrieben werden.
===== Bootloader sichern =====
Das Board wird mit RepRap Firmware ausgeliefert (Stand 29.11.2024).
pi@TestPi4:~ $ dmesg -HW
[Nov29 17:53] usb 1-1.1: new full-speed USB device number 13 using xhci_hcd
[ +0.111909] usb 1-1.1: New USB device found, idVendor=16c0, idProduct=27dd, bcdDevice= 1.00
[ +0.000017] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000004] usb 1-1.1: Product: RepRapFirmware
[ +0.000004] usb 1-1.1: Manufacturer: RepRapFirmware
[ +0.000003] usb 1-1.1: SerialNumber: 2F0015000951313430323835
[ +0.005831] cdc_acm 1-1.1:1.0: ttyACM1: USB ACM device
Es ist ein Bootloader im Flasch und die Firmware startet ab 0x20000h (128k). \\
Ein Abzug (inkl. Bootloader) kann hier geladen werden: {{ :klipper_faq:flash_guide:stm32h723:orgfirmware_29_11_2024.zip}} \\
Das Backup kann mittels ST-Link oder DFU Mode wieder aufgespielt werden.
Es muss nur an Adresse 0x0 geschrieben werden!
===== DFU Modus =====
Das Board in den DFU Modus bringen:
* Im Terminal folgendes eingeben \\ ''dmesg -HW''
* Auf dem Board ist direkt am Controller ein 2 Pin Header mit der Beschriftung "BT0/3.3V". Hier muss ein Jumper gesetzt werden. Dann das Board 1x stromlos machen oder einfach die Reset Taste drücken.
* Das Board meldet sich mit ''**Product: STM32 BOOTLOADER**'' oder ''**Product: DFU in FS Mode**'' \\
pi@Pi4Test:~ $ dmesg -HW
[Nov29 17:59] usb 1-1.1: new full-speed USB device number 15 using xhci_hcd
[ +0.101997] usb 1-1.1: not running at top speed; connect to a high speed hub
[ +0.006042] usb 1-1.1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00
[ +0.000024] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000013] usb 1-1.1: Product: DFU in FS Mode
[ +0.000010] usb 1-1.1: Manufacturer: STMicroelectronics
[ +0.000010] usb 1-1.1: SerialNumber: 354D325F3431
* ''STRG+C'' drücken, um die Meldungen zu beenden
===== Klipper flashen =====
> **Hinweis** \\ Wenn das Board mit USB betrieben wird, braucht es **keinen extra Bootloader**!
* ''cd ~/klipper''
* ''make menuconfig'' \\
[*] Enable extra low-level configuration options
Micro-controller Architecture (STMicroelectronics STM32) --->
Processor model (STM32H723) --->
Bootloader offset (No bootloader) --->
Clock Reference (25 MHz crystal) --->
Communication interface (USB (on PA11/PA12)) --->
USB ids --->
() GPIO pins to set at micro-controller startup
* beenden mit ''Q'' und ''Y''
* Klipper kompilieren \\ ''make -j4''
* Klipper flashen \\ ''dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin'' \\ Das Ergebnis sollte sein ''File downloaded successfully''
===== Port ermitteln =====
* Den USB Stecker abziehen
* ''dmesg -Hw'' starten und USB wieder anstecken \\
pi@TestPi5:~/klipper $ dmesg -Hw
[1099936.376851] usb 1-1.2: new full-speed USB device number 20 using xhci_hcd
[1099936.488756] usb 1-1.2: New USB device found, idVendor=1d50, idProduct=614e, bcdDevice= 1.00
[1099936.488772] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[1099936.488776] usb 1-1.2: Product: stm32h723xx
[1099936.488780] usb 1-1.2: Manufacturer: Klipper
[1099936.488783] usb 1-1.2: SerialNumber: 2F0015000951313430323835
[1099936.494606] cdc_acm 1-1.2:1.0: ttyACM1: USB ACM device
* Wir brauchen die Information mit **tty...** also in diesem Fall **ttyACM0**
* ''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 Mar 2 06:59 **usb-Klipper_stm32h723xx_2F0015000951313430323835-if00** -> ../../ttyACM1''
* Achte darauf das am Ende die gleiche tty Bezeichnung steht wie sie im vorherigen Schritt ermittelt wurde (hier also ttyACM0)
* Was wir für die Konfig brauchen ist dann am Ende: \\ ''/dev/serial/by-id/usb-Klipper_stm32h723xx_2F0015000951313430323835-if00''
===== 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-Klipper_stm32h723xx_2F0015000951313430323835-if00''
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}}
Abbrechen kann man die Abfrage mittels ''STRG + C''.
===== Konfiguration =====
* ''cd ~/printer_data/config''
* **Beispiel Konfiguration** \\ https://mellow.klipper.cn/en/docs/ProductDoc/MainBoard/fly-super/fly-super8-pro/cfg/
* ''nano ~/printer_data/config/printer.cfg'' \\ [mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_390028000950315239323320-if00
* Die Zeile mit ''serial'' entsprechend mit dem ermittelten Pfad von oben anpassen
===== Klipper Update =====
* Klipper Dienst stoppen \\ ''sudo systemctl stop klipper.service''
* ''cd ~/klipper && make menuconfig''
* Die Einstellungen sind genauso wie im Kapitel [[klipper_faq:flash_guide:stm32h723:fysetc_spider_h7_usb#klipper_flashen|Klipper flashen]]
* ''make flash -j4 FLASH_DEVICE=/dev/ttyACM0''
* Wie man an den Port (hier ttyACM0) kommt, ist [[klipper_faq:flash_guide:stm32h723:fysetc_spider_h7_usb#port_ermitteln|hier]] beschrieben
* Am Ende kann es zu einem Fehler kommen. Davon nicht irritieren lassen. Wichtig ist diese Zeile: \\ ''File downloaded **successfully**''
* Klipper Dienst starten \\ ''sudo systemctl start klipper.service''
* Sollte sich das Board nicht melden, am besten den Drucker einmal stromlos machen und neu starten.
===== Sonstiges =====
Diese Punkte sind nicht immer Bestandteil vom YouTube Video, aber nützlich 8-)
==== ST-Link (SWD) ====
Das Board verfügt über einen ST-Link Port. Mit einem entsprechenden ST-Link Adapter kann das Board auch direkt geflasht werden.
{{:klipper_faq:flash_guide:stm32h723:pasted:20241129-182419.png}}
Von links nach rechts
* grau -> Reset
* gelb -> CLK -> SWCLK vom ST-Link
* blau -> IO -> SWDIO vom ST-Link
* schwarz -> GND -> Masse Anschluss
* :!: rot -> 3V3 -> 3,3V Anschluss \\ Achtung, der 3,3V Anschluss wird nur beim ST-Link V3 benötigt. Bei den billigen China **V2 Adaptern** darf dieser Pin **nicht angeschlossen** werden!
==== STM32 Temperatur ====
Der interne Temperatur Sensor des STM32 kann mit folgendem Konfig Schnibsel ausgelesen werden:
[temperature_sensor Levi]
sensor_type : temperature_mcu
sensor_mcu : mcu
===== Links =====
* https://mellow-3d.github.io/fly_super8_pro_h723_general.html
* https://mellow.klipper.cn/en/docs/ProductDoc/MainBoard/fly-super/fly-super8-pro/
* Github Repo \\ https://github.com/Mellow-3D/Fly-Super8Pro
* Schaltplan \\ https://github.com/Mellow-3D/Fly-Super8Pro/blob/0b982743ea8ddf187300ba3878263ac45f9bf40b/Hardware/Super8Pro_Schematic.pdf
* Klipper Konfig \\ https://mellow.klipper.cn/en/docs/ProductDoc/MainBoard/fly-super/fly-super8-pro/cfg/