User Tools

Site Tools


klipper_faq:flash_guide:stm32g0b1:btt_skr_mini_e3_v3.0

This is an old revision of the document!


BTT SKR MINI E3 V3.0

ANLEITUNG AKTUELL NICHT GÜLTIG
Leider musste ich das Video “82 - Flash Guide - SKR Mini E3 V3.0 (USB)” offline nehmen. Ich musste heute bedauerlicherweise feststellen, dass die Flashmethode bei mir zwar funktioniert, aber vermutlich bei kaum einem anderen. Ich habe nämlich bei meinem Board eine Controller-Einstellung geändert, die den Flashvorgang wie im Video beschrieben erst ermöglicht. Und diese Einstellung kann man nur mit einem speziellen Adapter erledigen. Werde Teile des Videos neu aufnehmen und zeigen, wie man den ersten Flashvorgang (enttäuschenderweise doch) mit SD-Karte vornehmen muss. Hoffe das ich am WE dann ein Update Online stellen kann. Sorry
ANLEITUNG AKTUELL NICHT GÜLTIG

Schrittweise Anleitung, um das Bigtree Tech SKR Mini E3 V3.0 Board über USB in Betrieb zu nehmen.

Hinweise
Diese Anleitung gilt für das Board mit der Version 3.0 (Controller STM32G0B1)!
Es gibt inzwischen auch ein Board mit der Version 3.0.1, welches einen anderen Controller verwendet (Controller STM32F401)!

SKR MINI E3 V3.0

YouTube Video #82

LEIDER OFFLINE

Hinweise

  • SBC bedeutet in der Anleitung Single Board Computer. 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!

Version ermitteln

Wichtig
Die Versionen 3.0 und 3.0.1 haben unterschiedliche µController verbaut und sind von der Konfig teilweise nicht kompatibel!

Die Version kann man relativ einfach auf der Vorderseite nachsehen:

  • (1) Der µController muss ein STM32G0B1 sein
  • (2) Es gibt nur einen Button (Reset) auf dem Board
  • (3) Der Aufdruck zeigt V3.0

Stromversorgung

Auf dem Board gibt es einen Jumper, den man für die 5V USB Versorgung setzen kann:

Jumper (SW_USB) Stromversorgung Controller Verwendung
gesetzt 5V Stromversorgung über USB Anschluss Board liegt “auf dem Tisch”
NICHT gesetzt 5V Stromversorgung über 12/24V Stecker Board ist im Drucker eingebaut
Faustregel
Im Betrieb den 5V Jumper (SW_USB) immer abziehen!

Verkabelung

  • Ganz normale USB Verkabelung
  • GND & 12 bzw. 24V extra zum Board führen
  • Im Betrieb den SW_USB Jumper ziehen!

DFU Modus

Das Board lässt sich mit einem Stück Draht oder einem Jumperkabel sehr einfach in den DFU-Modus versetzen. Dieser Modus ermöglicht das direkte Flashen über den USB-Port (anstelle dem komplizierten SD Gehampel …). Das Board sollte dazu am besten ausgebaut vor euch lieben. Im Eingebauten und verkabelten Zustand geht es auch, ist dann aber ein wenig unhandlicher …

Den DFU-Modus kann man wie folgt aktivieren:

  • USB Stecker vom Board abziehen
  • Den Jumper SW_USB setzen, um das Board mit 5V vom USB-Port betreiben zu können. (Die 12V bzw. 24V brauchen wir dafür nicht)
  • Jetzt ein Jumperwire auf den SWD-Port setzen und zwar zwischen Pin 1 & 4.
    Oder um es anders zu beschreiben … Wenn der USB Stecker eingesteckt wird müssen diese beiden Pins verbunden sein.

  • im Terminal dmesg -HW
  • Das Board per USB an den SBC anschließen
  • Das Board meldet sich mit Product: DFU in FS Mode wenn der DFU-Modus aktiviert wurde:
    pi@Pi3Test:~/katapult $ dmesg -HW
    [Nov11 07:34] usb 1-1.5: new full-speed USB device number 28 using dwc_otg
    [  +0.133358] usb 1-1.5: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00
    [  +0.000036] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [  +0.000016] usb 1-1.5: Product: DFU in FS Mode
    [  +0.000012] usb 1-1.5: Manufacturer: STMicroelectronics
    [  +0.000012] usb 1-1.5: SerialNumber: 205637865341

Warum funktioniert das?
Dieser “Hack” verbindet die 3,3V von Pin1 mit dem SWCLK Pin4.

SWCLK ist zufällig auch der Boot0 Pin den man für das Aktivieren des DFU-Modus braucht. Und glücklicherweise ist da auch noch der Pulldown Widerstand R27 der einen Kurzschluss zwischen 3,3V und GND verhindert. :-)

Klipper flashen

Hinweis Original “SD”-Bootloader
Der originle Bootloader geht beim Einspielen von Klipper in diesem Fall verloren. Ein Update über SD-Karte ist damit also nicht mehr möglich. Für das Board kann man den “alten” Bootloader aber herunterladen und wieder flashen. Man kann den Urzustand also wieder herstellen - auch wenn das null Sinn macht ;-)
  • cd ~/klipper
  • make menuconfig
    [*] Enable extra low-level configuration options
        Micro-controller Architecture (STMicroelectronics STM32)  --->
        Processor model (STM32G0B1)  --->
        Bootloader offset (No bootloader)  --->
        Clock Reference (8 MHz crystal)  --->
        Communication interface (USB (on PA11/PA12))  --->
        USB ids  --->
    ()  GPIO pins to set at micro-controller startup
    • beenden mit Q und Y
  • Klipper kompilieren
    make -j4
  • Klipper flashen
    dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin
    Das Ergebnis sollte sein File downloaded successfully
  • Jetzt den Jumperwire wieder vom SWD Port abziehen!

