Compound transmission with H-shifter

Forum rules
SCS as a company do not wish to have paid mods on this forum. While we understand that not all paid mods use the Intellectual Property of other companies/people, it is very hard to moderate what is and isn't acceptable when money is involved. There are also concerns that it could look unfavorable to potential work partners going forward if SCS allow mods that may potentially use unlicensed branding.
Posting in the Mods forum (ATS and ETS2) is restricted to sharing free-to-the-public mods and providing support for mods. For more details, please check the Forum Rules.
User avatar
JackBurton
Posts: 153
Joined: 29 Dec 2018 14:15
Location: Long Island, NY

Compound transmission with H-shifter

#1 Post by JackBurton » 14 Jul 2019 19:55

This post describes how to simulate a twin stick compound transmission in ATS using a TH-8A and a combination of button presses on a keyboard or other peripheral. It is certainly possible to talk ATS into speaking to two TH-8As, but I only have one, so we'll start there.

Our goal is a working model for a Spicer 6 x 4 two-stick transmission consisting of a PSO140-6A 6-speed box and an AMO1750-4D 4-speed box. We will use the TH-8A as the 6-speed box, and we will emulate the 4-speed box by combination of range and splitter button presses. Real life ratios for these two boxes are available here: https://www.thetruckersreport.com/truck ... ion.18110/. For your convenience, I reproduce the compound ratios found at that thread here:

Code: Select all

R low: 11.7819
R under: 9.2628
R direct: 7.47
R over: 6.0507

1st low: 11.7819
1st under: 9.2628
1st direct: 7.47
1st over: 6.0507

2nd under: 5.0592
2nd direct: 4.08
2nd over: 3.3048

3rd under: 2.8024
3rd direct: 2.26
3rd over: 1.8306

4th under: 1.5376
4th direct: 1.24
4th over: 1.0125

5th under: 1.24
5th direct: 1.00
5th over: .81

6th under: 1.04
6th direct: .84
6th over: .68
Step 1: As an example, let's put this transmission into Harven's wonderful Mack R600-series, and let's use a 3.55 differential. If you like a different truck and a different differential, the procedure would be virtually identical, so follow along! I started by modifying vsTerminus's outstanding Caterpillar 1693 Engines mod, which includes a 6x4 Spicer. vsTerminus has at least four engine mods on the workshop that include this transmission. It seems, however, that he may drive with a sequential transmission (please correct me if I am wrong), and he removed the real life gear combinations that have redundant or nearly redundant ratios.

Step 2: For this reason, I modified one of his files to include the four reverse combinations and 19 forward combinations listed above for the real truck. In the case of a Mack R600 with a 3.55 differential, the file to be modified is vsTerminus's spicer6x4_355_15speed.sii, which is located in any of vsTerminus's engine mods at universal > def > vehicle > truck > mack.rhpl > transmission. Of course, you can modify any analogous file in this or any other truck if you prefer. It's all there in vsTerminus's excellent mods. Below is the text for the modified file, and you simply must paste over the list of ratios. Changing the name of the transmission itself in the quotation marks is optional.

Code: Select all

SiiNunit
{
	accessory_transmission_data : spicer15_355.mack.rhpl.transmission
	{
		name: "Spicer PSO140-6A AMO1750-4D 3.55 H-shift"
		price: 6406
		unlock: 0
		icon: "trans_spicer"
		
		differential_ratio: 3.55

        ratios_reverse[0]: -11.7819
        ratios_reverse[1]: -9.2628
        ratios_reverse[2]: -7.47
        ratios_reverse[3]: -6.0507 
        ratios_forward[0]: 11.7819
        ratios_forward[1]: 9.2628
        ratios_forward[2]: 7.47
        ratios_forward[3]: 6.0507
        ratios_forward[4]: 5.0592
        ratios_forward[5]: 4.08
        ratios_forward[6]: 3.3048
        ratios_forward[7]: 2.8024
        ratios_forward[8]: 2.26
        ratios_forward[9]: 1.8306
        ratios_forward[10]: 1.5376
        ratios_forward[11]: 1.24
        ratios_forward[12]: 1.0125
	ratios_forward[13]: 1.24
	ratios_forward[14]: 1.00
	ratios_forward[15]: 0.81
        ratios_forward[16]: 1.04
	ratios_forward[17]: 0.84
        ratios_forward[18]: 0.68

        retarder: 0
        shift_time: 0.75
		

   }
}
Step 3: Now we must write a gearbox layout file so our peripherals know how to access these gears. Fortunately, Fury6 knows how to make such files. I stood on the shoulders of his Mack 10-spd. and 12-spd. gearbox layouts to produce the following file. Call it gearbox_layout_spicer_6x4.sii and put it in your profile folder with the other gearbox layouts. Here is the text of the file:

Code: Select all

SiiNunit {
/*
    Shift pattern configuration for Spicer PSO140-6A AMO1750-4D.
        -JackBurton
*/
    direct_gearbox_config:  .Spicer.6x4 {
        name: "Spicer 6x4"
        clutch_mode: analog
        selector_mode: range_split
        gears[]: .neutral.n
        gears[]: .reverse.l
        gears[]: .reverse.u
        gears[]: .reverse.d
        gears[]: .reverse.o
        gears[]: .forward.1l
        gears[]: .forward.1u
        gears[]: .forward.1d
        gears[]: .forward.1o
        gears[]: .forward.2u
        gears[]: .forward.2d
        gears[]: .forward.2o
        gears[]: .forward.3u
        gears[]: .forward.3d
        gears[]: .forward.3o
        gears[]: .forward.4u
        gears[]: .forward.4d
        gears[]: .forward.4o
        gears[]: .forward.5u
        gears[]: .forward.5d
        gears[]: .forward.5o
        gears[]: .forward.6u
        gears[]: .forward.6d
        gears[]: .forward.6o
    }

    direct_gearbox_gear: .neutral.n {
        gear_impulse_index: 0
        selector_1: -1          # Range 0, Split 0 = low
        selector_2: -1          # Range 0, Split 1 = under
        gear: 0			# Range 1, Split 0 = direct
        name: "N"		# Range 1, Split 1 = over
    }

    direct_gearbox_gear: .reverse.l {
        gear_impulse_index: 2
        selector_1: 0
        selector_2: 0
        gear: -1
        name: "RL"
    }

    direct_gearbox_gear: .reverse.u {
        gear_impulse_index: 2
        selector_1: 0
        selector_2: 1
        gear: -2
        name: "RU"
    }

    direct_gearbox_gear: .reverse.d {
        gear_impulse_index: 2
        selector_1: 1
        selector_2: 0
        gear: -3
        name: "RD"
    }

    direct_gearbox_gear: .reverse.o {
        gear_impulse_index: 2
        selector_1: 1
        selector_2: 1
        gear: -4
        name: "RO"
    }


    direct_gearbox_gear: .forward.1l {
        gear_impulse_index: 3
        selector_1: 0
        selector_2: 0
        gear: 1
        name: "1L"
    }

    direct_gearbox_gear: .forward.1u {
        gear_impulse_index: 3
        selector_1: 0
        selector_2: 1
        gear: 2
        name: "1U"
    }

    direct_gearbox_gear: .forward.1d {
        gear_impulse_index: 3
        selector_1: 1
        selector_2: 0
        gear: 3
        name: "1D"
    }

    direct_gearbox_gear: .forward.1o {
        gear_impulse_index: 3
        selector_1: 1
        selector_2: 1
        gear: 4
        name: "1O"
    }

    direct_gearbox_gear: .forward.2u {
        gear_impulse_index: 4
        selector_1: 0
        selector_2: 1
        gear: 5
        name: "2U"
    }

    direct_gearbox_gear: .forward.2d {
        gear_impulse_index: 4
        selector_1: 1
        selector_2: 0
        gear: 6
        name: "2D"
    }

    direct_gearbox_gear: .forward.2o {
        gear_impulse_index: 4
        selector_1: 1
        selector_2: 1
        gear: 7
        name: "2O"
    }


    direct_gearbox_gear: .forward.3u {
        gear_impulse_index: 5
        selector_1: 0
        selector_2: 1
        gear: 8
        name: "3U"
    }

    direct_gearbox_gear: .forward.3d {
        gear_impulse_index: 5
        selector_1: 1
        selector_2: 0
        gear: 9
        name: "3D"
    }

    direct_gearbox_gear: .forward.3o {
        gear_impulse_index: 5
        selector_1: 1
        selector_2: 1
        gear: 10
        name: "3O"
    }

    direct_gearbox_gear: .forward.4u {
        gear_impulse_index: 6
        selector_1: 0
        selector_2: 1
        gear: 11
        name: "4U"
    }

    direct_gearbox_gear: .forward.4d {
        gear_impulse_index: 6
        selector_1: 1
        selector_2: 0
        gear: 12
        name: "4D"
    }

    direct_gearbox_gear: .forward.4o {
        gear_impulse_index: 6
        selector_1: 1
        selector_2: 1
        gear: 13
        name: "4O"
    }

    direct_gearbox_gear: .forward.5u {
        gear_impulse_index: 1
        selector_1: 0
        selector_2: 1
        gear: 14
        name: "5U"
    }

    direct_gearbox_gear: .forward.5d {
        gear_impulse_index: 1
        selector_1: 1
        selector_2: 0
        gear: 15
        name: "5D"
    }

    direct_gearbox_gear: .forward.5o {
        gear_impulse_index: 1
        selector_1: 1
        selector_2: 1
        gear: 16
        name: "5O"
    }
    direct_gearbox_gear: .forward.6u {
        gear_impulse_index: 8
        selector_1: 0
        selector_2: 1
        gear: 17
        name: "6U"
    }

    direct_gearbox_gear: .forward.6d {
        gear_impulse_index: 8
        selector_1: 1
        selector_2: 0
        gear: 18
        name: "6D"
    }

    direct_gearbox_gear: .forward.6o {
        gear_impulse_index: 8
        selector_1: 1
        selector_2: 1
        gear: 19
        name: "6O"
    }
}
Let's talk about what this file means. First, here is an image of the shift pattern for a Spicer 6x4:

[ external image ]

Step 4: Notice that the 6-spd. box consists of a 2x4 grid of shift positions. This configuration creates two problems. The first is that the Logitech H-shifter does not have a 2x4 grid of gates, so you cannot reproduce the real shift pattern without compromising. Of course, you could just modify the gear_impulse_index entries in the layout file above to make it work for you by skipping the peculiar gap below 4th gear. I want to be as realistic as possible, so let's try to keep this gap.

The second problem is that ATS by default does not have an control entry for the position of the sixth gear on the six speed box. The cotnrols menu only allows for seven gates to be assigned to various gears (1-6 plus reverse). We will have to create the eighth entry manually in the controls.sii file, which can be found in your profile folder. Fortunately, Alaindor has already done the hard work for us: viewtopic.php?t=249926#p849678

These lines were in my controls.sii:

Code: Select all

 config_lines[374]: "mix gear6 `joy2.b5?0 | semantical.gear6?0`"
 config_lines[375]: "mix gear7 `joy2.b6?0 | semantical.gear7?0`"
 config_lines[376]: "mix gear8 `semantical.gear8?0`"
By examining lines 374 and 375, I changed line 376 to:

Code: Select all

 config_lines[374]: "mix gear6 `joy2.b5?0 | semantical.gear6?0`"
 config_lines[375]: "mix gear7 `joy2.b6?0 | semantical.gear7?0`"
 config_lines[376]: "mix gear8 `joy2.b7?0 | semantical.gear8?0`"
Your numbers might be a little different, but make the analogous change. As an aside, ATS supports up to 16 gear positions. Our 6-spd. box is now completely set up!

Let's talk a bit about the four speed box. The four positions correspond to low, underdrive, direct drive, and overdrive. Because we only have one real stick, we map these four positions to combinations of range and splitter options as follows:
  • Range 0, Split 0 = low
  • Range 0, Split 1 = under
  • Range 1, Split 0 = direct
  • Range 1, Split 1 = over
