klipper_faq:flash_guide:stm32h723:btt_octopus_pro_can
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| klipper_faq:flash_guide:stm32h723:btt_octopus_pro_can [2025/10/03 18:21] – removed - external edit (Unknown date) 127.0.0.1 | klipper_faq:flash_guide:stm32h723:btt_octopus_pro_can [2025/10/03 18:48] (current) – [YouTube Video #xxx] dominik | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== BTT Octopus [Pro] (CAN-Bridge) ====== | ||
| + | Schrittweise Anleitung, um das BTT **Octopus [Pro]** Board über die **USB/CAN Bridge** in Betrieb zu nehmen. | ||
| + | |||
| + | **BTT Octopus Board ** \\ {{klipper_faq: | ||
| + | |||
| + | ===== YouTube Video #148 ===== | ||
| + | {{youtube> | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== 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 '' | ||
| + | * Der SD-Slot ist bei diesem Controller komplett überflüssig 8-) | ||
| + | |||
| + | ===== Boards ===== | ||
| + | Die Boards gibt es generell mit verschiedenen Controllern. Beim Flashen also besonders darauf achten! | ||
| + | * STM32F446ZE + 12 MHz crystal | ||
| + | * STM32F429ZG + 8 MHz crystal | ||
| + | * STM32F407ZE | ||
| + | * STM32FH723ZE + 25Mhz crystal | ||
| + | |||
| + | **Octopus 1.0** | ||
| + | * erste Version | ||
| + | |||
| + | **Octopus 1.1** | ||
| + | * Korrekturen in der bedruckten Board Bescriftung (fan, spi3, uart2) | ||
| + | * Geändertes IC für die Spannungsversorgung | ||
| + | |||
| + | **Octopus Pro** (https:// | ||
| + | * Je nach Controller 1MB Flash | ||
| + | * bis zu 8 HV Schrittmotor Treiber | ||
| + | * Extra Beeper | ||
| + | * 12-60V Motor Input (anstelle 12-35V) | ||
| + | * Schrittmotor Input Level 5V (anstatt 3,3V) | ||
| + | * Onboard MAX31865 Chip | ||
| + | * Beim Pro 1.1 wurden einige Pins geändert (Siehe https:// | ||
| + | |||
| + | **Verisonen 1.1** | ||
| + | * Haben einen Fix dass das Hotend nicht bei einem Flashvorgang sofort voll aufheizt. | ||
| + | |||
| + | **Board Unterschiede Normal / PRO** | ||
| + | * Andere Position für den Raspi Anschluss | ||
| + | * geändertes Power Detect am PRO | ||
| + | * Spannungsauswahl an den Treibern | ||
| + | * ggf. anderer CAN Connector (kein RJ11 sondern XH2.54*2Pin) | ||
| + | ===== Verkabelung ===== | ||
| + | |||
| + | ==== Stromversorgung ==== | ||
| + | * Der Jumoer ist entweder mit '' | ||
| + | * :!: Bei Versorgung über den POWER Anschluss (also mit >= 12V am Eingang) muss der Jumper gezogen werden :!: | ||
| + | * **Firmware flashen** | ||
| + | * Das Board wird **<color # | ||
| + | * Das Board wird **mit >= 12V betrieben**. \\ Den Jumper entfernen! | ||
| + | |||
| + | ==== CAN Bus Anschluss ==== | ||
| + | * Wer den CAN Bus überprüfen will, kann im **ausgeschalteten Zustand** den Buswiderstand mit einem Ohmmeter messen. Es müsste zwischen CAN H und CAN L ca. 120Ω ergeben wenn das Board nichts angeschlossen hat am CAN Interface. Mit angeschlossener CAN Hardware müssen es ca 60Ω sein. | ||
| + | |||
| + | === Normal === | ||
| + | * Die normalen Board verwendewn einen RJ11 Anschluss für das CAN Interface | ||
| + | * die 120Ω sind immer vorhanden und können nicht per Jumper weggenommen werden | ||
| + | |||
| + | === PRO === | ||
| + | * Das CAN Interface ist ein XH2.54*2Pin Anschluss | ||
| + | * Die 120Ω können per Jumper selektiert werden | ||
| + | |||
| + | ==== CAN über USB ==== | ||
| + | Es gibt diese wüste Verkabelung über USB bei BTT. Ich halte da ehrlich gesagt nichts von. Technisch mag das funktionieren, | ||
| + | |||
| + | ==== Versorgung Raspberry Pi ==== | ||
| + | * Ein Raspberry Pi kann direkt über das Board versorgt werden. Ein passendes Kabel liegt nicht bei. | ||
| + | * Über diesen Anschluss wird auch gleich TX / RX verbunden mit dem Pi. Damit wäre ein Betrieb über UART möglich. | ||
| + | |||
| + | > | ||
| + | |||
| + | ==== 60V Anschluss (PRO) ==== | ||
| + | * Das PRO Board kann bis 60V betrieben werden (mit den korrekten Stepper Treibern) | ||
| + | * Es muss ausgewählt werden wo der Motorstrom her kommen soll: \\ {{..: | ||
| + | |||
| + | ===== Bootloader sichern ===== | ||
| + | Eine Sicherung lohnt nicht. Das Board wird mit Marlin ausgeliefert und kann schnell komplett neu geflasht werden. | ||
| + | |||
| + | Bootloader findet man hier | ||
| + | * https:// | ||
| + | * Für das PRO H723 habe ich den Bootloader mal extrahiert \\ {{ : | ||
| + | |||
| + | ===== Vorgehen Flashen ===== | ||
| + | * Wer sein Board das erste mal mit Klipper einrichtet muss die folgenden Schritte durchgehen: | ||
| + | * DFU-Modus aktivieren | ||
| + | * Katapult | ||
| + | * Port ermitteln | ||
| + | * Klipper | ||
| + | * SBC | ||
| + | * Wer das Board schon nach dieser Anleitung eingerichtet hat kann das Klipper Update so durchführen ... | ||
| + | * Update | ||
| + | ===== DFU Modus ===== | ||
| + | * Board ausschalten / stromlos machen | ||
| + | * Jumper (BOOT0) setzen \\ {{klipper_faq: | ||
| + | * Stromversorgung wählen (**nicht beides nutzen**) | ||
| + | * **Achtung** : Hauptstromanschluss und gesetzter 5V Jumper können zu einem Kurzschluss auf 5V führen ! | ||
| + | * Wenn das Board **extern mit Strom** versorgt wird, den Jumper '' | ||
| + | * Wenn das Board über **USB** versorgt wird, den **Jumper setzen**. | ||
| + | * In der Konsole '' | ||
| + | [Oct 3 08:00] usb 1-1.4: new full-speed USB device number 5 using xhci_hcd | ||
| + | [ +0.089949] usb 1-1.4: not running at top speed; connect to a high speed hub | ||
| + | [ +0.006004] usb 1-1.4: New USB device found, idVendor=0483, | ||
| + | [ +0.000045] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 | ||
| + | [ +0.000013] usb 1-1.4: Product: DFU in FS Mode | ||
| + | [ +0.000009] usb 1-1.4: Manufacturer: | ||
| + | [ +0.000008] usb 1-1.4: SerialNumber: | ||
| + | </ | ||
| + | |||
| + | ===== Katapult flashen ===== | ||
| + | > **Hinweis: | ||
| + | |||
| + | * Katapult laden wenn noch nicht vorhanden, sonst in den Katapult Ordner wechseln \\ '' | ||
| + | * '' | ||
| + | * STM32**F446** < | ||
| + | Processor model (STM32F446) | ||
| + | Build Katapult deployment application (Do not build) | ||
| + | Clock Reference (12 MHz crystal) | ||
| + | Communication interface (USB (on PA11/ | ||
| + | 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 | ||
| + | (PA13) | ||
| + | * STM32**F429** < | ||
| + | Processor model (STM32F429) | ||
| + | Build Katapult deployment application (Do not build) | ||
| + | Clock Reference (8 MHz crystal) | ||
| + | Communication interface (USB (on PA11/ | ||
| + | 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 | ||
| + | </ | ||
| + | * STM32**F407** < | ||
| + | Processor model (STM32F407) | ||
| + | Build Katapult deployment application (Do not build) | ||
| + | Clock Reference (8 MHz crystal) | ||
| + | Communication interface (USB (on PA11/ | ||
| + | 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 | ||
| + | </ | ||
| + | * STM32F**H723** < | ||
| + | Processor model (STM32H723) | ||
| + | Build Katapult deployment application (Do not build) | ||
| + | Clock Reference (25 MHz crystal) | ||
| + | Communication interface (USB (on PA11/ | ||
| + | Application start offset (128KiB 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 | ||
| + | (PA13) | ||
| + | </ | ||
| + | * Die Status LED bei den F429 und F407 könnte auch PA13 sein. Lässt sich aber nicht verifizieren. Am besten testen :-) | ||
| + | * **Wichtig: | ||
| + | * Katapult kompilieren \\ '' | ||
| + | * Katapult flashen (das Board muss im DFU Mode sein !) \\ '' | ||
| + | * Wichtig ist am Ende '' | ||
| + | * Den Jumper BOOT0 entfernen ! | ||
| + | * Das Board einmal resetten | ||
| + | * Reset-Taste (oberhalb vom USB-C Anschluss) drücken | ||
| + | * oder das Board einmal stromlos machen | ||
| + | * Die Status LED vom Board sollte jetzt blinken (Die LED kann ja noch Board an unterschiedlichen Stellen sein!) | ||
| + | ===== Port ermitteln ===== | ||
| + | * Den USB Stecker abziehen | ||
| + | * '' | ||
| + | pi@Pi4Test: | ||
| + | [Oct 3 08:16] usb 1-1.4: USB disconnect, device number 8 | ||
| + | [ +0.453418] usb 1-1.4: new full-speed USB device number 9 using xhci_hcd | ||
| + | [ +0.099931] usb 1-1.4: New USB device found, idVendor=1d50, | ||
| + | [ +0.000048] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 | ||
| + | [ +0.000014] usb 1-1.4: Product: stm32h723xx | ||
| + | [ +0.000011] usb 1-1.4: Manufacturer: | ||
| + | [ +0.000010] usb 1-1.4: SerialNumber: | ||
| + | [ +0.056130] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device | ||
| + | [ +0.000162] usbcore: registered new interface driver cdc_acm | ||
| + | [ +0.000012] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters | ||
| + | </ | ||
| + | * Wir brauchen die Information mit **tty...** also in diesem Fall **ttyACM0** | ||
| + | * '' | ||
| + | |||
| + | |||
| + | ===== Klipper flashen ===== | ||
| + | * '' | ||
| + | * '' | ||
| + | * STM32**F446** < | ||
| + | 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/ | ||
| + | CAN bus interface (CAN bus (on PD0/ | ||
| + | USB ids ---> | ||
| + | (1000000) CAN bus speed | ||
| + | [*] Optimize stepper code for 'step on both edges' (NEW) | ||
| + | () GPIO pins to set at micro-controller startup (NEW) | ||
| + | </ | ||
| + | * STM32**F429** < | ||
| + | Micro-controller Architecture (STMicroelectronics STM32) | ||
| + | Processor model (STM32F429) | ||
| + | Bootloader offset (32KiB bootloader) | ||
| + | Clock Reference (8 MHz crystal) | ||
| + | Communication interface (USB to CAN bus bridge (USB on PA11/ | ||
| + | CAN bus interface (CAN bus (on PD0/ | ||
| + | USB ids ---> | ||
| + | (1000000) CAN bus speed | ||
| + | [*] Optimize stepper code for 'step on both edges' (NEW) | ||
| + | () GPIO pins to set at micro-controller startup (NEW) | ||
| + | </ | ||
| + | * STM32**F407** < | ||
| + | Micro-controller Architecture (STMicroelectronics STM32) | ||
| + | Processor model (STM32F407) | ||
| + | Bootloader offset (32KiB bootloader) | ||
| + | Clock Reference (8 MHz crystal) | ||
| + | Communication interface (USB to CAN bus bridge (USB on PA11/ | ||
| + | CAN bus interface (CAN bus (on PD0/ | ||
| + | USB ids ---> | ||
| + | (1000000) CAN bus speed | ||
| + | [*] Optimize stepper code for 'step on both edges' (NEW) | ||
| + | () GPIO pins to set at micro-controller startup (NEW) | ||
| + | </ | ||
| + | * STM32F**H723** < | ||
| + | Micro-controller Architecture (STMicroelectronics STM32) | ||
| + | Processor model (STM32H743) | ||
| + | Bootloader offset (128KiB bootloader) | ||
| + | Clock Reference (25 MHz crystal) | ||
| + | Communication interface (USB to CAN bus bridge (USB on PA11/ | ||
| + | CAN bus interface (CAN bus (on PD0/ | ||
| + | USB ids ---> | ||
| + | (1000000) CAN bus speed | ||
| + | () GPIO pins to set at micro-controller startup (NEW) | ||
| + | </ | ||
| + | * Klipper kompilieren und flashen (über USB / seriell!) \\ '' | ||
| + | pi@Pi4Test: | ||
| + | Creating symbolic link out/board | ||
| + | Building out/ | ||
| + | Building hid-flash | ||
| + | ... | ||
| + | Preprocessing out/ | ||
| + | Building out/ | ||
| + | Version: v0.13.0-253-g96c3ca160 | ||
| + | Linking out/ | ||
| + | Creating bin file out/ | ||
| + | Flashing out/ | ||
| + | Entering bootloader on / | ||
| + | Device reconnect on / | ||
| + | / | ||
| + | |||
| + | Attempting to connect to bootloader | ||
| + | CanBoot Connected | ||
| + | Protocol Version: 1.1.0 | ||
| + | Block Size: 64 bytes | ||
| + | Application Start: 0x8020000 | ||
| + | MCU type: stm32h723xxv0.0.1-106-g399e50e | ||
| + | Flashing '/ | ||
| + | |||
| + | [################################################## | ||
| + | |||
| + | Write complete: 1 pages | ||
| + | Verifying (block count = 679)... | ||
| + | |||
| + | [################################################## | ||
| + | |||
| + | Verification Complete: SHA = 624529675027BC607A142B6E6DC44ABF81D3BD50 | ||
| + | CAN Flash Success | ||
| + | |||
| + | </ | ||
| + | * Board einmal resetten | ||
| + | * kurzer Test mit '' | ||
| + | pi@Pi4Test: | ||
| + | Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub | ||
| + | Bus 001 Device 006: ID 1d50:606f OpenMoko, Inc. Geschwister Schneider CAN adapter | ||
| + | Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub | ||
| + | Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub | ||
| + | </ | ||
| + | ===== SBC ===== | ||
| + | * :!: Seit Bookworm gibt es eine neue CAN Konfiguration! :!: \\ Ich habe dazu auch ein extra Video gemacht \\ https:// | ||
| + | * Im aktuellen **MainSail OS** ist das schon fertig eingebunden. Ihr braucht also an dieser stelle nur \\ '' | ||
| + | * Bei **anderen Images** (Vorausgesetzt >= Bookworm) könnte ihr die Konfig so anlegen: | ||
| + | * Konfigurationsdateien erstellen \\ '' | ||
| + | [Match] | ||
| + | Name=can* | ||
| + | [CAN] | ||
| + | BitRate=1M | ||
| + | [Link] | ||
| + | RequiredForOnline=no | ||
| + | </ | ||
| + | | ||
| + | * Konfigurationsdateien erstellen \\ '' | ||
| + | [Match] | ||
| + | OriginalName=can* | ||
| + | [Link] | ||
| + | TransmitQueueLength=128 | ||
| + | </ | ||
| + | * Dienst aktivieren \\ '' | ||
| + | * '' | ||
| + | * Reboot erforderlich \\ '' | ||
| + | * Prüfen | ||
| + | * '' | ||
| + | * '' | ||
| + | * Interface auf UP setzen \\ '' | ||
| + | ===== Can Query ===== | ||
| + | > **Hinweis** \\ 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: | ||
| + | * Klipper Dienst stoppen \\ '' | ||
| + | * '' | ||
| + | pi@Pi3Test: | ||
| + | Found canbus_uuid=c57dc3b70ff0, | ||
| + | Total 1 uuids found | ||
| + | </ | ||
| + | * Die <color # | ||
| + | * Wird bei diesem Schritt kein Board gefunden, hilft oft ein Reset am Board (entweder über Reset Taster oder 1x Strom weg und wieder dran) | ||
| + | |||
| + | |||
| + | | ||
| + | |||
| + | ===== kurzer Test ===== | ||
| + | Ob das Board korrekt mit Klipper läuft, lässt sich mit folgendem Befehl schnell testen: \\ '' | ||
| + | |||
| + | Der Pfad am Ende muss natürlich mit dem übereinstimmen, | ||
| + | |||
| + | Wenn ihr ein ''< | ||
| + | ===== Konfiguration ===== | ||
| + | * '' | ||
| + | * **Beispiel Konfiguration Octopus 1.1** \\ '' | ||
| + | * **Beispiel Konfiguration Octopus PRO 1.0** \\ '' | ||
| + | * **Beispiel Konfiguration Octopus PRO 1.1** \\ '' | ||
| + | * '' | ||
| + | canbus_uuid: | ||
| + | # | ||
| + | </ | ||
| + | * Die Zeile mit '' | ||
| + | * Die Zeile mit '' | ||
| + | * Die Zeile mit '' | ||
| + | * Klipper starten \\ '' | ||
| + | |||
| + | ===== Klipper Update ===== | ||
| + | > **Hinweis: | ||
| + | |||
| + | * Klipper Dienst stoppen \\ '' | ||
| + | * Alle CAN UUID's ermitteln \\ '' | ||
| + | pi@Pi3Test: | ||
| + | / | ||
| + | / | ||
| + | * Das Octopus Board per flshtool.py resetten. Welche UUID das Leviathan hat kann man bei mehreren Busteilnehmern leider nicht ohne weitere erkennen. \\ '' | ||
| + | pi@Pi3Test: | ||
| + | Sending bootloader jump command... | ||
| + | Bootloader request command sent | ||
| + | Flash Success</ | ||
| + | * Die Status LED sollte jetzt anfangen zu blinken | ||
| + | * Den Port ermitteln \\ '' | ||
| + | pi@Pi3Test: | ||
| + | [76418.167383] IPv6: ADDRCONF(NETDEV_CHANGE): | ||
| + | [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, | ||
| + | [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: | ||
| + | [76867.933761] usb 1-1.4: SerialNumber: | ||
| + | [76867.938929] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device | ||
| + | </ | ||
| + | * '' | ||
| + | * '' | ||
| + | * Klipper flashen \\ '' | ||
| + | * Klipper 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. | ||
| + | |||
| + | |||
| + | ==== STM32 Temperatur ==== | ||
| + | Der interne Temperatur Sensor des STM32 kann mit folgendem Konfig Schnibsel ausgelesen werden: | ||
| + | < | ||
| + | [temperature_sensor Levi] | ||
| + | sensor_type | ||
| + | sensor_mcu | ||
| + | </ | ||
| + | |||
| + | ===== Links ===== | ||
| + | * Github Repo \\ https:// | ||
| + | * Schaltplan \\ **Octopus** https:// | ||
| + | * Klipper Konfig \\ https:// | ||
