Which 'load' is used in the PC calculations?

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.
Addicted
Posts: 188
Joined: Mon Oct 14, 2013 7:14 am
Location: Winchester, England

Re: Which 'load' is used in the PC calculations?

Post by Addicted »

OK thanks Lance! the custom.ini causes an error when I open the sp3 table..

Can not subscribe to OutputChannel Speed
It is not defined in ECU Configuration Shift.

But it appears to open OK, doesnt seem to matter what name i put in the ini, still gets the error.
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: Which 'load' is used in the PC calculations?

Post by Bernard Fife »

That's odd, because I tried it here before I posted it and it works fine. I get no errors at all, and I see this for the sp3 PWM table:
sp3pwmTable.JPG
sp3pwmTable.JPG (51.58 KiB) Viewed 14672 times
That's with TS 2.6.18 (Lite).

I'll re-attach the file in case it got corrupted somehow:
custom.ini
(446 Bytes) Downloaded 960 times
FWIW, MShift doesn't have an output channel called "Speed", it only has one called "speedo". Is it possible there is a typo in your INI? The names you put in the custom.ini aren't just labels, they tell TS which cell to highlight. So they must correspond to an actual output channel, i.e. one of these:

Code: Select all

  seconds           = scalar, U16,    0,     "sec",      1.000, 0.0 
  speedo            = scalar, U16,    2,     "kph",      0.16093, 0.0
  odometer          = scalar, U32,    4,      "km",      0.00161, 0.0 
  auto_mode         = scalar, U08,    8,       " ",      1.000, 0.0 
  downbutton        = bits,   U08,    9,   [0:0]
  upbutton          = bits,   U08,    9,   [1:1]
  downshift_request = bits,   U08,    9,   [2:2]
  upshift_request   = bits,   U08,    9,   [3:3]
  error             = scalar, U08,   10,       " ",      1.000, 0.0
  serialComm        = bits, U08,   10,   [0:0]
  CAN error         = bits, U08,   10,   [1:1]
  revshiftblock     = bits, U08,   10,   [2:2] 
  VSSreset          = bits, U08,   10,   [3:3] 
  VSSerr            = bits, U08,   10,   [4:4] 
  gearRangeErr      = bits, U08,   10,   [5:5] 
  lowVolts          = bits, U08,   10,   [6:6]
  noBrake           = bits, U08,   10,   [7:7]        
  manual_gear       = scalar, S08,   11,       " ",      1.000, 0.0
  current_gear      = scalar, S08,   12,       " ",      1.000, 0.0
  target_gear       = scalar, S08,   13,       " ",      1.000, 0.0
  engine_rpm        = scalar, U16,   14,     "rpm",      1.000, 0.0
  LOAD              = scalar, S16,   16,     "kpa",      0.100, 0.0
  clt               = scalar, S16,   18,    "ºF",        0.100, 0.0
  linepressure      = scalar, S16,   20,     "bar",      0.0068947, 0.0
  lock_TCC          = scalar, U08,   22,       "%",      1.000, 0.0
  brake             = bits,   U08,   23,   [0:0]
  burnstatus        = bits,   U08,   23,   [1:1]
  FWD               = bits,   U08,   23,   [2:2]
  forceUP			= bits,   U08,   23,   [3:3]
  forceDWN			= bits,   U08,   23,   [4:4]
  JakeBrake         = bits,   U08,   23,   [5:5]
  baudERR           = bits,   U08,   23,   [6:6]
  LOAD_short        = scalar, U16,   24,     "kpa",      0.100, 0.0
  aux_volts         = scalar, U16,   26,       "V",      0.00488, 0.0
  PC_duty           = scalar, U08,   28,       "%",      1.000, 0.0
  slip              = scalar, U08,   29,       "%",      1.000, 0.0
  dbug              = scalar, U16,   30,       " ",      1.000, 0.0 
  In1adc            = scalar, U16,   32,   "volts",      0.00488, 0.0
  In2adc            = scalar, U16,   34,   "volts",      0.00488, 0.0
  In3adc            = scalar, U16,   36,   "volts",      0.00488, 0.0  
  solst             = scalar, U16,   38,       " ",      1.000, 0.0
  Output1           = bits,   U16,   38,   [0:0]
  Output2           = bits,   U16,   38,   [1:1]
  Output3           = bits,   U16,   38,   [2:2]
  Output4           = bits,   U16,   38,   [3:3]	
  Output5           = bits,   U16,   38,   [4:4]
  Output6           = bits,   U16,   38,   [5:5]
  Output7           = bits,   U16,   38,   [6:6]
  Output8           = bits,   U16,   38,   [7:7] 
  Output9           = bits,   U16,   38,   [8:8]   
  chcksum           = scalar, U08,   40,       " ",      1.000, 0.0
  mileage           = scalar, U16,   41,     "mpg",      0.010, 0.0       
  FuelAdj           = scalar, S16,   43,       "%",      0.100, 0.0
  SpkAdj            = scalar, S16,   45,       "°",      0.100, 0.0
  IdleAdj           = scalar, S16,   47,       " ",      1.000, 0.0
  SprAdj            = scalar, S16,   49,       " ",      1.000, 0.0
  In1               = bits,   U08,   51,   [0:0]
  In2               = bits,   U08,   51,   [1:1]
  In3               = bits,   U08,   51,   [2:2]
  In4               = bits,   U08,   51,   [3:3]
  leverError		= bits,   U08,   51,   [7:7]
  sp1PWM            = scalar, U08,   52,      "%",       1.000, 0.0 
  is_rpm            = scalar, U16,   53,    "rpm",       1.000, 0.0  
  butADC            = scalar, U16,   55,  "volts",     0.00488, 0.0  
  sp2PWM            = scalar, U08,   57,      "%",       1.000, 0.0
  TCC_count         = scalar, U08,   58,    "sec",       0.100, 0.0
  sp0PWM   			= scalar, U08,   59,      "%",       1.000, 0.0
  sp09inx           = scalar, S16,   60,       ""'       0.100, 0.0 
  sp016inx          = scalar, S16,   62,       ""'       0.100, 0.0 
  sp3PWM   			= scalar, U08,   64,      "%",       1.000, 0.0
  sp39inx           = scalar, S16,   65,       ""'       0.100, 0.0 
  sp316inx          = scalar, S16,   67,       ""'       0.100, 0.0
  rawMAP            = scalar, U16,   69,       "",       0.100, 0.0
  rawTPS            = scalar, U16,   71,       "",       0.100, 0.0
  hyst              = scalar, U08,   73,    "sec",       0.100, 0.0
  mloop				= scalar, U32,   74,       "",       1.000, 0.0
  Slip_Adjust       = scalar, U08,   78,      "%",       1.000, 0.0
  LED1              = bits,   U08,   79,   [0:0]
  LED2              = bits,   U08,   79,   [1:1]
  LED3              = bits,   U08,   79,   [2:2]
  LED4              = bits,   U08,   79,   [3:3]
  porta             = scalar, U08,   80,       "",       1.000, 0.0
  porte             = scalar, U08,   81,       "",       1.000, 0.0
  estimated_gear    = scalar, S08,   82,       "",       1.000, 0.0
  RPM_short         = scalar, U16,   83,       "",       1.000, 0.0
  cruise_flag       = scalar, U16,   85,       "",       1.000, 0.0
  ashiftrevs        = scalar, U16,   87,       "",       1.000, 0.0
  decel_flag        = scalar, U08,   89,       "",       0.100, 0.0
  VSS_per           = scalar, U32,   90,       "",       0.001, 0.0
  instant_ratio 	= scalar, U16,   94,     ":1",       0.001, 0.0
You'll likely be using rawMAP and speedo, I suspect.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
Addicted
Posts: 188
Joined: Mon Oct 14, 2013 7:14 am
Location: Winchester, England

Re: Which 'load' is used in the PC calculations?

Post by Addicted »

You are correct, as usual. I'd missed the o
Addicted
Posts: 188
Joined: Mon Oct 14, 2013 7:14 am
Location: Winchester, England

Re: Which 'load' is used in the PC calculations?

Post by Addicted »

OK, tested it on the road with SP3 set as PWM.. didn't seem to work. Looking at the log it appears that SP3 continued as Line Pressure Table..

Edit: or maybe it is reading the PWM table, but its not getting x and y variables and therefore operating at zero rawMAP and zero speedo. I can see in the log that sp3x and sp3y are pegged at zero this will then mean it will read from the bottom left cell which is 40, 100-40=60 and thats whats showing in the log for SP3% (except during shifts)
Attachments
CurrentTune.msq
(57.34 KiB) Downloaded 909 times
Copy of 2015-04-22_06.46.54.msl
(878.63 KiB) Downloaded 879 times
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: Which 'load' is used in the PC calculations?

Post by Bernard Fife »

Addicted,

Okay, thanks, something must be wrong in the code. I will have a look and post back here when I have an answer.

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: Which 'load' is used in the PC calculations?

Post by Bernard Fife »

Addicted,

I tried your MSQ on my bench, and the sp3 PWM responds appropriately to the MAP and speed changes (and the highlighted cell moves in TS to the right cell). It's possible that either the controller needs a reset (power-off/power-on after loading a code or MSQ) on the code is corrupted (so you might reload 5.100 code; be sure to use 5.100 and not a 5.099 beta code). I'll attach the 5.100 MSQ of your settings (you might get a units error that you can ignore):
Addicted_2015-04-22_09.38.46.msq
(57.33 KiB) Downloaded 937 times
I added the spare port 3 indexes (and rawMAP as well as the spare port 0 indexes) to the INI gauges in the attached INI which makes it easier to see what is going on. This INI also datalogs raw MAP (and raw TPS):
GPIO_MShift_5100.ini
(285.19 KiB) Downloaded 926 times
So try resetting and/or reloading the code; and if that doesn't help, could you post another short datalog using the new INI (which will make it easier to see what's going on)?

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: Which 'load' is used in the PC calculations?

Post by Bernard Fife »

BTW, this is the custom.ini I am using with your MSQ:
custom.ini
(444 Bytes) Downloaded 930 times
Also, just to be 100% clear, the line pressure value (and gauge) has no meaning anymore once you switch to SP3 in PWM mode. The pulse width modulation percentage value on the output is then Sp3% in the datalog, and the gauge is labeled "SP3 PWM%"
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
Addicted
Posts: 188
Joined: Mon Oct 14, 2013 7:14 am
Location: Winchester, England

Re: Which 'load' is used in the PC calculations?

Post by Addicted »

Thanks Lance,

Who said I was I was running 5.100? ;) I was still on 5.099..

Ive now loaded up everything you posted above and suprise suprise it works!

Bad news for me though, the slip hasnt improved :( even at 80% it slips. It didnt slip a couple of months ago so I can only assume something has gone bad in the transmission. :(
Bernard Fife
Posts: 1696
Joined: Fri Apr 04, 2008 1:28 pm

Re: Which 'load' is used in the PC calculations?

Post by Bernard Fife »

Martin,

That's too bad. I checked the physical output for sp3 on my scope and it appears to work properly with your settings, matching the sp3% value from the table.

A disconnected output would give you 100% line pressure (0% PWM) all the time, so that's not likely to be the case.

However, if the wiring to the PC was shorted to ground, it could cause slippage, so that's what I would check before tearing the transmission apart.

If this were mine I would pull the connector from the trans and check the resistance from the PC pin on the harness side to ground. If it is 'infinite', then the harness isn't shorted. If the resistance isn't infinite, then try also disconnecting the ampseal connector at the GPIO board and rechecking the resistance on the PC pin to ground. If it is still not infinite (or at least many, many thousands of Ohms) then the problem is likely in the harness.

If the resistance is infinite when the connector(s) are disconnected, then the problem is probably inside the trans itself.

Lance.
"Never wrestle with pigs. You both get dirty and the pig likes it." - George Bernard Shaw
Addicted
Posts: 188
Joined: Mon Oct 14, 2013 7:14 am
Location: Winchester, England

Re: Which 'load' is used in the PC calculations?

Post by Addicted »

Cheers Lance,

Incidently, looking at the attached log, Sp3% drops to zero during Ureq and Dreq.. is this right? thats effectively increasing line pressure to 100% during shifts..
Attachments
Copy of 2015-04-22_19.22.42.msl
(841.17 KiB) Downloaded 872 times
Post Reply