E90 EPS (Active Steering Rack integration)

Post Reply
vin
Posts: 54
Joined: Mon Oct 26, 2020 3:05 am
Been thanked: 3 times

E90 EPS (Active Steering Rack integration)

Post by vin »

Hi all,

So I'm in the process of understanding how to Integrate the active steering rack on the BMW E90 Into my conversion project, and will update It as I go along. Please feel free to add any additional information that you may have so we can get this going.

I have a 7802277625 EPS which appears to come to life when I started to drive the car, around 5 miles pre hour But completely useless at the lower speeds. You can imagine the fun parking that thing :roll: Anyways, upon attempting to manually control EPS, I noticed to five wires in total connected to it.

Large Red - 12V+
Large Brown - Ground
small Red - Maybe CAN
small Red and Blue - Maybe CAN
small Green and Red - ???? Feedback

First I thought of hacking into the eps manually and forcing It on via a relay, However that seemed a bit barbaric, and CAN It Seems to be the way forward.

Unfortunately I have no experience with CAN but I understand the idea of the communication technology. From what I can understand, I need to send a signal, equivalent to the engine starting, over the CAN BUS, To trick the system into thinking that there is still an engine.

After coming back to the forum today, I received an email from @Dilbert and @john Pretty much confirming my suspicion. So it seems I will be learning CAN

More on that later

Any help would be appreciated in advanced :)

Thanks
Vin
Isaac96
Posts: 656
Joined: Sat Oct 05, 2019 6:50 pm
Location: Northern California, USA
Been thanked: 1 time
Contact:

Re: E90 EPS (Active Steering Rack integration)

Post by Isaac96 »

You say it comes alive when you hit 5mph.

So hook up a CAN logger to the EPS wires. This is usually a piece of hardware (CAN-Due for example) connected to a laptop running suitable software (savvyCAN is a good one).

Drive 10mph or so and record some CAN (get someone to help you of course). A few seconds should be plenty.

Disconnect the EPS CAN wires from the rest of the car and play your recording back to the EPS. This should bring it to life!

Then it's just a matter of simplifying the commands so you don't need a laptop hooked up all the time. Take some messages out of the recording and see if it still makes the EPS go. Basically take stuff out til it stops, you want just the bare minimum.

I followed this process on Tuesday to get a water pump in a Coda EV working. It took a couple of hours, but the end result was a loop of five commands that when repeatedly sent made the pump turn on.

-Isaac
Dilbert
Posts: 410
Joined: Mon Aug 12, 2019 7:21 pm
Location: Dublin, Ireland
Been thanked: 4 times

Re: E90 EPS (Active Steering Rack integration)

Post by Dilbert »

Just so i'm understanding correctly; the rack is currently connected to the correct CAN bus (PT-CAN?) in the E90 and once the speed goes > 5mph it will become active? That sounds like progress. That is probably a safety mode, so if the engine was to cut-out you wouldn't be without power steering. Was this streering rack originally fitted to the vehicle? or did this vehicle have hydraulic steering?

So the vehicle currently has no engine ECU? Or is it still fitted and sending messages?

Have you looked at Damian's code for the E63? he has the CAN ID's for simulating the ignition signal and engine tach signal. You could compile this code for an arduino Due and use it to send the same CAN messages:-
https://github.com/damienmaguire/Lexus- ... 50h_v7.ino

Or use another tool to send them from a PC (probably easier). The two frames i'd look to send would be:-



outframe.id = 0x332; // dash on message
outframe.length = 2; // Data payload 2 bytes
outframe.extended = 0; // standard id
outframe.rtr=1; //No request
outframe.data.bytes[0]=0x61; //sets max rpm on tach (temp thing)
outframe.data.bytes[1]=0x82;
Can1.sendFrame(outframe);





outframe.id = 0x0AA; // Set our transmission address ID
outframe.length = 8; // Data payload 8 bytes
outframe.extended = 0; // Extended addresses - 0=11-bit 1=29bit
outframe.rtr=1; //No request
outframe.data.bytes[0]=0x5f;
outframe.data.bytes[1]=0x59;
outframe.data.bytes[2]=0xff;
outframe.data.bytes[3]=0x00;
outframe.data.bytes[4]=lowByte(RPM_A);
outframe.data.bytes[5]=highByte(RPM_A);
outframe.data.bytes[6]=0x80;
outframe.data.bytes[7]=0x99;


You should really see if you can get an DBC file for the P-CAN bus on the E90, as that might have the correct CAN IDs in it that you need to send.
Dilbert
Posts: 410
Joined: Mon Aug 12, 2019 7:21 pm
Location: Dublin, Ireland
Been thanked: 4 times

