S-Type / S type R Supercharged V8 ( X200 ) 1999 - 2008 2001 - 2009
Sponsored by:
Sponsored by:

Spoofing the TCM

Thread Tools
 
Search this Thread
 
Old Mar 13, 2021 | 07:37 PM
  #1  
iansane's Avatar
Thread Starter
|
Member
5 Year Member
Joined: Jul 2019
Posts: 74
Likes: 36
From: Tacoma, Wa
Default Spoofing the TCM for a manual swap

I'm going to share all the knowledge I have on faking a TCM. It's not much and at this point it's not a complete solution but I'm working on it. I wanted a manual transmission in my StypeR and nothing was going to stop me. The car was amazing stock, but the transmission programming was just... ungainly. I think it fits well for some one that isn't going to put the car through it's paces on a regular basis. Plus automagics are pretty much voodoo to me. I've had a few friends tell me I should polish this up a little, make it a complete solution and try to sell it. I think the market is too small for something like this and I really, really enjoy the car community and like giving knowledge back. It's a collective. If we help each other, all our cars get better.

I did all the mechanical stuff for the swap pretty easily. There are few threads laid out that show what all you need if you want the mechanical bits but almost nothing in regards to solving the computer issue.

A quick rundown of the hard parts I used incase you want to know.
Transmission: stock ZF6-53 6 speed manual used behind the diesel. Purchased from Ebay (I got screwed here and the second gear synchro is toast.)
Flywheel: Conversion flywheel from Tom Lenthall LTD Very nice guys. Super easy to deal with. Shipped fast once it was fab'd. I think he contracts out to another machine shop but I don't care. It's a beautiful piece £595.00+shipping
Clutch: "high torque" regular parts store clutch set for a small block chevrolet. Application I used was an 1990 Camaro.
Clutch Slave: stock replacement diesel unit
Clutch Master: stock replacement diesel unit
Clutch hardline: I used part of the factory unit to get the quick disconnect and then a bubble flared brake hard line section I got from my local parts house. Bend/cut/flared the line myself to fit.
Pedals: Used factory pedals from an '04. I lost the adjustable pedals but I don't mind
Crossmember: stock for my car. It's mounting points are slotted. It just slid back.
Driveshaft: Stock driveshaft. It's 2pc telescoping so it just compressed more
Shifter: stock used diesel shifter. I cut about 4" out of the assembly to fit the car and used the shift lever from a BMW because I liked the positioning and shift knob choices better.
I don't think there is anything else?

Okay, on to the fun stuff. Firstly, this would have taken me FOREVER to get done if it hadn't been for the suggestions and pre-emptive canbus decoding done by user Crbass. He's pulled and figured out a ton of what makes his XK tick and most of it carries over into the s-type. I wanted to make a module that would tap into the CANbus system and fool the ECU into thinking the TCM and auto trans were still there. The TCM and various modules around the car talk to each other over a network like a regular wired home network. Communicating on this network required choosing a module and then coding a program to run on that module. I didn't know anything about either process. I had bought a raspberry Pi years ago and never even opened the box. After a bit of research I chose an Arduino board because it was smaller than the Pi, supposedly booted up faster and I didn't need a lot of the extra things the Pi came with like HDMI output.
I chose this one:
https://store.arduino.cc/usa/arduino-uno-smd-rev3
The box standard uno. One of their cheapest versions. I didn't need anything fancy. The arduino itself is just what runs the program you choose to upload to it. It has a bunch of connections on it that can do some crazy things but it needs smaller daughter boards to do big things like run a motor, trigger relays, listen to a GPS signal or in my case talk on the CANbus. These are called shields.
I bought this one:
https://store.arduino.cc/usa/can-bus...97745ff04ac109
It plugs right into the top of the arduino. No extra wires needed. I did get some plastic standoffs to help fasten everything together.
Amazon Amazon

Now I needed to learn to program. Yikes. The arduino runs on the C programming language. Which supposedly isn't crazy to learn but it is a bit daunting if you've never programmed. And before a few weeks ago I really hadn't. The arduino comes with a link to software that will upload whatever code you have written to it in short order. It'll also verify whether that code makes sense or has any glaring errors in it. Obviously not everything. If you tell it to do something on the wrong pin it won't catch that but if you forget to "end" the code it'll let you know.

#include "mcp_can.h"
#include <SPI.h>

MCP_CAN CAN0(10);

unsigned char tcm1[8] = {0x00, 0x00, 0x61, 0x02, 0x00, 0x00, 0x00, 0x63};
unsigned char tcm2[8] = {0x01, 0xff, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00};
unsigned long startMillis;
unsigned long currentMillis;
unsigned long previousMillis;
const unsigned long interval = 10;

void setup() {

Serial.begin(9600);
startMillis = millis();
if (CAN0.begin(CAN_500KBPS) == CAN_OK)
Serial.print("CAN Init OK.\n\r\n\r");
else
Serial.print("CAN Init Failed.\n\r");

}

void loop()
{
currentMillis = millis();

if (currentMillis - previousMillis >= interval)
previousMillis = currentMillis;

CAN0.sendMsgBuf(0x3e9, CAN_STDID, 8, tcm1);
CAN0.sendMsgBuf(0xc9, CAN_STDID, 8, tcm2);
}
That's what I came up with after a few days. It defines what pin the CAN output should be on and what message should be kicked out on a repeating cycle every 10milliseconds (that was suggested by Crbass). I can get more indepth to explain what most of that means if you want but I don't know it all. And if there are actual programmers out there shaking their head at me, I'm sorry.

Then came attaching it to the car. Since I needed to remove the Jgate module to put the manual shifter in I decided that was the best place to tap into the CANbus. I paired the wires together and stuffed the arduino in the center console powering it off of the cigarette lighter in the console.

After a few key cycles the transmission fault light and restricted performance lights disappeared the car had it's veracity back! Amazing! It's truly a remarkable change in the car. The check engine light disappeared for a short while but then came back. I have removed the cats from my car and in a haste to get the car started I just jumpered the "park/neutral" wires at the TCM connector so the car always thinks it's in neutral/park. This hasn't affected drivability but cruise control is disabled and it threw a check engine light for my missing cats and a park/neutral error.
My assumption right now is that if I removed the jumper wire I placed on the TCM connector and code the arduino to take care of the "park/neutral/in gear status" with switched relay or something I will get cruise control back. That is yet to be proven though. I'll continue to update with my progress.
I'll probably also edit/rewrite some of this for clarity. This is just the first draft.

I'm really excited for what else can be done on the CANbus.
 

Last edited by iansane; Mar 13, 2021 at 11:21 PM.
Reply
Old Mar 13, 2021 | 07:55 PM
  #2  
xalty's Avatar
Veteran Member
5 Year Member
Liked
Loved
Community Favorite
Joined: Dec 2019
Posts: 3,695
Likes: 1,222
Default

i’m assuming the tdv6 manual transmission has an onboard speed sensor and is reporting accurately?

maybe you’ve removed the ratio checks and you can run a 8.8 LSD carrier with 3.31 gears from the linc ls
 

Last edited by xalty; Mar 13, 2021 at 07:58 PM.
Reply
Old Mar 13, 2021 | 08:01 PM
  #3  
iansane's Avatar
Thread Starter
|
Member
5 Year Member
Joined: Jul 2019
Posts: 74
Likes: 36
From: Tacoma, Wa
Default

No speed sensor. Nothing electrical is hooked up to the transmission. I haven't even hooked up the reverse lights yet.
 
Reply
Old Mar 14, 2021 | 09:26 AM
  #4  
clubairth1's Avatar
Veteran Member
15 Year Member
Community Builder
Community Influencer
Liked
Joined: May 2009
Posts: 12,078
Likes: 3,362
From: home
Default

With the park neutral wired together I am surprises the car does not limit you to 3000 rpm?

.
.
.
 
Reply
Old Mar 14, 2021 | 10:59 AM
  #5  
iansane's Avatar
Thread Starter
|
Member
5 Year Member
Joined: Jul 2019
Posts: 74
Likes: 36
From: Tacoma, Wa
Default

I'm actually surprised about that as well. I saw in one of the CAN threads someone asking about the limiter but for some reason I don't have that issue while I'm driving. I'm about to hit 500 miles on the new clutch so I'll try a few redline pulls to see where the limiter is now. Up to this point I've only free rev'd it to about 4500rpm.
 
Reply
Old Mar 14, 2021 | 05:24 PM
  #6  
iansane's Avatar
Thread Starter
|
Member
5 Year Member
Joined: Jul 2019
Posts: 74
Likes: 36
From: Tacoma, Wa
Default

Quick update. I did more driving around today to finish off breaking in the clutch and then decided to stand on it. I should have done it yesterday because it was sunny and clear. Today is pretty wet. Even still, I found a smooth enough road that I could lay into it. It danced around a bunch even with traction control flashing at me and I couldn't redline it. In third I could finally wind it out and found the hard limiter. It bounces off 4500rpm. Won't go higher. No fault lights or anything yet though. I'm hoping that's because of it still thinking it's in park/neutral. I can only describe it as....raucous. Felt like a carnival ride. Ridiculously fun. Feels faster but that may just be since I haven't driven it automatic in a year.

I'm going to work on the code for the arduino to trip the park/neutral switch only at certain times. Maybe on with rpm zero, wheel speed zero and off with brake or clutch switch activated, rpm above 650?

Edit;
Alright. I jacked the car up and moved the park/neutral jumper harness up to the center console. I haven't written any extra code for the arduino yet but I figured I'd at least test the theory that the park/neutral switch was causing the 'cruise not available' message and the 4500rpm rev limiter. It was. I started the car, undid the wires and went for a drive. I have throttle all the way to redline and the cruise functioned. However, now the tune for the engine is different. Free reving in "neutral" was fast and crisp. So driving like that was amazing. Now the throttle hangs for a very long time after I clutch in to shift. I'm hoping I don't need to find someone to "tune" the car to dial back that throttle follower.

Edit2;
I realize now that the big complaints I had about the geriatric shifting on the transmission might have been exacerbated by the stock tune and it's penchant for holding RPM. Still worth the swap.
 

Last edited by iansane; Mar 14, 2021 at 10:29 PM.
Reply
Old Mar 15, 2021 | 10:32 AM
  #7  
clubairth1's Avatar
Veteran Member
15 Year Member
Community Builder
Community Influencer
Liked
Joined: May 2009
Posts: 12,078
Likes: 3,362
From: home
Default

Glad you found it and now you know the real weakness of the STR!
Lack of a LSD. We have had a few guys tackle this and it is possible but not cheap!
Such a shame it did not come standard. I now have a tune and lower pulley on my 2014 XJR with the E-diff and it has about 620HP. Love the E-diff it really lets you put the power down.

Look at this thread as Tijoe did a bunch of work on it!
LSD for S-Type
.
.
.
 
Reply
Old Mar 15, 2021 | 02:04 PM
  #8  
iansane's Avatar
Thread Starter
|
Member
5 Year Member
Joined: Jul 2019
Posts: 74
Likes: 36
From: Tacoma, Wa
Default

Originally Posted by clubairth1
Glad you found it and now you know the real weakness of the STR!
Lack of a LSD. We have had a few guys tackle this and it is possible but not cheap!
Such a shame it did not come standard. I now have a tune and lower pulley on my 2014 XJR with the E-diff and it has about 620HP. Love the E-diff it really lets you put the power down.

Look at this thread as Tijoe did a bunch of work on it!
LSD for S-Type
Wow. Lot of info and conjecture in that thread. Bottom line, looks like for the gen2 diffs the most straight forward option? Did any STRs come with a gen1 diff?

I do agree; an LSD would be very beneficial.
 
Reply
Old Mar 15, 2021 | 03:33 PM
  #9  
xalty's Avatar
Veteran Member
5 Year Member
Liked
Loved
Community Favorite
Joined: Dec 2019
Posts: 3,695
Likes: 1,222
Default

Originally Posted by iansane
Wow. Lot of info and conjecture in that thread. Bottom line, looks like for the gen2 diffs the most straight forward option? Did any STRs come with a gen1 diff?

I do agree; an LSD would be very beneficial.
lots of old information, a guy on the X350 forum did it with no issue. https://www.jaguarforums.com/forum/x...-0-lsd-242594/

you need a gen1 pumpkin and CV axles, 28-spline LSD carrier from a ford 8.8 and the ring\pinion from your gen2 diff to avoid trans failsafe. then you need washers to stop the abs sensor from hitting the larger reluctor ring.
 

Last edited by xalty; Mar 15, 2021 at 03:57 PM.
Reply
Old Mar 16, 2021 | 01:26 PM
  #10  
clubairth1's Avatar
Veteran Member
15 Year Member
Community Builder
Community Influencer
Liked
Joined: May 2009
Posts: 12,078
Likes: 3,362
From: home
Default

Yes that is pretty much it. But it is a big job.
I was hoping Tijoe would post as he has probably done the most with this. If you did read the thread you can also use a bolt in Quaife but it's expensive and harder to find.
But Paramount does sell it in the UK for 899 GBP (About $1250). That would be the least amount of work but probably more expensive depending on your luck in getting the used parts required when using the Ford diff.
STR LSD
.
.
.
 
Reply
Old Apr 4, 2022 | 07:42 PM
  #11  
nelsgw123's Avatar
Junior Member
Joined: Apr 2022
Posts: 6
Likes: 0
Default

iansane

I would like to help you complete the manual conversion. I do write C code, and have done projects for the adruino. I have a S6-53, flywheel, clutch, master/slave cylinder, pedals from a XJS, but need the code. Did you use the manual gear sensor on top of the S6-53? The reverse is a simple switch on the back of the S6-53. I have been assuming this code must produce the input/output speed counts and the trans temp. Not sure what other messages must be produced. I think the 'not in park' and 'D to 5' switches need to be implemented also (is this the case?). Can you share the code and the CAN messages needed for a 2005 XK8? I have rear crbass early CAN messages. Please share what you can.
Glenn
 
Reply
Old Apr 6, 2022 | 04:25 AM
  #12  
M-e-l-l-o-w's Avatar
Senior Member
10 Year Member
Liked
Joined: Apr 2015
Posts: 643
Likes: 278
From: Essex UK
Default

From something I have read in the past I think throttle input is restricted on an STR when the car is in P or N. (80% from memory, but I may be wrong??) Basically you do not get full power when in P or N.
Yes this may well 'cheat' the official measured emission figures!!

Mellow
 
Reply
Old Apr 6, 2022 | 04:41 AM
  #13  
JagV8's Avatar
Veteran Member
15 Year Member
Liked
Loved
Community Favorite
Joined: May 2009
Posts: 27,518
Likes: 4,910
From: Yorkshire, England
Default

There's a limit of 3000rpm in P (maybe in N too?) to save such as trans overheating.

I don't think there's anything to cheat emissions. It's hard to imagine that there would be and for it to have escaped the huge amount of interest - and vast fines in the USA - in such things!
 
Reply
Old Apr 6, 2022 | 12:40 PM
  #14  
iansane's Avatar
Thread Starter
|
Member
5 Year Member
Joined: Jul 2019
Posts: 74
Likes: 36
From: Tacoma, Wa
Default

Originally Posted by nelsgw123
iansane
I would like to help you complete the manual conversion. I do write C code, and have done projects for the adruino. I have a S6-53, flywheel, clutch, master/slave cylinder, pedals from a XJS, but need the code. Did you use the manual gear sensor on top of the S6-53? The reverse is a simple switch on the back of the S6-53. I have been assuming this code must produce the input/output speed counts and the trans temp. Not sure what other messages must be produced. I think the 'not in park' and 'D to 5' switches need to be implemented also (is this the case?). Can you share the code and the CAN messages needed for a 2005 XK8? I have rear crbass early CAN messages. Please share what you can.
Glenn
Manual gear sensor? Is that was that thing is? I am not currently using it but that sounds like it could be really, really useful to trick the PCM. I haven't worked on this car in some time. I've been waiting for a new transmission. The one I received had a toasted 2nd gear synchro and made testing code a pain. I don't have any CAN info for anything other than my car, an '03. And even that was all garnered from crbass and his logging. I can show you the code I'm using but I don't have a firm grasp on CAN communication so the only thing I have it doing is triggering a relay shield to bridge the park sensor so I can start the car and sending out what I think is the heartbeat signal on a canbus shield. My intent was to use the CAN speed signal and send out gear indicators based on that in a rough chart and ignore everything else for now. (IE 0mph = park, 1-15mph = 1st gear, 16-25mph = 2nd gear, 26-35 = 3rd gear, etc) and then work on all the other CAN signals. However, the car has just sat while I worked on other projects.
 
Reply
Old Apr 22, 2022 | 06:35 PM
  #15  
BrianGilman's Avatar
Junior Member
Joined: Sep 2021
Posts: 29
Likes: 2
From: Mystic, CT
Default

Please keep it up! I’ve been considering a manual swap.
 
Reply
Old Mar 23, 2023 | 09:13 AM
  #16  
nelsgw123's Avatar
Junior Member
Joined: Apr 2022
Posts: 6
Likes: 0
Default Spoofing the TCM

