The Subaru SVX World Network   SVX Network Forums
Live Chat!
SVX or Subaru Links
Old Lockers
Photo Post
How-To Documents
Message Archive
SVX Shop Search
IRC users:
SVXBot

Go Back   The Subaru SVX World Network > SVX Main Forums > MOD Mania > Transmission and Drivetrain

Reply
 
Thread Tools Display Modes
  #91  
Old 08-19-2013, 06:14 PM
SoobCrazy SoobCrazy is offline
SVX n00b
 
Join Date: Jun 2010
Location: Western Washington
Posts: 282
Registered SVX
Re: OBDII Mt conversion???

Huskymaniac, I am working (slowly, due to fundage) on swapping a 5MT into my '96 and would be more than happy to try out your chip! Take your time with pulling those waveforms (within reason, 2013 would be nice, lol ).

Let me know what you find in the meantime and if I can help in any way, shape or form!
Reply With Quote
  #92  
Old 08-19-2013, 08:53 PM
Huskymaniac's Avatar
Huskymaniac Huskymaniac is offline
Uses the ignore feature
 
Join Date: Jul 2010
Location: Corning, NY
Posts: 1,805
Registered SVX
Re: OBDII Mt conversion???

Quote:
Originally Posted by SoobCrazy View Post
Huskymaniac, I am working (slowly, due to fundage) on swapping a 5MT into my '96 and would be more than happy to try out your chip! Take your time with pulling those waveforms (within reason, 2013 would be nice, lol ).

Let me know what you find in the meantime and if I can help in any way, shape or form!
I think I could whip something up quickly so let me know when you are ready for it. I may find time to monitor the waveform under more conditions but I REALLY hate hanging upside down and combing though those wires.
__________________
Tony

1996 Subaru SVX LSi, 152,XXX miles, Redline D4 ATF, Redline 75W90 gear oil, K&N HP-4001 Oil Filter, Mobil 1 5W50 FS (3qt) and 5W30 High Mileage (4qt) Oil Blend, Motul RBF600 Brake Fluid, AC Delco A975C Air Filter, NGK BKR6EIX-11 plugs, Centric Rotors, Akebono ProACT Brake Pads
2005 Acura RL, 142,XXX miles, Redline D4 ATF with Lubegard Black Protectant, Mobil 1 5W20 High Mileage Extended Performance Oil
2009 Toyota Venza, 88,XXX, Mobil 1 5W30 High Mileage Oil
Reply With Quote
  #93  
Old 07-14-2019, 06:03 PM
Dispatch20 Dispatch20 is offline
Registered User
 
Join Date: Apr 2019
Location: New York
Posts: 4
Re: OBDII Mt conversion???

Quote:
Originally Posted by Huskymaniac View Post
I think I could whip something up quickly so let me know when you are ready for it. I may find time to monitor the waveform under more conditions but I REALLY hate hanging upside down and combing though those wires.
Bumping this topic from 5 years ago, as I'd like to add information relevant to the discussion. I've posted this on the SVX Facebook group but wanted to share it here, as well.

The OBDII TCU->ECM link is pretty simple, and not nearly as complex as others in this thread have speculated. Here are the basic facts:
  • The link is unidirectional from the TCU -> ECM. It appears to be a TTL-style push-pull signal (i.e. no pullup).
  • It is a single 5V digital signal that runs from the TCU to pin 80 of the ECM connector
  • It is a serial port stream but NOT a UART-style (e.g. COM port with standard baud rate and start/stop characters)
  • The bit rate is 10ms (very slow!) and repeats every 750ms. This means there are 75 characters (bits) in the repeating stream of data

I've observed 2 states with the use of a Digital oscilloscope as well as an Arduino computer setup to log the data stream. As noted above, there are 75 bits (10ms per bit) and they repeat indefinitely. The stream begins the second the key is in the ON position and continues after the ignition is started.

Here is a snapshot of the stream (a few traces of the signal are overlapped; I apologize!):


Park/Neutral sequence:
Code:
111111111100001100100100100100100100100100100100100100100100100100100101100
Reverse/Drive/2/3 sequence:
Code:
111111111100001100100100100100100100100100100100100100100100100100100100101
Notice the small variation in the code above for being in Park vs Drive. Also notice that the pattern in both cases starts with 10 '1's followed by a '0'. We can use this to our advantage in data logging.

