MEGAsquirt A place to collectively sort out this megasquirt gizmo

Anyone using Limp Modes?

Thread Tools
 
Search this Thread
 
Old 11-07-2017, 07:23 PM
  #1  
Retired Mech Design Engr
Thread Starter
iTrader: (3)
 
DNMakinson's Avatar
 
Join Date: Jan 2013
Location: Seneca, SC
Posts: 5,009
Total Cats: 857
Default Anyone using Limp Modes?

Reason I ask is that when my MS3 goes into Limp Mode, the boost limit (boost cut) is not operating.

FW is 1.4.1 on MS3-Basic.

Rev Limit Works. "No EBC" Works. Boost Limit does not work.

No responses on MSEXTRA forum.

@Reverant can you help me with this?

Last edited by DNMakinson; 11-08-2017 at 10:45 AM.
DNMakinson is offline  
Old 11-08-2017, 11:08 AM
  #2  
Retired Mech Design Engr
Thread Starter
iTrader: (3)
 
DNMakinson's Avatar
 
Join Date: Jan 2013
Location: Seneca, SC
Posts: 5,009
Total Cats: 857
Default

From ms3.misc.c, It seems to me that there should be something in the overboost section similar as to what is in the revlimit section that refers to Status7-LIMP. I have highlighted those areas in the copied info below:

if (outpc.status7 & STATUS7_LIMP) {
if (limit > ram5.cel_revlim) { /* Use lowest of the two */
limit = ram5.cel_revlim;
}
}


RevLimRpm2 = limit;
RevLimRpm1 = limit - ram4.RevLimNormal2_hyst;

/* random number based spark cut */
if (ram4.RevLimOption & 0x4) {
if (outpc.rpm > ram4.RevLimNormal2) {
spkcut_thresh_tmp = 254;
flagbyte10 |= FLAGBYTE10_SPKCUTTMP;
} else if (outpc.rpm > RevLimRpm1) {
unsigned char sc_tmp;
if (outpc.rpm >= RevLimRpm2) {
sc_tmp = 254;
} else {
sc_tmp = (255L * (outpc.rpm - RevLimRpm1)) / (RevLimRpm2 - RevLimRpm1);
if (sc_tmp > 254) {
sc_tmp = 254;
}
}
if (sc_tmp > spkcut_thresh_tmp) {
spkcut_thresh_tmp = sc_tmp;
}
flagbyte10 |= FLAGBYTE10_SPKCUTTMP;
}
// no else, initialised to zero on each mainloop pass
}

if (ram4.OverBoostOption & 0x03) {
int maxboost;
unsigned char ob1 = 0;

if ( (ram5.dualfuel_sw2 & 0x10) && (ram5.dualfuel_sw & 0x1)
&& ((ram5.dualfuel_opt & DUALFUEL_OPT_MODE_MASK) == DUALFUEL_OPT_MODE_FLEXBLEND) ) {
maxboost = (int)((((long)ram4.OverBoostKpa * (100 - flexblend)) + ((long)ram4.OverBoostKpa2 * flexblend)) / 100);
} else if (pin_tsw_ob && ((*port_tsw_ob & pin_tsw_ob) == pin_match_tsw_ob)) {
maxboost = ram4.OverBoostKpa2;
} else {
maxboost = ram4.OverBoostKpa;
}


if (outpc.map > maxboost) {
ob1 = 1;
} else if ((ram4.OverBoostOption & 0x04) && (ram4.boost_ctl_settings & BOOST_CTL_CLOSED_LOOP)
&& ((outpc.map - outpc.boost_targ_1) > ram4.boosttol)) {
ob1 = 1;
} else if (outpc.map < (maxboost - ram4.OverBoostHyst)) {
if ((ram4.OverBoostOption & 0x04) && (ram4.boost_ctl_settings & BOOST_CTL_CLOSED_LOOP)) {
if (outpc.map < (outpc.boost_targ_1 + ram4.boosttol - ram4.OverBoostHyst)) {
ob1 = 2;
}
} else {
ob1 = 2;
DNMakinson is offline  
Old 11-08-2017, 04:44 PM
  #3  
Elite Member
iTrader: (10)
 
Reverant's Avatar
 
Join Date: Jun 2006
Location: Athens, Greece
Posts: 5,979
Total Cats: 356
Default

I'll have a look when I can.
Reverant is offline  




All times are GMT -4. The time now is 06:58 PM.