Re: E90 EPS (Active Steering Rack integration)

Post by Dilbert »

If you could connect something like savyCAN to the the PT CAN bus, i'm not sure if that's on the diag connector so would be best to Tap it at the main engine ECU, you could load a DBC file to decode the data.

https://github.com/dzid26/opendbc-BMW-E ... 9x_e8x.dbc
vin
Posts: 54
Joined: Mon Oct 26, 2020 3:05 am
Been thanked: 3 times

Re: E90 EPS (Active Steering Rack integration)

Post by vin »

Isaac96 wrote: Fri Feb 26, 2021 1:58 am You say it comes alive when you hit 5mph.

So hook up a CAN logger to the EPS wires. This is usually a piece of hardware (CAN-Due for example) connected to a laptop running suitable software (savvyCAN is a good one).

Drive 10mph or so and record some CAN (get someone to help you of course). A few seconds should be plenty.

Disconnect the EPS CAN wires from the rest of the car and play your recording back to the EPS. This should bring it to life!

Then it's just a matter of simplifying the commands so you don't need a laptop hooked up all the time. Take some messages out of the recording and see if it still makes the EPS go. Basically take stuff out til it stops, you want just the bare minimum.

I followed this process on Tuesday to get a water pump in a Coda EV working. It took a couple of hours, but the end result was a loop of five commands that when repeatedly sent made the pump turn on.

-Isaac


Hi Isaac

Thanks for the input. I'm in the process of installing SavvyCAN to see what it's like, however I need to source some hardware to interface the laptop to the CAN.

Thanks again fo your input. Great stuff.
vin
Posts: 54
Joined: Mon Oct 26, 2020 3:05 am
Been thanked: 3 times

Re: E90 EPS (Active Steering Rack integration)

Post by vin »

Dilbert wrote: Fri Feb 26, 2021 8:29 am Just so i'm understanding correctly; the rack is currently connected to the correct CAN bus (PT-CAN?) in the E90 and once the speed goes > 5mph it will become active? That sounds like progress. That is probably a safety mode, so if the engine was to cut-out you wouldn't be without power steering. Was this streering rack originally fitted to the vehicle? or did this vehicle have hydraulic steering?

So the vehicle currently has no engine ECU? Or is it still fitted and sending messages?

Have you looked at Damian's code for the E63? he has the CAN ID's for simulating the ignition signal and engine tach signal. You could compile this code for an arduino Due and use it to send the same CAN messages:-
https://github.com/damienmaguire/Lexus- ... 50h_v7.ino

Or use another tool to send them from a PC (probably easier). The two frames i'd look to send would be:-



outframe.id = 0x332; // dash on message
outframe.length = 2; // Data payload 2 bytes
outframe.extended = 0; // standard id
outframe.rtr=1; //No request
outframe.data.bytes[0]=0x61; //sets max rpm on tach (temp thing)
outframe.data.bytes[1]=0x82;
Can1.sendFrame(outframe);





outframe.id = 0x0AA; // Set our transmission address ID
outframe.length = 8; // Data payload 8 bytes
outframe.extended = 0; // Extended addresses - 0=11-bit 1=29bit
outframe.rtr=1; //No request
outframe.data.bytes[0]=0x5f;
outframe.data.bytes[1]=0x59;
outframe.data.bytes[2]=0xff;
outframe.data.bytes[3]=0x00;
outframe.data.bytes[4]=lowByte(RPM_A);
outframe.data.bytes[5]=highByte(RPM_A);
outframe.data.bytes[6]=0x80;
outframe.data.bytes[7]=0x99;


You should really see if you can get an DBC file for the P-CAN bus on the E90, as that might have the correct CAN IDs in it that you need to send.

Hi Dilbert

Thanks again I'm definitely going to dig through this info as soon as I get some hardware to interface the CAN BUS to my laptop. To answer your question, the steering rack came with this car i believe its on all BMW from 2005 onwards, don't quote me on that. I found this site which shows the EPSs and BMWs that are fitted. https://www.ecutesting.com/product-catalogue/bmw/

Also I only removed the engine, so all other ECUs are still in the car so hopefully I can figure out how to tap into them soon.

I know @Jack Bauer has some codes on his GitHub so i'll definitely have a look at it.

Thanks again, much appreciated.
Dilbert
Posts: 410
Joined: Mon Aug 12, 2019 7:21 pm
Location: Dublin, Ireland
Been thanked: 4 times

Re: E90 EPS (Active Steering Rack integration)

Post by Dilbert »

