Reverse Engineering A Saab’s In-Dash Display

For [Leigh Oliver], there’s something undeniably appealing about the green on black instrumentation of the 2003 Saab 9-3 Gen2. Perhaps it’s because the Infotainment Control Module 2 (ICM2) screen brings a bit of that classic Matrix vibe to the daily commute. Whatever the reason, it seemed the display deserved better than to be stuck showing the nearly 20 year old stock user interface. Luckily, you can control it via I2C.

Though as you might expect, that fact wasn’t obvious at first. [Leigh] had to start by taking the ICM2 apart and reverse engineering the display board. With a multimeter and high resolution photographs of both sides of the PCB, all of the traces were mapped out and recreated in KiCAD. This might not have been strictly necessary, but it did serve as good practice for using KiCAD; a worthwhile tip for anyone else looking to build practical experience creating schematics.

With everything mapped out, [Leigh] was able to connect a BusPirate V3 up to the board and pretty quickly determine it was using I2C to control the display. As far as figuring out how to repurpose existing displays goes, this was perhaps the best possible scenario. It even allowed for creating a display library based on Adafruit_GFX which offers graphical capabilities far beyond what the ICM2 module itself is capable of.

Even with so much progress made, this project is really just getting started. [Leigh] has managed to put some impressive imagery on the black and green Saab display, but the hardware side of things is still being worked on. For example, there’s some hope that an I2C multiplexer would allow the display to easily and quickly be switched between “stock” mode and whatever enhanced version comes about thanks to the new libraries and an ESP8266 hiding behind the dashboard.

If you don’t have a sufficiently vintage Saab to take advantage of this project, don’t worry. Tapping into the OBD port with an OLED display can get you similar results on a wide range of vehicles.

6 thoughts on “Reverse Engineering A Saab’s In-Dash Display

  1. the SIDs (SAAB Information Display) in the OG9-5, OG9-3, and NG900 are pretty well documented and hackable, too. in Trionic 7 cars (OG9-3, OG9-5), you can even push stats from the ECU onto the SID.

    ex., before I scrapped it, my 1999 9-5 showed the boost pressure on the SID, as in 1999 SAAB didn’t equip the ‘low pressure’ turbos with the gauge cluster ‘boost’ gauge (more of a ‘load’ gauge). :)

    1. Right on, I had this in my car. I flashed custom maps to my ECU by soldering headers to the mainboard and flashing via DOS and a parallel port. I remember running E85 on my 2001 9-5 Aero B235 and getting the percentage ethanol (along with the much lower efficiency) shown on the SID.

      There was also a project called Saablin that let you splice in a linux box into the CD changer port in the trunk and simulate that over CANbus so you could control the music with the steering wheel controls.

      I miss that car!

  2. Nice. I wish my car had a graphic LCD instead of an alphanumeric display. That didn’t stop me to reverse-engineer it in a similar way and to notice the USB bus between the display and the head-unit: https://translate.google.com/translate?sl=auto&tl=en&u=http%3A%2F%2Fmonorailc.at%2Fcms%2Findex.php%3Fd%3D2018%2F03%2F17%2F19%2F20%2F30-autoradio-tuner-list-4-ecran-lcd Renault Tuner List for the record, you’ll find compatible stuff in most Renault cars from 1997-2005.

    I’ve also heard that some Opel (like Saab, owned by GM) also use an I2C bus as a general purpose display in the middle of the center console.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.