A CD-changer emulator that brings Bluetooth audio to classic SAAB cars. BlueSaab plugs into the CD-changer connector, speaks the SAAB I-Bus CAN protocol so the factory head unit believes a changer is present, and streams music from your phone through the car's original audio path — steering-wheel controls included.
Supported cars: SAAB 9-3 (1998–2002, Convertible –2003) and SAAB 9-5 (1998–2005; a 2006 Denso-nav 9-5 is confirmed working, other 2006+ cars are unverified — see the 9-5 notes). The 2003+ 9-3 Sport Sedan uses a different (GMLAN) architecture and is not supported.
- STM32F103RB MCU running mbed OS 2 (vendored), Microchip RN52 Bluetooth 3.0 audio module, CAN at 47.619 kbit/s
- Firmware: v6.1.1 is the latest release (download); this repo's root is the firmware source, currently v6.1.7 — unreleased, pending in-car validation (see CHANGELOG.md)
- Board design files in HARDWARE/
- The RN52 went end-of-life in 2024 and Arm retired Mbed in 2026, so v6 hardware is frozen: existing units keep working (modern iPhones/Androids stream to it fine over A2DP) and still get firmware improvements, while the main effort is the successor below.
See docs/USAGE_v6.md — pairing procedure, full button map, debug serial console, troubleshooting. Short version: select the CD-changer source, press preset 1, pair with "BlueSaab v6" on your phone.
A spiritual successor is being designed around a single ESP32: same in-car interface, same connector, plus multi-device pairing/swap and a sub-100 µA parked power target. Design docs:
- docs/SUCCESSOR_HARDWARE_OPTIONS.md — hardware evaluation and decisions
- docs/IBUS_PROTOCOL.md — the I-Bus CDC protocol (the spec any new firmware must honor)
- docs/SAAB_9-5_NOTES.md — 9-5 bus research and model-specific quirks
- docs/RELATED_PROJECTS.md — lineage, competitors, and how 2006+ cars are handled
- TODO.md — the roadmap
See docs/BUILD_v6.md (toolchain, CI, release process) and docs/FLASHING_v6_HOWTO.md.
- Hardware design: Seth Evans (bluesaab.blogspot.com)
- Initial code: Seth Evans and Emil Fors
- v6 firmware: Girts Linde and Karlis Veilands
- I-Bus protocol research: Tomi Liljemark (archived)
- RN52 handling based on RN52lib by Tim Otto
- Predecessor codebase: SAAB-CDC (Arduino generation)
GPL-3.0-or-later — see LICENSE.