Ok so that means the rack is coded to the vehicle, so there'll be no coding issues.

Yep capture some can data from the power train can bus, you should see the existing ecu sending 0rpm for the tach. You'll probably need to unplug the existing ecu so you can try send that message yourself.

Once they ecu is disconnected the dash will light up like a Christmas tree, as lots of other ecu's will be expecting messages from the engine ecu, stuff like engine torque etc...so these will need to be simulated too.
User avatar
Jack Bauer
Posts: 3563
Joined: Wed Dec 12, 2018 5:24 pm
Location: Ireland
Has thanked: 1 time
Been thanked: 87 times
Contact:

Re: E90 EPS (Active Steering Rack integration)

Post by Jack Bauer »

Might find something useful here :
http://www.loopybunny.co.uk/CarPC/k_can.html
I'm going to need a hacksaw
vin
Posts: 54
Joined: Mon Oct 26, 2020 3:05 am
Been thanked: 3 times

Re: E90 EPS (Active Steering Rack integration)

Post by vin »

Jack Bauer wrote: Sun Feb 28, 2021 2:12 pm Might find something useful here :
http://www.loopybunny.co.uk/CarPC/k_can.html

That's absolutely fantastic stuff, I'm looking at it now.


Has anyone tried pulling car CAN using the VCU? I'm using the latest version for the Prius Gen 2.
Dilbert
Posts: 410
Joined: Mon Aug 12, 2019 7:21 pm
Location: Dublin, Ireland
Been thanked: 4 times

Re: E90 EPS (Active Steering Rack integration)

Post by Dilbert »

In theory it is possible if the correct firmware is on the unit.

Your main problem will be running the serial bus fast enough to take the 500kbps CAN data.

If you have an arduino due you can connect up a can transceiver and run the savycan firmware. You can also do the same on an esp32 wifi module. I've done both. But it does require some fiddling to get the code to compile and the CAN physical layers connected up.

The savycan pc tool is actually quite good if you can get the interface setup.
vin
Posts: 54
Joined: Mon Oct 26, 2020 3:05 am
Been thanked: 3 times

Re: E90 EPS (Active Steering Rack integration)

Post by vin »

Dilbert wrote: Wed Mar 03, 2021 10:47 pm In theory it is possible if the correct firmware is on the unit.

Your main problem will be running the serial bus fast enough to take the 500kbps CAN data.

If you have an arduino due you can connect up a can transceiver and run the savycan firmware. You can also do the same on an esp32 wifi module. I've done both. But it does require some fiddling to get the code to compile and the CAN physical layers connected up.

The savycan pc tool is actually quite good if you can get the interface setup.
Hi Dilbert,

So I've managed to configure the Arduino Due with a SN65HVD230 transceiver and connect to the car's CAN High and Low from the OBD port, It appears that I'm talking an ECU because I'm getting some CAN, but the only codes I'm getting is from the ignition (ID 130).

I don't have any filters set, I've put the key into the ignition, I've been playing with some of the buttons to see if something else registers, but nothing. I think I might have to tap into the CAN from a different location. Still doing some research.

Thanks
Dilbert
Posts: 410
Joined: Mon Aug 12, 2019 7:21 pm
Location: Dublin, Ireland
Been thanked: 4 times

Re: E90 EPS (Active Steering Rack integration)

Post by Dilbert »

can you tap the CAN at the steering rack?

what CAN IDs are you seeing?
vin
Posts: 54
Joined: Mon Oct 26, 2020 3:05 am
Been thanked: 3 times

Re: E90 EPS (Active Steering Rack integration)

Post by vin »

Hi Guys,

I think we're getting somewhere with the EPS. Today I've managed to get some IDs and hack through them thought the PT CAN BUS (Red blue-red strip twisted Pair). I found ID 1A0 and had a bit of a play with it. Looking Good.


I'll attach a link of the video, if you're interested.


vin
Posts: 54
Joined: Mon Oct 26, 2020 3:05 am
Been thanked: 3 times

Re: E90 EPS (Active Steering Rack integration)

Post by vin »

Dilbert wrote: Sat Mar 20, 2021 4:34 pm can you tap the CAN at the steering rack?

what CAN IDs are you seeing?
Hi Dilbert,

I tapped into the the PT-Can and was able to get loads of can messages. ID 1A0 seems to be the one. 👍
Dilbert
Posts: 410
Joined: Mon Aug 12, 2019 7:21 pm
Location: Dublin, Ireland
Been thanked: 4 times

Re: E90 EPS (Active Steering Rack integration)

Post by Dilbert »

That's 416 in decimal

