User Tools

Site Tools


klipper_faq:flash_guide:stm32f446:leviathan_v1.2_can_bridge

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
klipper_faq:flash_guide:stm32f446:leviathan_v1.2_can_bridge [2024/02/01 11:11] – [Can Query] dominikklipper_faq:flash_guide:stm32f446:leviathan_v1.2_can_bridge [2024/02/10 07:25] (current) – [Klipper Update] dominik
Line 1: Line 1:
-====== YTVI Leviathan V1.2 (CAN-Bridge) ======+====== Leviathan V1.2 (CAN-Bridge) ======
 Schrittweise Anleitung, um das LDO **Leviathan V1.2** Board über die **USB/CAN Bridge** in Betrieb zu nehmen. Schrittweise Anleitung, um das LDO **Leviathan V1.2** Board über die **USB/CAN Bridge** in Betrieb zu nehmen.
  
 **Leviathan V1.2** \\ {{:klipper_faq:flash_guide:stm32f446:pasted:20240123-182540.png}} **Leviathan V1.2** \\ {{:klipper_faq:flash_guide:stm32f446:pasted:20240123-182540.png}}
  
-===== YouTube Video #86 ===== +===== YouTube Video #87 ===== 
-{{youtube>xxx?half}}+{{youtube>WJEzN7WAjcc?half}}
  
 \\  \\ 
Line 20: Line 20:
   * Das Board kann zum initialen Flashen alleine über den USB-C Port versorgt werden. \\ Das Flashen funktioniert natürlich auch, wenn das Board über 24V betrieben wird.    * Das Board kann zum initialen Flashen alleine über den USB-C Port versorgt werden. \\ Das Flashen funktioniert natürlich auch, wenn das Board über 24V betrieben wird. 
   * Es gibt keinen dedizierten Jumper für die 5V Versorgung.    * Es gibt keinen dedizierten Jumper für die 5V Versorgung. 
-  * Für die beiden TMC5160 muss über dem USB-Port extra eine Stromversorgung installiert werden (24-28V). +  * Für die beiden TMC5160 muss extra eine Stromversorgung installiert werden (24-28V). Der Anschluss befindet sich oberhalb vom USB-Port
-  * Es gibt einen extra Port für die Versorgung des Raspberry Pi. Er liefert 5,06V bei max. 3A - somit sollte auch kein "Undervoltage detected" auftreten. Ein Pi 5 wird sich dennoch über die Stromversorgung beschweren ;-)+  * Es gibt einen extra Port für die Versorgung des Raspberry Pi. Er liefert 5,06V bei max. 3A - somit sollte auch kein "Undervoltage detected" auftreten. \\ Sollte der Raspberry Pi 5 eine Meldung bezüglich der Stromversorgung bringen, lässt sich das über ''usb_max_current_enable=1'' in der ''config.txt'' abstellen.  
  
 ===== Verkabelung ===== ===== Verkabelung =====
Line 102: Line 103:
  
  
-===== Klipper flasehn =====+===== Klipper flashen =====
   * ''cd ~/klipper''   * ''cd ~/klipper''
   * ''make menuconfig'' \\ <code>   * ''make menuconfig'' \\ <code>
Line 116: Line 117:
 ()  GPIO pins to set at micro-controller startup</code> ()  GPIO pins to set at micro-controller startup</code>
   * Klipper kompilieren und flashen (über USB / seriell!) \\ ''make -j4 flash FLASH_DEVICE=/dev/ttyACM0'' \\ <code bash>   * Klipper kompilieren und flashen (über USB / seriell!) \\ ''make -j4 flash FLASH_DEVICE=/dev/ttyACM0'' \\ <code bash>
-pi@Pi3Test:~/klipper $ make -j4 flash FLASH_DEVICE=/dev/ttyACM1+pi@Pi3Test:~/klipper $ make -j4 flash FLASH_DEVICE=/dev/ttyACM0
   Creating symbolic link out/board   Creating symbolic link out/board
   Building out/autoconf.h   Building out/autoconf.h
