• Hello Guest, welcome to the initial stages of our new platform!
    You can find some additional information about where we are in the process of migrating the board and setting up our new software here

    Thank you for being a part of our community!

Make your 960 ridiculous: The Sequel-ing.

Broke4speed

Well-known member
Joined
Oct 5, 2009
Location
Marionville, Ontario, Canada
The thread that started it all, by The Poi:
Make your 960 ridiculous: Put some paddle shifters on it!

So, back when I did my B6304 swap, I decided to make myself a 'Poi-shift' box to control the AW30-40.

ysna9GqS_o.jpg


I ghetto-squeezed it into the enclosure and added some LEDs to show what gear I was in. It's not the best system, the LEDs just light up depending on which solenoid is 'on', but it is actually pretty efficient. Now I can tell just by colour, if I've lost track.

I've never been super happy with the way I built it, so after a year or two of using it as-is, I decided to make another one. I asked The Poi if I could put his design on a PCB and share it, and he said sure thing...so here's the progression:

ryFmnAG3_o.jpg


I'm going to be testing it soon, and if it works properly, then I will have four more PCBs available if anyone wants one (Minimum order is 5, and I only need one). The BOM is pretty simple, and IIRC, everything came in under $75 CAD. Just cover the shipping, which will be cheap, and a bare PCB ready for populating will be on your way.

When finished, it'll fit into a Hammond 1455L1201 enclosure, and the LEDs can be mounted wherever you like.

1455l1201rb.jpg


I realize that there probably aren't many folks out there using the auto now that the CD009 kits exist, but with the accumulators deleted and full line pressure...the auto is pretty fun to use with paddles or a tiptronic-style shifter :).
 
If you are making it already so fancy...you might consider putting a BCD decoder IO and led display showing you the actual gear....that's what I did with mine.

<a href="https://imgur.com/MoPshCh"><img src="https://i.imgur.com/MoPshChl.jpg" title="source: imgur.com" /></a>
 
If you are making it already so fancy...you might consider putting a BCD decoder IO and led display showing you the actual gear....that's what I did with mine.

<a href="https://imgur.com/MoPshCh"><img src="https://i.imgur.com/MoPshChl.jpg" title="source: imgur.com" /></a>
Next thing you know we'll have self driving cars, future shock inevitable.
 
If you are making it already so fancy...you might consider putting a BCD decoder IO and led display showing you the actual gear....that's what I did with mine.

<a href="https://imgur.com/MoPshCh"><img src="https://i.imgur.com/MoPshChl.jpg" title="source: imgur.com" /></a>

Hey, cool idea. I'm not much of a coder, would you mind sharing your code?
 
It's firm, but the stall of the converter buffers it pretty well. You don't really feel it from lockup to 4th, but 4th to 3rd is a bit more obvious. 3-2 and 2-1 are un-noticeable unless you're above the stall, because there's no engine braking at all in 2nd or 1st. 3rd has a wee bit, I've noticed, but not a huge amount. The car burbles slightly whereas it doesn't in 2nd or 1st, after downshifting.
 
Hey, cool idea. I'm not much of a coder, would you mind sharing your code?

Fortunately I made a backup of my code...:) what I have added to the original code is driving of pin #6 and #7. The BCD IO needs three pin binary input (the two I have added and the original #3 pin) and then it is connected to the LED display that directly shows the number (001 = 1, 010 = 2, 011 = 3 etc.).

Look for "LED" in comments below:




' {$STAMP BS1}
' {$PBASIC 1.0}

