This post may contain affiliate links. Please read my disclosure for more info.

BMW E46 330d Passenger Seat Occupancy Warning Light

BMW E46 SRS Warning Light


When I bought the car I did so knowing it had the SRS warning light illuminated. I had researched into it before I bought the car though. The most common cause of the SRS warning light in the E46 is the passenger seat occupancy sensor failing.

If the airbag warning light is on, the car will (or should) fail it's MOT. This rule was brought in to meet European Directive 2009/40/EC in 2012/13. So I needed to get it fixed asap.


BMW E46 Passenger Occupancy Sensor


The passenger seat occupancy sensor, or co-driver's airbag sensor mat as BMW call it, is a circuit of sensors that are placed under the passenger seat covers (part 11 in the diagram below). It's a pretty expensive part, costing upwards of £100.


When a passenger is detected by the sensors the passenger airbag system is activated to ensure the airbag goes off in the event of a crash.

The sensor mat is fragile though, and can be broken, by kneeling on the seat for example, which causes the SRS warning light to illuminate.




BMW E46 Passenger Seat Occupancy Sensor Bypass


As it stood, my car wouldn't pass an MOT with the SRS warning light on, so I needed to do something about it. Considering how much the sensor mats are, and that it was likely to fail again even if I replaced it, I looked for the another solution.


The bypass kits trick the on board computer into believing the passenger seat is always occupied. It's not an ideal fix, some might say it's a bodge, but in my opinion, I'd rather the airbag went off in the event of a crash than it not.

Although the one I bought isn't available any more, I did find this one* on Amazon.





Removing the E46 Passenger Seat


The instructions that came with my bypass kit said you could do the repair with the seat in place, but I'm not a contortionist so I decided I'd have the seat out and do it in comfort.

I set about removing the passenger seat, which was thankfully very easy, just one bolt into the seat belt, two into the rear of the seat runners, and two nuts at the front of the runners. Tilting the seat back revealed this mess.


Good job I was having the seat out after all, perfect chance for a deep clean.

On the passenger side there are two connectors, on my car they had yellow connector plastics. The connectors come apart really easily, which was a welcome relief having had some grief with the ones on my Rover 25.










With the seat removed I could get stuck into cleaning up the mess. I started off by scrubbing the carpet with some household disinfectant carpet cleaner, the same stuff I used to clean my boot trim.




I dried the area off then finished with some febreze, a vast improvement indeed.


Installing an E46 Passenger Seat Occupancy Sensor


Onto the actual reason for having the seat out, fitting the occupancy sensor bypass. This job was really easy, just a case of disconnecting the sensor and plugging in the bypass, then finally tidying up the install by cable tying the bypass into place.










Bypass fitted it was now time to get the seat back in, a simple reversal of the above. As it was so easy, and due to the state of the passenger side, I decided to have the driver's side seat out as well and give that a good clear out.

Under the driver's seat was less muck but still not ideal, however, there was a nice £1.02 tip.



Reading and Clearing E46 SRS Fault Codes


After both sides were cleaned I set about resetting the fault code and warning light on the dash. I managed to borrow a friend's SRS code reader / re-setter (cheers Rich), saving quite a bit of hassle.

If you can't borrow one, you can pick one up from Amazon here*.




The code reader plugs into the OBD II port under the driver's side IP (instrument panel / dash) lower, near the pedals. When you plug it in and turn the key to position 2, the code reader will display FA, which when selected will show all the fault codes related to the SRS.




Mine showed up the code 70, which meant there is a fault with the passenger occupancy sensor, as expected. Restarting the code reader, you can now select cA, which is used to clear all codes. After clearing the codes, the light on the dash flashed then went out. It has not reared it's head since, for once a nice simple job.

Any questions? Have you made your own bypass? Let me know in the comments below.