Line 156: Line 157:
     up ifconfig $IFACE txqueuelen 1024</code>      up ifconfig $IFACE txqueuelen 1024</code> 
   * Testen mit ''ip a'' \\ ''can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state **UP** group default qlen 1024''   * Testen mit ''ip a'' \\ ''can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state **UP** group default qlen 1024''
-  * Sollte das Interface auf ''DOWN'' stehen hilft meist ein \\ ''sudo systemctl restart networking.service''+  * Sollte das Interface auf ''DOWN'' stehen hilft meist ein \\ ''sudo systemctl restart networking.service'' \\ oder ein \\ ''sudo ip link set can0 up type can bitrate 1000000''
  
 ===== Can Query ===== ===== Can Query =====
Line 175: Line 176:
  
 ===== kurzer Test ===== ===== kurzer Test =====
-  * Board UUID ermitteln \\ ''~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0'' +Ob das Board korrekt mit Klipper läuft, lässt sich mit folgendem Befehl schnell testen: \\ ''~/klippy-env/bin/python ~/klipper/klippy/console.py -c can0 3c98a1ec0529''
-  * 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_stm32f446xx_350053000851313133353932-if00'' +
-    * Die UUID am Ende muss natürlich mit dem übereinstimmen, was ihr im vorherigen Schritt ermittelt habt!+
  
-Wenn ihr ein ''<color #22b14c>**connected**</color>'' am Anfang des Textes seht, ist das Board richtig geflasht. \\ {{:klipper_faq:flash_guide:stm32g0b1:pasted:20231111-152555.png}}+Der Pfad am Ende muss natürlich mit dem übereinstimmen, was ihr im vorherigen Schritt ermittelt habt! 
 + 
 +Wenn ihr ein ''<color #22b14c>**connected**</color>'' am Anfang des Textes seht, ist das Board richtig geflasht. \\ {{:klipper_faq:flash_guide:stm32g0b1:pasted:20240107-111930.png}}
 ===== Konfiguration ===== ===== Konfiguration =====
   * ''cd ~/printer_data/config''   * ''cd ~/printer_data/config''
Line 185: Line 186:
   * **Beispiel Konfiguration Trident** \\ ''wget https://raw.githubusercontent.com/MotorDynamicsLab/Leviathan/master/Klipper_config/trident_leviathan_v1.2.cfg -O printer.cfg''   * **Beispiel Konfiguration Trident** \\ ''wget https://raw.githubusercontent.com/MotorDynamicsLab/Leviathan/master/Klipper_config/trident_leviathan_v1.2.cfg -O printer.cfg''
   * ''nano ~/printer_data/config/printer.cfg'' \\ <code>[mcu]   * ''nano ~/printer_data/config/printer.cfg'' \\ <code>[mcu]
-##-------------------------------------------------------------------- +canbus_uuid: 3c98a1ec0529 
-serial/dev/serial/by-id/usb-Klipper_stm32f446xx_350053000851313133353932-if00+#restart_methodcommand
 </code> </code>