'The Poi's (Chris Wiita's) AW30-40 paddle shifter code
'v1.1

'I/Os:
' 0 is Upshift button input - set to input with BUTTON function
' 1 is Downshift button input - set to input with BUTTON function

' 2 is Solenoid 1 - engages when 1
' 3 is Solenoid 2 - engages when 1
' 4 is Lockup Solenoid - engages when 1

' 5 is Ground for "drive" funcitons of PNP switch. When grounded, flappy
' paddles work. Whenever it loses ground, switches back to 1st

'Shift Table:
' Gear Sol1 Sol2 TCC
' 1 1 0 0
' 2 1 1 0
' 3 0 1 0
' 4 0 0 0
' 4+TCC 0 0 1

' "1st Gear" for P N and R.

'LED display is driven by ports #7, #3 and #6 (in this order; #7 and #6 are dedicated, #3 is sourced from the original design)

SYMBOL Gear = B0 'Current gear

SYMBOL UpBtnWrk = B2
SYMBOL DwnBtnWrk = B3
SYMBOL DriveBtnWrk= B4

UpBtnWrk = 0
DwnBtnWrk = 0
DriveBtnWrk = 0

'Start in first gear
Gear = 1
GOTO SetGear

'Start loop by checking that PNP is in drive mode, if its grounded, start loop,
'otherwise, set gear to 1, keep checking till drive
ChkDriveBtn:
BUTTON 5,0,255,0,DriveBtnWrk,1,Go
PAUSE 100
BUTTON 5,0,255,0,DriveBtnWrk,1,Go
Gear = 1
GOTO SetGear

'Clear button work so it keeps checking if its down, chk upbtn
Go:
DriveBtnWrk = 0
GOTO ChkUpBtn

'Check up button, if grounded, upshift, else, check down button
ChkUpBtn:
BUTTON 0,0,255,0,UpBtnWrk,1,UpShift
GOTO ChkDwnBtn

UpShift:
Gear = Gear + 1
GOTO SetGear

'Check down button, if grounded, downshift, else, check drive button
ChkDwnBtn:
BUTTON 1,0,255,0,DwnBtnWrk,1,DownShift
GOTO ChkDriveBtn

DownShift:
Gear = Gear - 1
GOTO SetGear


SetGear:
BRANCH Gear, (SetGear0,SetGear1,SetGear2,SetGear3,SetGear4,SetGear5,SetGear6)

SetGear0:
Gear = 1
GOTO ChkDriveBtn

SetGear1:
LOW 7 'LED driving #1
HIGH 6 'LED driving #2
LOW 4 'Lockup
LOW 3 'Sol2
HIGH 2 'Sol1
GOTO ChkDriveBtn

SetGear2:
LOW 7 'LED driving #1
LOW 6 'LED driving #2
LOW 4 'Lockup
HIGH 3 'Sol2
HIGH 2 'Sol1
GOTO ChkDriveBtn

SetGear3:
LOW 7 'LED driving #1
HIGH 6 'LED driving #2
LOW 4 'Lockup
HIGH 3 'Sol2
LOW 2 'Sol1
GOTO ChkDriveBtn

SetGear4:
HIGH 7 'LED driving #1
LOW 6 'LED driving #2
LOW 4 'Lockup
LOW 3 'Sol2
LOW 2 'Sol1
GOTO ChkDriveBtn

SetGear5:
HIGH 7 'LED driving #1
HIGH 6 'LED driving #2
HIGH 4 'Lockup
LOW 3 'Sol2
LOW 2 'Sol1
GOTO ChkDriveBtn

SetGear6:
Gear = 5
GOTO ChkDriveBtn
 
Terrific, thanks!

So I'm correct in assuming that Port #3 is serving double duty? Engaging SOL2 and providing the high/low for the BCD IO? If so, that's pretty cool :). I'm going to look into building this into my design, thanks a million :).

HA! I was confused for a second there, and maybe I still am...
The BCD IO/decoder uses 4 inputs but you've only got three listed. The fourth bit is always low so it doesn't need an input, correct? Which pin of the decoder do I 'leave out' of the wiring? I'm still learning this stuff, sorry to be a bother :).
 
Last edited:
Yep, port 3 is used both for the solenoid and the BCD driver.
You use only 3 inputs, as noted in the comment in the code above: "LED display is driven by ports #7, #3 and #6 (in this order)". The fourth (highest) one you just ground, thee pins are enough for the required number of gears.

#7 is MSB, #6 is LSB, #3 is the middle bit.
 
I had to bump up the timeline due to my current shift box burning out the downshift transistor. I finished up the harness and new enclosure, and all is good. The PCB-based design will be 100% more durable too. I got the rest of the stuff I need to build the gear display, as posted by tomasss above. I'll build that soon and give it a try :).
 
Ok, if anyone is reading this, I have a code question. I'd like to add a function that disengages the lockup solenoid when the brake is pushed. I've attempted a code change to do this, but TBH I have no real idea what I'm doing, lol. Does any of this look ok? According to the Stamp Editor, the syntax is correct, and it doesn't give me any errors when I try to upload it...but I know if what I've added doesn't work, and doesn't upset the existing code, it'll say everything is fine. I'm interested in seeing whether or not I've actually added something functional or not...or if it's even possible to do what I'd like.

Code:
' {$STAMP BS1}
' {$PBASIC 1.0}

