====== BTT SKR MINI E3 V3.0 (USB) ======
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 / STM32G0B0)! \\ Es gibt inzwischen auch ein Board mit der [[klipper_faq:flash_guide:stm32f401:btt_skr_mini_e3_v3.0.1|Version 3.0.1]], welches einen anderen Controller verwendet (Controller STM32F401)!
**SKR MINI E3 V3.0** \\ {{klipper_faq:flash_guide:stm32g0b1:pasted:20220924-090211.png}}
===== YouTube Video #82 =====
{{youtube>r0-uLBtp6Wo?half}}
\\
===== 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!
===== 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: \\ {{:klipper_faq:flash_guide:stm32g0b1:pasted:20240110-113211.png}}
* (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: \\ {{:klipper_faq:flash_guide:stm32g0b1:pasted:20240110-113640.png}}
^ 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!
===== Klipper flashen =====
> **Achtung** \\ Es gibt wohl auch SKR Mini V3.0 mit einem **STM32G0B0** Controller! Also vorher genau auf den Controller schauen. \\ {{:klipper_faq:flash_guide:stm32g0b1:pasted:20240119-173044.png}}
* ''cd ~/klipper''
* ''make menuconfig'' \\ :!: **Auf den verbauten Controller auf dem Board achten!** \\
[*] 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 (USB (on PA11/PA12)) --->
USB ids --->
() GPIO pins to set at micro-controller startup
* beenden mit ''Q'' und ''Y''
* Klipper kompilieren \\ ''make -j4''
* Eine SD-Karte mit FAT32 formatieren. Eine 32GB Karte hat bei mir funktioniert. Sollte eure Karte nicht funktionieren, versucht es mit einer Karte <= 4GB.
* Die Datei ''~/klipper/out/klipper.bin'' vom SBC auf die SD-Karte kopieren.
* Am einfachsten geht das mit MobaXTerm.
* Die Datei umbenennen von ''klipper.bin'' in ''firmware.bin''
* Das Board muss ausgeschaltet sein!
* SD-Karte in das SKR Board stecken und das Board wieder einschalten. Ob über die normale Stromversorgung oder USB spielt keine Rolle.
* Die Status LED blinkt kurz und nach ~10 Sekunden sollte Klipper geflasht sein.
* Das Board wieder stromlos machen
* Ggf. den SW-USB Jumper entfernen
* Die SD-Karte entnehmen und prüfen, ob die Datei umbenannt wurde in ''FIRMWARE.CUR''. Wenn dem so ist, sollte der Flashvorgang geklappt haben.
* Prüfen kann man das ebenfalls im SSH Terminal mit ''dmesg -HW'' \\
pi@Pi3Test:~ $ dmesg -HW
[Jan12 19:54] usb 1-1.5: new full-speed USB device number 7 using dwc_otg
[ +0.134564] usb 1-1.5: New USB device found, idVendor=1d50, idProduct=614e, bcdDevice= 1.00
[ +0.000026] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000008] usb 1-1.5: Product: stm32g0b1xx
[ +0.000007] usb 1-1.5: Manufacturer: Klipper
[ +0.000006] usb 1-1.5: SerialNumber: 4D0020000450415339373620
[ +0.001254] cdc_acm 1-1.5:1.0: ttyACM0: USB ACM device
===== 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. \\ {{:klipper_faq:flash_guide:stm32g0b1:pasted:20231111-152555.png}}
===== Konfig einspielen =====
* ''cd ~/printer_data/config''
* ''wget https://raw.githubusercontent.com/bigtreetech/BIGTREETECH-SKR-mini-E3/master/firmware/V3.0/Klipper/SKR-mini-E3-V3.0-klipper.cfg -O printer.cfg''
* ''nano ~/printer_data/config/printer.cfg''
* Die Zeile mit ''serial'' entsprechend mit dem ermittelten Pfad von oben anpassen \\ [mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_4D0020000450415339373620-if00
* ''[include mainsail.cfg]'' oben einfügen
* Speichern mit **STRG+X**, dann **Y** und **Enter**
===== 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''
* Die Einstellungen sind genauso wie im Kapitel [[klipper_faq:flash_guide:stm32g0b1:btt_skr_mini_e3_v3.0#klipper_flashen|Klipper flashen]]
* ''make flash -j4 FLASH_DEVICE=/dev/ttyACM0''
* Wie man an den Port (hier ttyACM0) kommt, ist [[klipper_faq:flash_guide:stm32g0b1:btt_skr_mini_e3_v3.0#port_ermitteln|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
==== ADXL345 (Input Shaper) ====
Ein ADXL345 Sensor für Input Shaper kann direkt an das Board angeschlossen werden.
* Anschluss am Expansion Port
^ 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 |
* Konfig Anpassung \\
[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
* **Test** in der MainSail Konsole mittels \\ ''ACCELEROMETER_QUERY'' \\ Als Ergebnis sollte in etwa sowas kommen: \\ ''accelerometer values (x, y, z): -1110.308913, 1184.329507, 11414.822920''
* Sollte der Test folgenden Fehler bringen ist die Verkabelung falsch! \\ ''Invalid adxl345 id (got 0 vs e5)''
==== 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:pasted:20240110-181130.png}}
* {{:klipper_faq:flash_guide:stm32g0b1:pasted:20240110-181151.png}}
* {{:klipper_faq:flash_guide:stm32g0b1:pasted:20240110-181217.png}}
===== Links =====
* https://github.com/bigtreetech/EBB
* https://docs.vorondesign.com/build/software/miniE3_v30_klipper.html
* https://www.youmaketech.com/how-to-install-klipper-on-the-skr-mini-e3-v3/
* https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/tree/master/hardware/BTT%20SKR%20MINI%20E3%20V3.0
* How to use Klipper on SKR-mini-E3-V3.0 \\ https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/tree/master/firmware/V3.0/Klipper
* Schaltplan \\ https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/blob/master/hardware/BTT%20SKR%20MINI%20E3%20V3.0/Hardware/BTT%20E3%20SKR%20MINI%20V3.0_SCH.pdf \\ https://raw.githubusercontent.com/bigtreetech/BIGTREETECH-SKR-mini-E3/master/hardware/BTT%20SKR%20MINI%20E3%20V3.0/Hardware/BTT%20E3%20SKR%20MINI%20V3.0_SCH.pdf
* Pinout \\ https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/blob/master/hardware/BTT%20SKR%20MINI%20E3%20V3.0/Hardware/BTT%20E3%20SKR%20MINI%20V3.0_PIN.pdf \\ https://raw.githubusercontent.com/bigtreetech/BIGTREETECH-SKR-mini-E3/master/hardware/BTT%20SKR%20MINI%20E3%20V3.0/Hardware/BTT%20E3%20SKR%20MINI%20V3.0_PIN.pdf
* Bootloader Kopien \\ https://github.com/GadgetAngel/BTT_SKR_13_14_14T_SD-DFU-Bootloader/tree/main/bootloader_bin/backed_up_original_bootloaders/SKR%20mini%20E3%20V3.0
* Firmware flashen \\ https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/tree/master/firmware/V3.0/Klipper
* BTT SKR Mini E3 V3 Einrichtungsanleitung \\ https://www.makenprint.uk/3d-printing/3d-printing-guides/3d-printer-mainboard-installation-guides/btt-skr-mini-e3-v3-guides/btt-skr-mini-e3-v3-setup-guide/
* ADXL345 Input Shaper Infos \\ https://www.reddit.com/r/klippers/comments/sazlvv/connecting_adxl345_to_skr_mini_e3_v20/