BO_ 416 Speed: 8 XXX
SG_ Counter1 : 55|4@0+ (1,0) [0|14] "" XXX
SG_ AccY : 16|12@1- (1,0) [0|255] "" XXX
SG_ YawRate : 40|12@1- (1,0) [0|255] "" XXX
SG_ AccX : 28|12@1- (1,0) [0|15] "" XXX
SG_ Moving : 12|1@0+ (1,0) [0|15] "" XXX
SG_ VehicleSpeed : 0|12@1+ (0.103,0) [0|255] "kph" XXX
SG_ Checksum : 63|8@0+ (1,0) [0|15] "" XXX
Dilbert
Posts: 410
Joined: Mon Aug 12, 2019 7:21 pm
Location: Dublin, Ireland
Been thanked: 4 times

Re: E90 EPS (Active Steering Rack integration)

Post by Dilbert »

So it it sees the speed message it will give assist?
vin
Posts: 54
Joined: Mon Oct 26, 2020 3:05 am
Been thanked: 3 times

Re: E90 EPS (Active Steering Rack integration)

Post by vin »

Dilbert wrote: Mon Mar 22, 2021 9:40 pm So it it sees the speed message it will give assist?
There seems to be a number of ID with speed references, however this ID does not seem to be engine or Tach related also the gittering improved drastically when I reduces the trigger to 1ms. I will do some more testing tomorrow.
Dilbert
Posts: 410
Joined: Mon Aug 12, 2019 7:21 pm
Location: Dublin, Ireland
Been thanked: 4 times

Re: E90 EPS (Active Steering Rack integration)

Post by Dilbert »

There is a flag in that message called moving it may we'll be using this flag along with the speed signal for the assist level.

This might be for fail safe, where if an engine was to cut out while traveling at speed, to make sure assist us there to get off the road.

There's a counter and a checksum in that message too, so these might need to be set/calculated.
User avatar
crasbe
Posts: 234
Joined: Mon Jul 08, 2019 5:18 pm
Location: Germany
Has thanked: 43 times
Been thanked: 97 times

Re: E90 EPS (Active Steering Rack integration)

Post by crasbe »

Even though this might not be relevant anymore since the thread is nearly one year old, I think I can explain how to make the EPS happy. It's explained in the BMW WDS Wiring Diagram System:

The conditions to enable the EPS are:
- Ignition on
- DME/DDE (Digital Motor Electronics/Digital Diesel Electronics, essentially your ECU) sends a "Engine running" signal and the current RPM on the PT_CAN Bus

The conditions to turn the EPS off are:
- Engine off
- Vehicle Speed = 0

This is probably the reason why the EPS activates itself as soon as the vehicle speed is above 5km/h.
There shouldn't be any more communication than this necessary between the DME/DDE and the EPS.
User avatar
EV_Builder
Posts: 1199
Joined: Tue Apr 28, 2020 3:50 pm
Location: The Netherlands
Has thanked: 16 times
Been thanked: 33 times
Contact:

Re: E90 EPS (Active Steering Rack integration)

Post by EV_Builder »

Dilbert wrote: Mon Mar 22, 2021 9:39 pm That's 416 in decimal

BO_ 416 Speed: 8 XXX
SG_ Counter1 : 55|4@0+ (1,0) [0|14] "" XXX
SG_ AccY : 16|12@1- (1,0) [0|255] "" XXX
SG_ YawRate : 40|12@1- (1,0) [0|255] "" XXX
SG_ AccX : 28|12@1- (1,0) [0|15] "" XXX
SG_ Moving : 12|1@0+ (1,0) [0|15] "" XXX
SG_ VehicleSpeed : 0|12@1+ (0.103,0) [0|255] "kph" XXX
SG_ Checksum : 63|8@0+ (1,0) [0|15] "" XXX
Ok counter and CRC formula are important.
Converting an Porsche Panamera
see http://www.wdrautomatisering.nl for bespoke BMS modules.
ingenierodelmeme
Posts: 1
Joined: Mon Jun 12, 2023 3:03 pm

Re: E90 EPS (Active Steering Rack integration)

Post by ingenierodelmeme »

vin wrote: Mon Mar 22, 2021 8:45 pm Hi Guys,

I think we're getting somewhere with the EPS. Today I've managed to get some IDs and hack through them thought the PT CAN BUS (Red blue-red strip twisted Pair). I found ID 1A0 and had a bit of a play with it. Looking Good.


I'll attach a link of the video, if you're interested.


Very interesting your project, did you finally make it work? Could you tell me what messages you sent by can to make it work? thank you.
Post Reply