OSE12P Spark Cut (Dwell limiter) proof of concept
Posted: Wed Jul 20, 2022 11:36 am
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.
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.