ACHTUNG: Diese Anleitung ist nicht 1:1 so auf alle neuen Boards anwendbar! Sie wurde relativ speziell für das Mellow Fly E3-PRO V3 geschrieben!
In diesem Video zeige ich euch einmal komplett die Installation von Klipper & Co auf Basis des Mellow Fly E3-PRO V3 Boards und eines Raspberry Pi 3b. Es geht also um Mainsail (OS), Klipper Firmware compilieren und flashen, einen besseren Bootloader, die Drucker Konfiguration, Webcam und KlipperScreen. In diesem Video wird nicht auf alle Teilbereiche im Detail eingegangen. Dafür gibt es eine ganze Reihe an Videos, die ich hier mal verlinken möchte:
#32 - Klipper FAQ - Klipper Grundlagen - https://youtu.be/Bv361latAZo
#33 - Klipper FAQ - Raspberry Pi - Mainsail OS - https://youtu.be/LKBSG2A85sU
#42 - Klipper FAQ - ls /dev/serial/by-id/* Murks - https://youtu.be/Am5ONKeKwvc
#44 - Klipper FAQ - Video mit Crowsnest - https://youtu.be/6PRwHsu7Ipw
Danke an dieser Stelle an Jan Oerter (aka Schmelzerboy) der mich überhaupt zu diesem Video inspiriert hat. Wir haben zusammen eine kleine Reihe für einen Anycube I3 Mega zusammengestellt. Die Playlist dazu verlinke ich hier, wenn sie erstellt worden ist.
Jans Kanal könnt ihr euch hier ansehen und abonnieren
https://www.youtube.com/@MegaMuelleimer
sudo apt update && sudo apt upgrade -y && sudo apt install -y git silversearcher-ag wavemon hexedit sudoku tcpdump iptraf mc htop dcfldd nano usbutils ranger tldr ncdu can-utils multitail fd-find && mkdir -p ~/.local/share && tldr -u
sudo apt autoremove -y modem* cups* pulse* avahi* triggerhappy*
Hinweis Mellow Fly E3 Pro V3
Das Board hat leider ein Problem mit dem DFU Modus (USB Device Firmware Upgrade). Normalerweise erreicht man den Modus durch drücken der BT0 Taste auf dem Board (oder setzen eines Jumpers) und dann Reset (oder das Board mit Strom versorgen). Bei diesem Board klappt das nicht. Auch mittels Klipper lässt sich das Board nicht in diesen Modus bringen (wenn manmake flash FLASH_DEVICE …
verwendet).
Hier macht es also umso mehr Sinn einen brauchbaren Weg zu etablieren um das Board mit einer neuen (Klipper) Firmware zu flashen.
Hinweis Original “SD”-Bootloader
Der originle Bootloader geht beim Einspielen von CanBoot verloren. Ein Update über SD-Karte ist damit also nicht mehr möglich. Für die meisten Boards findet man den “alten” Bootloader aber im Internet und könnte ihn wieder herstellen. Wer aber bei Klipper bleibt und sich beim Flashen nicht die Finger brechen will sollte zu CanBoot wechseln
CanBoot ist derzeit kompatibel zu den meisten STM32 Boards. Aber auch der Raspberry Pi RP2040 sowie zwei LPC Controller werden unterstützt. Damit deckt CanBoot ein sehr breites Spektrum an Druckerboards ab.
Hinweis andere Boards
Diese Anleitung zu CanBoot bezieht sich auf das Mellow Fly Board. Wenn ihr ein anderes Board nutzt müsst ihr ggf. die Parameter beimake menuconfig
anpassen. Die findet ihr im Normalfall in der Beschreibung wie man Klipper für euer Board kompiliert.
cd ~
git clone https://github.com/Arksine/CanBoot
cd CanBoot
make menuconfig
(Beenden mittels Q → Y) Micro-controller Architecture (STMicroelectronics STM32) ---> Processor model (STM32F407) ---> Build CanBoot deployment application (32KiB bootloader) ---> Clock Reference (8 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
make -j4
deployer.bin
auf SD-Karte (FAT32) kopieren und in firmware.bin
umbenennenFLY.CUR
oder firmware.cur
heißen !dmesg
[ 2361.296349] usb 1-1.1: USB disconnect, device number 20 [ 2362.202635] usb 1-1.1: new full-speed USB device number 21 using dwc_otg [ 2362.450874] usb 1-1.1: New USB device found, idVendor=1d50, idProduct=6177, bcdDevice= 1.00 [ 2362.450948] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2362.450975] usb 1-1.1: Product: stm32f407xx [ 2362.450997] usb 1-1.1: Manufacturer: CanBoot [ 2362.451016] usb 1-1.1: SerialNumber: 2B0035001147393437303337 [ 2362.467908] cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device
ttyACM0
merken für das Flashen der Klipper Firmware cd ~/klipper
make menuconfig
[*] Enable extra low-level configuration options Micro-controller Architecture (STMicroelectronics STM32) ---> Processor model (STM32F407) ---> Bootloader offset (32KiB bootloader) ---> Clock Reference (8 MHz crystal) ---> Communication interface (USB (on PA11/PA12)) ---> USB ids ---> () GPIO pins to set at micro-controller startup
make flash FLASH_DEVICE=/dev/ttyACM0
pi@TestPi:~/klipper $ make flash FLASH_DEVICE=/dev/ttyACM0 Flashing out/klipper.bin to /dev/ttyACM0 Entering bootloader on /dev/ttyACM0 Device reconnect on /sys/devices/platform/soc/20980000.usb/usb1/1-1/1-1.1/1-1.1:1.0 /usr/bin/python3 lib/canboot/flash_can.py -d /dev/serial/by-path/platform-20980000.usb-usb-0:1.1: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: stm32f407xx Flashing '/home/pi/klipper/out/klipper.bin'... [##################################################] Write complete: 2 pages Verifying (block count = 441)... [##################################################] Verification Complete: SHA = 913C5425E676A11DDF249DAEE669CF4362044AAE CAN Flash Success
Hinweis Flashen im Betrieb
Wenn das Board in der printer.cfg eingebunden ist, müsst ihr 2 Schritte extra machen für das Flashen:
sudo systemctl stop klipper.service
dann dasmake flash ….
sudo systemctl start klipper.service
Hinweis flash_can.py
Man kann auch direkt das Tool flash_can.py von CanBoot verwenden :
pi@TestPi:~/klipper $ make flash FLASH_DEVICE=/dev/ttyACM0
dmesg
ls -lR /dev/ | grep -v '\->\s../tty' | grep -e 'tty[[:alpha:]]' -e serial
~/klipper $ ../klippy-env/bin/python ./klippy/console.py /dev/ttyACM0
cd ~
git clone https://github.com/th33xitus/kiauh.git
./kiauh/kiauh.sh
4) [Advanced]
auswählen → 4) [Build + Flash]
auswählenUm den ADXL345 am Raspberry Pi zu betreiben brauchen wir die extra MCU die mit auf dem Raspberry Pi läuft. Diese MCU sorgt dafür, dass die GPIO Pins des Raspberry Pi aus Klipper Sicht verwendbar werden. Eingeschlossen sind dabei auch I2C und SPI Bus (über den der ADXL Sensor angeschlossen wird).
cd ~/klipper/
sudo cp ./scripts/klipper-mcu.service /etc/systemd/system/
sudo systemctl enable klipper-mcu.service
make menuconfig
[*] Enable extra low-level configuration options Micro-controller Architecture (Linux process) ---> () GPIO pins to set at micro-controller startup
sudo usermod -a -G tty pi
sudo service klipper stop
make flash -j4
sudo service klipper start
Eine vorgefertigte Konfiguration findet ihr für das Mellow Fly E3 Pro V3 in der Github Repo von Jan. Diese wird einfach geladen und an die richtige Stelle kopiert.
cd ~
cp ./I3-Mega-Klipper/Konfiguration\ Drucker/*.cfg ~/printer_data/config/
sudo systemctl restart klipper.service
Zu jedem Teil in der printer.cfg gibt es sehr ausführliche Informationen in der Config Reference → https://www.klipper3d.org/Config_Reference.html . Wer dem Englischen nicht zu zugetragen ist sollte sich mit folgenden Links behelfen:
Notes Video Wozu Konfig ? 1 Erweiterung 2 Pins 3 Einstellungen
Hinweis KlipperScreen
Ihr müsst KlipperScreen nur dann installieren wenn am Raspberry Pi auch ein Touch Bildschirm angeschlossen ist. Ist das nicht der Fall könnt ihr diesen Schritt einfach überspringen!
cd ~
sudo raspi-config
1 System Options
S5 Boot / Auto Login
B1 Console
./kiauh/kiauh.sh
1) [Install]
5) [KlipperScreen]
sudo reboot
cat /home/pi/.local/share/xorg/Xorg.0.log
xf86OpenConsole: Cannot open virtual console 2 (Permission denied)
dann folgendes ausführen sudo bash -c "echo needs_root_rights=yes>>/etc/X11/Xwrapper.config"
sudo service KlipperScreen restart
sudo systemctl restart crowsnest.service
cat ~/printer_data/logs/crowsnest.log
/dev/v4l/by-id/usb-Novatek_WebCam_130_HD2-video-index0
)nano ~/printer_data/config/crowsnest.conf
crowsnest.log
sudo systemctl restart crowsnest.service
Hinweis 1
Die folgende Anleitung funktioniert so NUR mit dem Mellow Fly E3 Pro V3 Board. Auch die verlinkte Firmware ist nur mit diesem Board kompatibel!
Hinweis 2
Dieser Schritt ist auch nur dann nötig, wenn ihr wieder über SD-Karte flashen wollt. Wenn CanBoot einmal richtig geflsht ist, braucht ihr diesen Part nicht! Die folgende Anleitung dient eher als Notanker !!
Um das Mellow Fly Board auf den alten Bootloader (Flashen mit SD-Karte) zurückzusetzen, sind folgende Schritte nötig: