Ford Focus RS Forum banner
21 - 40 of 1,178 Posts
Definitely subscribing. I am so glad to see you working on this!

Inputs to the equations that do this are many and come from nearly every other module on the bus. Drive Mode, Steering Wheel Position, Engine Brake Torque, Wheel Speeds, Accelerator Pedal Position, Lateral and longitudinal accelerations, yaw rate, PTU temperature, etc.
I'd be really curious to know how the drive modes change the RDU behavior. Do Normal, Sport, and Track modes share the same AWD mode (assuming the same stability control setting).

As you may be aware, FORScan and other applications have this available, but I found they were missing some things and filled in the holes myself.
Would you mind sharing some of these PIDs so that we could plug them into Torque Pro? I'd love to see L/R RDU torque demand and inferred temperatures display on the Sync screen (via OBD2 to AA app).
 
Impressive reverse engineering!

Where do you see this project going in the long run?

Maybe something like an rdu controller with some cool knobs or touch ui? Or are you more into flashing programs? I’m just curious.
 
Bug, your a f*cxing genius. Finally my prayers are being answered. Love the read and looking forward to any support I can do.

One of the disappointments of the RS for me is the RDU and its function on launch control. This car should launch like an awd system. The RDU limiting torque to the wheels is obvious. I took a video of a launch slowed it down when viewing. It's clear as daylight front wheels rotate first then the rear. I still have yet to get a descent short time at the track. Would be nice be able to control the power distribution.
 
Hey, you're purple drank tuned too. Nice. Are you in the Midwest RS FB group? Also, I plan to do plenty of AutoX in WI next year (Road America, USAIR) and hopefully one HPDE at Road America if you're ever interested.
Ryan is the bee's knees at Purple Drank.

Yes I am. I definitely would love to join you when you go if I can make it work out.
 
Discussion starter · #25 ·
Definitely subscribing. I am so glad to see you working on this!



I'd be really curious to know how the drive modes change the RDU behavior. Do Normal, Sport, and Track modes share the same AWD mode (assuming the same stability control setting).



Would you mind sharing some of these PIDs so that we could plug them into Torque Pro? I'd love to see L/R RDU torque demand and inferred temperatures display on the Sync screen (via OBD2 to AA app).
So the RDU has the information about a lot of things pulled in off the CAN Bus. I'm still working on making sure I have everything traced down right, but for now, it appears to basically be in one of 4 modes:
- Normal
- Sport/Track
- Unknown? Drift probably.
- Launch active or available (when launch control is activated).

As to the Torque PIDs, they could all be added as custom PIDs. I'll try to compile them into a CSV that can be loaded in there this weekend.

Impressive reverse engineering!

Where do you see this project going in the long run?

Maybe something like an rdu controller with some cool knobs or touch ui? Or are you more into flashing programs? I’m just curious.
Honestly, just interested in flashing the calibration you want on there. Direct control that way would be feasible enough for someone to do already. Their are very few outputs from the RDU in comparison to pretty much every other module because its job is straightforward enough. There's basically a brushless DC motor control output, and then the output for the two valves. But I feel that the factory module has a lot of sophistication that could be exploited for people who want to toy with it to achieve better results.

My day job is actually in the tuning software world, and I've been using that to do this development, as such, this stuff is all available in our latest Beta for anyone with the software/hardware to use, hence how I already have had some testing done (I lack an actual Focus RS myself!).

Bug, your a f*cxing genius. Finally my prayers are being answered. Love the read and looking forward to any support I can do.

One of the disappointments of the RS for me is the RDU and its function on launch control. This car should launch like an awd system. The RDU limiting torque to the wheels is obvious. I took a video of a launch slowed it down when viewing. It's clear as daylight front wheels rotate first then the rear. I still have yet to get a descent short time at the track. Would be nice be able to control the power distribution.
This is a big thing for me as well. One of the first areas I'm diving into is how to generally make this more aggressive. The fastest drag times out of Focus RS's look like numbers from a FWD car, not from an AWD one. I'm sure this is all to protect the RDU itself, but those people WANT to push it hard, so that's what I'm aiming to unlock ASAP.
 
This is going to be great I can't wait for some legit development here. My wallet is ready!!! Long way off but still pumped to have a AWD car rather than a FWD with some RWD assistance.
 
First off great work! So cool to see the rdu being cracked.

Second could temp sensors be used to feed the rdu the infered clutch temps? This way cooling the ptu could be somewhatbside stepped.

Sent from my SM-G955F using Tapatalk
 
Discussion starter · #31 ·
First off great work! So cool to see the rdu being cracked.

Second could temp sensors be used to feed the rdu the infered clutch temps? This way cooling the ptu could be somewhatbside stepped.

Sent from my SM-G955F using Tapatalk
Not easily. There aren't any available unused pins on the controller itself to add any kind of extra signal in. At best you'd probably have to make a device that reads them, sends them over the CAN bus, modify the RDU itself to read them. It's non-trivial and would be quite the undertaking.

@Shoey, I have attached a CSV that you should be able to pull into Torque and get to work. I did some quick testing on the bench and it seems to be okay, but not 100% sure. Let me know if there's one that doesn't make sense in the actual car. I cant test the torques for example as I don't have a moving vehicle to check it with!
 

