No_Miss_Teeth not used during initial sync and sync check?

Testing and development of Megasquirt 3

Moderators: jsmcortina, muythaibxr

Post Reply
Reverant
Super MS/Extra'er
Posts: 1233
Joined: Sat Apr 15, 2006 12:39 am
Location: Athens, Greece

No_Miss_Teeth not used during initial sync and sync check?

Post by Reverant »

Hi, I'm trying to troubleshoot a car with 24-1 missing tooth wheel on the camshaft (VR sensor).

The car exhibits random starter kickback, mostly when cold but sometimes hot as well. Playing with the cranking advance doesn't help.

Initially the car was on the notorious 24+1 Nippondenso distributor. I advised to convert this to a 24-1 and not to use the 2nd trigger at all, since this is on the cam; a practive I've done on other cars with success. This one appears to be a little more troublesome.

On inspecting the composite log, it seems that during cranking, there are at least 3 places where due to high compression, the wheel pulses have a period that could be interpreted as a missing tooth place, and so spark the next cylinder event as there's sync.

After analyzing the data even more, it seemed that converting it to 24-2 would solve the problem, so we did, but to our surprise, the problem was not solved.

Looking at the code for the missing wheel decoder, I see this:

Code: Select all

    if (!(synch & SYNC_SYNCED)) {
        if (!(synch & SYNC_SEMI)) { 
            /* Here we will look for missing */
            temp1 = tooth_diff_last + (tooth_diff_last >> 1);
and then:

Code: Select all

            /* tooth after what we thought was missing, lets make sure this one is short
             * on the first sync, we miss tooth #1, but that's ok as long as we catch it next time
             * split this into 2 operations so compiler doesn't call subroutine
             */
            temp1 = (tooth_diff_last >> 1); /* 1/2 of last value */
            temp1 = temp1 >> 1;     /* 1/4th of last value */

            temp1 = tooth_diff_last - temp1;        /* 3/4ths of last value */
and finally:

Code: Select all

tooth_no = mid_last_tooth + ram4.No_Miss_Teeth + 1;
So it appears that the number of missing teeth is NOT taken account when checking for sync; only to set the current tooth number after finding the missing tooth location. The code always checks if the current gap is 1.5 times the previous gap, and after that, if the next gap is less than 3/4 of the previous (suspected missing tooth location) gap. These numbers (1.5, 0.75) don't take into account the number of missing teeth and only assume a single missing tooth.

Obviously this cancels out the only benefit of a higher missing tooth count; can we do anything about this?
The man behind MS Labs
2005 Audi A3 2.0L TFSI DSG AWD - Extreme MS3
2002 Mazda Miata 1.8 6sp - Enhanced MS3 1.4.0, sequential injection, sequential ignition, big turbo, lots of boost
suberimakuri
Master MS/Extra'er
Posts: 632
Joined: Sun May 02, 2004 2:16 pm
Location: Auckland, NZ
Contact:

Re: No_Miss_Teeth not used during initial sync and sync chec

Post by suberimakuri »

Good work parsing through the code.

What about go back to the standard wheel with ne+g1(or g2)?
I'm running a couple cars with this and ms3x and it's been sweet. Still need to adjust pots and run good signal wire but no sensor move or anything.

I've had issues with ms2 and lm1815 though.
Reverant
Super MS/Extra'er
Posts: 1233
Joined: Sat Apr 15, 2006 12:39 am
Location: Athens, Greece

Re: No_Miss_Teeth not used during initial sync and sync chec

Post by Reverant »

I've solved this issue in another way, but the issue still remains on other cars.
The man behind MS Labs
2005 Audi A3 2.0L TFSI DSG AWD - Extreme MS3
2002 Mazda Miata 1.8 6sp - Enhanced MS3 1.4.0, sequential injection, sequential ignition, big turbo, lots of boost
MS2tester
Master MS/Extra'er
Posts: 606
Joined: Sat Apr 11, 2009 12:54 pm
Location: Aalsmeer the netherlands
Contact:

Re: No_Miss_Teeth not used during initial sync and sync chec

Post by MS2tester »

I was thinking aboout your problem
And was wondering if going to a 36-1 or even 60-2 wheel would solve it
Since the compression waves in the tooth time would be more gradual
Attachments
FB_IMG_1520364700132.jpg
FB_IMG_1520364700132.jpg (41.16 KiB) Viewed 396 times
Reverant
Super MS/Extra'er
Posts: 1233
Joined: Sat Apr 15, 2006 12:39 am
Location: Athens, Greece

Re: No_Miss_Teeth not used during initial sync and sync chec

Post by Reverant »

Maybe, the problem is exacerbated by the fact that the trigger wheel is on the cam; the effective teeth are halved and there's belt stretching as well.
The man behind MS Labs
2005 Audi A3 2.0L TFSI DSG AWD - Extreme MS3
2002 Mazda Miata 1.8 6sp - Enhanced MS3 1.4.0, sequential injection, sequential ignition, big turbo, lots of boost
MS2tester
Master MS/Extra'er
Posts: 606
Joined: Sat Apr 11, 2009 12:54 pm
Location: Aalsmeer the netherlands
Contact:

Re: No_Miss_Teeth not used during initial sync and sync chec

Post by MS2tester »

Yes maybe you could go even higher in tooth count since you are rotating at half the crank speed
Reverant
Super MS/Extra'er
Posts: 1233
Joined: Sat Apr 15, 2006 12:39 am
Location: Athens, Greece

Re: No_Miss_Teeth not used during initial sync and sync chec

Post by Reverant »

Well, we are able to use the original 24+1 teeth, so for now we are in the clear for this particular car, but this remains problem that needs to be addressed for other cars.
The man behind MS Labs
2005 Audi A3 2.0L TFSI DSG AWD - Extreme MS3
2002 Mazda Miata 1.8 6sp - Enhanced MS3 1.4.0, sequential injection, sequential ignition, big turbo, lots of boost
MS2tester
Master MS/Extra'er
Posts: 606
Joined: Sat Apr 11, 2009 12:54 pm
Location: Aalsmeer the netherlands
Contact:

Re: No_Miss_Teeth not used during initial sync and sync chec

Post by MS2tester »

I assume the majority of engines have the wheel on the crank which might be smoother
Maybe high compression motorbikes engines
Perhaps going non missing with a cam synch would be the answer
Like your 24+1
The code would not look for a missing tooth 1.5 tooth time
Post Reply