'The Poi's (Chris Wiita's) AW30-40 paddle shifter code
'v1.1

'I/Os:
' 0 is Upshift button input - set to input with BUTTON function
' 1 is Downshift button input - set to input with BUTTON function

' 2 is Solenoid 1 - engages when 1
' 3 is Solenoid 2 - engages when 1
' 4 is Lockup Solenoid - engages when 1

' 5 is Ground for "drive" funcitons of PNP switch. When grounded, flappy
' paddles work. Whenever it loses ground, switches back to 1st
' 6 is Ground for Brake Switch. When Grounded, it disengages lockup when in top gear.

'Shift Table:
' Gear Sol1 Sol2 TCC
' 1 1 0 0
' 2 1 1 0
' 3 0 1 0
' 4 0 0 0
' 4+TCC 0 0 1

' "1st Gear" for P N and R.


SYMBOL Gear = B0 'Current gear

SYMBOL UpBtnWrk = B2
SYMBOL DwnBtnWrk = B3
SYMBOL DriveBtnWrk = B4
SYMBOL BrakeSwtch = B5

UpBtnWrk = 0
DwnBtnWrk = 0
DriveBtnWrk = 0
BrakeSwtch = 0

'Start in first gear
Gear = 1
GOTO SetGear

'Start loop by checking that PNP is in drive mode, if its grounded, start loop,
'otherwise, set gear to 1, keep checking till drive
ChkDriveBtn:
BUTTON 5,0,255,0,DriveBtnWrk,1,Go
PAUSE 100
BUTTON 5,0,255,0,DriveBtnWrk,1,Go
Gear = 1
GOTO SetGear

'Clear button work so it keeps checking if its down, chk upbtn
Go:
DriveBtnWrk = 0
GOTO ChkUpBtn

'Check up button, if grounded, upshift, else, check down button
ChkUpBtn:
BUTTON 0,0,255,0,UpBtnWrk,1,UpShift
GOTO ChkDwnBtn

UpShift:
Gear = Gear + 1
GOTO SetGear

'Check down button, if grounded, downshift, else, check drive button
ChkDwnBtn:
BUTTON 1,0,255,0,DwnBtnWrk,1,DownShift
GOTO ChkBrkSw

DownShift:
Gear = Gear - 1
GOTO SetGear

'Check brake switch, if grounded, turn off lockup solenoid
ChkBrkSw:
BUTTON 6,0,255,0,BrakeSwtch,1,LockupOFF
PAUSE 100
BUTTON 6,0,255,0,BrakeSwtch,1,LockupOFF

LockupOFF:
LOW 4 'Lockup
GOTO ChkDriveBtn

SetGear:
BRANCH Gear, (SetGear0,SetGear1,SetGear2,SetGear3,SetGear4,SetGear5,SetGear6)

SetGear0:
Gear = 1
GOTO ChkDriveBtn

SetGear1:
LOW 4 'Lockup
HIGH 2 'Sol1
LOW 3 'Sol2
GOTO ChkDriveBtn

SetGear2:
LOW 4 'Lockup
HIGH 2 'Sol1
HIGH 3 'Sol2
GOTO ChkDriveBtn

SetGear3:
LOW 4 'Lockup
LOW 2 'Sol1
HIGH 3 'Sol2
GOTO ChkDriveBtn

SetGear4:
LOW 4 'Lockup
LOW 2 'Sol1
LOW 3 'Sol2
GOTO ChkDriveBtn

SetGear5:
HIGH 4 'Lockup
LOW 2 'Sol1
LOW 3 'Sol2
GOTO ChkDriveBtn

SetGear6:
Gear = 5
GOTO ChkDriveBtn
Should I keep my nose out of this sort of thing...or could it work?
 
Last edited:
Ugh, ok, don't anyone use that garbage I posted. It doesn't work. I'm clearly missing something so I'll be spending the next few days on the couch trying to figure it out.

...or I'm going back to the OG code and forget I ever tried, lol.
 
Got another order of electronerd bits so I can build another box. I'll keep this one as a backup while I abuse-test the current one. I'm still bummed I couldn't get the lockup/off code to work, so I might keep looking in to it.
 
So I've been a bit...muh...about the way my car drives, and was wembling over pulling the trigger on a CD0009 swap. Then I found something that I should have read before, but ignored:

LOCK-UP SPEED SPECIFICATIONS (1) (2)

Application MPH

AW30-40

Economy Mode Lock-Up ON

2nd Gear 25

3rd Gear 65

4th Gear 90

Lock-Up OFF

2nd Gear 19

3rd Gear 59

4th Gear 82

Sport Mode Lock-Up ON

2nd Gear 50

3rd Gear 76

4th Gear 127

Lock-Up OFF

2nd Gear 40

3rd Gear 71

4th Gear 122

(1)– With shift lever in “D” position and throttle valve open 60 percent.

(2)– Lock-up in 2nd gear occurs when transmission oil temperature exceeds 257 F (125 C) on AW30-40 transmission or 239 F (115 C) on AW30-43 transmission. Lock-up in 3rd gear occurs when transmission oil temperature exceeds 140 F (60 C). Lock-up in 4th gear occurs when transmission oil temperature exceeds 86 F (30 C).

I've been running the OG POI-shift code, which only enables lockup in 4th/OD. Apparently, the stock TCU enables the lockup in 2/3/4, which would make this car a whole lot more fun to drive at low RPMs. I despise the 2700 stall, which is ridiculously high for an NA car, since it makes the car respond to throttle inputs like it's sinking in marshmallow. Having lockup in other gears would definitely help that :).

