• Hello Guest, welcome to the initial stages of our new platform!
    You can find some additional information about where we are in the process of migrating the board and setting up our new software here

    Thank you for being a part of our community!

Analyzing crank position sensor and cam position sensor capture on a B6304T

It is alive. Finally.

There have been several obstacles to make it to this point. I will not try to justify myself. Let's just say that I am lucky to not be homeless, yet. Lucky to have power, still.

I'm thank for being able to finally get it squared away enough to start. Now I have to get it tuned and road worthy again.

I'm not sure what I'm going to to about the transmission yet. I need to see if I can get a CAN dump from someone with an operable P2 XC90 before I go too far because that will definitely be the quickest way to get it working assuming that my EMU will be able to craft the frames required by the TCM for stable operation.
 
Congratulations, that's great! It's so quiet and smooth at idle. :love1:

Is the dashboard working? Anything else mechanical remaining, other than reinstalling the front end bits?
 
Congratulations, that's great! It's so quiet and smooth at idle. :love1:

Is the dashboard working? Anything else mechanical remaining, other than reinstalling the front end bits?

I'm pretty sure it is so quiet because it is barely running.

I stopped right after this last night and filled up the cooling system and topped off the power steering and whatnot.

Mechanically, it is really just buttoning up what has been undone to swap the engine and repair the accident damage.

The dash does work. But... I still haven't connected it to the EMU CAN bus yet.

Related: I also need someone with an B6304S + TF80-SC combo to do a CAN bus data dump before I can build the CAN frames needed to send to the TCM.
 
Last edited:
Sorting the pedal right now. The linear vs PWM is somewhat difficult to correlate.

I might have to stop and make a worksheet for this. Doing the math by hand and guessing is for the birds. I've just about gotten it to stop erroring out but the bins are all choppy.

Needs more linearity.

Anyway, after errors > 'X%', the engine shuts down. I'm not sure this is a great strategy but I haven't figured out how to defeat that, and the errors need to be addressed anyway, so onward I go...
 
I don't know how much more I'm going to post my progress for you guys since this is not a redblock 1/2/7/9 series.

But, it does run now. It starts and idles without intervention. I can hit the gas and it revs up great and *almost* performs a flawless transition.

Next step is the digital dash. Getting the data from the CAN and feeding the gauges.

 
Okay, so... This project stalled again right after I got the engine running and drove it last time.

Complete:
S60 Engine and XC90 Transmission installed
Driveshafts installed
Exhaust more or less functional (needs moar shielding)
Car starts every time. Runs a little rich but idles great,
ECM is communicating with the RealDash

TODO:
TCM and ECM are NOT communicating (because I haven't taught the EMU how to speak Volvo yet...)
Interior is still sitting in a bedroom floor
Bumper for wrong YM car, but... I have the Maxton Design widebody kit for it
Wheels... Wheels need to be done with body kit otherwise :barf:

---

So, I made an "about face" on the OEM ECM after trying to decipher the CAN captures that I have. There are soo many messages in the CAN frames that do not start on byte boundaries. Then there are single bit flags and a litany of other challenges to overcome like scaling, etc. I have worked out about 30% of it for sure and another 30% of it is likely. The XC90 apparently uses 27 unique CAN-IDs. Maybe one more for a trailer module but I haven't confirmed that. There are six for the ECM that carry runtime data; four for the TCM and one each for security/immobilizer data (Again, not confirmed but I am PRETTY sure at this point). Those six ECM frames are what I need to recreate before I can actually call this car "swapped".

So in the interest of science and to move the guessing closer to zero, I have begun building a stim for the ECM. I will can (re)wire it into the vehicle CAN and hopefully be able to at least figure out the torque reduction data so that the transmission will stop trying to break shit when I shift to reverse (one of the known times that there is a torque reduction request).

I am actually writing this post pretty much for the explicit purpose of sharing knowledge about the Ardu-Stim project at https://github.com/speeduino/Ardu-Stim.

First off, if you are uninitiated, this is a project for creating a simulated Crank/Cam signal for bench testing the Speeduino ECM.

It was a pretty trivial task to clone, compile and load the Arduino project. It is pretty straight forward as long as you have experience with the Arduino Dev environment.

The front end however... has not been updated in some time. I was completely unable to get it to load on my RPI4 desktop running Kali. There is an appimage available but it simply fails. So, I try to load it on the windows desktop. Nada. Open the Dev Console on the browser and start reading the logs.

Okay. Switch strategy. This is a standalone app designed to run in a container. I mean, I get it because thats what the Debian binary was offered as. But looking at the source downloaded with the Ardu-Stim git repo, you'd think this is a web app.

Anyway, install Node.js for windows. Install npm and the electron serial library for node. Compile, debug, inspect. Wash, rinse, repeat.

Then, you have to build a map for your crank correlation to the cam signal.

That is where I am at:


2026-04-11 09_56_18-Ardu-Stim (Speeduino fork).png2026-04-11 09_56_04-Ardu-Stim (Speeduino fork).png

Back to it...
 
Last edited:
This is the first time i’ve wandered into this thread, and i have been meaning to check in and see how you are doing. It’s mostly over my head, to be honest.
 
This is the first time i’ve wandered into this thread, and i have been meaning to check in and see how you are doing. It’s mostly over my head, to be honest.

Welcome to the darkside of Volvo Mike! I am chipping away at the boundaries that keep me in stasis, lol. One freaking bit at a time.

I understood this part of modern automobiles in theory and not. I knew far less than was needed to proceed when I began this quest. I can only hope now that there is enough understanding and momentum to allow completion at this point.
 
Last edited:
The Ardu-Stim project is supposed to allow multi trigger configuration. I'm not seeing that at this point. It doesn't bomb out with my table but it is not rendering the second cam on the demo trace. So freaking time consuming this type of sidequest...
 
Some more relevant information.

A very brief synopsis on the necessity of CAN data in a modern engine swap. More like how not to do it, but you can learn from that too.

 
Back
Top