Deutsch · English
An unofficial macOS and Windows firmware updater for the Logitech Bolt USB receiver.
Entstanden, weil ein Bolt-Empfänger mit älterer Firmware an der PS5 nicht funktionierte.
Warning
Dieses Projekt ist experimentell und nicht von Logitech entwickelt, geprüft oder unterstützt. Ein unterbrochener oder ungeeigneter Firmware-Flash kann den Empfänger unbrauchbar machen. Verwende das Tool auf eigene Verantwortung und nach Möglichkeit zunächst mit einem entbehrlichen Testempfänger.
BoltUpdateTool bietet native Apps für macOS (SwiftUI) und Windows (WPF/.NET). Es erkennt einen Logitech-Bolt-Empfänger, liest dessen Firmwareinformationen über HID++ aus und überträgt ein vom Nutzer ausgewähltes, signiertes Firmwarepaket. Die Firmware selbst ist nicht Bestandteil dieses Repositorys und wird von den Apps auch nicht aus dem Internet geladen.
Die App unterstützt den vollständigen Aktualisierungsablauf:
- Bolt-Empfänger im normalen Betriebsmodus erkennen
- installierte Firmwarekomponenten auslesen
- zwei ausgewählte DFU-Dateien validieren
- den Empfänger in den Bootloader versetzen
- Applikations- und Funk-Firmware übertragen
- den Empfänger neu starten und die installierte Version prüfen
Der Fortschrittsbalken bleibt während des Flashens sichtbar. Wenn der automatische Wechsel in den Bootloader nicht sofort erkannt wird, führt die App verständlich durch das Abziehen und erneute Einstecken des Empfängers.
Ich habe dieses Tool gebaut, weil mein Logitech-Bolt-Empfänger mit seiner älteren Firmware an
der PS5 nicht funktionierte. Nach dem Update auf die Applikationsfirmware MPR05.03_B0020 und
die Funkfirmware 00.00_B013E funktionierte er bei mir.
Wenn dein Logitech-Bolt-Empfänger an der PlayStation 5 nicht funktioniert, kann ein Firmwareupdate helfen. Die Firmware ist nicht enthalten und die Kompatibilität kann je nach Gerät abweichen. Das Projekt ist inoffiziell und steht nicht mit Logitech oder Sony in Verbindung.
- Hardware-getestet mit Logitech Bolt USB Receiver
- Native Apps für macOS und Windows
- Lokale Verarbeitung ohne Telemetrie oder Netzwerkzugriff
- Firmware muss manuell ausgewählt werden
- Kein absichtlicher Downgrade-Modus
- Windows-Versionen für ARM64 und 32-Bit-x86 verfügbar; natives x64 ist noch nicht veröffentlicht
Obwohl der praktische Updateablauf getestet wurde, sollte die App weiterhin als experimentell betrachtet werden. Unterschiedliche Hardware- oder Firmware-Revisionen können sich anders verhalten.
| Zustand | USB Vendor ID | USB Product ID | Protokoll |
|---|---|---|---|
| Normalbetrieb | 046D |
C548 |
HID++ 1.0 |
| Bootloader | 046D |
AB07 |
HID++ 2.0 |
Im Normalbetrieb wird die Logitech-spezifische HID-Schnittstelle mit Usage Page FF00 und
Usage 0001 verwendet. Die übrigen HID-Schnittstellen des Empfängers gehören unter anderem zu
Tastatur-, Maus- und Consumer-Control-Funktionen und sind für das Update nicht geeignet.
Andere Logitech-Empfänger, Unifying-Empfänger und beliebige Geräte mit abweichenden IDs werden nicht unterstützt.
Zum Ausführen:
- macOS 26.0 oder neuer oder eine kompatible Windows-10/11-Installation
- Logitech Bolt USB Receiver
- zwei zueinander passende, signierte Bolt-DFU-Dateien
- eine stabile, direkte USB-Verbindung
Zum Bauen:
- Xcode 26 oder neuer
- Swift 5 Language Mode
- ein für macOS konfiguriertes Apple-Developer-Team, falls die App signiert oder notarisiert verteilt werden soll
- .NET 10 SDK unter Windows für die WPF-App
Das derzeitige Deployment Target der macOS-App ist macOS 26.0. Windows-Downloads sind für ARM64 und 32-Bit-x86 verfügbar. Beide benötigen die zur Architektur passende .NET 10 Desktop Runtime.
| Plattform | Download | Hinweise |
|---|---|---|
| macOS | BoltUpdateTool 1.0.0 | Universal, Developer-ID-signiert und notarisiert |
| Windows ARM64 | ZIP herunterladen | Benötigt .NET 10 Desktop Runtime ARM64; nicht signiert |
| Windows x86 (32 Bit) | ZIP herunterladen | Benötigt .NET 10 Desktop Runtime x86; nicht signiert |
Die Windows-Apps sind noch nicht mit Authenticode signiert. Windows SmartScreen kann deshalb eine Warnung anzeigen. Prüfe vor dem Start die beim jeweiligen Download veröffentlichte SHA-256-Prüfsumme. Die x86-Version ist eine 32-Bit-App und läuft auch auf kompatiblen x64-Windows-Installationen; ein nativer x64-Build ist noch nicht veröffentlicht.
BoltUpdateTool erwartet zwei entpackte .dfu-Dateien, die gemeinsam in der Dateiauswahl
markiert werden:
- die Applikations-Firmware des Empfängers
- die zugehörige Funk-/Sekundär-Firmware
Eine ZIP-Datei kann nicht direkt ausgewählt werden. Entpacke das rechtmäßig bezogene Firmwarepaket vorher und wähle anschließend beide DFU-Dateien gleichzeitig aus.
Ein Firmwarepaket, das mit diesem Tool verwendet wurde, ist bei diesem externen Filehoster verfügbar:
Die Dateien werden von einem externen Filehoster bereitgestellt. Ich bin weder Eigentümer noch Anbieter dieser Dateien, habe keine Kontrolle über deren Inhalt und stehe weder mit dem Filehoster noch mit Logitech in Verbindung. Der Link wird lediglich als Hinweis bereitgestellt, ohne Garantie für Verfügbarkeit, Echtheit, Sicherheit oder Kompatibilität. Alle Rechte an der Firmware verbleiben bei den jeweiligen Rechteinhabern. Stelle vor dem Herunterladen oder Verwenden sicher, dass du alle anwendbaren Lizenzen und Bedingungen einhältst.
Die App prüft unter anderem:
- Dateiendung und plausible Dateigröße
- erwartete Bolt-DFU-Kennung
- unterschiedliche und zueinander passende Firmware-Entitäten
- Applikations- und Funkkomponente als vollständiges Paar
Diese Prüfungen reduzieren versehentliche Falschauswahlen, können aber nicht garantieren, dass ein Paket zu jeder Hardware-Revision passt. Verwende ausschließlich signierte Firmware aus einer Quelle, zu deren Nutzung du berechtigt bist.
- Schließe Anwendungen, die auf den Empfänger zugreifen können, beispielsweise Logi Options+.
- Verbinde den Bolt-Empfänger möglichst direkt mit dem Computer.
- Starte BoltUpdateTool.
- Prüfe die angezeigten Firmwareinformationen.
- Klicke bei den Firmwaredateien auf Change files.
- Wähle beide zusammengehörigen
.dfu-Dateien gleichzeitig aus. - Prüfe die erkannten Versionsnummern.
- Starte das Update mit Update receiver.
- Ziehe den Empfänger nur dann ab und stecke ihn wieder ein, wenn die App ausdrücklich dazu auffordert.
- Warte auf die erfolgreiche Abschlussprüfung.
Während Firmwaredaten geschrieben werden, darf die USB-Verbindung nicht getrennt und der Computer nicht ausgeschaltet werden.
Im Normalbetrieb kommuniziert die App über HID++ 1.0 mit dem Empfänger. Über das Register F5
wird der signierte DFU-Modus vorbereitet. Danach meldet sich das Gerät mit der Bootloader-PID
AB07 neu an.
Im Bootloader verwendet BoltUpdateTool HID++ 2.0 und die DFU-Funktion 0x00D0. Die Images
werden paketweise übertragen, bestätigt und anschließend aktiviert. Danach wartet die App
erneut auf die Runtime-PID C548 und liest die Firmwareinformationen zur Kontrolle aus.
C548 Runtime
│ HID++ 1.0 / DFU vorbereiten
▼
AB07 Bootloader
│ HID++ 2.0 / Firmware übertragen
▼
C548 Runtime
Versionen erneut auslesen
- Bolt-Empfänger abziehen und erneut verbinden
- einen direkten USB-Port statt eines instabilen Hubs verwenden
- Logi Options+, Logitech Firmware Update Tool und ähnliche Programme vollständig beenden
- mit Refresh info erneut suchen
- prüfen, ob tatsächlich ein Bolt-Empfänger mit PID
C548angeschlossen ist
Der Empfänger kann während des DFU-Befehls kurz vollständig aus der Geräteliste verschwinden.
Folge der Anzeige in der App. Falls erforderlich, ziehe den Empfänger einmal ab und stecke ihn
wieder ein. Die App wartet anschließend auf die Bootloader-PID AB07.
Häufige Ursachen sind eine von einem anderen Programm belegte HID-Schnittstelle, ein ungeeigneter USB-Hub oder ein Gerätewechsel genau während des Befehls. Beende andere Logitech-Programme, verbinde den Empfänger direkt und versuche es erneut.
Ein solcher Fehler bedeutet nicht automatisch, dass bereits dieselbe Firmware installiert ist. Bei gleicher Version sollte die App den Nutzer darauf hinweisen, anstatt den Fehler als Versionsvergleich zu interpretieren.
Der Bootloader hat das Image bereits beim ersten Datenpaket zurückgewiesen. Das tritt beispielsweise bei einem nicht passenden, beschädigten oder nicht erlaubten Paket auf. Auch Downgrades können vom signierten Bootloader abgelehnt werden. Wiederholtes Flashen desselben Pakets umgeht diese Prüfung nicht.
Wähle genau zwei entpackte .dfu-Dateien desselben Firmwarepakets gleichzeitig aus. Eine
einzelne Datei, zwei Applikationsdateien oder zwei Sekundärdateien bilden kein gültiges Paket.
Repository klonen und das Projekt öffnen:
git clone https://github.com/FelixStopa/BoltUpdateTool.git
cd BoltUpdateTool
open BoltUpdateTool.xcodeprojWähle in Xcode das Scheme BoltUpdateTool und starte die App mit Run. Für eine lokale Entwicklungsfassung kann in den Signing-Einstellungen das eigene Development Team gewählt werden.
Alternativ lässt sich ein nicht signierter Test-Build über die Kommandozeile erstellen:
xcodebuild \
-project BoltUpdateTool.xcodeproj \
-scheme BoltUpdateTool \
-configuration Debug \
-destination 'platform=macOS' \
CODE_SIGNING_ALLOWED=NO \
buildAuf einem Windows-System mit installiertem .NET 10 SDK:
cd BoltUpdateToolWin
dotnet restore BoltUpdateTool.Windows.sln
dotnet build BoltUpdateTool.Windows.sln --configuration ReleaseWeitere Angaben zu Architektur, Veröffentlichung und Runtime stehen in BoltUpdateToolWin/README.md.
Die macOS-Unit-Tests prüfen insbesondere die Auswahl und Zuordnung der beiden Firmwaredateien:
xcodebuild \
-project BoltUpdateTool.xcodeproj \
-scheme BoltUpdateTool \
-destination 'platform=macOS' \
CODE_SIGNING_ALLOWED=NO \
-only-testing:BoltUpdateToolTests \
testDie Windows-Protokoll- und HID-Tests werden unter Windows so gestartet:
dotnet run --project BoltUpdateToolWin/tests/Bolt.Protocol.TestsEin Unit-Test ersetzt keinen Hardwaretest. Änderungen an HID++, DFU-Paketierung, Zeitüberschreitungen oder Geräteübergängen sollten immer zusätzlich mit einem Testempfänger geprüft werden.
BoltUpdateTool/
├── BoltUpdateTool/ SwiftUI-App und Zustandsmodell
│ ├── HIDPP/ HID++, Geräteerkennung und DFU
│ └── Assets.xcassets/ App-Icon und Farben
├── BoltUpdateToolTests/ Unit-Tests
├── BoltUpdateToolUITests/ UI-Test-Target
├── BoltUpdateTool.xcodeproj/ Xcode-Projekt
└── BoltUpdateToolWin/ Windows-WPF/.NET-Projekt und Tests
Wichtige Komponenten:
HIDDeviceManager: erkennt Runtime- und Bootloader-SchnittstellenHidpp10Session: Kommunikation und Firmwareinformationen im NormalbetriebHidpp20Session: Feature-Erkennung im BootloaderDfuFlasher: paketweise Übertragung und StatusauswertungFirmwarePackage: sichere Auswahl und Validierung der beiden DFU-DateienUpdaterViewModel: koordiniert Erkennung, Updateablauf, Fortschritt und Fehlermeldungen
BoltUpdateTool:
- sendet keine Telemetrie
- enthält keine Benutzerkonten
- lädt keine Firmware herunter
- überträgt keine Geräteinformationen ins Internet
Die Kommunikation findet lokal zwischen der App und dem USB-Empfänger statt. Links in der Oberfläche werden nur geöffnet, wenn der Nutzer darauf klickt.
Fehlerberichte und nachvollziehbare Verbesserungen sind willkommen. Bitte gib bei einem Hardwareproblem mindestens folgende Informationen an:
- Betriebssystemversion und Prozessorarchitektur
- Runtime- oder Bootloader-PID
- angezeigte Firmwareversionen
- vollständige Fehlermeldung ohne private Daten
- ob ein Hub oder Adapter verwendet wurde
Veröffentliche keine proprietären Firmwaredateien oder Bestandteile offizieller Logitech-Anwendungen in Issues, Pull Requests oder Forks dieses Repositorys.
Logitech, Logi, Bolt und die zugehörigen Marken sind Eigentum ihrer jeweiligen Rechteinhaber. Dieses Projekt steht in keiner Verbindung zu Logitech und wird von Logitech weder unterstützt noch empfohlen.
PlayStation und PS5 sind Marken von Sony Interactive Entertainment Inc. Dieses Projekt steht in keiner Verbindung zu Sony Interactive Entertainment und wird von Sony weder unterstützt noch empfohlen.
Das Repository enthält keine Logitech-Firmware und keine offiziellen Logitech-Anwendungen. Protokollverhalten und Konstanten wurden anhand öffentlich verfügbarer Implementierungen und durch Geräteanalyse nachvollzogen. Weitere Angaben befinden sich in THIRD_PARTY_NOTICES.md.
BoltUpdateTool steht unter der PolyForm Noncommercial License 1.0.0. Die Software darf für erlaubte nichtkommerzielle Zwecke verwendet, verändert und weitergegeben werden. Der Verkauf oder eine andere kommerzielle Nutzung ist ohne eine gesonderte Erlaubnis des Rechteinhabers nicht gestattet.
Dies ist eine Source-Available-Lizenz und keine von der OSI anerkannte Open-Source-Lizenz. Materialien Dritter unterliegen weiterhin ihren jeweiligen Lizenzen, wie in THIRD_PARTY_NOTICES.md beschrieben.
Projekt und technische Hinweise: felix.stopa.net