PDA

View Full Version : AW4 tiptronic control



cobalt6700
09-15-2011, 11:55 AM
This has been pulled over from another forum, thought i would share my work :)

I found this topic on NAXJA forums, http://www.naxja.org/forum/showthread.php?t=103658&page=1, and it inspired me to build a tiptronic controller of the same design.

The only drawback is that on OBDII jeeps, the check engine light is on for 50 key turns after the tiptronic is used, this is an issue I would like to fix.

After a lot of mucking about on eagle with schematics and PCB layouts, i finally got to the stage of breadboring.

The board was going to cost around £15 to make, with £15 of components and a lot of my time, to solder the board up. This would mean it would either be an involved project for anyone that wanted to do it, or it would take up a lot of my time making the boards. Getting them fully made by a company in such small quantities is also very costly.

I have a friend helping me on this, and we have been discussing it and working though it to add a few more features. Whist working though it, we came up with the idea of using a PLC instead.

A PLC (Programmable Logic Controller) is a device that uses software to control stuff, very much like an ECU. The idea behind Kevin fletcher’s tiptronic controller was to keep it simple. I feel that a PLC makes it even simpler still.

The PLC costs around £25, and then you need switches and a box on top, but this is the same as the board anyway. All the PLC needs to do the same job as the board is a bit software. This means I can now write the software, and anyone can buy the board, solder a few wires and that’s it. It also means that if I ever want to add more features, all you would need to do is upload the new software via a usb cable.

I am now at the stage of buying one of the PLC’s (called an arduino UNO) and writing the software, to prove the concept. If it works, I will then release the software to the public, with a full write up on how to install it.

At the moment the system has the following features:
- Takes control from the factory TCU.
- Provides manual up/down shift from 1st to 4th
- Provides a torque converter lock, which dis-engages when changing gear
- Has an led readout that shows what gear you are in, 1-4, and if the TC is locked

You switch to the tiptronic whilst in neutral, it boots up into 3rd gear as standard. You then select 1st and move into drive. If you go down the gears with the gear stick, you will limit what the tiptronic controller can do, so leave it in D.

I am hoping to add the following features soon
- TC lock dis-engage when braking
- TC lock dis-engage on gear change then re-engage after, enabled and disabled by holding the TC button down for 5 secs, notified by TC lock led flashing twice.
- Stop check engine light coming on.
- Use of arduino PRO mini – which only costs £13, and is 20mm by 30mm, reducing package size massively.
- Sense what gear you are currently in, hold that gear, and then turn the TCU off.
- Make sure the TCU has full control before the tiptronic shuts down.

If anyone is interested in one, please let me know (I know some already have). Also please bear in mind that I have a full time job and life, and can’t spend all hours of the day on it, so don’t expect on up and running next week. I also accept no responsibility if you break your car or yourself. This is not intended for highway use and should only be used offroad.

Think thats its for now, hopefully some updates and pictures soon!

------

So, a bit of an update

I have the up/down switch made, this is my idea and of my design and im sorry to say i wont be supplying them.
http://img.photobucket.com/albums/v248/cobalt6700/DSCF3667.jpg

This shows the action inside the switch
http://img.photobucket.com/albums/v248/cobalt6700/DSCF3670.jpg

I also have made a faceplate which takes the TC button too
http://img.photobucket.com/albums/v248/cobalt6700/DSCF3673.jpg

This is the on/off switch and the tc lock button
http://img.photobucket.com/albums/v248/cobalt6700/DSCF3675.jpg

This is the arduino, the brains which the code is uploaded too. It is just smaller than a credit card.
http://img.photobucket.com/albums/v248/cobalt6700/DSCF3665.jpg

I also received a LED display, a driver chip (4511) and some TIP120 transistors. I have been breadboaring it up today, and so far have the switches working with the arduino, and the driver driving the display.
http://img.photobucket.com/albums/v248/cobalt6700/1c6b7435.jpg
http://img.photobucket.com/albums/v248/cobalt6700/52a5e1f6.jpg

More to come soon :)

------


Spent the last two nights on programming, Have been learning ardunio code with my mate who's doing most of the programming.

So far we've got to the alpha stage, it's a bit of a skeleton program at the moment, but it's getting there :)

I took a quick vid, sorry for the rubbish quality, I was excited and only had my phone.

