5l40e

A forum for discussing applications and implementations of the MegaShift transmission controller code for the GPIO from B&G. This can control up to 8-speeds and 6 shift solenoids (plus a 16x9 table for controlling a PWM line pressure valve). It has manual and fully automatic modes (16x9 load x speed table), with under and over rev-limit protection, and full data logging of all inputs and outputs (among many other abilities). A TransStim to test your completed board is also available.
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: 5l40e

Post by Bernard Fife »

gurov,

Thanks for the log and msq, I will have a look.

It looks like the pressure PWM% was being set correctly to the user value in neutral, but that value wasn't being assigned to the outpc variable to be reported to TunerStudio. I have fixed this for the next release (2.00C).

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
gurov
Posts: 164
Joined: Mon Jun 01, 2009 1:01 pm

Re: 5l40e

Post by gurov »

also, i was thinking.

what if there was a setting to override the shift table for the "sports" setting.

couple of ways this could go:

load above X kpa AND TCC engaged, force shift at Y rpm (say 6500 rpm)

this could be an option for manual mode, i.e. force shift above X rpm, this way if there's a mistake downshift and rpm rises above redline, it would force an upshift.

so for racing, move into manual mode, downshift, gas down, and hang on as it shifts once it hits certain rpm.

yes this could be done with the table, but changing that is going to be a pain, and this would be a fairly simple way of adding further protection to manual mode while adding a way to separate the "drive normal" and "race balls out" modes.
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: 5l40e

Post by Bernard Fife »

gurov,

Funny things is that I thought the code already worked similar to what you describe. But it only 'sort of' does. What the code currently does is if the rev limit is exceeded while running (i.e. not necessarily as a direct result of a shift), or the under-rev limit is exceeded (engine rpm falls below the user setting), then a switch to auto mode is made and the controller shifts the trans to the gear specified in the gear table (which hopefully is appropriate). That works, but coming out of manual mode could be annoying.

So what I have done is change the upcoming code (2.00C) so that if the under or over-rev limits are exceeded, then an down- or up-shift is requested (if rpm checking is enabled). However the mode stays the same, and the shift buttons are not affected (that is, you don't have to press the downshift button twice for an additional if a downshift has just happened because of the rev limits).

The current code also prevents shifts that would result in under/over-revs, and that has been retained. Users can disable this behavior by disabling 'rpm checking'.

Also in the new code are TCC enhancement that allow you to specify a gear and rpm at or above which the TCC will always lock. The rpm should be at least a few hundred rpm above the stall speed, and the gear should be at least 2nd. This will allow more 'sporty' response, and also allow higher top speeds.

I have also added is_rpm to the code/INI, as well as reporting the TCC PWM (so TCC will be 0 in the datalog if the TCC is off, and the actual PWM% if the TCC is applied). Finally the PWM% in neutral is reported correctly in this code.

I hope to release this tomorrow, it will be in the code updates thread.

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
gurov
Posts: 164
Joined: Mon Jun 01, 2009 1:01 pm

Re: 5l40e

Post by gurov »

Lance wrote:gurov,

Funny things is that I thought the code already worked similar to what you describe. But it only 'sort of' does. What the code currently does is if the rev limit is exceeded while running (i.e. not necessarily as a direct result of a shift), or the under-rev limit is exceeded (engine rpm falls below the user setting), then a switch to auto mode is made and the controller shifts the trans to the gear specified in the gear table (which hopefully is appropriate). That works, but coming out of manual mode could be annoying.

So what I have done is change the upcoming code (2.00C) so that if the under or over-rev limits are exceeded, then an down- or up-shift is requested (if rpm checking is enabled). However the mode stays the same, and the shift buttons are not affected (that is, you don't have to press the downshift button twice for an additional if a downshift has just happened because of the rev limits).

The current code also prevents shifts that would result in under/over-revs, and that has been retained. Users can disable this behavior by disabling 'rpm checking'.

Also in the new code are TCC enhancement that allow you to specify a gear and rpm at or above which the TCC will always lock. The rpm should be at least a few hundred rpm above the stall speed, and the gear should be at least 2nd. This will allow more 'sporty' response, and also allow higher top speeds.

I have also added is_rpm to the code/INI, as well as reporting the TCC PWM (so TCC will be 0 in the datalog if the TCC is off, and the actual PWM% if the TCC is applied). Finally the PWM% in neutral is reported correctly in this code.

I hope to release this tomorrow, it will be in the code updates thread.

Lance.
okay, that sounds good with the over rev/under rev requesting shift without changing the mode.

my TCC can now hold 7 psi from a 2.5 liter turbo from 2000 rpm up, the actual stall speed is still unknown to me, through unlocked torque converter, i'm seeing it jump to 3.5k+ rpm under boost.

another thing to take a look at is MS3 can fetch blocks of 4 ADC variables for generic can logging and then use those as generic sensors, but it appears they all have to be in a row. adc inputs into megashift are: trans temp, line pressure, ?, ?. but if they can be rearranged to be all in a row, it would make logging to MS3 much easier.

so:

trans temp
line pressure
tcc locked
brakes applied

could be one block

i'll have to find out from the ms3 devs what size of variable they're expecting to receive:

Image
gurov
Posts: 164
Joined: Mon Jun 01, 2009 1:01 pm

Re: 5l40e

Post by gurov »

image fail in the previous post, here's the proper one:

Image
gurov
Posts: 164
Joined: Mon Jun 01, 2009 1:01 pm

Re: 5l40e

Post by gurov »

jsmcortina wrote:The CANADCs read four big endian unsigned int values and expects the values to be in the range 0-1023. i.e. 8 bytes in a row.

So if you need to pick and choose spread variables you might need to pull numerous CANADC blocks.

James
that's what the requirements are, so 8 bytes in a row per block.
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: 5l40e

Post by Bernard Fife »

gurov,

I have put the variables in a row. They are:

Code: Select all

  clt               = scalar, S16,   19,     "deg",      0.100, 0.0
  linepressure      = scalar, U16,   21,     "psi",      1.000, 0.0
  lock_TCC          = scalar, U08,   23,        "",      1.000, 0.0
  brake             = scalar, U08,   24,        "",      1.000, 0.0
Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
gurov
Posts: 164
Joined: Mon Jun 01, 2009 1:01 pm

Re: 5l40e

Post by gurov »

heh, i tested out the auto upshift... the trans takes a bit to shift, and while it's doing that, it's above the set limit, which makes it shift into 5th, basically, cause it sits there too long.

perhaps some sort of delay before it acknowledges shift happened (rpm dropping) ? if it falls outside of that range, shift into top gear to basically indicate some sort of failure ?
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: 5l40e

Post by Bernard Fife »

gurov,

Yes, I see this on the bench too. I will put in a flag so that it completes a shift before checking again to see if the engine is over/under-revving.

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: 5l40e

Post by Bernard Fife »

gurov,

Attached is code (2.00Cx, same INI) that doesn't check for another over/under-rev shift until the previous one is complete. It seems to work, but I can't test this very much on my bench (because the engine rpm input isn't tied to the gear the way it would be in a vehicle). Let me know if it is better, otherwise I will do more work.
Monitor_200Cx.abs.s19
Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
Post Reply