New to this, some general questions

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.
pigga
Posts: 7
Joined: Fri Nov 08, 2013 12:34 pm
Location: Germany

New to this, some general questions

Post by pigga »

Hi Lance and all the others.
1st of all: I have read this: viewtopic.php?f=3&t=35 , but I am hoping to get some help over here anyhow.
I have a car running with MS2 very well for 2 years right now in combination with a mechanical 3-speed automatic Gearbox. Due to the fact that the gearbox is going to make trouble, it would be great to replace it with a newer (4-speed) box from the Golf MK3 that uses solenoids for gear shifting and has a TCC (the actual gearbox even doesn´t have a TCC).
I did quite a lot of reading over here so far and must say that your code seems to offer a lot of abilities for what I would need for that kind of conversion. But unfortunately I am quite new to the CAN stuff. So my apology for my n00bness, but I would like to ask some general questions to find out if it´s feasible to get things running at all:
1st "Problem" is, that the Megasquirt is running on 3.x.x "Extra"-code (which is back-ported from MS3 as far as I know). Are there any experiences if this code can communicate with mshift-code at all? I think primary any Load and some RPM signal should be extracted from the datastream.
It also would be great if anyone could post experience if the spark retard and/or increase FIDLE after engaging a gear will work etc. (or at least some idea if a conversion can be done to make it work).
Unfortunately the gearbox has no pressure sensor. I found some helpful links over here for sensors that may work. As far as I understand, the pressure control uses to work as open loop, right? Is the aim to get a stable pressure for all RPMs, or is it desirable to get increasing pressure with rising Engine Load/RPM?
Thanks a lot in advance!
Pigga
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: New to this, some general questions

Post by Bernard Fife »

Pigga,

I haven't used an MS3 with MShift, but others have. For example, see: viewtopic.php?f=4&t=541. I have used an MS2 (with B&G code) and I suspect others have used the extra code on MS2. The CANbus comms ought to be the same (otherwise there would be compatibility issues on a number of fronts). Hopefully people will chime in with there experiences.

Also, see the docs at: http://www.msgpio.com/manuals/mshift/V41tune.html#oa

MShift will always adopt the B&G standard serial and CANbus comms, and the extra guys tend to do this too, so it *should* remain compatible for future releases (but there's no guarantee). It not impossible that variables will be moved around in MS3 in the future, and this could require adjustments to the CANbus settings in MShift (the info needed can always be derived from the MS3 INI file).

The pressure sensor is not used to control any algorithm or output, it is for monitoring only. How the pressure output ought to work depends on the trans you have. Generally the aim is to prevent excessive slippage in gear, while not making the shifts too hard. The pulse width modulation values to get the pressures required to do this can depend on many factors. Usually the best place to start looking for reliable info is the factory service manual.

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
pigga
Posts: 7
Joined: Fri Nov 08, 2013 12:34 pm
Location: Germany

Re: New to this, some general questions

Post by pigga »

Hi Lance.
Thanks a lot for your answer!
Yes, I remember that there were some CAN Issues with MS3 in the beginning. But as you describe it, it should be possible to get it running.
One thing I do not totally understand is how MegaShift is able to influence Tinming advance and the Fidle %age. Due to the fact that there is no obvious option selectable for this in the Megasquirt I assume that CAN stuff allows the megashift to directly influence these values? (Sounds a bit like voodoo technology to me :-) )
Menawhile I found some documentation for the desired Gearbox.
After 1st Reading I am afraid to run out of output ports:
The gear lever has a 2-Channel Output to feedback the selected gear.
Unfortunately there are 5 (!) solenoids that control the shifting.
Solenoids a to d plus a TCC solenoid:
__a_b_c_d_TCC
1|X|o|o|o| o
2|X|X|o|o| o
3|X|o|X|o|(X)
4|o|X|X|o|(X)
R|o|o|o|X| o

Luckily they are all on/off solenoids and -as you can see- one solenoid only controls the reverse gear.
Furthermore there are two additional PWM solenoids (bleed valves) that control pressure.
One is for pressure circuit of the TCC solenoid, the other pressure valve is for the pressure line of Solenoids a-d. At the moment that´s the main thing that confuses me. Is there a cance to control two pressure circuits and have another channel for activating TCC?
Ah, and the gearbox offers the ability to measure TCC slip. So maybe it would be interesting to test out the additional features of MegaShift 5 (I read that it offers the ability to measure TCC slip).
However, do you think there a chance to handle all the outputs with MesgShift "out of the box?
Thanks a lot for your Help.
Regards,
Pigga
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: New to this, some general questions

Post by Bernard Fife »

Pigga,
I assume that CAN stuff allows the megashift to directly influence these values?
Yes, if the engine controller has these variables set aside for timing and idle motor control, then the trans controller can write to them directly using the CANbus (the variables have to be in the inpram structure(s) to be writable over the CANbus by the MShift controller). There are actually variables in place to allow for fuel adjustments too, but we haven't used these yet. Eventually we will even incorporate some variables in the MShift trans code that will allow the engine controller to directly force an upshift or downshift on command when/if it is necessary.

5 solenoid outputs are no problem, the code has options for up to 8 (9 with 5.xxx code).

The outputs already include dedicated line pressure and TCC control outputs. So it looks like you need an additional PWM line pressure output.

The spare ports can be used as additional PWM line pressure controls (but only spare port 3 is a 'dedicated' line pressure output that is set up for different pressure in PNR gears, shift pressure limiting, etc., etc.). If you just need a generic PWM for either of the pressure controls, spare ports 1 & 2 have a 12x1 PWM lookup table, while spare ports 0 and 3 have 16x9 PWM lookup tables with the index(s) user selectable from Load, Speed, RPM, Temperature (only positive temperatures are allowed), and for 5.xxx+ code you can also use Current Gear, MAP, and TPS. For example, you might use spare port 0 with indices of load x gear. There is more on these here: http://www.msgpio.com/manuals/mshift/spareport.html

So you will need to find a combination of solenoid outputs and spare ports that work for your transmission, but I believe this shouldn't be too hard and ought to be entirely possible with the standard code.

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
pigga
Posts: 7
Joined: Fri Nov 08, 2013 12:34 pm
Location: Germany

Re: New to this, some general questions

Post by pigga »

Hi Lance.
I loaded the *.ini of the 5.08 ßeta into TunerStudio to get an Idea of what´s it all about.
Wow, I am impressed. Your code converts any MS2 hardware to some kind of swiss army knife to control any kind of automatic gear box :-)
I even like the possibility to define additional outputs for whatever I like to.
You suggestion regarding the control of TCC sounds good: Use the generic ON/OFF TCC control of your code and use a spare PWM output to control line pressure of the TCC.
By the way: I saw that in the settings is the option to unlock TCC above a specific engine load? I am a bit confused of this because to my understanding it should make sense to lock TCC above load X, not unlock it?
Well, but I have no practical experience with this stuff so far. I´ll have to find out the PWM frequency of the OEM gearbox control. Then get a GPIO (for instance) and have a look how it works.
Thanks a lot for your great support so far!
Pigga
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: New to this, some general questions

Post by Bernard Fife »

I am a bit confused of this because to my understanding it should make sense to lock TCC above load X, not unlock it?
Pigga,

The TCC is usually locked only at light loads to improve fuel mileage.

Unlocking the clutch often gives better performance, because the converter can amplify the torque only when unlocked, and the revs are also a bit higher when the converter is unlocked. Also, the torque converter clutch is sometimes too small to handle the maximum output of an engine, so it must be unlocked at full power to preserve the clutch itself.

However, for those that want it, the code has a 'Full-Time Lock Up' mode, in which the TCC is also locked above an specified RPM and gear. This can be used to improve the top-speed somewhat, if the torque converter clutch can handle the engine's full output. See: http://www.msgpio.com/manuals/mshift/V41tune.html#nt

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
pigga
Posts: 7
Joined: Fri Nov 08, 2013 12:34 pm
Location: Germany

Re: New to this, some general questions

Post by pigga »

Hi Lance.
Thanks for your explanation. This makes clear what´s the idea behind this.
As I am owning no GPIO (yet, still planning about how and what to do etc.).
I just tried to do some set-up with the *ini of 5.08 and the appropriate MSQ file from a prior 5.03 version.
I think most things become clear.
There were a few points I was lost:
  • As there are 2 shifting tables, I assume there is the opportunity to shift between table 1 and 2. What´s the desired Input to switch between them?
  • The TCC output is always the same? Or must it be assigned by the software setting? I am asking because I can choose another "TCC" output under spare port settings. Referring to the manual this does not influence the general "TCC" settings. So I assume this offers the opportunity to use a 2nd TCC output with PWM?
  • And: Let´s assume I enter "manual shift mode" (by pressing both buttons). When I reach the over-rev or under-rev condition, the controller will revert to automatic mode?
Regards,
Thomas

P.S.: I got some Feedback from JSM in the extra forum.
I checked the latest MS2/Extra source and SpkAdj is implemented : table 7 offset 514
FuelAdj, IdleAdj, SprAdj are not used at this time.
That´s good news because Ignition adjustment ist the most important thing (to my eyes). In next release they will (probably) support Idle adjustment as well as he says.
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: New to this, some general questions

Post by Bernard Fife »

Pigga,

Table shifting is done with with the 2WD/4WD input on Ampseal pin 5 (GPI1/PE1). Table 1 is used if the pin is 'open', table 2 is used if the input is grounded.

The dedicated TCC output (PT3/PWM2/Ampseal 32) cannot be used as a spare output (or any other purpose that can't be controlled with the standard TCC algorithm), but the spare outputs can be used as TCC outputs. When the spare outputs are used as TCC outputs, they will get their PWM parameters from their respective table when the TCC is applied, otherwise they will be 'off' (set to the user specified OFF value). So their ON/OFF states follow the TCC, but the PWM can be very different, if you like.

How the controller reacts to an out-of-bounds rev depends on a 'Force Auto Option' user setting, which you can find here: http://www.msgpio.com/manuals/mshift/V41tune.html#gr

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
pigga
Posts: 7
Joined: Fri Nov 08, 2013 12:34 pm
Location: Germany

Re: New to this, some general questions

Post by pigga »

Lance wrote:Table shifting is done with with the 2WD/4WD input on Ampseal pin 5 (GPI1/PE1). Table 1 is used if the pin is 'open', table 2 is used if the input is grounded.
Aah ok, that makes things a bit more clear. Table switching would be a great feature (shift between ECO and RACE for instance).
Unfortunately the VW gear lever position switch has 4 pins.
I will have to find out if they are all really needed.
Did I get it right: When I use a 4th lever input I have no chance to use any other input for table shifting?
Thomas
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: New to this, some general questions

Post by Bernard Fife »

Pigga,

We can certainly make it an option to use other inputs for table switching. Let me think about what makes the most sense and I will add this soon. Perhaps PE0 since this is not used for any other function (it is a digital input only, so of limited use otherwise)

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
Post Reply