iansane
Its been a while since I last replied to this forum, you know how that goes. To give you an update on the XK8 4.2 manual conversaion and questions on your conversion. I have assembled the ZF6-53 6 speed manual, flywheel from Tom Lenthall LTD, clutch and pressure plate from McLeads, pedal box from a modified XJS manual pedal box, and the electronics to make the car think the auto is still installed. The trick here is the elecronics to produce the Output Speed, Input Speed, Slip, and several bits for the other CAN electronics that are removed by replacing the auto trans TCM. The Output Speed is the driveshaft RPM, Input Speed is the auto trans input RPM, Slip is the difference between engine RPM and Input Speed in %, the important bits are Park-Neutral (your wire jumper) enables the starter relay, Not-In-Park which tells the Body Module you are not in Park, I am using the Sport LED to signify the security alarm LED (removed J-Gate), reverse indication is a command on the CAN bus when in reverse (not a closed contact), and obviously the CAN bus commands for the gear selection of the manual. I'm sure your StypeR is like the XK8 if you removed the Illumination and J-Gate modules, the CAN bus is cut from some of the other CAN modules. The CAN bus loops thru (in and out) the Illumination and J-Gate modules, removing then breaks the connection unless you jumper around the connector. I am building a Manual TCM that connects to the TCM cable for the automatic TCM, new gear position sensor (the one on top of the ZF6-53 6 speed only detects the neutral position), clutch engagement switch, and new park sensor (first gear and parking brake). The Manual TCM box will talk on the CAN bus replacing the auto TCM CAN addresses (on the 03-06 XK8, C9 and 3E9 are the TCM addresses, 12D is the Engine RPM address), your StypeR probably has a different address map.
Now for the questions: when you installed the manual trans, did you have any issues in the installation, do you have any photos you can share? The ZF6-53 has the same dimensions as the auto trans, but experience is better than theory. Did you use new flywheel bolts or existing (the flywheen thickness needs to be considered)? Did the transmission tail mounts work without any modifications? You said you shorened the shifting linkage about 4 inches, in the XK8 the engine and trans are about 4 inches more forward than the StypeR because the XK8 was designed for the Aston Martin V12 of the DB7, looks like no cutting is required. How did you mount the shift linkage tail mounting bracket to the chassis? Im sure you pluged of removed the transmission cooler. Where did you connect your electronic module into the CAN bus? Do you know of a way to check the manual synchro before installing into the car? Any additional thoughts would be appreciated before I open the XK8 would be helpful. I will share the code once everything is working, so you can do the same although the StypeR CAN addresses will have to be considered.
 
Reply
Old Mar 23, 2023 | 09:52 AM
  #17  
clubairth1's Avatar
Veteran Member
15 Year Member
Community Builder
Community Influencer
Liked
Joined: May 2009
Posts: 12,078
Likes: 3,362
From: home
Default

Interesting! Why use the XJS pedal box?
The S-Type came from the factory with a manual transmission behind some the Diesels.
All that should bolt right up and others that have added a manual have gone that way. Might be difficult to source those parts in the US since they did not sell the Diesel S-Type here.
.
.
.
 
Reply
Old Mar 23, 2023 | 09:54 AM
  #18  
xalty's Avatar
Veteran Member
5 Year Member
Liked
Loved
Community Favorite
Joined: Dec 2019
Posts: 3,695
Likes: 1,222
Default

db7 vantage is not an xk8. it’s an xjs with a big trans tunnel and a stretch.

the str manual swap is literally bolt on the mount points and and shift linkage are designed for that specific car.
 

Last edited by xalty; Mar 23, 2023 at 09:59 AM.
Reply
Old Mar 23, 2023 | 10:51 AM
  #19  
nelsgw123's Avatar
Junior Member
Joined: Apr 2022
Posts: 6
Likes: 0
Default Spoofing the TCM

Please note the discussion is a XK8 not the StypeR that iansane converted, although they share the same engine and transmission.
Note the ~04 Aston Martin DB7 V12 Vantage and the ~05 XK8 are the same chassis, not the same transmission or engine. Also note the XJS and XK8 share alot of the same components, the XJS chassis is steel, the XK8 chassis has many parts Aluminum (~80%).
 
Reply
Old Mar 23, 2023 | 11:26 AM
  #20  
nelsgw123's Avatar
Junior Member
Joined: Apr 2022
Posts: 6
Likes: 0
Default Spoofing the TCM

Also note, the Stype-2.7d is a V6 engine (UK only), the StypeR is the 4.2V8, ala the 4 inch difference. The StypeR and the XK8 are both 4.2V8 and both use the ZF6HP26 auto transmission, the Stype-2.7d had an option for the ZF6HP26 auto transmission. The XJS and XK8 pedal box are the same dimansions and mounting points.
 
Reply



All times are GMT -5. The time now is 03:54 PM.