FORUM CLASSIFIEDS DIFFLOCK.com Links & Networks
Forum Homepage
Log in
Profile
Search
Private Messages
Forum Members
Register
Classified Ads
Search Ads
Place New Ad
My ads
Place your classified
ads here for FREE
NB: Adverts placed in the general
forum areas will be deleted
Difflock Homepage
Online Shop
Contact Us
FAQ
Calendar
Garage
Facebook
Twitter
Youtube
Advertise With Us - Reach your target market by advertising on the Difflock.com forum.
Click here or call 0845 125 9407


AW4 tiptronic control

 
 
Post new topic   Reply to topic    Difflock Forum Index -> Jeep
View previous topic :: View next topic  
Author Message
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Thu Jul 21, 2011 7:15 pm    Post subject: AW4 tiptronic control Reply with quote

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. Wink Very Happy

Think thats its for now, hopefully some updates and pictures soon!
Back to top
View user's profile Send private message
wilderness
Guest








PostPosted: Fri Jul 22, 2011 7:11 am    Post subject: Reply with quote

Whats the torque converter lock do then - stop it freewheeling down hills?
Back to top
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Fri Jul 22, 2011 12:35 pm    Post subject: Reply with quote

Pretty much. It locks the engine to gearbox.
Back to top
View user's profile Send private message
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Sat Jul 23, 2011 5:41 pm    Post subject: Reply with quote

Have been doing some more research into the check engine light (CEL). Looks like some guys over at NAXJA have been using dummy load resistors to fool the OBDII TCU. It seems to work well, apart from the '98-01 TCU is a bit smarter and throws up the code every now and again. Hoping to build on this to find a solution http://www.naxja.org/forum/showthread.php?t=103...hlight=aw4+lockup
Back to top
View user's profile Send private message
downthepub
Gate Opener


Joined: 17 Aug 2009
Odometer: 18
Location: Aberdeen, Scotland


1997 Jeep Cherokee

PostPosted: Mon Jul 25, 2011 4:16 am    Post subject: Reply with quote

Thanks for posting this - sent me off down the road at looking at locking the torque convertor. Despite picking an auto (both for street and offroad) was never particularly happy with steep descents with an auto. So, after having a look about, the plug-in kit from Montana Fab (http://www.montanafab.com/aw4_trany_overide.php) looks like it will lock 1st and prevent the CEL from illuminating in my post 98.

That's now on the shopping list.

Had wondered about a system to engage the ABS for descents, like a poor man's HDC, but I think, overall, locking the transmission is the better option.
Back to top
View user's profile Send private message MSN Messenger
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Tue Jul 26, 2011 4:50 pm    Post subject: Reply with quote

or you could just use 2 switches, one to lock the tc, one to hold in 2nd gear? As you have a pre 98, no CEL issues Smile
Back to top
View user's profile Send private message
minimog
Off-Road Guru


Joined: 25 Nov 2004
Odometer: 1700




PostPosted: Wed Jul 27, 2011 8:11 am    Post subject: Reply with quote

just read this as im on the manual box in the wrangler but having had a gc and miss it loads for the auto
did the auto box not lock the tc in low box any way
could you not find the control wires and tap into them with a override switch to fool the auto that its in low

__________________________________
WHAT YOUR ASKED WHEN YOU OWN A MOG
"why have you put a merc star on that"
UNIMOG MOTTO
"IF IT CARNT BE FIXED WITH A BIG HAMMER"
IT MUST BE AN ELECTRICAL FAULT"
Back to top
View user's profile Send private message
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Wed Jul 27, 2011 5:30 pm    Post subject: Reply with quote

You can lock the TC with a switch, and AFAIK with no CEL.
Back to top
View user's profile Send private message
downthepub
Gate Opener


Joined: 17 Aug 2009
Odometer: 18
Location: Aberdeen, Scotland


1997 Jeep Cherokee

PostPosted: Wed Jul 27, 2011 6:21 pm    Post subject: Reply with quote

I've ordered the AW4 Transmission override, so should get it fitted in a couple of weeks time - will report back....
Back to top
View user's profile Send private message MSN Messenger
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Fri Aug 05, 2011 7:20 pm    Post subject: Reply with quote

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.


This shows the action inside the switch


I also have made a faceplate which takes the TC button too


This is the on/off switch and the tc lock button


This is the arduino, the brains which the code is uploaded too. It is just smaller than a credit card.


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.



More to come soon Smile
Back to top
View user's profile Send private message
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Wed Aug 10, 2011 9:54 pm    Post subject: Reply with quote

Been really busy for the past week, lots of gigs going on, so progress has been slow.

It pretty much done on the breadboard, and were now down to writing the code.

Once that's done I will link it up to the jeep and see what happens.

Stay tuned
Back to top
View user's profile Send private message
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Thu Sep 08, 2011 8:51 pm    Post subject: Reply with quote

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 Smile

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.


More soon Very Happy
Back to top
View user's profile Send private message
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Thu Sep 15, 2011 4:20 pm    Post subject: Reply with quote

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 ****;
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;
}
Back to top
View user's profile Send private message
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Wed Dec 07, 2011 7:16 am    Post subject: Reply with quote

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 Smile

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 Smile



Back to top
View user's profile Send private message
Big-G
Just got MTs


Joined: 21 Oct 2007
Odometer: 207



1993 Jeep Cherokee

PostPosted: Fri Jan 10, 2014 3:10 pm    Post subject: Reply with quote

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.

Watch this space Smile
Back to top
View user's profile Send private message
Xpajun
Mud Obsessed


Joined: 22 Sep 2008
Odometer: 3245



1988 Mitsubishi Shogun

PostPosted: Fri Jan 10, 2014 5:41 pm    Post subject: Reply with quote

Welcome back Laughing

Looking forward to the final - just out of interest I've only just read this so the delay has probably helped rather than hindered Wink
Back to top
View user's profile Send private message Visit poster's website eBay Name
Display posts from previous:   
Post new topic   Reply to topic    Difflock Forum Index -> Jeep All times are GMT - 12 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot post calendar events in this forum
Adrian Flux 2023

Evo Oils

Facebook

Oil Safe

Specialist Tools

Join our mailing list for upcoming events, special offers, discount coupons and expert advice on the latest 4x4 products!

* indicates required





    
Powered by phpBB © phpBB Group