Case study
Zeppelin Air: reconstructing USB firmware recovery
Zeppelin Air Recovery reconstructs the Bowers & Wilkins speaker's USB recovery procedure from its updater library and live DFU exchanges. A Python tool implements vendor commands, flashes the MCU and coprocessor in two phases, and polls the coprocessor until it is ready; protocol notes document the message sequence and flash layout.
- Targets
- Firmware · Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Evidence class
- C2 code & docs, no demo or download
- Stars
- 2
- Last commit
- 2026-09-14
- Language
- Python
GitHub data as of 2026-11-10
Evidence
- Observed
- Code and documentation observed; no download method or demo found.
- Checked
- 2026-11-08
Requirements & limits
- Prerequisites: Requires a Zeppelin Air, Python 3.9 or later, pyusb, libusb and a USB cable.
- Prerequisites: Requires the user's official B&W recovery utility for its firmware images.
- Limits: A mains power cycle is required between recovery phases; the author reports that audio output remains unverified.
- License: MIT license.
Cite
BibTeX
@misc{zeppelin-air-recovery-case,
title = {{Zeppelin Air: reconstructing USB firmware recovery}},
howpublished = {\url{https://github.com/sanderpost/zeppelin-air-recovery}},
url = {https://github.com/sanderpost/zeppelin-air-recovery},
urldate = {2026-11-06},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/zeppelin-air-recovery-case/}}
}Plain text
Zeppelin Air: reconstructing USB firmware recovery. https://github.com/sanderpost/zeppelin-air-recovery (accessed 2026-11-06). Awesome REA entry: https://awesomerea.org/resources/zeppelin-air-recovery-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · sanderpost/zeppelin-air-recovery · Revision 9a69aa2
- docs/PROTOCOL.md GitHub · sanderpost/zeppelin-air-recovery · Revision 9a69aa2
More in Firmware and hardware
- EmuWorks: emulating NumWorks N0110 calculator hardware · Case study
- CH899: reconstructing the clock's MM32–ESP exchange · Case study
- telink-usb-ota: reconstructing Telink USB-HID firmware updates · Case study
- K2 OpenKlipper: reconstructing the Creality K2 control stack · Case study
- ThinkCentre Fan Control: recovering fan telemetry and modes from the M70t Gen 6 · Case study
- strix-890m-macos: investigating Radeon 890M display bring-up · Case study
All 260 entries in Firmware and hardwareFirmware and hardware case studies (175)