Table of Contents
BTT Manta M8P (USB)
Schrittweise Anleitung, um die BTT Manta Boards über USB in Betrieb zu nehmen.
Diese Anleitung ist auf folgende Boards anwendbar:
- Manta M8P V2.0
- Manta M8P V1.x
- Manta M5P
- Manta M4P
YouTube Video #90
Hinweise
- SBC bedeutet in der Anleitung Single Board Computer. Also meistens wohl ein Raspberry Pi.
- Es wird davon ausgegangen, dass auf dem SBC Klipper und MainSail eingerichtet ist.
- Ein Zugang zum SBC über SSH ist notwendig!
- In dieser Anleitung wird das BTT CB1 Modul verwendet. Inbetriebnahme siehe hier: BTT CB1
- Die Manta Boards lassen sich ebenfalls mit einem Raspberry Pi CM (Compute Module) betreiben. Damit funktionieren auch die CSI und DSI Ports!
Stromversorgung
- Im Betrieb wird das Board mit 12V oder 24V versorgt (Anschluss POWER + -)
- Das Board kann zum initialen Flashen alleine über den USB-C Port versorgt werden. Für diesen Fall muss der VUSB Jumper gesetzt werden!
- Das Board lässt sich auch mit der normalen Stromversorgung (POWER Anschluss) flashen.
- Für die Treiber gibt es einen extra Stromanschluss (HV, oder POWER MOTOR)
- Nicht das Board mit 24V und dem USB-C Port zusammen betreiben!
Verkabelung
- Stromversorgung über 24V / GND
- Eine extra USB Verkabelung ist nicht notwendig. Der STM32 Controller ist auf dem Manta Board direkt über USB angebunden!
Bootloader sichern
Den Original Bootloader - falls man den überhaupt für etwas gebrauchen kann - findet man hier:
- Manta M5P
nicht verfügbar - Manta M4P
nicht verfügbar
DFU Modus
- Das Board in den DFU Modus bringen
- Im Terminal auf Meldungen warten
dmesg -HW
- Jetzt die Boot0 Taste gedrückt halten, kurz die Reset Taste drücken und dann auch die Boot0 Taste wieder loslassen.
- Hinweis: Die Tasten befinden sich jeweils direkt in der Nähe des µControllers.
- Das Board meldet sich mit
Product: DFU in FS Mode
biqu@BTT-CB1:~$ dmesg -HW [Feb10 04:48] usb 2-1.4: USB disconnect, device number 3 [ +0.000558] gs_usb 2-1.4:1.0 can0: Couldnt shutdown device (err=-19) [ +0.632135] usb 2-1.4: new full-speed USB device number 4 using ehci-platform [ +0.216530] usb 2-1.4: not running at top speed; connect to a high speed hub [ +0.001484] usb 2-1.4: New USB device found, idVendor=0483, idProduct=df11, bcdDevice= 2.00 [ +0.000019] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000006] usb 2-1.4: Product: DFU in FS Mode [ +0.000006] usb 2-1.4: Manufacturer: STMicroelectronics [ +0.000004] usb 2-1.4: SerialNumber: 307734543231
- Die Meldung mag je nach Manta Board etwas variieren. Allerdings sollte dort immer was mit DFU und oder BOOTLOADER zu lesen sein.
STRG+C
drücken, um die Meldungen zu beenden
Klipper flashen
Hinweis
Wenn das Board mit USB betrieben wird, braucht es keinen extra Bootloader!
cd ~/klipper
make menuconfig
- Manta M8P V2.0
[*] Enable extra low-level configuration options Micro-controller Architecture (STMicroelectronics STM32) ---> Processor model (STM32H723) ---> Bootloader offset (No bootloader) ---> Clock Reference (25 MHz crystal) ---> Communication interface (USB (on PA11/PA12)) ---> USB ids ---> () GPIO pins to set at micro-controller startup
- Manta M8P V1.x, Manta M5P, Manta M4P
[*] 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
- Klipper kompilieren
make -j4
- Klipper flashen
dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin
biqu@BTT-CB1:~/klipper$ dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ dfu-util: Invalid DFU suffix signature dfu-util: A valid DFU suffix will be required in a future dfu-util release!!! Opening DFU capable USB device... ID 0483:df11 Run-time device DFU version 011a Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 011a Device returned transfer size 1024 DfuSe interface name: "Internal Flash " Performing mass erase, this can take a moment Downloading to address = 0x08000000, size = 28284 Download [=========================] 100% 28284 bytes Download done. File downloaded successfully dfu-util: can`t detach Resetting USB to switch back to runtime mode biqu@BTT-CB1:~/klipper$
- Das Ergebnis sollte sein
File downloaded successfully
Port ermitteln
dmesg -HW
starten
[Feb12 09:26] usb 2-1.4: USB disconnect, device number 5 [ +0.346204] usb 2-1.4: new full-speed USB device number 6 using ehci-platform [ +0.230545] usb 2-1.4: New USB device found, idVendor=1d50, idProduct=614e, bcdDevice= 1.00 [ +0.000030] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ +0.000010] usb 2-1.4: Product: stm32h723xx [ +0.000008] usb 2-1.4: Manufacturer: Klipper [ +0.000007] usb 2-1.4: SerialNumber: 1E0043001051313236343430 [ +0.001420] cdc_acm 2-1.4:1.0: ttyACM0: USB ACM device
- Reset Taste am Board 1x drücken
- 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 Feb 12 09:26 usb-Klipper_stm32h723xx_1E0043001051313236343430-if00 → ../../ttyACM0
- Achte darauf das am Ende die gleiche tty Bezeichnung steht wie sie im vorherigen Schritt ermittelt wurde (hier also ttyACM0)
- Was wir für die Konfig brauchen ist dann am Ende:
/dev/serial/by-id/usb-Klipper_stm32h723xx_1E0043001051313236343430-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_stm32h723xx_1E0043001051313236343430-if00
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.
Konfiguration
- Klipper stoppen
sudo systemctl stop klipper.service
cd ~/printer_data/config
- Konfiguration laden
- Beispiel Konfiguration M8P V1.0
wget https://raw.githubusercontent.com/bigtreetech/Manta-M8P/master/V1.0_V1.1/Firmware/Klipper/generic-bigtreetech-manta-m8p-V1_0.cfg -O printer.cfg
- Beispiel Konfiguration M8P V1.0 Voron
wget https://raw.githubusercontent.com/bigtreetech/Manta-M8P/master/V1.0_V1.1/Firmware/Klipper/generic-bigtreetech-manta-m8p-v1_0-voron2.cfg -O printer.cfg
- Beispiel Konfiguration M8P V1.1
wget https://raw.githubusercontent.com/bigtreetech/Manta-M8P/master/V1.0_V1.1/Firmware/Klipper/generic-bigtreetech-manta-m8p-V1_1.cfg -O printer.cfg
- Beispiel Konfiguration M8P V2.0
wget https://raw.githubusercontent.com/bigtreetech/Manta-M8P/master/V2.0/Firmware/generic-bigtreetech-manta-m8p-V2_0.cfg -O printer.cfg
- Beispiel Konfiguration M5P
wget https://raw.githubusercontent.com/bigtreetech/Manta-M5P/master/Firmware/Klipper/generic-bigtreetech-manta-m5p.cfg -O printer.cfg
- Beispiel Konfiguration M4P
wget https://raw.githubusercontent.com/bigtreetech/Manta-M4P/master/Firmware/Klipper/generic-bigtreetech-manta-m4p.cfg -O printer.cfg
- Beispiel Konfiguration M4P Voron
https://raw.githubusercontent.com/bigtreetech/Manta-M4P/master/Firmware/Klipper/generic-bigtreetech-manta-m4p-voron0.cfg -O printer.cfg
nano ~/printer_data/config/printer.cfg
[mcu] canbus_uuid: fa5ad324b369
- Unterhalb
[mcu]
die Zeile mitserial
löschen oder auskommentieren - Unterhalb
[mcu]
die Zeilecanbus_uuid
entsprechend mit der ermittelten UUID von oben einfügen
- Klipper starten
sudo systemctl start klipper.service
Klipper Update
- Klipper Dienst stoppen
sudo systemctl stop klipper.service
cd ~/klipper && make menuconfig
- Die Einstellungen sind genauso wie im Kapitel Klipper flashen
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
- Klipper Dienst starten
sudo systemctl start klipper.service
- Sollte sich das Board nicht melden, am besten den Drucker einmal stromlos machen und neu starten.
Fehler Failed to flash to /dev/ttyACM0: Error running dfu-util
Funktioniert nicht immer … Wenn nicht dann das hier:
cd ~/klipper/scripts
python3 -c 'import flash_usb as u; u.enter_bootloader("/dev/ttyACM0")'
dfu-util -R -a 0 -s 0x08000000:mass-erase:force -D ~/klipper/out/klipper.bin
Sonstiges
Diese Punkte sind nicht immer Bestandteil vom YouTube Video, aber nützlich
STM32 Temperatur
Der interne Temperatur Sensor des STM32 kann mit folgendem Konfig Schnibsel ausgelesen werden:
[temperature_sensor Levi] sensor_type : temperature_mcu sensor_mcu : mcu
ST-Link (SWD)
Das Board verfügt über einen SWD Port. Mit einem entsprechenden ST-Link kann das Board auch direkt geflasht werden.
ADXL345 (Input Shaper)
Alle Manta Boards haben einen 8-poligen SPI Anschluss an dem z.B. ein ADXL345 Sensor für Input Shaper betrieben werden kann. Der 8 polige Anschluss ist bei allen Boards gleich beschaltet, lediglich die Konfiguration unterscheidet sich in Klipper etwas.
ADXL345 Pin | Manta M8P V2.0 | Manta M8P V1.x | Manta M5P | Manta M4P | Pin Nr Stecker |
---|---|---|---|---|---|
GND | GND | GND | GND | GND Zeichen | 2, 8 |
VCC | 3.3 V | 3.3 V | 3.3 V | STM_3V3 | 7 |
CS | 345SPI-CS (PA15) | SPI2-CS (PC4) | SPI2-CS (PC9) | SPI_CS (PD9) | 3 |
INT1 | - | - | - | - | - |
INT2 | - | - | - | - | - |
SDO | 345SPI-MISO | MOT-MISO | LCDSD-MISO | SD-TF MISO | 6 |
SDA | 345SPI-MOSI | MOT-MOSI | LCDSD-MOSI | SD-TF MOSI | 5 |
SCL | 345SPI-SCK | MOT-SCK | LCDSD-SCK | SD-TF SCK | 4 |
- Konfiguration (cs_pin & spi_bus anpassen!)
[adxl345] axes_map : x,y,z cs_pin : <siehe Liste> spi_bus : <siehe Liste> [resonance_tester] accel_chip : adxl345 probe_points : 150, 150, 20 # Center of your bed, raised up a little
- Manta M8P V2.0
cs_pin : PA15 spi_bus : spi3a
- Manta M8P V1.x
cs_pin : PC4 spi_bus : spi2
- Manta M5P
cs_pin : PC9 spi_bus : spi2
- Manta M4P
cs_pin : PD9 spi_bus : spi1
- 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)
Links
- Github Repo
Manta M8P V2.0 https://github.com/bigtreetech/Manta-M8P/tree/master
Manta M8P V1.x https://github.com/bigtreetech/Manta-M8P/tree/master
Manta M5P https://github.com/bigtreetech/Manta-M5P/tree/master
Manta M4P https://github.com/bigtreetech/Manta-M4P/tree/master - Manual
Manta M8P V2.0 https://github.com/bigtreetech/Manta-M8P/blob/master/V2.0/BIGTREETECH%20MANTA%20M8P%20V2.0%20User%20Manual.pdf
Manta M8P V1.x https://github.com/bigtreetech/Manta-M8P/blob/master/V1.0_V1.1/BIGTREETECH%20MANTA%20M8P%20V1.0%26V1.1%20User%20Manual.pdf
Manta M5P https://github.com/bigtreetech/Manta-M5P/blob/master/BIGTREETECH%20MANTA%20M5P%20V1.0%20User%20Manual.pdf
Manta M4P https://github.com/bigtreetech/Manta-M4P/blob/master/BIGTREETECH_MANTA_M4P_User_Manual.pdf - Schaltplan
Manta M8P V2.0 https://github.com/bigtreetech/Manta-M8P/blob/master/V2.0/Hardware/BIGTREETECH%20MANTA%20M8P%20V2.0-SCH.pdf
Manta M8P V1.x https://github.com/bigtreetech/Manta-M8P/blob/master/V1.0_V1.1/Hardware/BIGTREETECH%20MANTA%20M8P%20V1.1-SCH.pdf
Manta M5P https://github.com/bigtreetech/Manta-M5P/blob/master/Hardware/BIGTREETECH%20MANTA%20M5P%20V1.0-SCH.pdf
Manta M4P https://github.com/bigtreetech/Manta-M4P/blob/master/Hardware/bigtreetech_manta_m4p_v2.1_220608_SCH.pdf - Bootlader Entry bei Bridge Mode
https://github.com/Klipper3d/klipper/blob/master/docs/Bootloader_Entry.md