====== Fysetc Spider H7 (USB) ====== Schrittweise Anleitung, um das Fysetc **Spider H7** Board über über **USB** in Betrieb zu nehmen. **Fysetc Spider Board H7** \\ {{:klipper_faq:flash_guide:stm32h723:pasted:20240904-062030.png}} ===== YouTube Video #108 ===== {{youtube>I2pKr37gh0A?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 ist entweder mit ''DC5V / U5V'', ''DC5V / USB5V'' oder nur ''U5V'' gekennzeichnet. * Der Jumper ''DC5V / U5V'' befindet sich hinter dem USB-C Anschluss. * :!: Bei 24V Versorgung muss der Jumper immer auf die Position ''DC5V'' :!: * **Betrieb** * Im Betrieb wird das Board mit 24V versorgt (Anschluss PWR-IN GND / 24V) * :!: Der Jumper auf Position ''DC5V'' setzen! * **Firmware flashen** * Das Board wird **nicht mit 24V versorgt**. \\ Den Jumper auf Position ''U5V'' (oder ''USB5V'') setzen. * Das Board wird **mit 24V betrieben**. \\ Den Jumper auf Position ''DC5V'' setzen! ==== Versorgung Raspberry Pi ==== * Ein Raspberry Pi kann direkt über das Board versorgt werden. Ein passendes Kabel liegt bei. * Über diesen Anschluss wird auch gleich TX / RX verbunden mit dem Pi. Damit wäre ein Betrieb über UART möglich. ==== 48V Anschluss ==== * Alle Treiber können per Jumper selektierbar mit 24V oder 48V betrieben werden. * Die 48V am Eingang werden nur für die Treiber genutzt! * 24V müssen trotzdem anliegen! ===== Bootloader sichern ===== Das Board wird mit Marlin ausgeliefert (Stand 04.09.2024). pi@TestPi5:~ $ dmesg -HW [Sep 4 06:54] usb 3-1: USB disconnect, device number 2 [ +0.405181] usb 3-1: new full-speed USB device number 3 using xhci-hcd [ +0.183840] usb 3-1: New USB device found, idVendor=0483, idProduct=5740, bcdDevice= 0.00 [ +0.000005] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000002] usb 3-1: Product: MARLIN_STM32H723VG CDC in FS Mode [ +0.000002] usb 3-1: Manufacturer: STMicroelectronics [ +0.000002] usb 3-1: SerialNumber: 364334613532 [ +0.028036] cdc_acm 3-1:1.0: ttyACM0: USB ACM device Mit den original Bootloader Settings (128k) lässt sich das Board nicht betreiben. Der Hex Abzug zeigt auch das da scheinbar gar kein Bootloader installiert ist / war! Es gibt also nichts zu sichern ... ===== DFU Modus ===== Das Board in den DFU Modus bringen: * Im Terminal folgendes eingeben \\ ''dmesg -HW'' * An der Seite sind zwei Taster. Der Taster der zum USB-C Port zeigt ist BT0. Der da drüber ist Reset. \\ Den BT0 Taster gedrückt halten, einmal auf Reset drücken und dann BT0 wieder loslassen. * Das Board meldet sich mit ''**Product: STM32 BOOTLOADER**'' oder ''**Product: DFU in FS Mode**'' \\ pi@Pi4Test:~ $ dmesg -HW [Sep 4 06:55] usb 3-1: USB disconnect, device number 3 [ +0.448648] usb 3-1: new full-speed USB device number 4 using xhci-hcd [ +0.154183] usb 3-1: not running at top speed; connect to a high speed hub [ +0.024000] usb 3-1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00 [ +0.000005] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000002] usb 3-1: Product: DFU in FS Mode [ +0.000002] usb 3-1: Manufacturer: STMicroelectronics [ +0.000002] usb 3-1: SerialNumber: 364334613532 * ''STRG+C'' drücken, um die Meldungen zu beenden ===== Klipper flashen ===== > **Hinweis** \\ Wenn das Board mit USB betrieben wird, braucht es **keinen extra Bootloader**! \\ Es ist auch default keiner installiert! * ''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 [Sep 4 07:56] usb 3-1: USB disconnect, device number 10 [ +0.437458] usb 3-1: new full-speed USB device number 11 using xhci-hcd [ +0.190009] usb 3-1: New USB device found, idVendor=1d50, idProduct=614e, bcdDevice= 1.00 [ +0.000005] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000002] usb 3-1: Product: stm32h723xx [ +0.000002] usb 3-1: Manufacturer: Klipper [ +0.000001] usb 3-1: SerialNumber: 31000E000951323530343536 [ +0.241050] cdc_acm 3-1:1.0: ttyACM0: 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_31000E000951323530343536-if00** -> ../../ttyACM0'' * 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_31000E000951323530343536-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_31000E000951323530343536-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'' * ACHTUNG NOCH KEINE AKTUELLE KONFIG \\ **Beispiel Konfiguration** \\ ''wget https://raw.githubusercontent.com/FYSETC/FYSETC-SPIDER/main/firmware/Klipper/printer.cfg -O printer.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 **Meine vorläufige Konfig** \\ {{ :klipper_faq:flash_guide:stm32h723:spiderh7config.zip | Spider H7 Konfig}} ===== 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 SWD Port. Mit einem entsprechenden ST-Link kann das Board auch direkt geflasht werden. {{:klipper_faq:flash_guide:stm32h723:pasted:20240904-080524.png}} * 3V3 -> 3,3V Anschluss * G -> Masse Anschluss * IO -> SWDIO vom ST-Link * CLK -> SWCLK vom ST-Link ==== ADXL345 (Input Shaper) ==== Ein ADXL345 Sensor für Input Shaper kann direkt an das Board angeschlossen werden. Bis Board 2.2 \\ {{:klipper_faq:flash_guide:stm32f446:pasted:20240302-070927.png}} Ab Board 2.3 \\ {{:klipper_faq:flash_guide:stm32f446:pasted:20240302-071015.png}} ^ ADXL345 Pin ^ Spider Board (SPI1) ^ STM32 Pin ^ | GND | GND | | | VCC | +5V | | | CS | CS | PA4 | | INT1 | N/A | | | INT2 | N/A | | | SDO | MISO | PA6 | | SDA | MOSI | PA7 | | SCL | CLK | PA5 | * Konfig Anpassung \\ [adxl345] axes_map : x,y,z cs_pin : PA4 spi_bus : spi1 [resonance_tester] accel_chip : adxl345 probe_points : 150, 150, 20 # Center of your bed, raised up a little * **Test** in der MainSail Konsole mittels \\ ''ACCELEROMETER_QUERY'' \\ Als Ergebnis sollte in etwa sowas kommen: \\ ''accelerometer values (x, y, z): -1110.308913, 1184.329507, 11414.822920'' * Sollte der Test folgenden Fehler bringen ist die Verkabelung falsch! \\ ''Invalid adxl345 id (got 0 vs e5)'' ==== 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 ===== * Github Repo \\ https://github.com/FYSETC/FYSETC-SPIDER-H7 * Schaltplan \\ **Spider H7** https://github.com/FYSETC/FYSETC-SPIDER-H7/blob/0a01a5dd6fb8491fde522b36390bc144476f1634/Schematic/SPIDER_H7_SCH.pdf * Klipper Konfig \\ TBD !