SVX Network Forums Live Chat! SVX or Subaru Links Old Lockers Photo Post How-To Documents Message Archive SVX Shop Search |
IRC users: |
#91
|
|||
|
|||
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! |
#92
|
||||
|
||||
Re: OBDII Mt conversion???
Quote:
__________________
Tony 1996 Polo Green Subaru SVX LSi, 168,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, Power Stop Evolution Carbon Fiber Ceramic Brake Pads 2005 Gray Acura RL, 165,XXX miles, Redline D4 ATF with Lubegard Platinum Protectant, Mobil 1 5W20 High Mileage Extended Performance Oil 2009 Red Toyota Venza, 123,XXX, Mobil 1 5W30 High Mileage Oil 1992 Red Ferrari 348 ts, 82,XXX, Redline everything |
#93
|
|||
|
|||
Re: OBDII Mt conversion???
Quote:
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:
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 Code:
111111111100001100100100100100100100100100100100100100100100100100100100101 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. Last edited by Dispatch20; 07-14-2019 at 06:59 PM. |
#94
|
|||
|
|||
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(); } Last edited by Dispatch20; 07-14-2019 at 07:04 PM. |
#95
|
|||
|
|||
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. |
#96
|
||||
|
||||
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.
__________________
1992 SVX LS-L : King of the Stable LGT 5MT, ABS Delete, Short Ram Intake, Custom Exhaust, Drilled/Slotted Rotors 1993 Legacy sedan : winter beater, supposedly. 1994 Legacy wagon : future drift car? 1995 Impreza coupe : EZ30++, daily racecar. 1997 Legacy GT : date night rocket? 2003 WRX : future winter beater |
#97
|
|||
|
|||
Re: OBDII Mt conversion???
I bet that would work, too. Does anyone have the obd2 wiring diagram for the TCU?
|
#98
|
|||
|
|||
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
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: |
#99
|
|||
|
|||
Re: OBDII Mt conversion???
Update: I previously had issues getting the CEL to go on for code 1702. I think the key is going on highway speeds for 10 minutes or more. Now that I can get the CEL to throw, I can test whether or not I can trick the ECM into thinking the TCM is in good shape.
Anyways, I put together a setup that can drive whatever signal it needs into the ECM. I think the total cost should be below $50 to reproduce this: Arduino Uno R3 clone - $12 (requires 5V-12 power, so you can't use the 14.4V from the car) USB Type B 1.5" cable - $8 12V DC to 5V DC regulator - $12 (for powering Arduino via USB port) Fuse Tap - $5 Here is what the TCM emulator setup looks like all connected together and ready for install: And I loaded the following code I wrote on the Arduino: Code:
/* OBDII SVX TCU Emulator Transmits a sequence of serial bits to the ECU to prevent a check engine light when the TCU is absent (e.g. manual transmission swap) */ // Use Pin 2 of Uno board to transmit the serial stream. int TCU_Output = 2; // the setup routine runs once when you press reset: void setup() { // Output pin for ECM input data stream pinMode(TCU_Output, OUTPUT); } void loop() { // The TCU outputs 75 bits at 10ms for a 750ms cycle time // This sequence is what the TCU outputs when in Drive or Reverse char data_drive[75] = "111111111100001100100100100100100100100100100100100100100100100100100100101"; // This sequence is what the TCU outputs when in Park or Neutral. May not need to use this. char data_park[75] = "111111111100001100100100100100100100100100100100100100100100100100100101100"; // Print out the entire sequence for(int i = 0; i < 75; i++) { if(data_drive[i] == '1'){ digitalWrite(TCU_Output, HIGH); } else { digitalWrite(TCU_Output, LOW); } delay(10); // 10ms bit rate. } } Here is the fuse tap inserted into the Radio fuse. This is one of the few fuses that has no power when the key is in the OFF position. You wouldn't want the Arduino powered up when the car is OFF! Also, you need to be careful with fuse taps. If you install it backwards it bypasses the fuse! Use a voltmeter to find the "hot" side of the fuse. You can see the orientation and location of the fusetap that I chose below. Also, note the metal nut at the very bottom of the picture; that is what I used to ground the regulator and Arduino. Note: I had to Dremel the fuse tap skinnier so that it would fit into the fuse panel. I must have had the wrong size/shape fuse tap. The fuse panel cover does fit over the installed fuse tap as long as I dremeled out a small portion near the latch. Last edited by Dispatch20; 10-12-2019 at 07:53 PM. |
#100
|
|||
|
|||
Re: OBDII Mt conversion???
So I installed the setup. I ran a wire (purple) from the Arduino up to the ECM, and powered it all up (black wire to fuse tap in fuse panel):
I proceeded to take the car on a long cruise, and unfortunately I read out a "PENDING 1702" code, so something isn't correct yet. That's to be expected given this is such an experiment. I must be missing something (or a few things). I'll need to do a full highway drive with the Arduino logging the TCM signal, and comparing that to what the Arduino is outputting. I'll post back again when I learn any more about this. I realize this isn't a hot topic, but hopefully people find this interesting! Last edited by Dispatch20; 10-12-2019 at 07:52 PM. |
#101
|
|||
|
|||
Re: OBDII Mt conversion???
It is interesting indeed. Don't be discouraged by the lack of activity on this site. It has gotten that way in the last couple of years.
__________________
1997 Bordeaux Pearl, 2010 Mercedes Benz GLK350, 2018 BMW 640i GT Xdrive, 2012 Moto Guzzi Norge GT 8V, |
#102
|
||||
|
||||
Re: OBDII Mt conversion???
I think there are lots of people that would love to see this figured out.
__________________
1992 LSL ebony pearl 170k - Thank you Ron Mummert Reading Box of Wine Car ----------------------------------- 1992 SVX LSL 5-Speed Sold at 180K 2019 1995 SVX Lsi Polo Sold at 118K 2007 |
#103
|
||||
|
||||
Re: OBDII Mt conversion???
Im not able to provide any useful commentary but I wanted to let you know this is a very interesting thread
__________________
1994 SVX LSi JDM Tailbar and Grill, Clear Corners, 15min-mod, Nevin Blue RSB, G-FORCE SPORT COMP-2 Tires, Phenolic Spacers (Manifold & Throttle Body), SS Brake Lines, Maniac Electric Motors 160A Alternator 2008 Legacy 3.0R |
#104
|
|||
|
|||
Re: OBDII Mt conversion???
I can tell you if there was a like button I and many others would have mashed it...
speaking of likes have you posted your findings on svx nation on facebook? I know currently that is the hotspot for svx activity. |
#105
|
|||
|
|||
Re: OBDII Mt conversion???
Another "Like" button presser here. Keep us updated!
__________________
1995 Caterham 7 Twincam 2002 Porsche 911 targa -- now with FSI 4.0L power! 2007 BMW 328i Cabriolet 2012 Tacoma 4wd v6 Access Cab 2013 Mercedes E350 4Matic Wagon 2005 STi - totaled after 10 great years 1994 SVX LSi 5spd - sold but not forgotten 2000 Legacy GT 5spd sedan - gone after 150K miles of bliss |
|
|