Port ermitteln

  • Den USB Stecker abziehen
  • dmesg -HW starten
    pi@Pi3Test:~/klipper $ dmesg -HW
    [  +0.296899] usb 1-1.5: new full-speed USB device number 33 using dwc_otg
    [  +0.134540] usb 1-1.5: New USB device found, idVendor=1d50, idProduct=614e, bcdDevice= 1.00
    [  +0.000038] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [  +0.000017] usb 1-1.5: Product: stm32g0b1xx
    [  +0.000012] usb 1-1.5: Manufacturer: Klipper
    [  +0.000012] usb 1-1.5: SerialNumber: 4D0020000450415339373620
    [  +0.001643] cdc_acm 1-1.5:1.0: ttyACM0: USB ACM device
    • Wir brauchen die Information mit tty… also in diesem Fall ttyACM0
    • STRG+C drücken, um die Meldungen zu beenden
  • Den zugehörigen Link ermitteln
    ls -lR /dev/ | grep -v '\->\s../tty' | grep -e 'tty[[:alpha:]]' -e serial
    • Wir brauchen die Info unter /dev/serial/by-id: :
      lrwxrwxrwx 1 root root 13 Nov 11 15:15 usb-Klipper_stm32g0b1xx_4D0020000450415339373620-if00 → ../../ttyACM0
    • Achte darauf das am Ende die gleiche tty Bezeichnung steht wie sie im vorherigen Schritt ermittelt wurde (hier also ttyACM0)
    • Was für für die Konfig brauchen ist dann am Ende:
      /dev/serial/by-id/usb-Klipper_stm32g0b1xx_4D0020000450415339373620-if00

kurzer 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_stm32g0b1xx_4D0020000450415339373620-if00

Wichtig
Der Pfad am Ende muss natürlich mit dem übereinstimmen was ihr im vorherigen Schritt ermittelt habt!

Wenn ihr ein connected am Anfang des Textes seht, ist das Board richtig geflasht.

Konfig einspielen

Klipper Update

Das Update der Klipper Firmware wird normal ja im eingebauten Zustand durchgeführt. Da das Board dann eh mit einer Versorgungsspannung betrieben wird, ist der SW-USB Jumper nicht nötig!

  • Klipper Dienst stoppen
    sudo systemctl stop klipper.service
  • cd ~/klipper && make menuconfig
  • make flash -j4 FLASH_DEVICE=/dev/ttyACM0
    • Wie man an den Port (hier ttyACM0) kommt, ist hier beschrieben
    • Am Ende kann es zu einem Fehler kommen. Davon nicht irritieren lassen. Wichtig ist diese Zeile:
      File downloaded successfully
  • Einmal Reset-Taste drücken am Board hilft :-)
  • Klipper Dienst starten
    sudo systemctl start klipper.service

Sonstiges

Bootloader wiederherstellen

  • st-flash –connect-under-reset write SKR-MINI-E3-V3.0-bootloader-and-firmware.bin 0x8000000

ADXL

ADXL345 Pin SKR E3 v3.0 SPI Port Pin
GND GND
VCC +5V
CS NSS
INT1 N/A
INT2 N/A
SDO MISO
SDA MOSI
SCL CLK
download
[adxl345]
axes_map     : x,y,z
cs_pin       : PD9
spi_bus      : spi1

[resonance_tester]
accel_chip   : adxl345
probe_points : 150, 150, 20 # Center of your bed, raised up a little 

https://www.reddit.com/r/klippers/comments/sazlvv/connecting_adxl345_to_skr_mini_e3_v20/

When you save and restart, make sure your ADXL is NOT connected yet. Wait for it to display “Klipper state: Ready” in the console on Mainsail or whatever you're using, then connect up the chip. You should then be able to run:

ACCELEROMETER_QUERY

And it should return something like this:

accelerometer values (x, y, z): -1110.308913, 1184.329507, 11414.822920

If you instead get something like this:

Invalid adxl345 id (got 0 vs e5).This is generally indicative of connection problems(e.g. faulty wiring) or a faulty adxl345 chipMake sure your wiring is still firmly connected.

I got this error and spent too much time trying to figure out where I went wrong only to find that my CS Pin wire had disconnected from the SKR. Once I restored that connection, everything worked as it should. Hopefully this helps someone. As a side note, this board does NOT support more than one ADXL345 chip unless you disconnect your LCD screen and use the EXP1 Port or something similar as the board only has 1 dedicated SPI port. You're on your own on that endeavor hehe…

Verbindungen

Type Notes
USB Default PA11/PA12
Seriell UART1 PA10/PA9
UART2 PA2/PA3
CAN PB8/PB9

Teaser USB/CAN Bridge

  • 3,3V Buskoppler verwenden
    • Beispiel: SN65HVD23x

klipper_faq/flash_guide/stm32g0b1/btt_skr_mini_e3_v3.0.1705083314.txt.gz · Last modified: 2024/01/12 19:15 by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki