View Single Post
Old 06-26-2015, 06:21 PM   #1
Spartarus
...Just add nauseum
 
Spartarus's Avatar
 
Join Date: Jan 2015
Drives: 2003 (AP1) S2000
Location: Miami, FL
Posts: 545
Thanks: 310
Thanked 784 Times in 335 Posts
Mentioned: 19 Post(s)
Tagged: 1 Thread(s)
CAN BUS - for DIY swappers, HELP! Engineers / shops welcome

EDIT: I WILL NOT HAVE THIS THREAD TURN INTO YET ANOTHER ARGUMENT ABOUT SWAP COST OR BUDGET. START THAT ELSEWHERE. BETTER YET, MAKE YOUR OWN PRODUCTIVE, REALISTIC, HELPFUL THREAD ABOUT BUDGET. TOO MANY SWAP THREADS MAYE BEEN HIJACKED LURK, CONTRIBUTE, OR GET OUT

EDIT: This thread is a rushed mess right now, I typed it on the way out the door. Plans to clean it up and add appropriate content.
Hi everyone,

It is common knowledge that the ft86 has a CAN BUS to control various systems. There is no comprehensive documentation on the forums regarding the CAN BUS. It is the single biggest obstacle to getting any engine swap working correctly. I hope to create a resource here for people who want to do DIY engine swaps, but can't seem to get over the CAN BUS hurdle. I don't think that should be a $6000+ hurdle. I also don't think that a do-it-all-yourself engine swap should be a $25000 affair. They never have been before.

People who have swaps complete with all systems working are encouraged add information on this topic.

Overview:
A controller area network (CAN bus) is a multi-master serial bus designed to allow microcontrollers and devices to communicate with each other in applications without a host computer. It is a message-based protocol; Units [ECUs] on the network are known as nodes. The node may also be a gateway allowing a standard computer to communicate over a USB or Ethernet port to the devices on a CAN network. The DLC3 (D10) node in the Toyobaru is the OBD port, and is an example of such a node. All nodes are connected to each other through a two wire bus. (CANH and CANL)

CAN data transmission uses a lossless bit-wise arbitration method of contention resolution. This arbitration method requires all nodes on the CAN network to be synchronized to sample every bit on the CAN network at the same time. Each transmission on a modern CAN BUS network begins with an 11-bit identifier.

The CAN specifications use the terms "dominant" bits and "recessive" bits where dominant is a logical 0 (actively driven to a voltage by the transmitter) and recessive is a logical 1 (passively returned to a voltage by a resistor). The idle state is represented by the recessive level (Logical 1). If one node transmits a dominant bit and another node transmits a recessive bit then there is a collision and the dominant bit "wins". This means there is no delay to the higher-priority message, and the node transmitting the lower priority message automatically attempts to re-transmit six bit clocks after the end of the dominant message.

Tl-Dr - All the CAN devices talk onto an open network like people on a radio channel, and they only grab the specific signals they want to listen to. The network is not dependent on a central hub, so any system can be pulled off the network without destroying it. The only downside is the devices listening for certain signals will stop receiving those signals and hence stop working.

Confirmed Swaps:
Vorshlag: GM ECM -> Factory ECM -> CAN BUS, LS-Series engine
Manji: Motec M150, 1UZ-FE VVTi
I want a longer list here! I know there's working examples of other Subaru engines and a few Toyota 2jz's at the very least

I'm personally working on a 1uz swap while I fiddle around with this little FA20 4-banger and wait for my turbo to blow it up. There's great documentation out there on getting it running on a standalone ECU. As much as I'd like a $6K ecu solution that'll make my F****** coffee for me, I'd rather not almost double the cost of the swap with the ecu and wiring alone. Motec, then, is off the table for most people.

Many other aftermarket standalone wire-in ECU's have CAN outputs.
LiNK (some models)
MegaSquirt (some models) - has been used to drive OEM CAN gauges with modifications to source code. Porsche 996tt
AEM (some models)
Hydra EMS (confirmed working, on the market with support for FA20 on this platform - looking into capabilities for swaps)

Why can't these be used? I hope this thread will help us figure out what CAN signals the ECM sends and receives, and how to replicate those with an aftermarket standalone ECU.

Attached is an accurate wiring diagram of the FR-S / BRZ CAN BUS. I slapped it together from a few pages of the service manual. The D43 junction connector is just a simple wiring junction near the firewall, and need not be F***ed with. With a suitable CAN capable ECU, only 2 wires (pins 19 and 18) from the factory ECM need to be plugged into the aftermarket ECM to retain full CAN BUS functionality.

Next post will list the CAN BUS signals required from the ECM, by system, and the signals required by the ECM, from each system. I have a partial list, I'll post tomorrow. Updated as people chime in. Following post will also include guidance on DIY CAN-BUS setup.

The ECM, labeled MOTOR (A33 in the manual) is the engine ECU. This is the ECU everybody will change out in a swap

I'd REALLY like to hear from some EcuTeK tuners on this topic, as they have documented use of the CAN controls for map switching, LC, etc. using cruise control switches and rear window heat switches, and using the Tachometer as a selected map display. at least one of which is not connected directly to the ECM, and required CAN sorcery
Attached Images
   

Last edited by Spartarus; 07-01-2015 at 05:40 PM. Reason: Continuous updating
Spartarus is offline   Reply With Quote
The Following 14 Users Say Thank You to Spartarus For This Useful Post:
200hp/tonne (03-29-2016), @Art_Mighty (11-21-2016), Calum (06-26-2015), civicdrivr (07-10-2015), flippy (02-23-2016), FRSToyota86 (06-29-2015), FutureFT86 (08-13-2016), JS + BRZ (07-23-2015), Sarlacc (03-06-2016), Sportsguy83 (07-29-2016), VAcuban (06-16-2017), Valentino (06-28-2015), whataboutbob (03-14-2016), WillRacer1jz (03-14-2016)