-    * Die Zeile mit ''serial'' entsprechend mit dem ermittelten Pfad von oben anpassen +    * Die Zeile mit ''serial'' löschen oder auskommentieren 
-===== Reset ===== +    * Die Zeile mit ''restart_method'' löschen oder auskommentieren 
-  * interfaces.d/can0 auf hotplug macht keinen Sinn  +    Die Zeile mit ''canbus_uuid'' entsprechend mit der ermittelten UUID von oben anpassen 
-    * Man kriegt den 109 Client nicht tot weil er sofort wierder hoch kommt  +  * Klipper starten \\ ''sudo systemctl start klipper.service''
-    * Somit kriegt man die UUID nicht raus  +
-  * ''grep canbus_uuid ~/printer_data/config/* -n'' +
-  * ''~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u 3c98a1ec0529 -r'' +
-  * ''dmesg |tail -n 10'' +
-   +
-  * ''sudo systemctl stop klipper.service'' +
-  * ''cansniffer can0'' +
-  * ''sudo ip link set can0 up type can bitrate 1000000'' +
-  * ''~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0''+
  
 ===== Klipper Update ===== ===== Klipper Update =====
-  Reset per CAN in Katapult  +**Hinweis:** \\ Das Klipper Update wird über USB eingespielt! Über den CAN-Bus ist ein Update nicht möglich wenn das Board als USB/Can Bridge arbeitet. 
-    * ''~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0'' + 
-    * ''~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u 3c98a1ec0529 -r'' +  Klipper Dienst stoppen \\ ''sudo systemctl stop klipper.service'' 
-    * <code bash>+  * Alle CAN UUID's ermitteln \\ ''grep canbus_uuid ~/printer_data/config/* -n'' \\ <code bash> 
 +pi@Pi3Test:~/klipper $ grep canbus_uuid ~/printer_data/config/* -n 
 +/home/pi/printer_data/config/BTT_EBB.cfg:10:canbus_uuid: 44d860c9632b 
 +/home/pi/printer_data/config/printer.cfg:30:canbus_uuid: 3c98a1ec0529</code> 
 +  Das Leviathan Board per flshtool.py resetten. Welche UUID das Leviathan hat kann man bei mehreren Busteilnehmern leider nicht ohne weitere erkennen. \\ ''~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u <LEVIATHAN UUID> -r'' \\ <code bash>
 pi@Pi3Test:~/klipper $ ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u 3c98a1ec0529 -r pi@Pi3Test:~/klipper $ ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u 3c98a1ec0529 -r
 Sending bootloader jump command... Sending bootloader jump command...
 Bootloader request command sent Bootloader request command sent
-Flash Success +Flash Success</code> 
-</code> +    * Die Status LED sollte jetzt anfangen zu blinken 
-  * Update über USB +  * Den Port ermitteln \\ ''dmesg |tail -n 10'' \\ <code bash> 
-    * ''make flash FLASH_DEVICE=/dev/ttyACM0'' +pi@Pi3Test:~/klipper $ dmesg |tail -n 10 
- +[76418.167383] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready 
- +[76867.446711] usb 1-1.4: USB disconnect, device number 37 
- +[76867.446933] gs_usb 1-1.4:1.0 can0: Couldnt shutdown device (err=-19) 
- +[76867.787311] usb 1-1.4: new full-speed USB device number 38 using dwc_otg 
- +[76867.933716] usb 1-1.4: New USB device found, idVendor=1d50, idProduct=6177, bcdDevice= 1.00 
- +[76867.933741] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
- +[76867.933749] usb 1-1.4: Product: stm32f446xx 
 +[76867.933755] usb 1-1.4: Manufacturer: katapult 
 +[76867.933761] usb 1-1.4: SerialNumber: 350053000851313133353932 
 +[76867.938929] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device 
 +</code> Wie immer brauchen wir die tty... Angabe. In diesem Fall ist is **ttyACM0** wie man in der letzten Zeile sehen kann.   
 +  * ''cd ~/klipper'' 
 +  * ''make menuconfig'' \\ -> Die Einstellungen sind dieselben wie oben unter [[klipper_faq:flash_guide:stm32f446:leviathan_v1.2_can_bridge#klipper_flashen|Klipper flashen]] angegeben.  
 +  * Klipper flashen \\ ''make -j4 flash FLASH_DEVICE=/dev/ttyACM0'' \\ Den ermittelten Port halt am Ende ggf. anpassen. 
 +  * Klipper starten \\ ''sudo systemctl start klipper.service''
 ===== Links ===== ===== Links =====
   * Github Repo \\ https://github.com/MotorDynamicsLab/Leviathan/tree/master   * Github Repo \\ https://github.com/MotorDynamicsLab/Leviathan/tree/master
klipper_faq/flash_guide/stm32f446/leviathan_v1.2_can_bridge.1706782308.txt.gz · Last modified: by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki