edited for complete album in post
TL;DR - Seats are mounted to custom rails only on one side (factory holes line up on the inboard side). Seats are full power and work correctly all the time (no heat as my car doesn’t have that option so I skipped it). No headroom issues, they sit about as low as the factory seats. No real weight savings when you include the custom rails. These are from a coupe so they fold forward and the power slide buttons on the back work. Yes, the logo on the seats light up too.
I recently completed this project which involved installing 2015 F82 M4 front seats into a 2004 E46 M3. Currently the seats are in and working 100% (no heat as I don’t have that option in the car). I’ve done a lot of testing with wiring and ran through a few different scenarios based on information (and misinformation) on the internet. I’ve compiled all the details below on how I wired and mounted them so this can be used as a guide should anyone want to do this themselves in the future. Overall, this isn’t that hard but if you don’t like wiring or don’t want to dead-lift seats in and out of the car 50 times, have someone else do it. You should have some basic knowledge of how the DC 12v system in a car works and how to use a multimeter (and how to solder if you care about longevity). This entire process should also work for any E9x body seats since the wiring is very similar and the mounting points are the same as the F82). I should also mention that I didn’t do any heated seat wiring at all so I don’t know how to get that to work. My E46 doesn’t have heated seats and I only drive it when it’s nice out so I didn’t care to retrofit at all.
I knew the wiring was going to be the hardest part so that’s what I started with first. Before getting into that, let’s clear up some mis-information:
The first one was the most common piece of info, with a couple Youtube videos telling you that you have to swap to the E92 controllers. This is ONLY the case if you were installing the F82 seats into an E92 as the seats are coded and you are just transferring your already working controllers over for ones that wouldn’t be compatible unless they were re-coded (I didn’t do this but I suspect it’s true based on testing). I am not sure if other Fxx series seats use black controllers like some E series models do but everything going forward works on F body seats with white controllers (which I believe are only face-lifted coupes, a small sample size)
The second was where there was barely any information as the wiring can be confusing. The E46 is bare bones wiring. It has a 12v power, a ground (two large gauge wires), 1 CAN-BUS wire (that’s not needed at all here and can be ignored), 2 wires for the seat belt light and two wires for the seat belt pre-tensioner. That’s it (again, no detail on heated seats at all). The F82 seat has a third wire for power (that’s a smaller gauge wire for the upper portion lumbar supports) and then some KCAN wires (the CAN systems in both cars are not compatible and can’t be wired together). The main problem here is that when the two large gauge wires were connected to positive and negative (connected the smaller power in together with the larger), the seats power up for a short time and can be controlled but once you stop adjusting the seats or wait 30 seconds, the seats are no longer able to be controlled, and they effectively ‘go to sleep’. The seat controllers are looking for a KCAN ‘wake up’ signal to power back up and work continuously and without that, the will only start working again if you disconnected the main 12v, waited 30 seconds and connected them again (this was all done in bench-testing before I hooked the seats into the wiring harness). Since the seats are connected to the E46 12v main which is constant and not switched, I knew that would not be an option so I started to research a better way to get them to work that didn’t involve constantly switching the seats on and off since I wanted this to be as close to a factory install as possible (as much as one guy can do in his garage that isn’t an engineer can do). I ended up faking the ‘wake up’ signal with a switched 5v on the KCAN HIGH (green with orange stripe) wire and grounded the KCAN LOW (green). I believe they generally want a specific code to wake up but from testing, the voltage shouldn’t exceed 6 on HIGH and both are connected in through the harness.
Third, with switched 5v, I was able to always keep the constant 12v hooked up with the secondary 5v to KCAN and the seats work, whether ignition ON or not. I think it also looks for resistance or grounding (I did get a KCAN reader but it proved to be too much trouble here as I got everything working without getting deep into KCAN world). I believe that even without the 5v switched on, as long as there is continuity on those KCAN wires (or that KCAN Low is grounded), the seats will still work.
Finally, I originally ran a 12v timer on the switched power then stepped it down to 5 in hopes that the pulse of 5v (off for 3 seconds, on for 1 second) would keep waking the seat up but this proved not to be necessary and annoying as the timer has a relay that is loud and even in the trunk, you could still hear it. I also tried to emulate the KCAN signals and I was thinking that if this plan didn’t work, I would get a Raspberry Pi or Arduino, KCAN Shield and simulate the wake up signal but that didn’t have to happen in the end.
I ended up pulling the 12v switched power from the center console in the telephone pre-wiring power loom that was sitting idle. I used pins 2 and 6 (purple with a stripe and brown). I also bought a couple F82 body harnesses and found some E46 seat harnesses in the junkyard. I spliced them together and made this whole thing ‘removable’ for ease of installation (I took the seats out and put them back in...alot). The two reds from the F82 connect to the single red on the E46 body, brown to brown on both and then the seat belt wires get passed through the harness (more on this below). I hooked up a rocker switch to the 12v switched from the center console (for additional control) and hooked in the two purple wires from the seats before the switch so they would always see 12v power when the car is on. I then added a 12v → 5v ‘buck converter’ and ran power and ground wires to both seats via the harness access holes. 5v to the KCAN H and ground to the KCAN L and all done. I had a couple versions of this as my wiring was rusty and I reversed the polarity but nothing happened. I used a snake to get the wires from the center console, under the carpet and to the same location that the factor harness exits the carpet under the seat.
The seat belt buckle on the F82 seat needs to be replaced with the E46 buckle. The buckle bolts in fine, and there is a bit of wiring to do. The wires run into the harness and from there to my homemade harness adapter. I traced the wires through the whole run and lucking it was clear which was which (red/black on the buckle and down through to the body same colors (some color switching in the homemade harness, but as long as you trace you’re fine). The tough one was the per-tensioner since I figured if I got it wrong, it would explode (I don’t think it actually would but you never know). On the buckles I sources from the junkyard (had to cut the wires as they are hardwired into the seat harness), both wires were black (yay). However on the seats from my existing car, there was one black and one black with a white stripe. I traced those on down through the harness and back to the body where they were again different colors that matched. Once I had everything wired up, I put all the gubbens in the car and turned it on and to my surprise, it all worked. I did get an airbag light since I unplugged the original seats while the battery was still hooked up so I need to clear that light with INPA which I haven’t done yet).
The mounts were not that complicated but I wanted it to look decent and just disappear into the interior. I used two pieces of ⅛” thick, 2” angle steel, welded it together with an offset, drilled holes for the seat side and the body side (the seat offset is only 1 9/16”). Welded on some studs (M10 x 1.5 is the bolt and thread size used for the seats) and used a couple spacer washers to get the height even and that was it.
Feel free to comment or share or DIY. I did this because I never found the E46 M3 seats comfortable even after I replaced the ones that came in the car with another set. After a certain point, my back doesn’t touch the back of the seat and the headrest is useless so I figured it was this or some Recaro Sportster CSs (without the adjustability and the $$). The M4 seats, to me, are worlds better than what I had and they look really nice and modern.
Also, posting some of the resources that I found online for this project, should anyone also run down that rabbithole (in order of most helpful)
https://www.bimmerforums.com/forum/s...eats-in-my-e30
TL;DR - Seats are mounted to custom rails only on one side (factory holes line up on the inboard side). Seats are full power and work correctly all the time (no heat as my car doesn’t have that option so I skipped it). No headroom issues, they sit about as low as the factory seats. No real weight savings when you include the custom rails. These are from a coupe so they fold forward and the power slide buttons on the back work. Yes, the logo on the seats light up too.
I recently completed this project which involved installing 2015 F82 M4 front seats into a 2004 E46 M3. Currently the seats are in and working 100% (no heat as I don’t have that option in the car). I’ve done a lot of testing with wiring and ran through a few different scenarios based on information (and misinformation) on the internet. I’ve compiled all the details below on how I wired and mounted them so this can be used as a guide should anyone want to do this themselves in the future. Overall, this isn’t that hard but if you don’t like wiring or don’t want to dead-lift seats in and out of the car 50 times, have someone else do it. You should have some basic knowledge of how the DC 12v system in a car works and how to use a multimeter (and how to solder if you care about longevity). This entire process should also work for any E9x body seats since the wiring is very similar and the mounting points are the same as the F82). I should also mention that I didn’t do any heated seat wiring at all so I don’t know how to get that to work. My E46 doesn’t have heated seats and I only drive it when it’s nice out so I didn’t care to retrofit at all.
I knew the wiring was going to be the hardest part so that’s what I started with first. Before getting into that, let’s clear up some mis-information:
- You can use the factory F82 seat controllers (white boxes mounted under the seats) as is, you don’t need to swap to E92 controllers at all
- You can ‘fake’ a KCAN wake-up signal using specific voltage
- The seats work all the time, not just when the car is on or not just for the first 30 seconds
- You don’t need to cycle power constantly to get them to keep waking up
The first one was the most common piece of info, with a couple Youtube videos telling you that you have to swap to the E92 controllers. This is ONLY the case if you were installing the F82 seats into an E92 as the seats are coded and you are just transferring your already working controllers over for ones that wouldn’t be compatible unless they were re-coded (I didn’t do this but I suspect it’s true based on testing). I am not sure if other Fxx series seats use black controllers like some E series models do but everything going forward works on F body seats with white controllers (which I believe are only face-lifted coupes, a small sample size)
The second was where there was barely any information as the wiring can be confusing. The E46 is bare bones wiring. It has a 12v power, a ground (two large gauge wires), 1 CAN-BUS wire (that’s not needed at all here and can be ignored), 2 wires for the seat belt light and two wires for the seat belt pre-tensioner. That’s it (again, no detail on heated seats at all). The F82 seat has a third wire for power (that’s a smaller gauge wire for the upper portion lumbar supports) and then some KCAN wires (the CAN systems in both cars are not compatible and can’t be wired together). The main problem here is that when the two large gauge wires were connected to positive and negative (connected the smaller power in together with the larger), the seats power up for a short time and can be controlled but once you stop adjusting the seats or wait 30 seconds, the seats are no longer able to be controlled, and they effectively ‘go to sleep’. The seat controllers are looking for a KCAN ‘wake up’ signal to power back up and work continuously and without that, the will only start working again if you disconnected the main 12v, waited 30 seconds and connected them again (this was all done in bench-testing before I hooked the seats into the wiring harness). Since the seats are connected to the E46 12v main which is constant and not switched, I knew that would not be an option so I started to research a better way to get them to work that didn’t involve constantly switching the seats on and off since I wanted this to be as close to a factory install as possible (as much as one guy can do in his garage that isn’t an engineer can do). I ended up faking the ‘wake up’ signal with a switched 5v on the KCAN HIGH (green with orange stripe) wire and grounded the KCAN LOW (green). I believe they generally want a specific code to wake up but from testing, the voltage shouldn’t exceed 6 on HIGH and both are connected in through the harness.
Third, with switched 5v, I was able to always keep the constant 12v hooked up with the secondary 5v to KCAN and the seats work, whether ignition ON or not. I think it also looks for resistance or grounding (I did get a KCAN reader but it proved to be too much trouble here as I got everything working without getting deep into KCAN world). I believe that even without the 5v switched on, as long as there is continuity on those KCAN wires (or that KCAN Low is grounded), the seats will still work.
Finally, I originally ran a 12v timer on the switched power then stepped it down to 5 in hopes that the pulse of 5v (off for 3 seconds, on for 1 second) would keep waking the seat up but this proved not to be necessary and annoying as the timer has a relay that is loud and even in the trunk, you could still hear it. I also tried to emulate the KCAN signals and I was thinking that if this plan didn’t work, I would get a Raspberry Pi or Arduino, KCAN Shield and simulate the wake up signal but that didn’t have to happen in the end.
I ended up pulling the 12v switched power from the center console in the telephone pre-wiring power loom that was sitting idle. I used pins 2 and 6 (purple with a stripe and brown). I also bought a couple F82 body harnesses and found some E46 seat harnesses in the junkyard. I spliced them together and made this whole thing ‘removable’ for ease of installation (I took the seats out and put them back in...alot). The two reds from the F82 connect to the single red on the E46 body, brown to brown on both and then the seat belt wires get passed through the harness (more on this below). I hooked up a rocker switch to the 12v switched from the center console (for additional control) and hooked in the two purple wires from the seats before the switch so they would always see 12v power when the car is on. I then added a 12v → 5v ‘buck converter’ and ran power and ground wires to both seats via the harness access holes. 5v to the KCAN H and ground to the KCAN L and all done. I had a couple versions of this as my wiring was rusty and I reversed the polarity but nothing happened. I used a snake to get the wires from the center console, under the carpet and to the same location that the factor harness exits the carpet under the seat.
The seat belt buckle on the F82 seat needs to be replaced with the E46 buckle. The buckle bolts in fine, and there is a bit of wiring to do. The wires run into the harness and from there to my homemade harness adapter. I traced the wires through the whole run and lucking it was clear which was which (red/black on the buckle and down through to the body same colors (some color switching in the homemade harness, but as long as you trace you’re fine). The tough one was the per-tensioner since I figured if I got it wrong, it would explode (I don’t think it actually would but you never know). On the buckles I sources from the junkyard (had to cut the wires as they are hardwired into the seat harness), both wires were black (yay). However on the seats from my existing car, there was one black and one black with a white stripe. I traced those on down through the harness and back to the body where they were again different colors that matched. Once I had everything wired up, I put all the gubbens in the car and turned it on and to my surprise, it all worked. I did get an airbag light since I unplugged the original seats while the battery was still hooked up so I need to clear that light with INPA which I haven’t done yet).
The mounts were not that complicated but I wanted it to look decent and just disappear into the interior. I used two pieces of ⅛” thick, 2” angle steel, welded it together with an offset, drilled holes for the seat side and the body side (the seat offset is only 1 9/16”). Welded on some studs (M10 x 1.5 is the bolt and thread size used for the seats) and used a couple spacer washers to get the height even and that was it.
Feel free to comment or share or DIY. I did this because I never found the E46 M3 seats comfortable even after I replaced the ones that came in the car with another set. After a certain point, my back doesn’t touch the back of the seat and the headrest is useless so I figured it was this or some Recaro Sportster CSs (without the adjustability and the $$). The M4 seats, to me, are worlds better than what I had and they look really nice and modern.
Also, posting some of the resources that I found online for this project, should anyone also run down that rabbithole (in order of most helpful)
https://www.bimmerforums.com/forum/s...eats-in-my-e30
Comment