====== Pi4, Octopus Pro, UCan, EBB36 ======
> **Hinweis** \\ Diese Anleitung beschreibt das Einrichten der aufgeführten Komponenten (siehe [[klipper_faq:klipper_0_auf_100:pi4_octopus_pro_ucan_ebb36#equipment|Equipment]]). Die Anleitung __kann nicht 1:1 für andere Hardware Konstellationen verwendet werden__!
===== YouTube Video #115 =====
{{youtube>pGSVYdHImdQ?half}}
\\
===== Equipment =====
* Raspberry Pi 4 mit 128GB SD-Karte
* BTT Pi TFT50 (DSI Anschluss)
* Octopus Pro V1.1 (STM32 H723)
* UCAN USB Can Adapter (Buskoppler)
* EBB36 CAN V1.2 Toolhead Board
===== SD-Karte vorbereiten =====
* MainSail OS über Raspberry PI Imager installieren
* https://www.raspberrypi.com/software/
* OS WÄHLEN -> Other specific-purpose OS -> 3D printing -> Mainsail OS -> Mainsail OS x.x.x - Raspberry PI (64 Bit)
* SD-KARTEN WÄHLEN
* Weiter -> Einstellungen bearbeiten
* Hostname eintragen
* Benutzer Pi + Passwort
* ggf. Wifi einrichten
* Wifi Land einstellen
* Sprache festlegen
* Dienste -> SSH aktivieren mit Passwort als Authentifizierung
* Speichern
* 2 x JA um die Einstellungen zu übernehmen und das Image zu schreiben
===== Netzwerk =====
* IP finden
* Über Router nachsehen
* Über MobaXTerm Netzwerkscan durchführen (Tools -> Network scanner)
* Default mit LAN (DHCP)
* WLAN Konfig
* ''nmtui''
===== Updates =====
* ''sudo apt update && sudo apt upgrade -y && sudo apt install -y git git-lfs silversearcher-ag wavemon hexedit sudoku tcpdump iptraf mc htop dcfldd nano usbutils ranger tldr ncdu can-utils multitail fd-find lsof x11vnc terminator minicom cutecom joystick jstest-gtk i2c-tools speedtest-cli iotop && mkdir -p ~/.local/share && tldr -u''
* ''sudo apt autoremove -y modem* cups* pulse* avahi* triggerhappy*''
* KIAUH
* ''cd ~ && git clone https://github.com/th33xitus/kiauh.git''
* Mainsail & Co über die Webseite updaten
===== Octopus Pro =====
* https://github.com/bigtreetech/BIGTREETECH-OCTOPUS-Pro
* Flashen
* ''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
* Q und Y zum beenden und speichern
* ''make -j4'' um Klipper zu kompilieren
* DFU Modus aktivieren am Octopus Board
* ''dmesg -Hw'' im Terminal aufrufen
* V-BUS Jumper setzen und board per USB an den Pi anschließen
* {{:klipper_faq:klipper_0_auf_100:pasted:20241101-053703.png}} \\ Jumper setzen und die Reset Taste ganz rechts drücken
* Terminal Ausgabe :
* [Nov 1 13:42] usb 1-1.1: new full-speed USB device number 3 using xhci_hcd
[ +0.101925] usb 1-1.1: not running at top speed; connect to a high speed hub
[ +0.006001] usb 1-1.1: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00
[ +0.000013] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000006] usb 1-1.1: Product: DFU in FS Mode
[ +0.000004] usb 1-1.1: Manufacturer: STMicroelectronics
[ +0.000005] usb 1-1.1: SerialNumber: 377D37553033
* ''dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin''
* Konfiguration einbinden \\ ''cp ~/klipper/config/generic-bigtreetech-octopus-pro-v1.1.cfg ~/printer_data/config/printer.cfg''
* mainsail.cfg noch inkludieren
* Port suchen und einbinden
* ''dmesg -Hw'' und danach 1x Reset am Board drücken
* den tty Port ermitteln
* ''ls -lR /dev/ | grep -v '\%%->%%\s../tty' | grep -e 'tty%%[[:%%alpha%%:]]%%' -e serial''
* ''/dev/serial/by-id... '' in der Konfig unter MCU eintragen
==== 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_stm32f446xx_390028000950315239323320-if00''
Der Pfad am Ende muss natürlich mit dem übereinstimmen was ihr im vorherigen Schritt ermittelt habt!
===== UCAN =====
* siehe auch -> https://www.drklipper.de/doku.php?id=klipper_faq:can:49_-_usb_buskoppler
* Flashen mit Klipper (Oder alternativ mit candleLight)
* ''cd ~/klipper && make menuconfig''
*
[*] Enable extra low-level configuration options
Micro-controller Architecture (STMicroelectronics STM32) --->
Processor model (STM32F072) --->
Bootloader offset (No bootloader) --->
Clock Reference (8 MHz crystal) --->
Communication interface (USB to CAN bus bridge (USB on PA11/PA12)) --->
CAN bus interface (CAN bus (on PB8/PB9)) --->
USB ids --->
(1000000) CAN bus speed
() GPIO pins to set at micro-controller startup
* Q und Y zum beenden und speichern
* ''make -j4'' um Klipper zu kompilieren
* DFU Modus aktivieren am UCAN Board
* ''dmesg -Hw'' im Terminal aufrufen
* Pins kurzschließen ... TBD
* Terminal Ausgabe :
* ''dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin''
===== SBC =====
* Interface einrichten \\ **Achtung** : die Bitrate von 1000000 muss auch in der Board Firmware eingestellt werden! \\ ''sudo nano /etc/network/interfaces.d/can0'' \\ folgendes eintragen, speichern und mit ''STRG + x'', dann ''Y'', dann ''Enter'' beenden \\ allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 1024
==== Test ====
* Testen mit ''ip a'' \\ ''can0: 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'' \\ oder ein \\ ''sudo ip link set can0 up type can bitrate 1000000''
===== EBB36 =====
* siehe auch -> https://www.drklipper.de/doku.php?id=klipper_faq:flash_guide:stm32g0b1:btt_ebb36_ebb42_can
* **Katapult flashen** (über USB !)
* Katapult laden wenn noch nicht vorhanden, sonst in den Katapult Ordner wechseln \\ ''[ ! -d %%"%%$HOME/katapult/%%"%% ] && cd ~ && git clone https://github.com/Arksine/katapult && cd katapult || cd ~/katapult''
* ''make menuconfig'' für **Version 1.2** \\
Micro-controller Architecture (STMicroelectronics STM32) --->
Processor model (STM32G0B1) --->
Build Katapult deployment application (Do not build) --->
Clock Reference (8 MHz crystal) --->
Communication interface (CAN bus (on PB0/PB1)) --->
Application start offset (8KiB offset) --->
(1000000) CAN bus speed
() 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
(PA13) Status LED GPIO Pin
* Q und Y zum beenden und speichern
* ''make -j4'' um Katapult zu kompilieren
* DFU Modus aktivieren am EBB36 Board
* ''dmesg -Hw'' im Terminal aufrufen
* Die **Boot Taste** am Board gedrückt halten und dabei das Board über USB mit dem SBC verbinden
* [Nov11 07:34] usb 1-1.4: new full-speed USB device number 17 using dwc_otg
[ +0.133427] usb 1-1.4: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00
[ +0.000037] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000016] usb 1-1.4: Product: DFU in FS Mode
[ +0.000013] usb 1-1.4: Manufacturer: STMicroelectronics
[ +0.000012] usb 1-1.4: SerialNumber: 206A39785542
* ''STRG+C'' drücken, um die Meldungen zu beenden
* ''dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/katapult/out/katapult.bin'' \\ Das Ergebnis sollte sein ''File downloaded successfully''
* ggf. USB Kabel abziehen. Board muss sich danach mit Katapult / Canboot melden bei ''dmesg -Hw''
* **UUID ermitteln**
* Klipper Dienst stoppen \\ ''sudo systemctl stop klipper.service''
* ''~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0'' \\ Wenn ein Board gefunden wird, dann sollte folgende Ausgabe erscheinen: \\
biqu@BTT-PI12:~/katapult$ ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
Found canbus_uuid=539892be834d, Application: CanBoot
Total 1 uuids found
* Die **UUID** (canbus_uuid=**539892be834d**) notieren !
* Wird bei diesem Schritt kein Board gefunden, hilft oft ein Reset am Board (entweder über Reset Taster oder 1x Strom weg und wieder dran)
* **Klipper flashen**
* ''cd ~/klipper''
* ''make menuconfig'' für **Version 1.2** \\
[*] Enable extra low-level configuration options
Micro-controller Architecture (STMicroelectronics STM32) --->
Processor model (STM32G0B1) --->
Bootloader offset (8KiB bootloader) --->
Clock Reference (8 MHz crystal) --->
Communication interface (CAN bus (on PB0/PB1)) --->
(1000000) CAN bus speed
() GPIO pins to set at micro-controller startup
* beenden mit ''Q'' und ''Y''
* Klipper kompilieren \\ ''make -j4''
* Klipper flashen \\ ''~/klippy-env/bin/python3 ~/katapult/scripts/flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u '' \\ In diesem Beispiel wäre das dann \\ ''~/klippy-env/bin/python3 ~/katapult/scripts/flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u **539892be834d**''
* Das sollte mit einem ''Flash Success'' beendet werden!
* **Konfiguration einbinden**
* ''cd ~/printer_data/config''
* ''wget 'https://github.com/bigtreetech/EBB/raw/master/EBB%20CAN%20V1.1%20and%20V1.2%20(STM32G0B1)/sample-bigtreetech-ebb-canbus-v1.2.cfg' -O BTT_EBB.cfg''
* ''nano ~/printer_data/config/BTT_EBB.cfg'' \\ [mcu EBBCan]
#serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
canbus_uuid: 539892be834d
* Die Zeile mit ''serial'' auskommentieren oder löschen
* Die UUID bei ''canbus_uuid'' eintragen und ggf. die ''#'' am Anfang der Zeile entfernen (UUID ermitteln siehe [[klipper_faq:flash_guide:stm32g0b1:ebb_sb2209_can#can_query|CAN Query]])!
* In der ''printer.cfg'' noch die neue Konfig einbetten \\ ''[include BTT_EBB.cfg]''
==== 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 -c can0 44d860c9632b''
Die UUID am Ende muss natürlich mit dem übereinstimmen, was ihr im vorherigen Schritt ermittelt habt!
Klipper Dienst wieder starten \\ ''sudo systemctl start klipper.service''
===== Display =====
* Anschluss
* Klipper Screen nachinstallieren
* ''cd ~ && ./kiauh/kiauh.sh''
* https://klipperscreen.readthedocs.io/en/latest/Troubleshooting/