User Tools

Site Tools


klipper_faq:flash_guide:stm32h743:btt_manta_m8n_usb

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:

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 Update

  • 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
  • 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 8-)

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

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)
klipper_faq/flash_guide/stm32h743/btt_manta_m8n_usb.txt · Last modified: 2024/02/25 20:04 by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki