Home Forums Articles How To's FAQ Register
Go Back   Xoutpost.com > BMW SAV Forums > X5 (E53) Forum
Fluid Motor Union
User Name
Password
Member List Premier Membership Search Today's Posts Mark Forums Read

Xoutpost server transfer and maintenance is occurring....
Xoutpost is currently undergoing a planned server migration.... stay tuned for new developments.... sincerely, the management


Reply
 
LinkBack Thread Tools Display Modes
  #1  
Old 07-09-2014, 03:18 AM
Member
 
Join Date: Jul 2012
Location: Va
Posts: 12
RDCX5 is on a distinguished road
Seat Module, my $5.90 'fix'

Hey all,

I don't personally own an X5, so apologies for the long winded post, but this info is pretty useless just about anywhere else. I have friends with a 2002, 3.0i and when something is wrong with it I typically get a phone call about it and head over to check it out. I've already been thru a lot of the 'typical' X5 issues with it, and now the seat module is the latest to crop up.

The seat module died on them a little over a month ago, and while looking around a bit I've seen this is a get a new expensive part and replace it to fix the problem kind of thing. Well a new seat module was a bit too expensive for their liking with the way things are at the moment, and I had no clue at all how it worked, so I decided to open her up and see what was going on in there.

I couldn't find any info on the guts of this thing, at most was talk about the Relays in it going bad (from info 5+ years ago) and while I knew they weren't the issue, they were the very first thing that I did remove and check out, and they were all fine.

The real culprit is the Motorola CPU in the thing, or more specifically the fact that they just wear out after years and years of use as they only have so many read/write cycles in them to save information. So every time the seat is moved, even if the Memory feature isn't used, that position data of where the seat/wheel is changes, and has to be saved in case the Memory feature were to be used on that data. After so many years, or from a lot of adjusting, the CPU just wears out and you get parts of the thing that don't work, or it just dies all together.

With them heading out for vacation in another month, and an 8 hour drive there and then back, they would have liked this to have not happened so they could trade off on the drive down/back, but what ever breaks when you really have the time/money to deal with it?

So after looking inside it a bit and reversing the entire thing to make up a schematic..




PDF of schematic - http://www.acidmods.com/RDC/X5/X5%20...Controller.pdf


I've figured out most of what is doing what in there. I pulled the Motorola CPU (MC68HC711E20CFN2) off the PCB and coded up a PIC (16F1519) to deal with just the 'basics' of the seat.

The seat movement is done with 3 Relays (Tyco V23084-C2001-A303 ++023411E Portugal) that are actually dual SPDT relays, so there are technically 6 SPDT Relays used in there.

One of them (2 SPDT) is used to invert the power/ground polarity of the common motor line and the common line for the other Relays, so that the motors can run forward/backward, then the other 2 Relays (4 SPDT) are for turning on/off the 4 different motors, Incline, Slide, Height and Backrest.

Now getting the seat to move again wasn't too difficult. It's just a matter of reading which button is pressed, and then turning on the Relays in the correct order, ie; set the power/ground polarity for the switch direction that is pressed, then turn on the Relay for that motor. The 8 seat switches are connected to an 8 channel data selector (MC14512) so that only 4 IO of the CPU need to be used instead of 8 IO. This is a code snip of how one of the switches is read and then the Relays for it turned on/off.

Code:
  A = 0; B = 0; C = 0;                     // Select switch 0, Seat Forward
 delay_us(10);

 if (Z == 0)                              // If the switch is pressed
   {
    // Set RLY_1 and RLY_2 for polarity, 10 or 01 depending
    RLY_1 = 0;
    RLY_2 = 1;
    delay_ms(10);                         // Wait for Relay to turn on
   
      while (Z == 0)                      // While the switch is pressed
        {
        RLY_4 = 1;                        // Turn on RLY_x for that switch
        }

    RLY_4 = 0;                            // Turn off RL_x for that switch

    // Set RLY_1 and RLY_2 to Neutral (polarity ground/ground)
    RLY_1 = 0;
    RLY_2 = 0;
    delay_ms(10);
    }
That was all I had intended to do, as they could then switch off during the long trip and be able to at least adjust the seat to their liking, but that left the Steering Column dead and stuck in the highest position. So I still had some time before they left and I dug into that some and found out it was far more of a mess than it needs to be.

This is one of the Column motors, the other being pretty much the exact same thing except the gearbox is mirrored..


http://www.acidmods.com/RDC/X5/ColumnMotor.jpg

Now, where the Seat motors are controlled by Relays, the Column motors have that little black box on them that contains an H-bridge so that it's able to change direction, and that H-bridge is controlled by an Elmos 10017 chip.


http://www.acidmods.com/RDC/X5/BMWColumnTop.jpg


http://www.acidmods.com/RDC/X5/BMWColumnBottom.jpg


This chip has no data available on it, so like the seat module it was taken apart and a schematic made up to get a better idea of what's going on in there.

PDF of schematic - http://www.acidmods.com/RDC/X5/X5%20Colum%20Motor.pdf

From what I've been able to tell it's some type of 1 wire motor controller, possibly with position and current feedback. So the control for the 2 Steering Column motors is all done over 2 wires (1 per motor) back to the seat module, which is also where the switch for the Column is connected at, from Column switch to Seat back to Column, brilliant.

I was lucky enough that this thing still somewhat worked when I tried it out on the bench, despite it being pretty much dead in the X5, so I was able to get some Logic Analyzer grabs of what commands where being sent to these Column motors to tell them to move. These were taken from the CPU pins, 28 Send, 34 Receive, as it's setup to deal with the different logic levels (5v CPU and 12v Column motor controller) and it's also in a multiplex layout so these pins can be used to control multiple motors.

There seems to be a 10bit command sent to the motor, then it sends back a 16bit reply. There is also a certain number of times these commands are sent, and in a certain order, to get the thing to make the motor run. This is what that looks like on the Logic Analyzer, running the motor in just one direction for a little bit.


http://www.acidmods.com/RDC/X5/LAColumn.jpg


Then the start of the above Logic Analyzer image zoomed in.


http://www.acidmods.com/RDC/X5/LAZoom.jpg


So as of now I can move the Seat and Column motors, though it does have it's short comings.

What does work..

- The Seat can be moved, Incline, Slide, Height and Backrest all work.
- The Column can be moved in all 4 directions.

What does not work..

- K-bus integration, so there is no automatic wheel out of the way movement.
- Current detection, to tell if something is obstructing the seat while it's moving.
- Feedback for reporting position.
- Memory settings. (all of the current/feedback needs figured out first)

Now what does work to me far outweighs the issues of what does not, as none of that fluff was on power seats back when power seats were all new and fancy anyway, you had a circuit breaker and that was it.

The Memory positions they never used, and the auto wheel option wasn't paid much attention to. Then if you can't tell the seat motor is at the end of it's travel or something is jamming it up then you probably shouldn't be using it.

Now having said that, I am tinkering with trying to get most everything working. The way the current draw for the Seat motors work I have figured out already, just not implemented it yet. The feedback for the Column motor's position is a bit more technical and is mostly figured out now as well. The only part I haven't looked into is the feedback for position sensing for the seat, so that the Memory function can at least be implemented there, but since I don't have access to the car 24/7 these are things that may never really get done. I also have no real desire to reintegrate it with the K-bus either.

Here is the PIC mounted on a PCB I designed to just replace the Motorola CPU, and still have access to all of the original pads for later testing. The wires there run off to a programming header so I can reflash the PIC if needed.

http://www.acidmods.com/RDC/X5/X5SeatModule.jpg

So far this has been in the X5 for a few days now and there have been no issues with moving the seat/wheel to wherever they want.

Last edited by RDCX5; 10-31-2022 at 08:30 PM.
Reply With Quote

Sponsored Links

  #2  
Old 07-09-2014, 04:10 AM
four.8is's Avatar
Member
 
Join Date: Feb 2014
Location: Seattle
Posts: 943
four.8is is on a distinguished road
Sounds overly complicated and my eyes started to hurt just trying to understand all the terms; but seems like you are mechanically or electrically inclined and know what you're doing.To me it just makes more sense to just buy the new part that will last at least 15 more years.take off, install, done!
__________________
2006 X5 4.8is LeMans Blue / creambeige interior
Prod.date: 2006-06-21
Reply With Quote
  #3  
Old 07-09-2014, 10:48 AM
R8DX5's Avatar
....and the Winner is.....
 
Join Date: Mar 2005
Location: ....THAT ONE.
Posts: 1,380
R8DX5 is on a distinguished road
You do understand that for the average X5 owner, without close friends who happened to be Electrical Engineers with time on their hands, the cost will be significantly more than $5.90. Correct???
__________________
2003 3.0i White/Black 5 speed Manual.
Options: PP, SP, DSP, NAV, XENON.
Mods: Aluminum Running Boards, 4.6 Body Kit, 20" Style 132 Wheels, Eisenmann Sport Exhaust with Oval tips, Aluminum pedals, Xenonmatch Fogs, M3 Steering Wheel.

Can I have a sip of that HATERADE you're chuggin?
Reply With Quote
  #4  
Old 07-09-2014, 11:32 AM
Member
 
Join Date: Jul 2012
Location: Va
Posts: 12
RDCX5 is on a distinguished road
You do understand the thread title was 'my' $5.90 fix, not 'the' $5.90 fix, correct???

I'm also not an EE, I just happen to like figuring out how things work and learning new ones when the opportunity arises and time permits.

It seems the average X5 owner has the money time and again to replace expensive parts on their vehicle when they fail, at least one however does not anymore. I just figured the info might be of interest to someone out there, as it would have been extremely helpful in my case had I happened across it, amidst the posts upon posts on multiple forums about the seat module.
Reply With Quote
  #5  
Old 07-09-2014, 01:38 PM
Member
 
Join Date: Mar 2014
Location: KY
Posts: 360
14thbmw is on a distinguished road
I think what the OP has done is both informative and really cool. As these cars age out, it becomes increasingly unwise to pay high prices for single component failures, especially nice-to-have functionality that isn't critical to continued operation. Evenutally the engine and tranny will go, and all that OEM money put into seats, mirrors, nav, etc will seem pretty foolish. I'd rather keep mine going for $5.90 if I can and then save the difference for the eventual replacement vehicle.

To each his own, but I like this approach!
Reply With Quote
  #6  
Old 07-09-2014, 01:46 PM
four.8is's Avatar
Member
 
Join Date: Feb 2014
Location: Seattle
Posts: 943
four.8is is on a distinguished road
Thanks but I like my car to be fully functional
Like I said, really cool you can do all that electrical work but real life experience is something else
And trust me I'm don't being a douche, I really appreciate people that are smart enough to do this kind of job
I'm not one of them
__________________
2006 X5 4.8is LeMans Blue / creambeige interior
Prod.date: 2006-06-21
Reply With Quote
  #7  
Old 07-14-2014, 11:16 AM
Member
 
Join Date: Jul 2012
Location: Va
Posts: 12
RDCX5 is on a distinguished road
First post updated a bit.

Since this thing is back in the X5 now, if anyone has a bad seat module still around or are swapping one out, please PM me about it as I'd be interested in it to continue working some on this.
Reply With Quote
  #8  
Old 07-14-2014, 11:48 AM
Riggodeaux's Avatar
Member
 
Join Date: Oct 2013
Location: Atlanta, GA
Posts: 862
Riggodeaux is on a distinguished road
Its not clear from the original post, but it appears you fixed the module that controls the power seat positioning [front back up down]. Is this correct? I don't know how common a problem this is, unlike the old and very common E36 problem with a gear in the power seat, a mechanical fix. I admire your electronic ingenuity, for sure!
__________________
2006 X5 3.0 6-spd w/Evo UUC ssk
sport/premium pkgs
born Valentine's Day, 2006.
Reply With Quote
  #9  
Old 07-14-2014, 11:49 AM
Member
 
Join Date: Jul 2012
Location: Va
Posts: 12
RDCX5 is on a distinguished road
What does work..

- The Seat can be moved, Incline, Slide, Height and Backrest all work.
- The Column can be moved in all 4 directions.

What does not work..

- K-bus integration, so there is no automatic wheel out of the way movement.
- Current detection, to tell if something is obstructing the seat while it's moving.
- Feedback for reporting position.
- Memory settings. (all of the current/feedback needs figured out first)
Reply With Quote
  #10  
Old 07-14-2014, 01:21 PM
LVP LVP is offline
Member
 
Join Date: Mar 2014
Location: Ontario
Posts: 845
LVP is on a distinguished road
Thanks for digging into this so far. I'm an EE so your efforts aren't lost here. For me it comes down to available time at the time of the repair. If I have a backup vehicle and I'm not on the road a lot, I can afford to take the X5 down and do the repairs myself. I also have a neighbour who prefers to work with a soldering iron instead of a wrench, so I cook up the ideas and he makes them happen. Made up my first ADS cable for the E36 that way.
__________________
Daily Drivers:
- 2008 535i, 290,000km
- 2004 X5 4.4, 01/2004 production, 380,000km
- 1998 328i, 370,000km

Track:
- 1996 328i, track/race car, ~300,000km

Winter:
- 2013 Ski-Doo MXZ X 800 E-TEC, trail can
- 2001 Ski-Doo MXZ 600 w/800 engine, exhaust
- 1978 Ski-Doo Olympique 340 (vintage race sled)
- 1977 Ski-Doo Olympique 340E

Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On





All times are GMT -4. The time now is 12:26 PM.
vBulletin, Copyright 2024, Jelsoft Enterprises Ltd. SEO by vBSEO 3.6.0
© 2017 Xoutpost.com. All rights reserved. Xoutpost.com is a private enthusiast site not associated with BMW AG.
The BMW name, marks, M stripe logo, and Roundel logo as well as X3, X5 and X6 designations used in the pages of this Web Site are the property of BMW AG.
This web site is not sponsored or affiliated in any way with BMW AG or any of its subsidiaries.