Looks like I've got some thinking to do. Do I enable the stock O/D switch on the shifter as a lockup on/off with a latching relay...or is there a way of doing it via the code? Obviously I'd have to add in an ATF thermostat to keep the temps at a reasonable level, because currently, I NEVER see anything higher than 75*C.
 
So this works. It adds lockup to third, which I can count on still being safe due to my car's low ATF temps. I've essentially added a gear between 3 and 4, so the code cycles through it as it did in the original version. I'm going to take the car to work tomorrow and try it out on the drive.

' {$STAMP BS1}
' {$PBASIC 1.0}

'The Poi's (Chris Wiita's) AW30-40 paddle shifter code
'v1.1

'I/Os:
' 0 is Upshift button input - set to input with BUTTON function
' 1 is Downshift button input - set to input with BUTTON function

' 2 is Solenoid 1 - engages when 1
' 3 is Solenoid 2 - engages when 1
' 4 is Lockup Solenoid - engages when 1

' 5 is Ground for "drive" funcitons of PNP switch. When grounded, flappy
' paddles work. Whenever it loses ground, switches back to 1st

'Shift Table:
' Gear Sol1 Sol2 TCC
' 1 1 0 0
' 2 1 1 0
' 3 0 1 0
' 3+TCC 0 1 1
' 4 0 0 0
' 4+TCC 0 0 1

' "1st Gear" for P N and R.


SYMBOL Gear = B0 'Current gear

SYMBOL UpBtnWrk = B2
SYMBOL DwnBtnWrk = B3
SYMBOL DriveBtnWrk= B4

UpBtnWrk = 0
DwnBtnWrk = 0
DriveBtnWrk = 0

'Start in first gear
Gear = 1
GOTO SetGear

'Start loop by checking that PNP is in drive mode, if its grounded, start loop,
'otherwise, set gear to 1, keep checking till drive
ChkDriveBtn:
BUTTON 5,0,255,0,DriveBtnWrk,1,Go
PAUSE 100
BUTTON 5,0,255,0,DriveBtnWrk,1,Go
Gear = 1
GOTO SetGear

'Clear button work so it keeps checking if its down, chk upbtn
Go:
DriveBtnWrk = 0
GOTO ChkUpBtn

'Check up button, if grounded, upshift, else, check down button
ChkUpBtn:
BUTTON 0,0,255,0,UpBtnWrk,1,UpShift
GOTO ChkDwnBtn

UpShift:
Gear = Gear + 1
GOTO SetGear

'Check down button, if grounded, downshift, else, check drive button
ChkDwnBtn:
BUTTON 1,0,255,0,DwnBtnWrk,1,DownShift
GOTO ChkDriveBtn

DownShift:
Gear = Gear - 1
GOTO SetGear


SetGear:
BRANCH Gear, (SetGear0,SetGear1,SetGear2,SetGear3,SetGear4,SetGear5,SetGear6,SetGear7)

SetGear0:
Gear = 1
GOTO ChkDriveBtn

SetGear1:
LOW 4 'Lockup
HIGH 2 'Sol1
LOW 3 'Sol2
GOTO ChkDriveBtn

SetGear2:
LOW 4 'Lockup
HIGH 2 'Sol1
HIGH 3 'Sol2
GOTO ChkDriveBtn

SetGear3:
LOW 4 'Lockup
LOW 2 'Sol1
HIGH 3 'Sol2
GOTO ChkDriveBtn

SetGear4:
HIGH 4 'Lockup
LOW 2 'Sol1
HIGH 3 'Sol2
GOTO ChkDriveBtn

SetGear5:
LOW 4 'Lockup
LOW 2 'Sol1
LOW 3 'Sol2
GOTO ChkDriveBtn

SetGear6:
HIGH 4 'Lockup
LOW 2 'Sol1
LOW 3 'Sol2
GOTO ChkDriveBtn

SetGear7:
Gear = 6
GOTO ChkDriveBtn
 
Added note: I don't plan on using this code in any fashion other than cruise, because the jury still seems to be out on how much abuse the lockup clutch can take. I may even separate the lockup solenoid from the code and run it on a separate switch, not sure yet.
 
Yep, it works great....BUT...in order to cruise to a stop I usually click out of top gear (lockup) into 4th, and brake. Then I downclick a couple times to get into 1st, and go. With the 3rd-lockup addition, suddenly I have lockup engaging at idle, which is bad and could stall the engine unless you click fast. Doing so lurches the engine pretty firmly, which is pretty awkward. I reverted back to the original code, until a better idea happens.

It WAS pretty fun to have a locked 3rd while merging onto the highway though. A high stall makes for a lot of noise and little forward motion, unless I downshift...which makes even MORE noise, lol.
 
Back
Top