> For the complete documentation index, see [llms.txt](https://taiphoon-com.gitbook.io/taiphoon.com-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://taiphoon-com.gitbook.io/taiphoon.com-docs/de/firmware/px4/flash-firmware.md).

# Firmware flashen

Der Morakot wird ab Werk mit ArduPilot ausgeliefert. Wenn Sie zu PX4 wechseln, führen Sie zunächst mit STM32CubeProgrammer über USB-DFU eine vollständige Chip-Löschung durch und flashen den PX4-Bootloader; anschließend flashen Sie mit QGroundControl (QGC) die PX4-Firmware.

## Vor dem Start

* Senden Sie eine E-Mail mit Flugcontrollermodell und Hardwareversion an <service@taiphoon.com.tw>, um die PX4-Bootloader-Datei (`.bin`) und die PX4-Firmware-Datei (`.px4`) für den Morakot zu erhalten.
* Laden Sie STM32CubeProgrammer von der [offiziellen ST-Website](https://www.st.com/en/development-tools/stm32cubeprog.html) herunter und installieren Sie es.
* Laden Sie QGroundControl von der [QGroundControl-Downloadseite](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html) herunter und installieren Sie es.
* Verwenden Sie ein datenfähiges USB-Kabel und schließen Sie es direkt an einen USB-Anschluss des Computers an, nicht über einen USB-Hub.

{% hint style="warning" %}
Entfernen Sie zunächst die Propeller. Die vollständige Chip-Löschung entfernt den gesamten Inhalt des Flash-Speichers des Flugcontrollers, einschließlich des Bootloaders und der ursprünglichen ArduPilot-Firmware. Halten Sie während des Flashens die USB-Verbindung aufrecht und warten Sie, bis das Programm fertig ist.
{% endhint %}

{% hint style="info" %}
Die Bildschirmabbildungen in diesem Artikel stammen aus STM32CubeProgrammer 2.20.0 und QGroundControl Daily v5.2.0-dev; in anderen Versionen können die Menübezeichnungen abweichen.
{% endhint %}

## 1. PX4-Bootloader per DFU flashen

{% stepper %}
{% step %}

### DFU-Modus aktivieren

Ziehen Sie zunächst das USB-Kabel ab, halten Sie die Boot-Taste des Flugcontrollers gedrückt und stecken Sie dann das USB-Kabel ein, damit der Flugcontroller in den DFU-Modus wechselt. Im Windows-Geräte-Manager erscheint unter „USB-Geräte“ ein DFU-Gerät; sein Name kann als **DFU in FS Mode** oder **STM32 BOOTLOADER** angezeigt werden.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/KRKxkOqxm0kYIlIAya1a/px4-dfu-01-device-manager.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Flugcontroller per USB verbinden

Öffnen Sie STM32CubeProgrammer, wählen Sie im Verbindungsbereich rechts **USB**, prüfen Sie, dass im Feld **Port** das Gerät aufgeführt ist (z. B. `USB1`), und klicken Sie dann auf **Connect**. Nach dem Verbinden wird oben rechts **Connected** angezeigt.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/UgHXlev02oDwuBqMKm9x/px4-dfu-02-usb-port.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/wp6lrGfaXEuxtWGWJ4wM/px4-dfu-03-connected.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Vollständige Chip-Löschung

Klicken Sie links auf das zweite Symbol, um zur Seite **Erasing & Programming** zu wechseln, und klicken Sie im Reiter **Erase flash memory** auf **Full chip erase**. Klicken Sie im Bestätigungsfenster (Are you sure you want to erase full chip flash memory?) auf **OK**, warten Sie, bis `Mass erase command correctly executed.` angezeigt wird, und klicken Sie dann auf **OK**.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/RAF8OlPGMt15kmHW6r6h/px4-dfu-04-erasing-programming.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/etVtm077W1kcgtIIiB5n/px4-dfu-05-full-chip-erase-confirm.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/SRywc64yzl7VaY9PosoT/px4-dfu-06-full-chip-erase-complete.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Bootloader-Datei öffnen

Klicken Sie links auf das erste Symbol, um zur Seite **Memory & File editing** zurückzukehren, klicken Sie in der Reiterleiste auf **+**, wählen Sie **Open file**, wählen Sie die Bootloader-Datei (z. B. `morakot_v6_bootloader.bin`) und klicken Sie dann auf **Öffnen**.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/RdRjvfuMD5oAOfqr25cc/px4-dfu-07-open-file-menu.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/USVGArYRBep5XzjI3X6R/px4-dfu-08-open-bootloader.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Bootloader flashen

Prüfen Sie, dass im neuen Reiter der Dateiname des Bootloaders angezeigt wird, und klicken Sie auf **Download**. Im Log werden die Schreibadresse `Address : 0x08000000` und der Flash-Fortschritt angezeigt.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/5dI5J1s3QO06OSht1la0/px4-dfu-09-bootloader-loaded.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/KPoElTohvK6J2KnhD83K/px4-dfu-10-download-progress.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Flashen abschließen

Wenn **File download complete** angezeigt wird, klicken Sie auf **OK**. Klicken Sie auf **Disconnect**, um die Verbindung zu beenden, und ziehen Sie dann das USB-Kabel ab.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/8ao0Ir6xR2p84PR1m0qS/px4-dfu-11-download-complete.png" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## 2. PX4-Firmware mit QGroundControl flashen

Videodemonstration: PX4-Firmware mit QGroundControl flashen. Das Fenster zur Auswahl der Firmware-Datei ist im Video nicht enthalten; siehe den Screenshot in Schritt 4 unten.

{% embed url="<https://firebasestorage.googleapis.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmvFqg0h5Ob1pRXspm7Yi%2Fuploads%2FP9EpkO7yN0aQYShpLYTF%2Fpx4-qgc-flash-firmware.mp4?alt=media&token=d93a7240-46b7-4e2c-ba5f-7e267bc524af>" %}

{% stepper %}
{% step %}

### Firmware-Seite öffnen

Öffnen Sie QGC, klicken Sie oben links auf das Q-Symbol, wählen Sie **Configure** und klicken Sie dann links auf **Firmware**.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/no9zumD774TOAp9DJpMz/px4-qgc-01-q-menu.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Flugcontroller verbinden und Flashen starten

Verbinden Sie den Flugcontroller per USB und klicken Sie auf **Flash**, sobald das Gerät im Dropdown-Menü erscheint.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/g0sded2fqzVlWrnRjyu3/px4-qgc-02-device-selected.png" alt=""><figcaption></figcaption></figure>

Wenn `Now unplug your device and plug it back in to enter bootloader mode.` angezeigt wird, ziehen Sie das USB-Kabel ab und stecken Sie es wieder ein.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/9AyAOpzb0XhoYOpTman7/px4-qgc-03-replug.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Benutzerdefinierte Firmware-Datei auswählen

Wenn das Fenster **Firmware Setup** erscheint, wählen Sie **PX4 Pro**, aktivieren Sie **Advanced settings**, wählen Sie im Versions-Dropdown-Menü **Custom firmware file...** und klicken Sie dann auf **Ok**.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/T13iRE9tyxn2uUBYcfX8/px4-qgc-04-firmware-setup.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/bpgwk19qk4RNFYKOU04z/px4-qgc-05-custom-firmware.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### PX4-Firmware-Datei auswählen

Wählen Sie im Fenster **Select Firmware File** die `.px4`-Firmware-Datei und klicken Sie auf **Öffnen**.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/PF8kGW61EWQJB4sSLCkQ/px4-qgc-06-select-px4-file.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Auf den Abschluss des Flashens warten

QGC zeigt nacheinander Folgendes an; ziehen Sie das USB-Kabel während des Flashens nicht ab.

1. `Erasing previous program...`
2. `Programming new version...`
3. `Verifying program...`
4. `Rebooting board`
5. Wenn **Upgrade complete** angezeigt wird, ist der Vorgang abgeschlossen.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/i9UF3yAsyvclySnr5Qri/px4-qgc-07-flashing.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/tD4EQs1TTe8ywEkRDwf8/px4-qgc-08-upgrade-complete.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Firmware-Version prüfen

Nachdem der Flugcontroller neu gestartet und mit QGC verbunden ist, prüfen Sie unter **Summary** die **Firmware Version**.

<figure><img src="https://content.gitbook.com/content/LGIboFrNXLJPJJ0guqxf/blobs/QVyByjlMp3counRXqbvv/px4-qgc-09-summary.png" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

{% hint style="info" %}

* Wenn `Error: Open failed on port ...` oder `Upgrade cancelled` angezeigt wird, schließen Sie den Flugcontroller gemäß dem Hinweis von QGC direkt an einen USB-Anschluss des Computers an (nicht über einen USB-Hub), versorgen Sie ihn nur über USB ohne angeschlossenen Akku und flashen Sie erneut.
* Wenn QGC nach dem Flashen oder einem Neustart dauerhaft `Disconnected` anzeigt, schließen Sie QGC und öffnen Sie es erneut.
  {% endhint %}

## Weitere Einrichtung

Wechseln Sie zur [Ersteinrichtung](/taiphoon.com-docs/de/firmware/px4/first-setup.md).
