Repetier server upload firmware auf drucker sd karte BTT SKR 2

Hallo,
nachdem ich gefühlt 100 mal die SD Karte in dem Drucker gesteckt hab um die Firmware richtig zu konfigurieren, hab ich die Funktion "Copy firmware as firmware.bin to sd card" hier gefunden:
https://forum.repetier.com/discussion/8701/zugriff-auf-die-interne-sd-vom-drucker



Und hatte das gleiche Problem wie in der Diskussion. Also hab ich die gleichen schritte unternommen, bin aber zu keinem Ergebnis gekommen.

Ab dem Punkt "lsusb" kommt bei mir:
Bus 001 Device 005: ID 0483:5740 STMicroelectronics Virtual COM Port
Bus 001 Device 004: ID 04e7:0020 Elo TouchSystems Touchscreen Interface (2700)
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Hab auch das neuste Pi image aufgespielt da ich ein Älteres drauf hatte.


Erst hab ich "STM32Fxxxx based boards with DfuSe" probiert leider ging da gar nichts, die Fehlermeldung musste ich erst mal finden ;)
"dfu-util: No DFU capable USB device availableHochladen beendet"

Firmware: Marlin 2.0.9.2
Board: BTT SKR 2
RPi: 3
Repetier-Server:  Pro 1.3.0 - Charon-23