Top led on the right represents the TCU relay, followed by the TC lock solenoid, and gear solenoids. TC lock didn't work right now, but as you can see, it sees what gear it's in when it gets turned on, turns the TCU off and takes the gear.

http://img.photobucket.com/albums/v248/cobalt6700/th_302b3126.jpg (http://smg.photobucket.com/albums/v248/cobalt6700/?action=view&current=302b3126.mp4)
More soon :D

------

Hi guys, at a major point in the project, I'm now at the testing phase.

We have finished the program to the beta stage, which means we are at the stage of putting it into the car and seeing what happens. So hopefully next week it will be going into the jeep .

If anyone is interested in the code, here it is.

Please bear in mind I haven't tested this in the jeep yet, but if anyone wants to have a go at the project, feel free. Any feedback I can get is good

/************************************************** *****************************
Written by Fish, Logic by Big-G
*
* Tiptronic gearbox controllor for Jeep AW4.
* Changes up and down gears, provides torque conveter lockup and
* a 7 segment led display readout of which gear you are in.
*
************************************************** *****************************/


// function prototypes
void power_up();
void power_down();
void chng_to( int );
void abend();
void flash_disp();
int get_gear();
void handle_event( int );
void tcu_ctrl( int );
void tcl_ctrl( int );

// Define our pins - modify to ease hardware layout

const int p_in_sol1 = A0;
const int p_in_sol2 = A1;
const int p_in_onoff = 2;
const int p_out_tcu = 3;
const int p_in_up = 4;
const int p_in_down = 5;
const int p_in_tcl = 6;
const int p_out_sol1 = 7;
const int p_out_sol2 = 8;
const int p_out_sol_tcl = 9;
const int p_out_leddp = 10;
const int p_out_led1 = 11;
const int p_out_led2 = 12;
const int p_out_led3 = 13;

// Events
const int ev_power_change = 1;
const int ev_changeup = 2;
const int ev_changedown = 3;
const int ev_tcl_change = 4;

// Other constants
const int boot_delay = 1000;
const int pwr_up_delay = 1000;
const long debounce_delay = 10;
const int tcl_delay = 250;
const int tcl_long_press = 2000;

// State variables
int running = 0;
int tcl_running = 0;
int current_gear = 0;
int current_up_state = 0;
int current_down_state = 0;
int current_on_state = 0;
int current_tcl_state = 0;
int last_up_state = 0;
int last_down_state = 0;
int last_on_state = 0;
int last_tcl_state = 0;
int last_tcl_on_time = 0;
int auto_tcl_mode = 0;

// switch debounce tracking
long last_debounce_time = 0;


void setup() {
// define pins as inputs or outputs
pinMode( p_in_sol1, INPUT );
pinMode( p_in_sol2, INPUT );
pinMode( p_in_onoff, INPUT );
pinMode( p_out_tcu, OUTPUT );
pinMode( p_in_up, INPUT );
pinMode( p_in_down, INPUT );
pinMode( p_in_tcl, INPUT );
pinMode( p_out_sol1, OUTPUT );
pinMode( p_out_sol2, OUTPUT );
pinMode( p_out_sol_tcl, OUTPUT );
pinMode( p_out_leddp, OUTPUT );
pinMode( p_out_led1, OUTPUT );
pinMode( p_out_led2, OUTPUT );
pinMode( p_out_led3, OUTPUT );

Serial.begin(9600);
Serial.print("Starting...\n");

// power-up steps
tcu_ctrl( 1 ); // turn on power to the TCU
delay( boot_delay ); // hang on a god-damned second
current_gear = get_gear();
}

void loop() {

int up_state = digitalRead( p_in_up );
int down_state = digitalRead( p_in_down );
int on_state = digitalRead( p_in_onoff );
int tcl_state = digitalRead( p_in_tcl );

if (
up_state != last_up_state
|| down_state != last_down_state
|| on_state != last_on_state
|| tcl_state != last_tcl_state
) {
last_debounce_time = millis();
}

if ( (millis() - last_debounce_time) > debounce_delay ) {
if ( up_state != current_up_state ) {
current_up_state = up_state;
if ( current_up_state ) {
handle_event( ev_changeup );
}
}
if ( down_state != current_down_state ) {
current_down_state = down_state;
if ( current_down_state ) {
handle_event( ev_changedown );
}
}
if ( on_state != current_on_state ) {
current_on_state = on_state;
if ( current_on_state != running ) {
handle_event( ev_power_change );
}
}
if ( tcl_state != current_tcl_state ) {
current_tcl_state = tcl_state;
auto_tcl_mode = 0;
if ( current_tcl_state ) { // momentary switch
last_tcl_on_time = millis();
handle_event( ev_tcl_change );
} else {
if ( ( millis() - last_tcl_on_time ) > tcl_long_press ) { // long press
// auto_tcl_mode = 1;
}
}
}
}
last_up_state = up_state;
last_down_state = down_state;
last_on_state = on_state;
last_tcl_state = tcl_state;

if ( (get_gear() != current_gear ) && running ) {
abend();
}
}

void handle_event( int ev ) {

switch(ev) {
case ev_changeup :
if ( ! running ) break;
switch( current_gear ) {
case 4 :
//flash_disp();
break;
default :
chng_to( ++current_gear );
break;
}
break;
case ev_changedown :
if ( ! running ) break;
switch( current_gear ) {
case 1 :
//flash_disp();
break;
default :
chng_to( --current_gear );
break;
}
break;
case ev_power_change :
if ( running ) {
power_down();
} else {
power_up();
}
break;
case ev_tcl_change :
if ( running ) {
tcl_running = ! tcl_running;
tcl_ctrl( tcl_running );
}
break;
}
}

void power_up() {
current_gear = get_gear();
chng_to( current_gear ); // set solenoids and LEDs
tcu_ctrl( 0 ); // kill the TCU
delay( pwr_up_delay ); // hang on a god-damned second
if ( get_gear() == current_gear ) {
running = 1;
} else {
abend();
}
}

void power_down() {
// kill power to the gear solenoids
digitalWrite( p_out_sol1, 0 );
digitalWrite( p_out_sol2, 0 );
tcl_ctrl( 0 ); // turn off the tcl
tcu_ctrl( 1 ); // turn on power to the TCU
// blank the display
digitalWrite( p_out_led1, 0 );
digitalWrite( p_out_led2, 0 );
digitalWrite( p_out_led3, 0 );
running = 0;
}

void chng_to( int new_gear ) {

tcl_ctrl( 0 );
delay( tcl_delay );

switch( new_gear ) {
case 1 :
// gear solenoids

digitalWrite( p_out_sol1, 1 );
digitalWrite( p_out_sol2, 0 );

// LED display
digitalWrite( p_out_led1, 1 );
digitalWrite( p_out_led2, 0 );
digitalWrite( p_out_led3, 0 );
break;

case 2 :
// gear solenoids

digitalWrite( p_out_sol1, 1 );
digitalWrite( p_out_sol2, 1 );

// LED display
digitalWrite( p_out_led1, 0 );
digitalWrite( p_out_led2, 1 );
digitalWrite( p_out_led3, 0 );
break;

case 3 :
// gear solenoids

digitalWrite( p_out_sol1, 0 );
digitalWrite( p_out_sol2, 1 );

// LED display
digitalWrite( p_out_led1, 1 );
digitalWrite( p_out_led2, 1 );
digitalWrite( p_out_led3, 0 );
break;

case 4 :
// gear solenoids

digitalWrite( p_out_sol1, 0 );
digitalWrite( p_out_sol2, 0 );

// LED display
digitalWrite( p_out_led1, 0 );
digitalWrite( p_out_led2, 0 );
digitalWrite( p_out_led3, 1 );
break;
}

if ( auto_tcl_mode ) {
delay( tcl_delay );
tcl_ctrl( 1 );
}
}

void abend() {
// kill power to the gear solenoids
digitalWrite( p_out_sol1, 0 );
digitalWrite( p_out_sol2, 0 );
tcl_ctrl( 0 ); // turn off the tcl
tcu_ctrl( 1 ); // turn on power to the TCU
flash_disp(); // warn the driver
delay( 1000 );
// blank the display
digitalWrite( p_out_led1, 0 );
digitalWrite( p_out_led2, 0 );
digitalWrite( p_out_led3, 0 );
running = 0;
}

int get_gear() {
//return 3;
Serial.print( analogRead( A0 ), DEC );
Serial.print( " - " );
Serial.print( analogRead( A1 ), DEC );
Serial.print( "n" );
int val_sol1 = analogRead( A0 ) > 500 ? 1 : 0;
int val_sol2 = analogRead( A1 ) > 500 ? 2 : 0;
switch ( val_sol1 + val_sol2 ) {
case 0 : return 4;
case 1 : return 1;
case 2 : return 3;
case 3 : return 2;
}
}

void flash_disp() {
// show '0' and flash dp
//digitalWrite( p_out_led1, 0 );
//digitalWrite( p_out_led2, 0 );
//digitalWrite( p_out_led3, 0 );
//running = 0;

digitalWrite( p_out_leddp, 1 );
delay(250);
digitalWrite( p_out_leddp, 0 );
delay(250);
digitalWrite( p_out_leddp, 1 );
delay(250);
digitalWrite( p_out_leddp, 0 );
delay(250);
digitalWrite( p_out_leddp, 1 );
delay(250);
digitalWrite( p_out_leddp, 0 );
delay(250);
digitalWrite( p_out_leddp, 1 );
delay(250);
digitalWrite( p_out_leddp, 0 );
delay(250);
}

void tcu_ctrl(int on_or_off) {
digitalWrite( p_out_tcu, on_or_off ? 0 : 1 );
}

void tcl_ctrl(int on_or_off) {
digitalWrite( p_out_sol_tcl, on_or_off );
digitalWrite( p_out_leddp, on_or_off );
tcl_running = on_or_off;
}

------

:D

Mudderoy
09-15-2011, 12:14 PM
Wonderful post, thank you. :popcorn:

bigjim350
09-15-2011, 12:45 PM
Wow very interesting post. But this post also makes me feel very dumb

Sent from my VM670

JeepinOutfitters
09-15-2011, 01:28 PM
Very cool! This is the first time I've seen an arduino used for vehicle control (not that I really follow the arduino world though).

jeepxj95
09-15-2011, 09:32 PM
this makes me want to get a new (used) tcu sence mine died. and would be easier to drive then my current set up. i like ALOT :)

LizardRunner
09-15-2011, 09:54 PM
very nice, great idea, but I have a standard. Maybe I'll get another xj with an auto and give this a go.

cobalt6700
09-20-2011, 11:49 AM
Cheers guys, hopefully some more updates soon! :D

jeepxj95
09-20-2011, 10:28 PM
? if we pay u to make us one can we reprogram it our selfs? maybe with a little of ur help?

cobalt6700
09-21-2011, 02:11 AM
How do you mean reprogram?

Are you talking about when I update the software?

If so then yes it's very easy, plug a pc/laptop in via USB and upload the program with th ardunio software. :)

jeepxj95
09-22-2011, 12:24 AM
yeah i mean once we get it can we change any of the settings and if so what ones?

cobalt6700
09-23-2011, 01:27 AM
You can change anything you like in the program, not sure what you would want to modifiy?

Pretty much all it dose at the moment is

find the gear your in,
take that gear,
Let you change gear,
Let you lock/unlock TC,
Show you on a readout,

Let me know what you would like to change :)

jeepxj95
09-23-2011, 11:42 PM
the tcc unlock between shifts. i drive with mine locked all the time unless im wheelin passing or climin a big hill. but i would like to try it with the tcc unlock between shifts as long as it locks back up. that or maybe a auto setting im not payin $100 for a used tcu. but i would for someting like urs. waiting for a update and good work. thanks for all the understanding and info.

BrianXJ
09-24-2011, 12:02 AM
nice write up.. I would like to see it in action.

cobalt6700
09-24-2011, 07:46 AM
Cheers brianXJ, I'm in the middle of sorting out wiring to be able to put it into the car in the next two weeks.

As for the TC lockup, currently it unlocks when changing gear and you have to manually re-lock.

How ever if you push the TC lock for 5 seconds then it locks up and unlocks when you shift, and re-locks again :)

senatE
10-01-2011, 01:11 AM
How much would you charge to make one of these? :P

jeepxj95
10-23-2011, 07:22 AM
any updates???

cobalt6700
12-06-2011, 03:35 PM
Well.

Lifes been really busy recently. Had alot of stuff to sort out.

Ive been doing bits here and there with the project, but i had to spend a month fixing the jeep so i can actually get to testing this.

Im still pretty stuck on the solenoid driver side, but ive found a local source of 'tronics knowlage that im tapping into :)

So just to let you all know i havent forgotten about this, and ill leave you with a couple of picutres of how far ive got as of tonight :)

http://img.photobucket.com/albums/v248/cobalt6700/5278d66a.jpg

http://img.photobucket.com/albums/v248/cobalt6700/72576a3a.jpg

dagr8tim
05-05-2012, 08:10 AM
Looks awesome. Did you cook up a schematic for this?

This seems like it would be a fun little project to use a laser printer to print a mask, and then etch a circuit board to make it.

Also, any more info on how to construct the shifter setup?

ProfessorGT
06-24-2012, 02:35 PM
PLEASE, send me the schematic to use the Arduino board to make this shift controller as you have shown here. I really want to make one of these, and in the process learn how the Arduino Uno enables this to work.

I have been wanting to do this project for years, but never got around to it, and like many I want to build it myself, (with your help/knowledge of course). I have a 1997 Cherokee, so I will be adding the dummy solenoid loads so the TCU doesn't trigger the MIL (Malfunction Indicator Lamp).

Thanks for all your knowledge and sharing. I really do appreciate it, and your help.

Thanks,
Gerard
ProfessorGT

cobalt6700
01-10-2014, 09:12 AM
Hello!

Sorry it's been so long. I got totally stuck on the high side driver, and after months of searching and trying things with mosfets and stuff I lost interest and banished it to a cupboard.

Recently I was pointed to a website called http://ruggedcircuits.com/ which has a schematic for a high side driver.

I've ordered the parts and spent this evening bread boarding them and confirmed that it will work for what I want! Really pleased. Big thanks to rugged circuits.

I am currently designing the PCB in eagle, and this should be finished soon. Then it's off to veroboard for prototyping. I had to make some changes to the sensing side of the circuit, using optoisolators. This is yet to be tested, but I'm confident about it.

So all in all, I hope to have it prototyped in a couple of weeks, a bit of testing, and then a PCB made. Can't wait.

dagr8tim & ProfessorGT, as soon as I have finished and tested the info will be up.

Watch this space :)

jimmixj
01-10-2014, 09:24 AM
Wow very interesting post. But this post also makes me feel very dumb

Sent from my VM670

Me too! I remember taking Fortran and Cobalt about a hundred years ago, but that line code just left me puzzled! LOL Really like the idea tho...Awesome post!

OneArmArrowSlinger
03-13-2014, 08:37 AM
this is an awesome thread, makes me feel like a big dummy. I'm swapping an AW4 in my 97 this summer & dropping the AX15 so this is very intriguing to me. I hope you get it going soon, maybe next winter I'll give it a crack. Def sub'd.

jeepin_idaho
03-13-2014, 10:09 AM
this is an awesome thread, makes me feel like a big dummy. I'm swapping an AW4 in my 97 this summer & dropping the AX15 so this is very intriguing to me. I hope you get it going soon, maybe next winter I'll give it a crack. Def sub'd.

AX15 to AW4?! Can I ask why?

Dan
Typos courtesy of Tapatalk
http://the4x4podcast.com

Brasscatz
03-13-2014, 10:35 AM
AX15 to AW4?! Can I ask why?

Dan
Typos courtesy of Tapatalk
http://the4x4podcast.com

Our esteemed colleague is without the use of a left hand.
I'm guessing a standard transmission is probably difficult to maneuver off road.

Sent from my Samsung Galaxy S4 because my microwave couldn't do it

jeepin_idaho
03-13-2014, 11:38 AM
Well that makes perfect sense then!

Dan
Typos courtesy of Tapatalk
http://the4x4podcast.com

OneArmArrowSlinger
03-13-2014, 11:51 AM
Our esteemed colleague is without the use of a left hand.
I'm guessing a standard transmission is probably difficult to maneuver off road.

Sent from my Samsung Galaxy S4 because my microwave couldn't do it

Pretty much. I can do it, just think an auto will be much easier. I prefer standard but unfortunately its just about too much work for off road.

4.3LXJ
03-13-2014, 01:44 PM
I used to be a standard tranny guy, but I now prefer an auto where I wheel. But if in lots of mud where I used to wheel, it would be standard again

rubensx
12-05-2015, 01:23 PM
Hello Guys... well, someone need to revive this awesome post...

I'm new (excuse me if this a revival post, but really I need more information and I'll help to share this information too).

I bought and has all things to create the "Tiptronic arduino AW4 system" and have some ideas and toughts...

First I'll say congrats to cobalt about this great idea and work (in code too) and disponibilize myself and my 2000 XJ to help with code, tests and share results, diagrams and codes.

Anyone has a wiring diagram (I'm stuck in this part) to help wiring the right ports in arduino? (TCU ports, solenoids all these informations for me are clarify and ok, but, arduino I'm newbie.

(my english not good so much, I'm Brazilian, but I'll do my best).


Anyone can help to proceed with this topic?


Thank you

cobalt6700
12-06-2015, 03:09 PM
Hi rubensx, and all of XJtalk.

I'm still here, but life has got in the way of getting this sorted. The jeep has been off the road for a year whilst I welded a new floor in, rebuilt the axles, re-wired the engine bay, and so on.

I will do my best to help you out. I got as far as a final design on the PCB, err, a long time ago, but had some problems with the guy who was helping design it. Haven't broached the subject with him for ages, but need too as I want to use the jeep again! I also promised this to be available to people as an arduino shield that plugs in and off it goes. 4 years later, that's not a well made promise.

TL;DR : I hope to do something rather soon, I'll get the wiring diagram from Car to Arduino (There is one bit that is untested) posted up.

Cheers

rubensx
12-06-2015, 06:56 PM
Awesome! You're back!!!

This weekend I take your code and make some diagram

But I don't understand some points: listen your gpio definition you make a sistem to see the gears and display on leds displays in manual and automatic sistem?
Far as I understood you're on some relays?

Great job in this code, I'm at ominigrafle creating a schem based on your code, i
If you wanna see, I'll send to you!!

Cheers

rubensx
12-20-2015, 12:16 PM
Ok Guys, I'm back...

Based in Cobalt's code, the system is a less more complex about we expected...

Some toughts about this:

- The arduino nano is more desirable (the size to application is perfect).
- You need a relays set to do what we need and in my toughts you need a magnetic relays to set from AT to MT (if you cancel the system AT mode is select as default). And another set of SSR (solid state relays) to make the foward gears...
- Another fact is, the posted code is not completed and have a several bugs, need to be adapt to my diagram in some points...
- The 7 segment led to show gears are old style and I'm going to a OLED drone system to show more nice information (I don't know where put is at moment)..


let's go to parts:
What you need?


- 3 channels of SSR Relays like these:

SSR 2 channel Sainsmart (http://www.sainsmart.com/arduino/arduino-components/relays/sainsmart-2-channel-ssr-2f-solid-state-relay-3v-32v-5a-for-avr-dsp-arduino-mega-uno-r3.html)

(I know, it's only 2, buy 2 of this boards and take a spare for a future use)
SSR is use to make a solenoid combination and not to switch AT/MT right?


- 3 Channels od SRD like these:

SRD 4 channel Sainsmart (http://www.sainsmart.com/arduino/arduino-components/relays/4-channel-5v-relay-module-for-pic-arm-avr-dsp-arduino-msp430-ttl-logic-1.html)

These is for shift AT to MT (tiptronic mode)

- One Arduino NANO:

Amazon.com: Arduino Nano v3.0: Computers & Accessories@@AMEPARAM@@http://ecx.images-amazon.com/images/I/51ymxLY%2BCtL.@@AMEPARAM@@51ymxLY%2BCtL


- 3 Momentary on buttons (you choose)

- 3 Current sensors:

http://www.dx.com/p/acs712-30a-range-current-sensor-module-for-arduino-blue-151391#.VnbrWjY5nlQ

Ok


With these various electronic parts, let's to create a board (all these parts make some bigger confusion in wires, sensors, relays...)

I'm not found a free image hosting to put the "beta" schem, if someone can help, I'll post the jpg :xj-yellow:


Someone are a programmer? can help with some logics?

rubensx
12-20-2015, 12:35 PM
ok, This diagram IS NOT THE FINAL

Only created based in the cobalt code (thios code is not done, no work properly in my tests)

http://i.imgsafe.org/46e3b1d.jpg


Please, this is a diagram for start a help and NOT A FINAL SOLUTION.
I need a help with a code and logic... without help I'll stuck here...


Explain the diagram:

Arduino take the current status about the solenoids A and B (in AT or MT mode) and show the gear in leds (7 segment, not implement OLED at now).

With these information the arduino knows the gear and in MT mode on, takes the control of the solenoids with a last information of the gears...

This point the TCU is not without a power, but his control about solenois is cut and don't makes difference (the relays take TCU off from gears solenoids) and the arduino take the control...

With this feature, maybe (i guess) we stop the CEL with MT system...

The choose of the arduino is about simple to program, and are "realtime" response...


ok... is it...

Cobalt, if you can send me a light about this (if it's the right way) thank you again


IMPORTANT: This code is a public code, please refer the users and the people who help the project in code and posts in another foruns, thank you

cobalt6700
12-21-2015, 04:54 PM
Wow, nice work dude.

I have had a look through all the bits, but Christmas things and getting the jeep ready for her first outing in a year are keeping me busy.

The reason I used an UNO is that it's easier for people to just plug in. I hope to sell the kit as a box you put an arduino in.

I like the idea of the solenoid input relays but I'll get back to that.

I can't really remember where I got to with the code. I wrote it along time ago and have since changed things on the board, and added things like a brake sensing switch (to unlock TCL on braking). So the code will need to be re-visited and re-jigged when the board is at a state I think will work.

I like your idea of an OLED. I had just gone with keeping it cheap and simple.

Diagram is good. When you see mine you might think its a bit over the top! I have over engineered alot of it, and all of the inputs and outputs are opto-isolated to protect from high currents on the board. The current sensors are cool, didn't know about them.

In theory, what you have done should work for switching gears. However, The reason and OBDII jeep has problems with the CEL coming on isn't due to the fact it doesn't like being turned off.

If you turn it off in a pre-OBDII jeep, the PCM doesn't care weather it works or not. Easy peasy.

If you turn it off in an OBDII jeep, the ECU/PCM has a fit, as it thinks (and rightly so) that the TCU is dead. This is because the TCU outputs to the (CCD?) bus telling the ECU its ok. If you keep the TCU on, but take away its solenoids, it thinks the solenoids in the gearbox have died, and then outputs a code to the ECU.

The solution to all of this seems to be to switch from the soleniods to dummy loads, in this case power resistors. Please see here: http://www.naxja.org/forum/showthread.php?t=1034635&highlight=aw4+lockup&page=6 Just seen you have posted on that post! It contains all the info you need to keep your CEL away :rolleye0012:

I was planning on making a solenoid board like Raneil from NAXJA for people with OBDII jeeps.

When I get some time ill post pictures and info :thumbsup:

rubensx
12-22-2015, 03:32 AM
Thank you Cobalt!!!

I read your code and do my best to "translate" with market simple board to make a soluion. Here in brazil your board from uk maybe cost the price of xj :D (thanks to brazil cost o life).

The opto isolated are my first idea, but these relays SRD makes a "hardwire" isolation (ok these are "tec-tec" sound, but my tires has more noise).

And thank you about the resistors as "fake solenoids" its great!

If you have a lastest code to send here maybe I can do more... In the next 2 weeks I'm with a time to do this (it's my xmas fun!)


Thank you again and with this new informations about I,ll mod this diagram again

rubensx
12-22-2015, 04:14 AM
The OLED issues:


This Oled from multiwii drones

https://www.youtube.com/watch?v=pP32ggA8Jbc


and to solve the problem of "random dots"

http://rayvenn.alnet.com.ua/2013/08/crius-oled-display-fix/

and the code I take from DX if you need please ask me, and I'll send you by dropbox

rubensx
05-12-2016, 06:31 PM
hey Cobalt, you're still here?

XJ Wheeler
05-14-2016, 09:46 PM
hey Cobalt, you're still here?
You could try private messaging him to find out if he's still around. If he's still got the same email he should get a notification of your message.

Sent via messenger pigeon. I talk, he types.

cobalt6700
05-15-2016, 08:22 AM
Still here ;)

CobraMarty
05-24-2016, 08:31 AM
This is very interesting. I have a strong interest in manually shifting the AW4. I have built similar relay boards and have made manual switching using switches and with using the stock shift lever.

As I look at your layout, you basically have 2 relay boards, one SPDT and a solid state SPST. The 1st relay board switches between Auto and Manual, and the 2nd solid state relay board allows manual switching controlled by the Arduino.

This is similar to what I do except that I don't use the Arduino and instead I use either switches or the stock auto lever to control.

One problem you will have with your system is when switching the 1st relay board which cuts out the stock TCU, this will set off a CEL. It will see that there is no solenoids connected and you get a CEL. the way around this is when you cut the TCU out you need to have load resistors connected to the TCU wires so that the TCU still thinks that it is connected to the trans solenoids.

I can make what you have work if I just had the Arduino circuit, which is basically the Up/Down switches and the output wires to S1 and S2.

I'm not smart enough/learned in Arduinos. I have to use switches. Combining your Arduino and my relay boards will work.

rubensx
05-24-2016, 09:21 AM
Hello CobraMarty! thank you for join us..

Yeah I'm done this pre-project but still in lab tests (not in car).
I have used the cobalt code, but my design is slightly different for original cobalt's concept.
Cobalt use this code to some things more capable to identify gears as a sensors and my idea is use some other cool arduino like parts to solve some problems...
Cobalt don't show his pcboard project, only the undone code, but I do a learn in his logic and adapt the original concept to my application (with magnetic relays and solid state relays havliable in market to do more simple and lower the cost). Cobalt show me this solution on resistors to cancel the CEL trouble in other reply above.

I'm still in other development for XJ jeep here in brazil (not envolved in electronic, my country are very very retard with the suspension and aftermarket parts like aluminium radiator and high flow pumps and we needed it so much).

This system cam do:

- Show what gear you are in MT or At mode in display
- Switch the MT and AT system on fly
- Up and down the gears and show what are you are
- Lock the lockup system

The relays without a arduino and logical intelligence can do all of this but can't sense the gear with the AT mode on... The arduino is a simple and powerfull real time processor to do this things whitout trouble, but I need some help wit logical to adapt this code to my design...

If you can help and like the project come joint us! It's a interessant and different way to do this, thank you

CobraMarty
05-24-2016, 09:58 AM
Unfortunately I have no experience in Arduino.

I make a LED gear indicator that sells thru RADesignsproducts.com
http://www.radesignsproducts.com/misc-accessories.html

It is nothing fancy, just relays and senses which solenoids are on/off and sends to LED.

As far as radiators, Alumn ones are junk. As are 'triple electric fans'.
The best ones that I have found are CSF 3 row #2671 and Flowcooler water pumps. I wouldn't buy anything else.

CobraMarty
05-25-2016, 06:41 AM
For most driving, there is no need to control and be able to lock the TC. Locking the TC should not be used off road. It is a relatively weak clutch/lock up mechanism in the torque converter and will wear out and fail if abused. TC lockup should only be used in top/4th gear when cruising and low torque input.

Also the stock auto stick position controls the sprag gears which allows trans to be fully engaged. It only engages the sprags 1 gear lower that stick position.
Example,
in D only 3 and 4th are engaged and 1 and 2 will freewheel when coasting or going down hill.
in 3, only 2 and 3rd will be engaged
in 1 2, 1st and 2nd will be engaged.

SO when offroading and slowly going downhill, if you are in D you will be 'coasting', if in 1 2 you will be engine braking.

The TC should not be used for engine braking function, that should be a function of the sprag gears.

It is because of this that I made a trans controller which is controlled by the shift lever. With a auto/manual switch- when in auto- all functions as normal. When in manual- the shift lever controls the gear selection, that is 1 2 position is 1st gear and the sprag gears are engaged, 3 position is 2nd gear and sprag gears are engaged for 2 and 3. And in D position is 3rd gear and sprags are engaged in 3 and 4th.

I hope this is as clear as mud, is is sometimes hard to explain.

I think that everyone's misunderstanding is that when locking the TC this will lock the trans and allow engine braking. This is not true. It is the engaging of the sprag gears that allows for engine braking.

CobraMarty
05-25-2016, 07:08 AM
Hey Cobalt,

I read thru all the arduino code. I don't understand all of it but the labeling helps ID what line is for what.

I would 'Dumb' it down and remove the TCL and all it's code and remove the LED and all it's code. This would eliminate about 50% of the code. Sort of KISS principle.

I have a much simpler LED gear indicator which is free standing and can be used with this 'triptonic' or ever prue stock to indicate what gear you are currently in, 1-4. It is only 4 wires to hook up 12v+, gnd, sol1 and sol2. Thru a set of relays it determines what number to display on the LED based on sol1 and sol2 being on or off.

cobalt6700
05-26-2016, 11:16 AM
Hi guys,

I'm super busy at the moment, summer is crazy for me. I have had a little read through but I need to have a proper one and reply to you guys properly.

I was fortunate to meet one of the founders of RaspberryPI last night, and bounced some idea's off of him, hopefully i can get this project nailed soon! (only like 4 years late)

Cheers all, Will try not to take too long ;)

rubensx
11-01-2016, 09:51 AM
Hey Cobalt! how are you?

Any news about? Can you send me a diagram or something else new?

thank you!