Results 1 to 12 of 12

Thread: Getting to know your ZF TCM. Sticky please for updates.

  1. #1

    Getting to know your ZF TCM. Sticky please for updates.

    Quote Originally Posted by Steven@HPTuners View Post
    The ZF8 is used in many applications and when we originally added it last year, we tried to make it a little more Dodge specific, but quickly realized this was not an easy effort, especially as we add more manufacturers.
    The ZF8 is better thought of as its own controller by itself and not a "Dodge" controller, because that's what it really is.

    4WD Low are used only during 4WD Low applications, but the Hellcat does not ever use these. The reason you still see the tables is the operating system used by the Hellcat is not unique to the Hellcat, other applications that do have 4WD Low (the trucks) also have the same operating system. Because we define things by operating system, you'll see them in all applications, including unused ones.

    Normal, Perf, Sport, Max: these are shift strategies. Which one is used by which mode is actually quite a cluster and we don't have an easy way to show which is which, so its being added as a loggable parameter in Beta, under "Clutch Shift Type". For example, on a Hellcat, Normal trans mode in Drive, uses "Normal". But put it into Manual Mode with Normal Trans still selected, and now it uses Perf tables.

    It's also considered a "use the highest below this". For example, if your current type is Sport, but the table set only has Normal and Perf, it uses Perf. The idea being that Normal -> Perf -> Sport -> Max have increasing levels of shift speed and feedback.


    As to the "Normal, Normal Perf, Sport, Sport Perf, Track" shift schedules, I've started to relabel some of this to better correspond to whats happening. Basically depending on your actual selected trans mode, how aggressive you're currently driving, and your perceived hill grade, the shift tables are designed to get more or less aggressive.

    To explain this, I'll use the ZF9 as an example as I believe we will move everything to be more like it to better indicate this.

    Attachment 81473
    First, we decide our Aggression level. To do this, we need to know our current Shift Situation (which is basically your trans shift mode. In the Hellcat, Normal, Sport, Track, Valet, etc all have their own "situation"). This is loggable.

    The situation automatically puts you into a certain range of "Driver Type". 0 being the least aggressive driver, up to a max of 14 being the most aggressive driver.
    As well, there's a constant "counter" running thats basically an indication of the current aggression of your actions. Some situations may have a range, for example, 20 to 200 for your aggression counter. As you move up the counter, you start moving into higher driver types.

    Finally, your driver type is mapped into an "Aggression". For example, we have lower type = 0, upper type = 4, lower aggression = 0, upper aggression = 1, this means that driver type 0 is aggression 0, driver type 4 is aggression 1. In between driver types are blended between the various aggressions.

    For Dodge, we simply named the aggression modes. Normal = 0, Normal Perf = 1, Sport = 2, Sport Perf = 3, Track = 4. However, the Shift Pattern Aggression Mapping for the Hellcat actually has the highest aggression being 3, Sport Perf. I.e. the high part of the table for driver types 9-14 actually blends from 4 to 3 aggression.


    Now once you know your aggression, you'll notice there are 5 tables for that given aggression. These correspond to your accel factor / hill grade essentially. On the ZF9, its labelled by the Shift ID youd see if you logged Shift ID, on the ZF8 we still have it labeled "Normal 0, Normal 1, Normal 2, etc."
    Attachment 81474

    But, by using the "Accel Factor" tables, you can see what your final factor will be. Unfortunately this isnt straight forward to describe as the inputs are based on measured G-Forces, estimated road grade, etc. But the gist is Accel Factor 0 is typically when you're going downhill, Accel Factor 1 is normal, 2,3,4 are proceeding amounts of aggression (heavy Gs) or uphill orientation. You can log Accel Factor directly as well to help actually know what you're currently in!


    These are the standard, aggression based maps. As well, the ZF8/9 have 75 MORE maps for various other conditions, though usually not all of them are used. I've placed these in a non-aggression section, and it corresponds to stuff like Cruise Control, Rock Crawl modes, and so on. Which ID is used by the logic depends on what you're doing (Cruise Control), shift situation, accel factor, etc. It all depends on what that type is used for.

    Attachment 81475

    For example, if you have cruise control active with accel factor 1, this particular setup will use Shift Pattern/ID 35 no matter what shift situation you're in.


    BUT WAIT, THERE'S MORE.
    Even once you know this final shift pattern ID, it can be remapped into another ID entirely by one final table. On the ZF8 we tried to show this with a bunch of comboboxes, but ZF9 and moving forward we'll just show the raw table.
    Attachment 81476

    For our example, Cruise Control, Accel Factor 1, we desired pattern 35. However, this final step maps Pattern 35 to Pattern 67. Pattern 35 is never even used!



    I wish I could tell you this is easy or straightforward, but its not. It's a lot to swallow and understand. Transmissions are getting easily as complex as engine controllers, and the ZF especially so because its designed to be used in so many different applications by different OEMs. Because of this insane amount of configurability for the OEMs, the actual mapping itself is equally as configurable.

    Hopefully if you read through this a few times and try to follow along with your calibration, you can start to understand it a little. If you have more questions, just ask, I'll try to answer them as I can!

  2. #2
    reserve

    Transmission Slide 01.png
    "Adaptive Learning"

    [TCM] 30004 Shift Pattern Situation Mapping
    All this does is based on the mode of the car and they all have a mode even valet and Park/Reverse/Neutral. It sets the Driver Count Limits and the Driver Type limits. Floor and ceiling for each setting.

    [TCM] 30003 Driver Type Mapping
    (I think this map is off as driver type should be individual numbers IE 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14 not paired.)

    The more lead footed you are with the gas pedal the more it adds to the count and the less lead footed you are the more it takes away from the count. Based on that count number it sets a "Driver Type" number 0-14.

    [TCM] 30002 Shift Pattern Aggression Mapping
    This puts both of the upper tables to an aggression shift mapping group.

    *By the way this is laid out it looks like its laid out odd or it could of had alot more variation to it. Or you can force higher driver types to lower driver types and vise versa.*

    So I think I got it figured out in my head now. The Lower type and the upper type define bottom of the driver type range and the upper driver type range. Its so it knows what minimum driver type counter to tie to the lower aggression mapping (set) and what upper driver type counter to tie to the upper aggression mapping (set). Dodge limits this a lot but you could have 0-1 through 0-14 all have lower type set at 0 as it is just the starting counter.

    Example (Lower Type and Upper Type Settings) if in the mapping Lower Type for 10-11 through 13-14 was set to zero the counter for blending the lower and upper aggression table would start at 0 but because the driver type for shift situation 3 and shift situation 9 have a type minimum of 10 the count would already be blended with 401/600 percent. 66.83 percent of the upper aggression map set (3) and 34.17 percent of the lower aggression map set (4).
    You could also change in 0-1 through 4-5 the upper type from 4 to 14 and it would bias the blending to the lower aggression maping set (0) the same way. 200 would be the max count of 600 if could reach as Shift situation 0 and 2 are limited to a count max of 200. So 200/600 is 33.333 percent is the max you will use of the upper aggression map set (1).

    Example (with stock settings)
    Car is in Shift Situation 3 (Track mode) and you have been aggressive because hellcat. The type counter is at 525. Your driver type is 13. You go to Shift Pattern Aggression Mapping look at 13 get the lower and upper type driver number to look up the minimum count and max count in Shift pattern Driver Type Mapping. It is 401 and 600. Take upper minus lower or 600-401 which equals 199 or 199 steps. You take 525 minus the lower 401 and get 124. You take 124 and divide by 199 to get 62.31 percent of the upper map. Say your heavily braking and your accel is -120 you would take 62.31 percent of the first map in aggression group 3 and 37.69 percent of the first map in aggression group 4 and that would be your output speed trigger point blended number.


    Accel factor tables (used to target single maps out in a set based on forces measured on accelerometer)

    [TCM] 46026 Normal Lookup Type
    [TCM] 46027 Cruise Lookup Type
    [TCM] 46189 Belt Start Generator Lookup Type
    These are the base accel factory type tables for the shift situation. I say base as you can have special cases when this is overridden like the [TCM] 46033 Accel Factor Eco. Eco mode is also shift situation 2.

    Transmission Slide 02.png
    "Manual Mode"

    [TCM] 30001 Shift Pattern Manual Control Mapping
    This is used to direct each shift situation "drive mode" to a shift map for manual mode. M-Gate is when the shift lever is in manual and Triptronic is when the shift lever is in auto and the paddles engage manual mode.

    Both have Electronic Stability triggers associated with each. Dodge set it so its only triggered by two but you could opt to tune it for all 4 triggers.

    Shift situation 7 is valet mode and in valet mode you can not use paddles but you can put the shift into manual mode. The triptronic side even though its set for 27 will never trigger.

    Shift situation mapping from older betas. 0=normal 1=PRN 2= ECO 3=Track 4=Sport 7=valet Unknown 5=Sand/Mud Might not be for hellcats but it is mapped in [TCM] 30004 9=Unknown It is mapped in [TCM] 30004 6,8,10-13 are not mapped in [TCM] 30004 so my best uneducated guess is they are not used in this example with a hellcat.

    *
    *Manual mode has some oss limit maps I'll have to add*
    *

    Transmission Slide 03.png
    "Acceleration Factor"

    All of these layouts just point to certain maps in groups and they are in order. 0 points to the first and 1 points to the next and 2 points to the one after that and so on.

    Example
    [TCM] 46033 Accel Factor Eco
    This is the accel map for eco. Well you might say it has 5 map points and you can only see 4 in the grayed out pull down menu labeled Eco. It really has another map 46. The logical way to come to that conclusion is its mapped 5 times. Then you see if 46 is tied to any other group set its not. Open it up and see if it closely matches the pattern of the other maps in the group and it does. Then you check to see if its mapped in the TCM 3000 Shift Pattern Mapping tab.

    This is reserved for Shift scheduling additions.
    Last edited by JoshCP527; 05-14-2022 at 08:41 AM.

  3. #3
    Quote Originally Posted by Steven@HPTuners View Post
    Logging Clutch Shift Type should be reliable, assuming we've mapped it correctly. It pulls from the internal value that is used to decide which set of tables the TCM actually looks at.

    So as you mentioned, its releasing a clutch and applying a clutch.
    This is true of every shift the transmission does.

    Every gear change the ZF8 commands is one of these "clutch" to "clutch" shifts. The ZF8 has 5 of these, and has 3 active at a given time for the gears 1-8 and reverse. Park/Neutral has 2 active, so shifting from Neutral to Reverse/Drive has a single engagement.
    So it releases one clutch and applies another to shift.


    The releasing clutch is called the offgoing clutch, and the engaging one the oncoming clutch.
    Depending on whether its an upshift or downshift, under power or coasting, the actual "stages" of shift are different, but those are mostly unimportant, and in the case of "under power" or "coasting" is mapped in tables as positive or negative torque.

    First, understand that a clutch pack can hold a certain amount of torque depending on how much pressure its held together with. This pressure is transmitted by various means, but its usually a small chamber (a clutch chamber/volume) that has a piston that pushes the clutch packs together, and a spring that returns it back to open (so that with no pressure the chamber empties). By default, when you're driving down the road, the pressure doing this is the "line pressure". Higher pressure has higher torque capacity, but if you look at the line pressure table, you'll see they modify it as torque moves. Higher pressure requires the oil pump in the transmission to work harder, and causes more drag, so its controlled to have enough torque capacity but not excessively so, in order to keep efficiency high.

    Now when a shift happens, we want to remove the torque capacity from one clutch, and transfer it to another. To reduce drag and improve efficiency again, we typically have clutches sitting empty to help minimize any movement they have when not active. So we have to fill our oncoming clutch, and empty our offgoing clutch, but do so in an organized manner so that we don't break anything inside the transmission and hold as much torque as we can during the shift, and go as quickly as we can.

    So I'll divide the shift into a few sections:
    Fill->Torque Transfer->Inertial Phase->Maintenance

    Fill
    During the fill phase, we fill the oncoming clutch with oil again, up until the point it starts actually building pressure in the chamber. Essentially the clutch solenoid valve targets a set "pressure" (really its just an opening of the valve, look at the characteristic curves for the solenoid)
    There are actually three sub-phases: A prefill, where the ATF is pumped into the chamber just until it starts to hit resistance from the piston/spring, a fast fill to move the piston to move it so the clutches are just nearly touching, and a stable fill (we call just fill) that moves the clutch packs until they just "kiss" and have 0 torque capacity.

    Tuning this stage is complex, and if you want to learn more, I'd suggest this paper: Dynamic Analysis and Control of the Clutch Filling Process in Clutch-to-Clutch Transmissions
    There's a lot of math in here, but the ideas are also expressed in somewhat plain English if you'd like to learn more.
    The time this takes we want to be as quick as possible, as its responsible for a big amount of delay we feel in a shift.

    Torque Transfer
    During this stage, we transfer the torque capacity from the offgoing clutch to the oncoming clutch. We do this using a targeted oncoming rate and pressure, and a targeted offgoing rate and pressure. Now, when calibrating we put in the oncoming target pressure and offgoing target pressure, as well as ramps.
    These are however only guidelines, the transmission internally is trying to hit a targeted slip while doing this transfer (for the ZF8 I have not identified what this is or how its controlled, but I know it happens). So the transmission itself attempts to adapt these pressures while shifting to hit these goals.
    At the finish of this stage, our oncoming clutch is now holding all the internal torque of the transmission, and the offgoing is holding none.

    Really the only tuning parameter we have for this step is the Oncoming and Offgoing rates. And we only have the offgoing control during downshifts, during an upshift, we don't have control on the ZF, as its internally managing this to manage the RPM drop and internal slip.
    I should mention, the oncoming clutch is still "slipping" at the end of this stage, but its now transferring full torque. This slipping is required as the output of the clutch isn't necessarily at the same speed as the input. Reducing this slip to zero is the goal of our NEXT phase.

    Inertial/Slip Phase
    This is the stage we normally think of as the "shift". Its when the engine speed starts to change (and in fact the speeds of all the stuff inside the transmission as well!) and we start to feel like we're shifting. During this phase, we're basically waiting for the oncoming clutches slip to reduce to zero. We do this by controlling its pressure.
    Now that torque has been transferred internally, everything has to "catch up". These internal torques now act on new planetary gear sets, the input shaft, and turbine. During this step is when RPM actually drops or rises as the turbine drags the engine down or up. If you were wondering why our oncoming pressure is adjustable by gear, its because these internal torques change per gear.

    So, we have a target slip time. This is how long we expect this ratio change to take up. If we want to speed up our perceived shift, we target a shorter time here. We likewise will need MORE oncoming pressure to deal with these higher internal torques. Likewise, this is where torque management comes into play in a very important regard. During an upshift, any torque the engine is producing has to be handled by the transmission in addition to what its already handling as internal components are speeding up or slowing down. By having increased engine torque, we have increased pressure desired, and we have increased the amount of energy that the oncoming clutch bears. To make this job easier, we have upshift torque management, to reduce the strain on the transmission, and in this case it will actually SPEED UP the process of the shift as we'll have less slip and energy to control. So we can actually complete our shift faster with the correct amount of torque management. Too little and we're harming things and slowing it down, too much and we're slowing the car down when it comes out of the shift unnecessarily.

    On a downshift, we reverse this process a little, we actually want torque from the engine to help us speed up the shift (raise the engine RPM and rev match!). Too little and we're again just wasting time, and too much and we're overreving and causing excess wear as the clutch has to bring it back down.

    But typically, faster slip times and more engine torque mean we need more clutch torque capacity, and so you see as we target more torque or faster shifts, our pressures increase.

    As well, the offgoing clutch really shouldn't be apart of this phase. Once the oncoming clutch is handling torque, if the offgoing one was as well, we'd start to have parts of the transmission fight each other. This is called "tie-up" and slows our shift down (and puts a lot of strain on the gears and clutches!). Hopefully we picked good values while ramping it off previously!

    Now if we don't apply enough oncoming pressure to handle everything, we might actually have the engine kind of overshoot its target RPM on shifts. We call this "flare" on a downshift (the engine overspeeds the target input speed before its brought down) and "slip" on an upshift (it feels like the engine kind of slowwwwly slides into gear). So, our goal here is to set pressures knowing our targeted shift time. Ultimately, we're limited by how much pressure we can generate, and the torque capacity of our clutches. The faster we want this phase to happen, the more internal torque we need to do so, and the higher the pressure and more slip we potentially face. OEMs balance this with comfort in mind as well. If this phase isn't smooth, the user feels it. A fast shift that's a little sloppy might have a burst of torque or a drop in it on the output shaft, and you feel this (the shift "chirps the tires" or "bogs down").

    Most of your time tuning a transmission, your goal is to speed up shifts or change the quality of them, so you play a careful balancing act between shortening the slip time and increasing the pressure.

    As well, internally there is adaption happening where the transmission is trying to adjust the oncoming pressure to hit the target slip time. If it has to adjust too far, you actually will get DTCs indicating clutch failures (and it'll even know which clutches are possibly failing because of the shifts it notices the problem on!

    My best advice for tuning this is shortening the shift or reducing the torque management means more pressure is needed to handle the higher internal torques. If you allow flare or bogging to happen, all that energy is being dumped into the clutches wearing them out prematurely. There is an eventual limit where you simply can't go any faster before it happens that you will hit, and that's a limitation of the clutch materials and pressures you can apply. A beefier trans that can better handle those stresses is necessary, but then you may also have to retune all the low power shifts so they still feel soft and gentle Keep in mind raising the target pressure also extends the torque transfer phase, as you need more time to get the pressure and torque capacity to that level!

    Maintenance
    This phase is boring. Oncoming pressure is set to line pressure to make sure the clutch doesn't slip. During this step, its just making sure the oncoming clutch pressure allows zero slip. The offgoing clutch has no pressure applied, and is slowly draining away (there's an empty time that is mapped to indicate how long this takes).
    Tuning this means tuning the line pressure tables.


    I know thats a lot to digest, and if you want to learn more, I suggest taking a read of Virtual Clutch Controller for Clutch-to-Clutch Shifts in Planetary-Type Automatic Transmission.
    While reverse engineering the ZF8, I found this to be very helpful in trying to figure out how they were managing the shifts and plotting them out.

    Also as a quick aside to what "phase" you should target while tuning:
    If you want the "delay" from when a shift is commanded to when you feel it "start", you need to tune the fill and torque transfer (ramp) phases. You don't feel anything happen until this completes and inertial transfer starts! An aside here, a lot of people perceive lots of transmissions to have long delays from the triggering a paddle to the "shift" happening. Most of the time, its not a hardcoded delay, but is actually these two phases executing. Part of what makes the ZF8 a great transmission is that it can accomplish both these phases very quickly, making it feel like when you press the paddle, it shifts right away!

    If you want the "delay" as the ratio is changing to be different, you need to tune the inertial/slip phase. Keep in mind, the faster you want to do this, the more torque you see internally, the more energy the clutch sees, and the faster it can wear! This is balanced by OEMs to be comfortable and provide good service life. We may have different goals in mind in the aftermarket (or in fact beefed up the clutch packs so they can handle more energy!).

    Hopefully that's as thorough as you need, or more than that. If you want to learn more, check out the links I provided.

    Good luck!
    Steven can chime in but dont map outside of the solenoids limits.
    Last edited by JoshCP527; 09-23-2020 at 07:51 PM.

  4. #4
    Lockup
    Quote Originally Posted by Steven@HPTuners View Post
    These descriptions should be updated. Its engine state.
    Half = MDS active, half engine mode
    Full = MDS inactive, full engine
    Engine Trans Trq Management
    Quote Originally Posted by Steven@HPTuners View Post
    This is something I'll get to updating here when I get some free time. Some things in the section have poor labels and descriptions. When I get a chance I'll clean them up.

    Dyno flag was a misinterpretation of what was actually happening.
    The true input is when drive torque control requests from the transmission are being received or not.

    "A" is when these requests are received.
    "B" is when these requests aren't received.

    A is going to happen when the transmission requests a torque regulation, i.e. reduction for shift.
    B will happen if the transmission does not make a direct torque request (but the ECU calculates a need for a torque reduction regardless)
    Last edited by JoshCP527; 10-06-2020 at 12:28 AM.

  5. #5
    Tuner
    Join Date
    Aug 2018
    Location
    SK, Canada
    Posts
    54
    I see you mentioning the ZF9 in your post have you actually pulled a ZF9 TCM read and been able to view any values. I've got multiple reads on my 2016 Cherokee with the ZF9 however none of the HP Tuner software supports it yet. I've been waiting for a definition file from HP tuners for a while now. Hoping something comes soon.

  6. #6
    Tuner in Training
    Join Date
    Oct 2018
    Posts
    15
    With the latest beta it looks similar but obviously different with the new Ram EcoDiesel shifting. Do you have any literature documentation on this yet?

  7. #7
    Senior Tuner
    Join Date
    Jun 2004
    Location
    Baltimore, Md
    Posts
    1,334
    Can you post the actual formula/flow chart from front to back and what we have to log in scanner so at any given point we can look at these values and then see exactly where its choosing its time to shift at?

    Need to log a "Type Counter"? "Driver Type"? "Shift Situation"? "Shift ID"? "Accel Factor"?


    Same thing with TCC. I THINK it chooses a TCC Pattern map based off if its in Sport 2 for example, which is mapped to TCC Pattern 8 in example. Then in TCC Mapping Pattern 8 shows "31 32 33 34 35 36 37 38" which you then open Maps 31-40 table - and the last digit of each (31, 32, 33 etc) is the TCC settings for that individual gear? As in allowed slip?
    Attached Files Attached Files
    Last edited by GrannySShifting; 06-07-2019 at 08:11 AM.
    Factory Stock 97 SS M6 13.51 @ 104.3 mph
    Stock Longblock LS1 w/ 233/238 P.S.I. Cam
    10.81 @ 126.9 Full interior, six speed on 275 radials, a decade ago

    '99 TA trunk mounted 76mm 6 Liter
    9.0s in '09 @ 153 MPH

    Turbo 5.3 Volvo 740 Wagon
    32psi and still winding out 5th on the highway somewhere

  8. #8
    Tuner in Training
    Join Date
    Oct 2014
    Posts
    23
    So this seems like a dumb question, but if we set the shift mapping all to one certain shift table, and another for manual mode, we would theoretically limit ourselves to those 2 maps? I'm trying to create a true manual mode for upshift and downshift when in tap mode, and still get true automatic in "D". I keep getting close but I think other tables come into play when I don't realize it. trying to limit the variables until I get a grasp on it. Any and all help appreciated!

  9. #9
    Advanced Tuner
    Join Date
    Nov 2017
    Posts
    833
    If you log shift ID you'll know what maps are being used.
    If in doubt, multiply everything by 1.1.

  10. #10
    I have a 2019 Ram 3500 6.4 ZF8, Is there a simple way to get firmer shifts.

  11. #11
    Quote Originally Posted by raceplayhavefun View Post
    So this seems like a dumb question, but if we set the shift mapping all to one certain shift table, and another for manual mode, we would theoretically limit ourselves to those 2 maps? I'm trying to create a true manual mode for upshift and downshift when in tap mode, and still get true automatic in "D". I keep getting close but I think other tables come into play when I don't realize it. trying to limit the variables until I get a grasp on it. Any and all help appreciated!
    I am trying to do the same thing. I think the aggression plays into it. Right now I have it so it is only using shift map 7. In a straight line it shift when I want it to. But when I turn left or right from a stop the 1-2 shift is happening at 3000 at 20% throttle. While going straight 1-2 shift at 20% throttle happens at 1500, which is what I want. Also going downhill in 6 gear doing 45mph I just touch the brakes and it will downshift to 3rd. Really no reason. I would like to use just one aggression for all situations.

  12. #12
    Old thread but, very helpful