Comments

  • Log dich per ssh auf den pi ein und gib mal
    mount
    ein. Dann siehst du was wohin gemounted ist. Dann mache ein
    ls -l /media/flash... je nachdem welche davon gemounted sind uns sieh nach ob da ein FRIEMWARE.CUR drin ist. Dann weist du, das es das richtige laufwerk ist. Wenn du mehrere Speichergeräte über usb verbindest kann sich der name aber ändern je nach Reihenfolge in der sie gefunden werden. Setzt voraus das das board die sd karte als Laufwerk anbietet - macht nicht jedes board. Alternativ sd karte raus in windows rein und einfach drauf kopieren.

    Für DFU upload was vom ST32F407 unterstützt wird, must du erst in den DFU Modus wechseln. Normal gibt es dazu eine boot und reset Taste. Boot Drücken und halten dann reset Drücken und loslassen und dann boot loslassen. Danach erscheint ein neues Gerät unter lsusb  mit der Kennung für DFU upload. Dann würde dfu upload klappen.
  • Mount hatte ich gemacht, leider gibt es kein /dev/sda1 wie bei dem anderen Thema.

    /dev/mmcblk0p2 on / type ext4 (rw,noatime)
    devtmpfs on /dev type devtmpfs (rw,relatime,size=413012k,nr_inodes=103253,mode=755)
    sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
    proc on /proc type proc (rw,relatime)
    securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
    devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
    tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
    tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
    tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
    cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
    cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
    none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
    cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
    cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
    cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
    cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
    cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
    cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
    cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
    cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
    systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=42,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
    configfs on /sys/kernel/config type configfs (rw,relatime)
    debugfs on /sys/kernel/debug type debugfs (rw,relatime)
    sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
    mqueue on /dev/mqueue type mqueue (rw,relatime)
    /dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
    tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=89256k,mode=700,uid=1000,gid=1000)


    ls -l /media/flash geht nicht da ls /media/ leer ist
    flash 1...2...3 wird aber auf der web oberfläche unter globale einstellungen -> ordner angezeigt.



    Also ein reset Knöpfchen ist schon dran am SKR 2:
    Aber das ist keine Option denn dann muss ich ja wieder zum Drucker hinlaufen ;)
  • Gib mal
    ls /dev/sd*

    an, um zu sehen ob linux überhaupt ein Laufwerk sieht. Wenn nicht wird die sd karte nicht als laufwerk angeboten (oder keine eingelegt). Da /media/ leer ist denke ich mal nicht das da eins existiert. Siehst du die sd karte, wenn du es unter windows verbindest?

    Läuft schon ein Marlin darauf? Bei einigen kann man mit
    M9999
    in den dfu modus wechseln. So machen wir das auch mit unserer Firmware bei den STM32F4xxx druckern, da die das mit dem sd anbieten nicht machen. zumindest nicht meine boards. Das kenne ich mehr von den LPC boards. Muss aber auch von marlin aus angeboten werden wenn es läuft denke ich.
  • edited April 2022
    Also bei ls /dev/sd* kommt:

    ls: cannot access '/dev/sd*': No such file or directory

    Unter Windows Mac im Finder wird wenn ich das Board über USB verbinde gar nichts angezeigt.
    Pronterface erkennt den Drucker aber ganz normal, Print von der SD geht auch.
    Wie gesagt es läuft Marlin 2.0.9.2, gibt es da noch eine spezielle Einstellung für die SD Karte?

    M9999
    Recv:17:35:35.843: echo:Unknown command: "M9999"



    Mal eine Verständnis Frage:
    Vorher war ein Arduino mega im Drucker, da lief der Firmware Upload über USB ganz problemlos
    Was hat sich geändert bzw. wieso geht das jetzt nicht mehr ?
  • Ursache ist wie die Bootloader des Prozessors arbeiten. Beim mega macht man einen Reset und er startet mit seriellem bootloader und man kann die Datei anbieten.
    ST Prozessoren können DFU (wenn boot und reset button vorhanden sind) oder von sd karte uploaden, aber wie man ja hier sieht bieten sie nicht als laufwerk an. Bei einem neustaret testen die ob eine sd karte im korrekten format (FAT) mit firmware.bin drauf ist und installieren die dann und benennen sie um. Bei anderen bietet Marlin sie noch als laufwerk an, so das man sie drauf kopieren kann ohne die Karte zu entnehmen. Ist bei dem Board aber wohl nicht der Fall. Due kann man mit wechsel zu 1200 baud in upload Modus versetzen, braucht aber ein anderes Protokoll wie 8 bit AVR Prozessoren. Und das sind nur einige Lösungen die einen bootloader haben. Kommt also stark aufs board an was wie gut geht.
  • edited April 2022
    Was ich oben noch vergessen hatte die variante vom skr ist STM32F407VGT6

    Also ich habs jetzt tatsächlich geschafft
    Keine Ahnung was jetzt genau der Grund war aber ich hab:

    - in Marlin #define SDSUPPORT aktiviert
    - dann irgendwo gelesen das es in platform.ini die BIGTREE_SKR_2_USB und die BIGTREE_SKR_2 version gibt. Worauf ich ewig zeit verbrachte beides in unterschiedlichen varianten zu compilieren. Bin dann aber bei BIGTREE_SKR_2_USB geblieben (hört sich passender an)
    - in der configuration_adv.h #define USB_FLASH_DRIVE_SUPPORT und #define USE_OTG_USB_HOST und #define MULTI_VOLUME aktiviert
    - danach hat man beim anschließen kurz das laufwerk gesehen ist aber sofort wieder verschwunden
    - dann hab ich einfach von Marlin von 2.0.9.2 auf 2.0.9.3 aktualisiert (nachdem ich das gelesen hatte: https://github.com/bigtreetech/SKR-2/issues/101)
    - #define SDSUPPORT aktiviert und an der configuration_adv.h gar nichts mehr geändert
    - ah und die seriellen  Ports getauscht weil die das in der standard config von BTT auch so hatten (#define SERIAL_PORT 1 und #define SERIAL_PORT_2 -1) https://github.com/bigtreetech/SKR-2/blob/master/Firmware/Marlin-bugfix-2.0.9.2.x/Marlin/Configuration.h
    - SD reingesteckt und es lief :)







  • Super. Also kann der Bootmanager nur das update beim reboot installieren, das Laufwerk muss aber die "alte" Firmware anbieten mit obigen Einstellungen. Gut zu wissen.
Sign In or Register to comment.