Page 1 of 1

OSE12P Spark Cut (Dwell limiter) proof of concept

Posted: Wed Jul 20, 2022 11:36 am
by BennVenn
I've been playing around with the EST code in 12P the last couple of days (mostly to increase dwell to drive stock N13 coils a bit harder) and have produced a working proof of concept that a form of spark cut is possible on the 808. It's been talked about here over the years but I'm not too sure how much progress was made.

I've got the dwell down to around 0.3mS which is enough to misfire the coils. It can go lower with closer attention to code paths as any changes in this routine adds timing penalties that you need to correct to maintain accurate spark timing. Having access to the source would be helpful here.

The RPM checking code is already in 12P and I'm planning on using the hard fuel cut flag to 'dwell cut'

This code isn't too resource intensive only requiring two bytes of RAM to implement and an extra 6 bytes of code space in the EST function and around 12 bytes in the rev limit checking function. The code seems to work fine with timing + and - the reference angle

What I don't know is what timing penalties would be added to the main interrupt routine (which could theoretically limit max RPM) and what affect this has at higher RPM (not sure how dwell is coded for higher RPM, it looks like static values for defined RPM regions but without the source it would take a fair bit of time to reverse engineer). At this point, the dwell time counts are coded for a specific RPM rev-limit only, a lookup table would be needed to interpolate a value over a wide region which takes up time in already tight loop. No reason tunerpro couldn't create the value for you though.
proofOfConcept.png

Re: OSE12P Spark Cut (Dwell limiter) proof of concept

Posted: Wed Jul 20, 2022 1:20 pm
by BennVenn
Probably more useful is the fact/discovery? that the 808 timer IC does support hardware spark cut!

Bit 1 at $3FFC is the master timer enable disable bit. Setting the bit high will not output an EST pulse.

It looks like 12p code is checking the ESTLOOP timer and if it doesn't see the pulse it triggers EST bypass mode. The code below flips the bit every other reference pulse to keep 12P from forcing bypass mode. We can see we're skipping an EST pulse in the trace.

If we modify the ESTLOOP timer code to ignore an overflow while spark cut is enabled, the ECU shouldn't go into EST bypass and instead do a real spark cut for as long as we ask it. It wouldn't need to live in the EST code loop either, in one of the timeloops or beside the current fuel cut code would be more than good enough.
HWcut.JPG

Re: OSE12P Spark Cut (Dwell limiter) proof of concept

Posted: Wed Jul 20, 2022 7:36 pm
by charlay86
I'm sure there are several ways to force the hardware into not firing the est pulse, the trick is ensuring that it behaves reliably without any side effects.

Re: OSE12P Spark Cut (Dwell limiter) proof of concept

Posted: Wed Jul 20, 2022 7:50 pm
by vlad01
11P has spark cut via dwell tuning. I think it was 202 that did it and got it working?

But 424 has different ignition control IC than the 808 with more functionally iirc.

Re: OSE12P Spark Cut (Dwell limiter) proof of concept

Posted: Thu Jul 21, 2022 3:31 pm
by antus
thats correct, I recall VL400 saying the functionality was moved from discrete hardware in to CPU between 12P and 11P, that was why it supposedly couldnt be done in 12P. So while it might not be possible to program 0ms in 12P it seen bennvenn has found the main switch to turn off spark, and that does work.