Making It All Work
aka, "What is all this CAN stuff about ? I like my beer in bottles !"
The more electrical gadgets you add to a vehicle the more communication you need. Power windows can only go up when the key is on, the radio gets louder the faster the truck goes, etc. All that interelated "smart" functionality needs information from outside the component to make it work intelligently.
Historically, this was done with a separate wire for every function that needed to be communicated. With the outbreak of luxury vehicles loaded with "smart" gadgets, the wiring mess became too great and someone came up with the idea of transmitting the required information via messages on a network instead of using individual wires.
CAN Bus is that network. You can read more about it here, but Google is your friend if you need more or less info.
http://en.wikipedia.org/wiki/CAN_bus
The quick explanation is that CAN Bus is like an Ethernet network in your truck, only instead of your daughter video chatting with grandma, its your engine ECM telling the transmission TCM that its overloaded and needs to downshift the transmission.
Just to be clear, CAN is not interoperable with Ethernet in any fashion. Its just an analogy to make it easier to understand.
So what does this have to do with my swap ? I intend to make full use of the Ford CAN Bus to make everything work. BECAUSE I HATE WIRING !
Am I crazy ? I don't think so. Lets look at it in more detail. Lets consider how I am going to make the accelerator work with the 6.7.
Traditionally, there are several ways to wire an accelerator into a Cummins swap ECM.
1) use an engine mounted accelerator sender (APPS) and control it with an accelerator cable from a gasser. This was common with the 24V and early CR engines that used an engine mounted APPS.
2) Mount a Cummins APPS ( and the accelerator pedal assembly) in the truck cab and wire it into the 6.7 ECM.
3) Intercept the signal from the Ford APPS and convert it to the APPS voltages the Cummins ECM needs.
4) Read the signal from the Ford APPS with a microcontroller and have it generate a synthetic Cummins APPS signal.
FWIW, I started with #3 in my '99 swap and upgraded to #4. It works well.
With my 08 swap I am going to do something completely different.
A stock 08 F350 has 2 CAN buses on it.
One, called the low speed CAN bus, is used to send trivial chassis type information around the vehicle. Things like air temperature, DVD status in the rear seat player, that sort of stuff.
The other bus is called the high speed bus and it sends all sorts of real time informational all over the truck. Engine temperature, engine load, cruise control status, etc.
It turns out that accelerator position is one of the pieces of data on the high speed bus. The stock Ford accelerator pedal is hard wired into the ECM. The ECM then provides accelerator pedal information to any device that needs it in the form of a message on the CAN Bus.
What module would ever need to know the accelerator pedal information other than the ECM ? Well, the transmission control unit for one. And the ABS controller module. And probably the air bag controller module.
So instead of having several wires (because APPS units provide multiple signals to be failsafe) to every module that needs its information, the ECM handles reading the APPS and sends the data on the 2 wire CAN network to wherever its needed.
So what does this have to do with the 6.7 throttle signal ? Well, instead of hard wiring an APPS into the 6.7 ECM, I am going to read the throttle position message on the Ford high speed CAN bus with a micro controller and then generate a synthetic APPS signal for the Cummins ECM to use.
Now why would you want to do that ? An APPS is only 4 wires.
For a couple reasons.
1) I don't have to touch any of the stock Ford APPS wiring. Which means a) less work, b) no holes for new wires in the firewall, c) troubleshooting my truck is the same as a stock truck, including the wiring diagrams in the shop manual and checking the status of the APPS (on both the Ford ECM and the Cummins ECM!) via a scan tool, etc.
2) There is no cost, other than the micro controller, which is needed anyway, as we'll see. I don't have to buy a Dodge APPS, for example.
3) The Ford ECM still receives a proper APPS signal. Which means that it still sends a proper APPS message to all the modules that need it, such as the ABS module and the transmission control module.
And whatever else might need it that we don't know about and don't care to have to learn about.
4) I can now use the APPS message anywhere that I need it, for example in the transmission controller for the 6R140.
If I didn't use a CAN message to get that information, not only would I have to wire the APPS signal into the 6.7 ECM, I'd also have to wire it into the 6R140 TCM.
5) It allows me to have full control over the APPS signal that the 6.7 ECM receives.
Remember how I'm hoping my engine will make 1200 ftbls. And remember how the 6R140 torque converter has a torque ratio of 1.8 and an input shaft rating of 1400 ftbls ?
If I want the stock 6R140 to live, I need to dial down the power from the engine anytime the TC is unlocked. 1.8 x 1200 = 2160 ftlbs, which is 50% more than the 6R140 is rated to handle. But if the TC is locked, 1200 ftlbs is less than the 1400 ftlbs it can handle.
** I'm assuming the 6R140 is incapable of handling more torque than its stock rating, which has been proven otherwise in practice. I'm doing this for an example, but in practice I'll probably have a tow setting on the TCM that does limit the engine power when the TC is unlocked. When you make your own TCM, you can do that.**
I can easily dial down the power on the 6.7 by dropping the throttle signal the micro controller generates and if the micro controller knows when the TC is unlocked (via another CAN bus message, of course !) then I can cut the engine back until its safe.
It would be pretty hard to do that without CAN bus messages.
Lets do another example.
The Smart Junction Box in an 08 F350 needs to know that the engine is running at 500 RPM or faster before it will turn certain things like air conditioning on. Thus we need a tach signal.
But do we ? The SJB doesn't have an input from the engine for a tach signal. It gets its information from a CAN message.
Where does that CAN message come from ? The Ford ECM.
So one thing we could do is wire up a couple dummy crank and camshaft sensors on the 6.7 to simulate the 6.4 tach signals and feed them to the Ford ECM. This would allow the Ford ECM to see the crank and cam signals from which it will then send out an engine speed message on the CAN bus and wala, the SJB is happy and we have air conditioning.
My wife and kids like AC when its hot out.
However, there is an even better way. It turns out the Cummins ECM has its own CAN bus, albeit a different language than the Ford CAN bus. And the Cummins ECM has its own engine speed message. So "all" we have to do is read the Cummins engine speed message and send it on the Ford CAN bus where it will be received by the SJB and we will have working AC.
Again my wife is happy.
Isn't that a lot of work to just turn on the AC ? Some might think so, but it turns out that the tach in the dash also needs the engine speed message on the CAN bus. When we read the Cummins message and send a Ford message, we also get a working tachometer. And the transmission controller also needs to know how fast the engine is running so that it can calculate how much slip is occuring across the torque converter, amoung other things. CAN Bus data is very pervasive. Its used in places you would never expect until you think about it for a while.
And again, there are wiring savings and cost savings and its easier to troubleshoot and the list goes on.
At some point in the future I am going to wire a 1000 watt pure sine inverter into the cab of my truck with several outlets so that everyone can plug in their AC gizmos and be happy.
And guess what ? I don't want that inverter to run unless the engine is running because it will draw about 100 amps and kill the batteries very quickly.
So I'll make my own little smart junction box and have it watch for the engine RPM message on the CAN bus and turn the inverter on and off as necesary.
Because if I don't build that intelligence into my truck, some night I'll shut the engine off with the inverter still running and the next morning my batteries will be dead.
And all it takes is 2 wires and a little software to make that magic happen.
Thus far I have used 2 simple examples, the throttle signal and the engine speed signal. But I intend to control just about everything installed on my truck with the CAN Bus, one way or another. Air conditioning, transfer case shifting, dash gauges, accessory gauges, transmission controller, cruise control, etc, are all connected to the CAN Bus in one way or another.
And with a bit of work I think I can make them function like they would if the Cummins 6.7 was installed in my truck from the factory. Try doing that with conventional wiring techniques.
I'm about waist deep into this CAN stuff right now. I can see its potential. I understand all the theory and I'm watching data on various buses. I'm just about to start injecting my own data onto both Ford and Cummins buses.
Using the CAN Bus fopr integrating everything is by no means a sure thing, but if it works it will dramatically simplify the wiring of my engine swap and make it much more factory like.
I'm off to get my hands dirty on an engine.