These combinations are already coded into the gearbox layout file above.

Step 5: You probably want to select "clutch press" for shifter fast split in the controls menu to mimic the real behavior most closely.

Extra tuning for the future? I drive with a Driving Force Pro, which includes a small sequential shifter to the side of the wheel, so I mapped range and splitter to up and down on this shifter to get a feel for twin sticking. If I get a little more clever, maybe I can write a macro to cause "shifter up" to increment through the series <low, under, direct, over>, while "shifter down" decrements through these options. If you happen to have a second TH8A or Logitech H-shifter, I imagine you could map these buttons to that shifter and select "Shifter toggle uses switch mode." There is probably a challenge here in mapping a single shift configuration to toggling both range and split to 1. If you have any advice for overcoming these challenges, I would be most grateful to know!

Now we have access to four reverse gears and all 19 forward gears. To sum up, you have to follow these steps to get this twin stick configuration working for you:
  1. Download one of vsTerminus's engine mods that includes a Spicer 6x4 transmission
  2. Select the truck you want to drive and the differential you want. Replace the text in the corresponding sii file located in his mod at universal > def > vehicle > truck > (truck you want) > transmission with the list of reverse and forward ratios in this post.
  3. Copy the text of the gearbox layout in this post to a new file gearbox_layout_spicer_6x4.sii to put in your profile folder.
  4. Modify your controls.sii file to understand gear 8.
  5. Select "clutch press" for shifter fast split.
Many thanks to @vsTerminus, @Fury6, and @Alaindor for their work on transmissions. I could not have figured out any of this without learning from them.

Max also has given this warning:
Max wrote: 27 Dec 2017 21:34 just be careful with device config UI screens from that moment (set impulses will remain, but if you delete the controller some manually added bindings may survive and could make some mess).
EDIT To anyone trying to drive this transmission, I found this video to be extremely helpful:
dubmans
Posts: 140
Joined: 07 Feb 2016 05:53

Re: Compound transmission with H-shifter

#2 Post by dubmans » 06 Aug 2019 14:43

i had something like that last year

User avatar
JackBurton
Posts: 153
Joined: 29 Dec 2018 14:15
Location: Long Island, NY

Re: Compound transmission with H-shifter

#3 Post by JackBurton » 15 Aug 2019 14:40

Hey dubmans. Thank you for linking the video. I notice in the comments that you are running a TH-8A and a logitech shifter. That is a nice solution.

Would you be open to sharing your gearbox layout file?
findingjayne
Posts: 23
Joined: 02 Mar 2022 13:20

Re: Compound transmission with H-shifter

#4 Post by findingjayne » 29 Sep 2022 22:08

I see this thread has been dead for some time but want to try this

Has anyone has verified this works recently given so many SCS revisions have come along since originally posted?

While nice, dubmans video link shows using the second shifter as the range selector/splitter which isn't the same or my objective.

Thanks
Savage212
Posts: 39
Joined: 28 Jan 2023 22:53

Re: Compound transmission with H-shifter

#5 Post by Savage212 » 16 Feb 2023 05:09

I'm working on building a similar setup, PikPikker has a mod that creates the transmissions. viewtopic.php?p=1790457#p1790457

I agree, dubman's setup is nice. However, it appears that he's using one shifter to shift through 3 "main" gears, and then using the other shifter to shift through six gears in an "auxiliary", and all of the gears are used and sequential. There may be some sort of transmission combination like this, but I never saw or drove one. The "main" box usually has 5, 6, or even 9, or 10 speeds, and the auxiliary most often has four, although I have seen five. The most common is what is shown in the real life video, I drove more than one similar, and one exactly like that, an 8V-92TA, with 110cc injectors and rated at 550HP+, and a S;picer 6x4 transmission set. While a 6x4 would seem to provide 24 forward speeds, there's actually some overlap, as Bubbles describes, you do not shift from 5-4 to 6-1, as 6-1 is a lower gear than 5-4. You would normally shift from 5-4 to 6-3, then into 6-4 by shifting only the auxiliiary.

Return to “Modding Guides”

Who is online

Users browsing this forum: CCBot [Bot]