YouTube video of digital oscilloscope is here: https://www.youtube.com/watch?v=1zMiSCoyKzw

I've driven the car while logging the TCU datastream and observed that no change in pattern occurs during shifting, throttle, or steering changes. The same pattern occurs in 1st, 2nd, 3rd, and 4th gears.

Given the simplicity of this, it seems feasible to do a 5MT swap and emulate this OBD2 TCM serial port link. It doesn't seem like the ECM needs it for much. So how would this be done? I used an Arduino Uno to record the TCU stream with the OBD2 automatic tranny in operation. I can use the same Arduino to transmit the patterns noted above into the ECM. This should prevent the CEL light for code for 5MT swaps.
Attached Images
File Type: jpg tcu_Stream.jpg (316.9 KB, 66 views)

Last edited by Dispatch20; 07-14-2019 at 06:59 PM.
Reply With Quote
  #94  
Old 07-14-2019, 06:12 PM
Dispatch20 Dispatch20 is offline
Registered User
 
Join Date: Apr 2019
Location: New York
Posts: 4
Re: OBDII Mt conversion???

In case you're curious and have some programming background, here is my Arduino C software for data logging the TCU data stream. To print out a nicely formatted line of data, I took advantage of the 10 repeating 1's followed by a '0' to synchronize my data capture. The hardware used is an Arduino Uno chinese clone that was $13 on Amazon.

I had to make a couple probe wires to stick in Pin 80 of the ECM and then into the Arduino digital connector pin #2.

Here is information on the ECM connector and a picture of my wire going into it. It's pretty easy to see and find but you need to be pretty flexible to stick your head under the dash.



You also need to create a common ground between the Arduino and the vehicle. I used some alligator clips on the cigarette lighter ground and then to a ground post on the Arduino. If you don't ground the car to the board nothing will work!

Here is a quick video of my prototype setup with the TCU wire, Arduino, and hacked together grounds: https://www.youtube.com/watch?v=F9ddmpcpLQs



Anyways, here is the Arduino software. And you can (hopefully) get the latest copy here: https://create.arduino.cc/editor/Dis...1e9984/preview

Code:
/*
  OBDII SVX TCU Logger

  Reads the 5V serial data stream output from Pin 80 of the OBDII TCU
  
  The purpose is to record the TCU output stream and allow another piece of 
  software to recreate the stream when the TCU is absent.  The primary use
  is to allow a manual transmission swap without throwing a check engine light
  for P1702.

*/

// Use Pin 2 of Uno board to receive the TCU output stream.
int TCU_Output = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(TCU_Output, INPUT_PULLUP);
}

void loop() {
  
  int TCU_Val, Sync_Val = 0;
  
  // Sync up to data stream
  // O-scope showed a consistent 100ms of '1' followed by a '0' and the rest of the 750ms repeating sequence */
   while(Sync_Val < 96) {
    TCU_Val = digitalRead(TCU_Output);
    
    if(TCU_Val == HIGH) {
      Sync_Val++; 
    } else {
      Sync_Val = 0;
      Serial.println("Not Sync'd"); // This should only happen on startup if the Arduino starts logging after the car is turned on
    } 
    delay(1); // 10x oversample for sync (e.g. 1ms sample rate on data that changes at 10ms)
  
  
    // About 95 milliseconds have elapsed which gets us close to 100ms.  
    // The next 0 value after this will indicate the start of sequence.
    if(Sync_Val == 95) { 
      Serial.println("Sync'd!!!!");
      Sync_Val++;  // Value of 96 will exit while loop
    } 
  }
  
  // Stall waiting for TCU to push a zero after the 100ms '1' sync sequence
  // This should only be a few cycles (and you can let it print to serial to prove this)
  while(digitalRead(TCU_Output) != LOW) {
    //Serial.println("Stalled waiting for 0 after sync");
  }
  
  // Once the zero is lowered, we will expect a new bit every 10 ms
  // So lets delay 5ms and sample at the middle of the data valid time (e.g. data is 10ms long, sample at midpoint)
  delay(5);
  
  // read and print out all 64 bits remaining (750ms - 100ms sync '1' - 10ms sync '0' = 640ms/10ms = 64 bits)
  for(int i = 0; i < 65; i++) {
    TCU_Val = digitalRead(TCU_Output);  
    if(TCU_Val == HIGH) {
      Serial.print('1');
    } else {
      Serial.print('0');
    }
    
    delay(10); // 10ms bit rate.  
  }
  // Print a newline then loop back to sync
  Serial.println();

}
Attached Images
File Type: jpg ecm_wire.jpg (302.3 KB, 69 views)
File Type: jpg Picture.jpg (56.9 KB, 60 views)