Attachments

I was working on figuring out those PIDs earlier in the year, but got distracted and never went back to it. Bugasu, could you explain the Equation column in your spreadsheet a bit? Like what the A, B, C, and D variables are? I'm a rookie to this stuff, so I'm trying to see how closely it aligns with my own findings. I was using ForScan and Wireshark to figure it out, which I'm sure is far less than ideal compared to what you can do.
 
I was working on figuring out those PIDs earlier in the year, but got distracted and never went back to it. Bugasu, could you explain the Equation column in your spreadsheet a bit? Like what the A, B, C, and D variables are? I'm a rookie to this stuff, so I'm trying to see how closely it aligns with my own findings. I was using ForScan and Wireshark to figure it out, which I'm sure is far less than ideal compared to what you can do.
My understanding is limited as well, but from my reading, it appears that A represents the first byte of the returned raw data, B is the second byte, etc.
@Bugasu, thank you very much for following up as promised. I just did a test run in the car and it appears to be giving proper values for PTU and RDU Oil Temp, as well as L/R Torque demand. It's working really well with the Android Auto app just like I hoped for.


Thank you again.

Edit: Video added.
 
My understanding is limited as well, but from my reading, it appears that A represents the first byte of the returned raw data, B is the second byte, etc.

@Bugasu, thank you very much for following up as promised. I just did a test run in the car and it appears to be giving proper values for PTU and RDU Oil Temp, as well as L/R Torque demand. It's working really well with the Android Auto app just like I hoped for.

https://www.youtube.com/watch?v=gLeRxbPEMXY&feature=youtu.be

Thank you again.

Edit: Video added.
That's what I was thinking it meant. I may not be seeing all of the raw data with my ForScan+wireshark method. Or I just don't know what I'm looking at..haha

My logging shows ForScan request PID 22EE041, which lines up with what Bugasu found for the L/R requested torque (with an extra 1 at the end for some reason). The data that car gives in response is 62EE0401730088, which doesn't seem to be enough to break down into the A, B, C, D variables, so I must be missing something.

Nice video too, I wish CarPlay wasn't so limited in comparison to AA. Since I can't display anything on the cars screen, I was looking to use an arduino to build a "smart mirror" so I could display stuff like this in the cars rear view mirror.
 
That's what I was thinking it meant. I may not be seeing all of the raw data with my ForScan+wireshark method. Or I just don't know what I'm looking at..haha

My logging shows ForScan request PID 22EE041, which lines up with what Bugasu found for the L/R requested torque (with an extra 1 at the end for some reason). The data that car gives in response is 62EE0401730088, which doesn't seem to be enough to break down into the A, B, C, D variables, so I must be missing something.

Nice video too, I wish CarPlay wasn't so limited in comparison to AA. Since I can't display anything on the cars screen, I was looking to use an arduino to build a "smart mirror" so I could display stuff like this in the cars rear view mirror.
I was curious, so I looked it up. Here is a good read on the message formatting (see page 40, bottom left paragraph):
https://www.elmelectronics.com/wp-content/uploads/2016/07/ELM327DS.pdf

The final 1 might be some kind of checksum (?). The response you're seeing is:
62: Mode 22 response (0x22 + 0x40)
EE04: ID repeated
01: A
73: B
00: C
88: D
 
Discussion starter · #38 ·
Glad to hear it working correctly.

The equations thing in Torque is just each byte of the response is put into alphabetical characters, so you guys have got that figured out.

The trailing 1 is because you were on an ELM327 device or similar... Its the number of frames expected in response to your sent frame. So this tells the ELM chip to only expect 1 frame of response, so it returns much faster, the idea is to increase the sampling rate. I believe Torque automatically appends these as needed based on adapter.
 
Very cool!

When people tune these cars for more power, they change the front/rear power distribution, because the rear end applies fixed torque and doesn't "know" about the additional power. I wonder if, in time, power tunes will have corresponding RDU tunes, and if upgrading the pump might be required.

Very nice work, Bugasu. What did you use in terms for hardware/software for interfacing to the control units? Were you working off some kind of protocol reference, or did you have to reverse engineer all this stuff?
 
Discussion starter · #40 ·
Very cool!

When people tune these cars for more power, they change the front/rear power distribution, because the rear end applies fixed torque and doesn't "know" about the additional power. I wonder if, in time, power tunes will have corresponding RDU tunes, and if upgrading the pump might be required.

Very nice work, Bugasu. What did you use in terms for hardware/software for interfacing to the control units? Were you working off some kind of protocol reference, or did you have to reverse engineer all this stuff?
Very much so on the torque thing. I think I'll have something more to test with that on this week to hopefully see if we can get the AWD staying engaged during launches.
Hardware/software is all CAN based stuff. Being in the industry I have a lot of different tools, but for this I primarily used a Kvaser Leaf Light HS v2 for initial debug and development, and now the HPTuners MPVI since I've gotten past that part. For the most part, it behaves like any other non-emissions module for Ford, which is to say it supports UDS (Unified Diagnostic Services), but not OBD-II. Everything else has to be worked out via reverse engineering of some flavor.
 
21 - 40 of 1,178 Posts