Schrittweise Anleitung, um das LDO Leviathan V1.2 Board über die USB/CAN Bridge in Betrieb zu nehmen.
usb_max_current_enable=1 in der config.txt abstellen. 
Das Board hat bei Auslieferung keinen Bootloader. Es muss nichts gesichert werden.
Sollte Katapult als Bootloader vorhanden sein, ist es eh sinnvoll den neu zu kompilieren bei Bedarf.
dmesg -HWProduct: DFU in FS Mode pi@Pi3Test:/boot $ dmesg -HW [Jan23 18:39] usb 1-1.4: USB disconnect, device number 20 [ +0.805709] usb 1-1.4: new full-speed USB device number 21 using dwc_otg [ +0.141330] usb 1-1.4: New USB device found, idVendor=0483, idProduct=df11, bcdDevice=22.00 [ +0.000038] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000017] usb 1-1.4: Product: STM32 BOOTLOADER [ +0.000013] usb 1-1.4: Manufacturer: STMicroelectronics [ +0.000012] usb 1-1.4: SerialNumber: STM32FxSTM32
STRG+C drücken, um die Meldungen zu beendenHinweis:
Katapult wird über USB (DFU-Mode) eingerichtet!
[ ! -d "$HOME/katapult/" ] && cd ~ && git clone https://github.com/Arksine/katapult && cd katapult || cd ~/katapultmake menuconfig Micro-controller Architecture (STMicroelectronics STM32) --->
Processor model (STM32F446) --->
Build Katapult deployment application (Do not build) --->
Clock Reference (12 MHz crystal) --->
Communication interface (USB (on PA11/PA12)) --->
Application start offset (32KiB offset) --->
USB ids --->
() GPIO pins to set on bootloader entry
[*] Support bootloader entry on rapid double click of reset button
[ ] Enable bootloader entry on button (or gpio) state
[*] Enable Status LED
(PE1) Status LED GPIO Pin
make -j4dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/katapult/out/katapult.binFile downloaded successfully bei der Ausgabe im Terminaldmesg -HW starten und den USB Stecker wieder anstecken pi@Pi3Test:~/katapult $ dmesg -HW [Feb 1 11:01] usb 1-1.4: new full-speed USB device number 16 using dwc_otg [ +0.147164] usb 1-1.4: New USB device found, idVendor=1d50, idProduct=6177, bcdDevice= 1.00 [ +0.000039] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000016] usb 1-1.4: Product: stm32f446xx [ +0.000013] usb 1-1.4: Manufacturer: katapult [ +0.000011] usb 1-1.4: SerialNumber: 350053000851313133353932 [ +0.005586] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
STRG+C drücken, um die Meldungen zu beendencd ~/klippermake menuconfig [*] Enable extra low-level configuration options
Micro-controller Architecture (STMicroelectronics STM32) --->
Processor model (STM32F446) --->
Bootloader offset (32KiB bootloader) --->
Clock Reference (12 MHz crystal) --->
Communication interface (USB to CAN bus bridge (USB on PA11/PA12)) --->
CAN bus interface (CAN bus (on PB5/PB6)) --->
USB ids --->
(1000000) CAN bus speed
() GPIO pins to set at micro-controller startup
make -j4 flash FLASH_DEVICE=/dev/ttyACM0 pi@Pi3Test:~/klipper $ make -j4 flash FLASH_DEVICE=/dev/ttyACM0 Creating symbolic link out/board Building out/autoconf.h Compiling out/src/sched.o ... Compiling out/src/stm32/hard_pwm.o Preprocessing out/src/generic/armcm_link.ld Building out/compile_time_request.o Version: v0.12.0-102-g9f41f53c Linking out/klipper.elf Creating hex file out/klipper.bin Flashing out/klipper.bin to /dev/ttyACM0 Entering bootloader on /dev/ttyACM0 Device reconnect on /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.0 /usr/bin/python3 lib/canboot/flash_can.py -d /dev/serial/by-path/platform-3f980000.usb-usb-0:1.4:1.0 -f out/klipper.bin Attempting to connect to bootloader CanBoot Connected Protocol Version: 1.0.0 Block Size: 64 bytes Application Start: 0x8008000 MCU type: stm32f446xx Flashing '/home/pi/klipper/out/klipper.bin'... [##################################################] Write complete: 2 pages Verifying (block count = 488)... [##################################################] Verification Complete: SHA = 14F85E3BBD86FCBA99F270F03AD3FC60DDCE8F71 CAN Flash Success
sudo nano /etc/network/interfaces.d/can0 STRG + x, dann Y, dann Enter beenden allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
ip a can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UP group default qlen 1024DOWN stehen hilft meist ein sudo systemctl restart networking.service sudo ip link set can0 up type can bitrate 1000000Hinweis
Die folgenden Schritte setzen natürlich voraus, das der CAN Bus korrekt im Vorfeld eingerichtet wurde!
Wenn das Board über CAN verbunden ist, dann kann man mit den folgenden Schritten prüfen, ob Katapult geflasht wurde:
sudo systemctl stop klipper.service~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 pi@Pi3Test:~/klipper $ ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0 Found canbus_uuid=3c98a1ec0529, Application: Klipper Total 1 uuids found
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
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.
cd ~/printer_data/configwget https://raw.githubusercontent.com/MotorDynamicsLab/Leviathan/master/Klipper_config/voron2_leviathan_v1.2.cfg -O printer.cfgwget https://raw.githubusercontent.com/MotorDynamicsLab/Leviathan/master/Klipper_config/trident_leviathan_v1.2.cfg -O printer.cfgnano ~/printer_data/config/printer.cfg [mcu] canbus_uuid: 3c98a1ec0529 #restart_method: command
serial löschen oder auskommentierenrestart_method löschen oder auskommentierencanbus_uuid entsprechend mit der ermittelten UUID von oben anpassensudo systemctl start klipper.serviceHinweis:
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.
sudo systemctl stop klipper.servicegrep canbus_uuid ~/printer_data/config/* -n 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
~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u <LEVIATHAN UUID> -r pi@Pi3Test:~/klipper $ ~/klippy-env/bin/python ~/katapult/scripts/flashtool.py -i can0 -u 3c98a1ec0529 -r Sending bootloader jump command... Bootloader request command sent Flash Success
dmesg |tail -n 10 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
Wie immer brauchen wir die tty… Angabe. In diesem Fall ist is ttyACM0 wie man in der letzten Zeile sehen kann.
cd ~/klippermake -j4 flash FLASH_DEVICE=/dev/ttyACM0 sudo systemctl start klipper.service