Last edited by Dispatch20; 07-14-2019 at 07:04 PM.
Reply With Quote
  #95  
Old 07-14-2019, 07:25 PM
irox irox is offline
Registered User
 
Join Date: Jun 2016
Location: CA
Posts: 139
Re: OBDII Mt conversion???

Nice! Thanks for sharing. I was thinking about trying to do something similar (arduino to fake the TCU for a MT swap). Ultimately I didn't get an OBDII car, so won't have them problem. But still great to you do (and share!) this, nice to know I was thinking along the right lines.

Cheers!
Ian.
Reply With Quote
  #96  
Old 07-15-2019, 10:16 AM
SoCoNoHa's Avatar
SoCoNoHa SoCoNoHa is offline
H6 Fanatic
 
Join Date: Nov 2016
Location: Southern NH
Posts: 69
Registered SVX
Re: OBDII Mt conversion???

Keep the TCU connected, and wire in some 10 watt 1.5k resistors as dummy loads for the solenoids, and a 330ohm resistor for the temp sensor. That's enough to get the TCU for an EZ30 to play nice, bet it works for the SVX as well.
__________________
=My Babies=
1:1992 SVX LS-L - Classic Cruiser
^Pearl White/Black, 5MT
2:1997 Legacy GT Sedan - Daily Pride
^Rio Red, 5MT, Pending Turbo
3:1995 Impreza Coupe - Racecar
^Acadia Green, 5MT, EZ30-T (soon)
Reply With Quote
  #97  
Old 07-15-2019, 12:17 PM
Dispatch20 Dispatch20 is offline
Registered User
 
Join Date: Apr 2019
Location: New York
Posts: 4
Re: OBDII Mt conversion???

Quote:
Originally Posted by SoCoNoHa View Post
Keep the TCU connected, and wire in some 10 watt 1.5k resistors as dummy loads for the solenoids, and a 330ohm resistor for the temp sensor. That's enough to get the TCU for an EZ30 to play nice, bet it works for the SVX as well.
I bet that would work, too. Does anyone have the obd2 wiring diagram for the TCU?
Reply With Quote
  #98  
Old 07-21-2019, 03:45 PM
Dispatch20 Dispatch20 is offline
Registered User
 
Join Date: Apr 2019
Location: New York
Posts: 4
Re: OBDII Mt conversion???

FYI - Here is the OBD2 ECU and TCU pinouts:http://www.alcyone.org.uk/ssm/obd2pinout.pdf

Anyways, I am trying to make the P1702 check engine light come on to see how and when it happens. I cut the signal from the ECU Pin 80 (AT diagnosis data waveform), and it didn't throw a check engine light. I drove around the block a couple of times and let the car warm up, and no CEL. I drove it around again today with it cut and still nothing. I actually went and disconnected the entire TCU harness (3 connectors worth) and drove the car around again. It drove fine around the block and still had no CEL.

Any ideas why the CEL isn't turning on for this? My OBD2 scanner had no current or pending codes. People clearly get the P1702 when they do 5MT swaps, so I wonder if it is a combination of factors that cause it to be thrown? And not just the one wire serial stream?

My plan was to
  1. Cut the TCU<->ECU diagnosis signal and get CEL
  2. Clear CEL code
  3. Use Ardunio to transmit in the 750ms pattern I recorded during regular operation.
  4. Hope that CEL does not go on with Arduino running
  5. Do 5MT and use Arduino to keep the CEL off

Here is the cut wire with spade terminals for easy reconnection, and connection to an Arduino for logging the TCU, or emulating a TCU signal into the ECU:
Attached Images
File Type: jpg 20190719_193024.jpg (104.6 KB, 33 views)
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -6. The time now is 09:59 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
2001-2015 SVX World Network
(208)-906-1122