klipper_faq:can:49_-_usb_buskoppler
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
klipper_faq:can:49_-_usb_buskoppler [2023/11/04 20:35] – removed - external edit (Unknown date) 127.0.0.1 | klipper_faq:can:49_-_usb_buskoppler [2023/12/26 10:33] (current) – [CAN_OUT] dominik | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== USB Buskoppler ====== | ||
+ | Dies ist das zweite Video zu meiner Klipper CAN Reihe. In diesem Video erkläre ich euch wie USB Bus Koppler funktionieren und wie man sie einrichtet. Zudem wird erklärt, wie ihr neue Firmware kompilieren könnt und wie ihr beim U2C / UTOC Board die extra " | ||
+ | |||
+ | ===== YouTube Video #49 ===== | ||
+ | {{youtube> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
+ | ===== Übersicht ===== | ||
+ | Auswahl einer Liste mit verfügbaren USB Buskopplern | ||
+ | |||
+ | ==== BTT U2C ==== | ||
+ | {{: | ||
+ | |||
+ | === U2C 1.x === | ||
+ | * Prozessor Typ : **STM32< | ||
+ | * [[klipper_faq: | ||
+ | * [[klipper_faq: | ||
+ | * https:// | ||
+ | |||
+ | === U2C 2.x === | ||
+ | * Prozessor Typ : **STM32< | ||
+ | * [[klipper_faq: | ||
+ | * [[klipper_faq: | ||
+ | * Informationen zum Update Problem \\ https:// | ||
+ | * alternative Firmware für U2C 2.1 \\ https:// | ||
+ | |||
+ | * alte Firmware Infos \\ https:// | ||
+ | * neue Firmware Infos \\ https:// | ||
+ | |||
+ | ==== UCAN ==== | ||
+ | {{: | ||
+ | |||
+ | * Prozessor Typ : **STM32< | ||
+ | * [[klipper_faq: | ||
+ | * [[klipper_faq: | ||
+ | * leider keine weiteren Board-Infos zu finden von Fystec | ||
+ | |||
+ | ==== Makerbase UTC ==== | ||
+ | {{youtube_ideen: | ||
+ | |||
+ | * Prozessor Typ : **STM32< | ||
+ | * [[klipper_faq: | ||
+ | * [[klipper_faq: | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | |||
+ | ==== Makerbase CANable-MKS ==== | ||
+ | {{youtube_ideen: | ||
+ | |||
+ | * Prozessor Typ : **STM32< | ||
+ | * [[klipper_faq: | ||
+ | * [[klipper_faq: | ||
+ | * https:// | ||
+ | ==== Mellow Fly UTOC ==== | ||
+ | {{youtube_ideen: | ||
+ | |||
+ | * Prozessor Typ : **STM32< | ||
+ | * [[klipper_faq: | ||
+ | * [[klipper_faq: | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * eine vorkompilierte Firmware findet sich hier \\ https:// | ||
+ | |||
+ | |||
+ | ==== CAN Druckerboard ==== | ||
+ | Auch normale Druckerboard oder Kopfboards können als USB Koppler verwendet werden. Wichtig ist dabei folgendes: | ||
+ | * Das Board muss getrennte Pins für CAN und USB aufweisen | ||
+ | * Das Board sollte im Idealfall schon einen Transceiver besitzen (Das trifft auf alle Kopfboards zu - kaum aber auf normale Druckerboards) | ||
+ | |||
+ | Ein EBB36 oder EBB42 kann also recht problemlos dafür verwendet werden, um einen USB Bus Koppler zu ersetzen - auch wenn dabei natürlich eine Menge Funktionen von dem Board ungenutzt bleiben. | ||
+ | |||
+ | Das ganze funktioniert deshalb, weil Klipper in dem Fall als **USB to CAN bus bridge** eingesetzt wird. | ||
+ | |||
+ | ===== Linux Tools ===== | ||
+ | * in der Linux SSH Konsole folgendes ausführen: \\ '' | ||
+ | * Gerät anstecken über USB | ||
+ | * Ergebnis: \\ <code bash> | ||
+ | pi@TestPi:~ $ tail -f / | ||
+ | Apr 30 10:38:51 TestPi kernel: [ 7313.123004] usb 1-1.4: new full-speed USB device number 7 using dwc_otg | ||
+ | Apr 30 10:38:51 TestPi kernel: [ 7313.256404] usb 1-1.4: New USB device found, idVendor=1d50, | ||
+ | Apr 30 10:38:51 TestPi kernel: [ 7313.256442] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 | ||
+ | Apr 30 10:38:51 TestPi kernel: [ 7313.256458] usb 1-1.4: Product: candleLight USB to CAN adapter | ||
+ | Apr 30 10:38:51 TestPi kernel: [ 7313.256471] usb 1-1.4: Manufacturer: | ||
+ | Apr 30 10:38:51 TestPi kernel: [ 7313.256483] usb 1-1.4: SerialNumber: | ||
+ | Apr 30 10:38:51 TestPi kernel: [ 7313.258646] gs_usb 1-1.4:1.0: Configuring for 1 interfaces</ | ||
+ | * Alternativ auch '' | ||
+ | * auch '' | ||
+ | Bus 001 Device 007: ID 1d50:606f OpenMoko, Inc. Geschwister Schneider CAN adapter</ | ||
+ | |||
+ | ===== Netzwerk einrichten ===== | ||
+ | Damit der Adapter im Betriebsystem auch erkannt wird muss eine Netzwerk Interface Konfiguration (''/ | ||
+ | |||
+ | * '' | ||
+ | * folgenden Inhalt in der Datei einfügen : \\ < | ||
+ | auto can0 | ||
+ | iface can0 can static | ||
+ | bitrate 500000 | ||
+ | up ifconfig $IFACE txqueuelen 1024 | ||
+ | </ | ||
+ | * Editor mit **STRG + x -> dann Y -> dann Enter** verlasen | ||
+ | * System neu starten mittels \\ '' | ||
+ | * Nach dem Reboot sollte der Befehl '' | ||
+ | can0: < | ||
+ | link/can | ||
+ | </ | ||
+ | * Wichtig dabei ist **state UP**. Wird hier ein DOWN angegeben, ist das Interface nicht betriebsbereit! | ||
+ | ==== txqueuelen ==== | ||
+ | " | ||
+ | |||
+ | Die txqueuelen-Einstellung bestimmt die maximale Anzahl von ausgehenden Netzwerkpaketen, | ||
+ | |||
+ | Die Angaben zu txqueuelen variieren von Anleitung zu Anleitung. Oft finden sich **Werte im Bereich von 256-1024**. Viel höher sollte man sicher auch nicht gehen. | ||
+ | |||
+ | ==== Netzwerk Restart ==== | ||
+ | Wenn der USB Stecker vom Buskoppler abgezogen wird, geht der CAN Bus sofort offline. Mittels '' | ||
+ | |||
+ | ===== Firmware ===== | ||
+ | Als Firmware für die USB Bus Koppler kann entweder candleLight oder Klipper (USB to CAN bus bridge) eingesetzt werden. Grundsätzlich würde ich eher auf die candleLight Version gehen. Denn die ist speziell für den Einsatz als USB Bus Koppler entwickelt worden. Zudem unterstützt sie (Stand Mai 2023) auch mehr Hardware als Klipper. | ||
+ | |||
+ | Ein weiterer Nachteil von Klipper sind nötige Firmware Updates. Es kommt von Zeit zu Zeit vor das ein Klipper Update relevant ist. Dann müsste auch der Buskoppler wieder mit einer Klipper Firmware upgedatet werden. | ||
+ | |||
+ | Ein Nachteil bei candleLight ist derzeit das es zwei Versionen gibt. Eine für den STM32F072 und eine für den STM32G0B1. Es gibt Bestrebungen diese beiden Versionen zusammenzuführen, | ||
+ | |||
+ | **Hinweis zu candleLight** \\ Leider gibt es nicht wirklich viele brauchbare Informationen welche candleLight Firmware nun genau genutzt werden muss. Wenn man candleLight kompiliert (ohne extra Parameter) entstehen 8-10 verschiedene Firmware Versionen. In der Erklärung zum Firmware kompilieren zu STM32F072 und STM32G0B1 gibt es jeweils eine (wenn auch unvollständige) Liste welcher Typ genutzt werden sollte. Wenn man das selber rausfinden möchte hier ein paar Tips: | ||
+ | * im Quellcode in der Datei '' | ||
+ | # the " | ||
+ | set(TGTF042_LIST " | ||
+ | set(TGTF072_LIST " | ||
+ | set(TGTF407_LIST " | ||
+ | set(TGTG0B1_LIST " | ||
+ | * Welche Variante man dann nimmt - also z.B. CANable_MKS - kann man aus der Datei '' | ||
+ | * Dann kann man auch mal in die aktuelle Firmware schauen. Die kann man für einige Koppler aus dem Netz laden, oder man extrahiert die Firmware selber. In der Firmware finden sich manchmal textuelle Hinweise, was für das Kompilieren verwendet wurde: '' | ||
+ | * Und zuletzt gibt es auf der Startseite von dem Github Projekt jeweils eine längere Liste mit Hinweisen, welches Board welchen Controller verwendet. Zusammen mit den oberen Hinweisen kann man dann auch oft herausfinden welche Kompile-Variante genutzt werden muss. | ||
+ | |||
+ | ==== candelight (STM32F072) ==== | ||
+ | * benötigte Pakete installieren \\ '' | ||
+ | * '' | ||
+ | * Repository von Github klonen \\ '' | ||
+ | * '' | ||
+ | * Vorbereitungen für das Kompilieren (Create Toolchain) \\ '' | ||
+ | * Kompilieren je nach verwendetem Adapter: | ||
+ | * **U2C 1.x** -> '' | ||
+ | * **UCAN** -> '' | ||
+ | * **Makerbase CANable-MKS** -> '' | ||
+ | * **Mellow Fly UTOC** -> <color # | ||
+ | |||
+ | ==== candelight (STM32G0B1) ==== | ||
+ | * benötigte Pakete installieren \\ '' | ||
+ | * '' | ||
+ | * Repository von Github klonen \\ '' | ||
+ | * '' | ||
+ | * Vorbereitungen für das Kompilieren (Create Toolchain) \\ '' | ||
+ | * Kompilieren je nach verwendetem Adapter: | ||
+ | * **U2C 2.x** -> '' | ||
+ | * **Makerbase UTC** -> '' | ||
+ | |||
+ | ==== Klipper (STM32F072) ==== | ||
+ | Klipper kann ebenfalls als Firmware für den Buskoppler verwendet werden. Hierbei kommt der USB/CAN Bridge Mode zum Einsatz, der in der Compile Konfiguration ausgewählt werden muss. Die folgende Anleitung zeigt **exemplarisch** wie das **für das U2C V1.x** funktioniert. Für andere Boards muss das CAN Interface ggf. angepasst werden! Hier sollte der Schaltplan zu Rate gezogen werden um die richtige Konfig zu ermitteln für die USB und CAN Pins! | ||
+ | |||
+ | Es wird hier auf den Einsatz von CanBoot verzichtet. Das macht die Installation nur unnötig komplex. | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | ==== Klipper (STM32G0B1) ==== | ||
+ | > **Hinweis** \\ Klipper kann bei diesem Controller noch nicht als USB/CAN Bridge verwendet werden. Die Pins PB5/PB6 stehen in der Klipper make Konfiguration nicht zur Auswahl! \\ Es blebt also nur die [[klipper_faq: | ||
+ | |||
+ | ==== Flashen ==== | ||
+ | Zum Flashen wird der DFU Mode verwendet. Dafür gibt es auf allen Boards immer einen BT0 oder Boot0 Taster. Um das Board in den DFU mode zu bekommen geht man wie folgt vor: | ||
+ | * Board vom USB-Port trennen | ||
+ | * BT0 bzw. Boot0 Taste drücken | ||
+ | * USB Verbindung wieder herstellen | ||
+ | * wenn alles geklappt hat, liefert ein '' | ||
+ | [13394.020063] usb 1-1.4: New USB device found, idVendor=0483, | ||
+ | [13394.020105] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 | ||
+ | [13394.020122] usb 1-1.4: Product: DFU in FS Mode | ||
+ | [13394.020134] usb 1-1.4: Manufacturer: | ||
+ | [13394.020146] usb 1-1.4: SerialNumber: | ||
+ | |||
+ | Das Board kann dann geflasht werden mit der passenden Firmware. | ||
+ | |||
+ | **candleLight** \\ | ||
+ | Hier findet man im Ordner '' | ||
+ | |||
+ | **Klipper** \\ | ||
+ | Wurde Klipper als Firmware für den Buskoppler kompiliert lautet der Flash Befehl wie folgt: \\ '' | ||
+ | |||
+ | **Hersteller Firmware** \\ | ||
+ | Wurde eine Hersteller Firmware aus dem Internet geladen lautet der Flash Befehl wie folgt: \\ '' | ||
+ | |||
+ | ===== U2C / UTOC extra Hardware ===== | ||
+ | Diese Boards haben extra 2 USB-Ports mitten auf dem Board. Es sei an dieser Stelle darauf hingewiesen, | ||
+ | Die Druckerboards werden dann mit einer Klipper Firmware kompiliert, wo die CAN Leitungen die gleichen sind wie die USB Leitungen. | ||
+ | Jetzt muss am Buskoppler ggf. noch der 120Ohm Widerstand gesetzt werden und vermutlich die VBUS Spannung (vorher am Druckerboard nachmessen, ob dort nichts anliegt !!). | ||
+ | |||
+ | {{youtube_ideen: | ||
+ | |||
+ | ==== Nachteile ==== | ||
+ | * Lange Zuleitung für CAN_TX, CAN_RX | ||
+ | * USB-Kabel gibt es als reine Ladekabel -> keine Verbindung | ||
+ | * Eigentlich unnötiger Aufwand ... Warum nicht gleich USB verwenden, wenn man ein USB-Kabel dran hat? | ||
+ | * **Spannung messen am USB BUS VBUS1 & VBUS2** (wenn das Druckerboard noch nicht angeschlossen ist) könnten am USB Stecker vom Druckerboard anliegen. Dann hätte man einen Kurzen zwischen VBUS U2C und VBUS vom Druckerboard! | ||
+ | * 120Ohm Terminierung beachten! | ||
+ | * In Summe zu viele Anschlussmöglichkeiten. Verwirrende Ports wie die beiden weißen z.B. | ||
+ | |||
+ | ==== Jumper ==== | ||
+ | * der Jumper ganz links zum USB-C-Port ist die Terminierung für das U2C selber (wenn benötigt) | ||
+ | * unterer USB-Port (zur Platine) ist der mittlere Jumper Block (VBUS1) | ||
+ | * oberer USB-Port ist der Block zum grünen Anschluss hin (VBUS2) | ||
+ | |||
+ | ==== CAN_OUT ==== | ||
+ | Die CAN_OUT " | ||
+ | - Die CAN Pins und USB Pins müssen übereinstimmen (Die CAN_RX und CAN_TX Daten werden dann über das USB-Kabel übertragen - aber nicht als USB Device !). Beispiel Spider Board: \\ {{youtube_ideen: | ||
+ | - Die USB Pins müssen direkt mit der USB Buchse verbunden sein (µController -> USB Buchse) | ||
+ | |||
+ | ===== Links ===== | ||
+ | * https:// | ||