First off, sorry for all the slacking, I should do a better job of championing my own cause! And, the idea of using tolulene as an additive instead of actual fuel is pretty awesome. I forget if I'd said that. Before commenting on my stuff, one more thing about interupts:
1) Does it make sense to do the scheduling then? It seems like you want to do it soon but don't really care - recording the times is important, and scheduling you can do shortly after
2) To me it seems ideal to do this (I'm assuminglower number interupts take priority, and that pri0 is reset or something) you'd do this:
Tooth pass triggers interupt, Pri2
Read timer, record exact time
*CHANGE* Pri2 to Pri4
Do scheduling
Set flag saying scheduling done
Return
Two things there: The first, can you only end the interupt-prevention, or can you change it? If not, then trigger anotehr interupt. But the idea being that scheduling is important, but not so important you want to mistime a tooth because of it.
Two - If your next tooth stops you before you finish scheduling (i.e. flag not present) you should drop the rest of that calc, and do it based on the new tooth, being the most current information.
Now, on to the fun stuff:
Admin wrote:I've spoken with someone that I know that has tuned quite a few cars and runs staged injection on his own vehicle.
Me: what accuracy would you be happy with timing wise?
Me: 1 deg? 0.5? 0.1?
Him: 1 degree can be 15 hp or detonation
Him: so id like .1 or better
Him: .5 would be adequate in most cases
Given that we can have much better accuracy than 0.5 (worst case) degrees at 8krpm I think the timers for fuel approach is a good one.
Yeah, at 12k rpm you get 14us/degree, so 10us would be a minimum. But if we can do that, disneyland!
He said that timing adjustments yield very small gains, so worrying about the timing of the staged injectors was silly.
I agree there. Timing of fueling is of minimal importance in my estimation. It'll effect atomization some amount, but basically doesn't matter.
He said his EMS of choice uses a map vs % via staged 2d table to control it. Doing it that way opens you up to having longer pulses on the secondaries which I think is A silly and B pointless and C too difficult/unclean.
I'm not sure I see why it's unclean... You figure out the two times, and you close/open (don't care which and don't think it's worth the trouble of bothering to switch it with loads - tune operation for secondaries to be optimal during peak power conditions, and at idle it doesn't matter you won't have them running anyway
His EMS also uses fixed end point at one point, and he thinks its start, not end, which makes sense because of the distance thing.
Interestingly his EMS does timing to 0.1 degree and fuel to 0.01ms.
Heh, that's interesting. Oh, ah, 0.01ms if actually ~10x worse than the spark timing. And I think those are good numbers. Actually, I think 0.5* and 0.1ms is fine, so anything better than that is awesome.
He muttered something about 2ms min pulse width on the secondaries, but I'm not sure if that was enforced by the system, or his choice.
Er, yeah.

Unless it has something to do with how they do the timing and using chip/timer resources.
What did I take from this mix of info?
- Relative timing of staged channels is unimportant
- It's probably a good idea to be able to control relative pulse widths to some extent
- It's OK to window the staged pulse inside the main one
- That our timing scheme is acceptable
- But that someone else agrees with Flacid about timer use. (I don't though, as I think good sequential control is key to this whole project and its largely pointless otherwise)
On that basis and a lack of input since my last post, I'll look into the timing of staged on leading, trailing, or both edges limited to inside the main pulse. It may be that the semantics of these PIT timers make it difficult to do anything like this with them, but we'll see.
Yeah - I agree wholeheartedly with everything in this whole post, and looking for something to move forward with I'd say this is it - except for ONE point: No reason to limit the secondaries to be longer, or shorter, than the primaries. This is a functional agrument, not one about how it should be implimented. But if you can set it up that one can be longer than the other, then heck, someone could shut off primaries if they want, and it's no more trouble for the code if it's writen that way.
I don't know if it's realisitic, but it sums up my wishlist: Staged injection, variable ratios of injections based on a table, 0.1ms and 0.5* accuracy minimum, timing unimportant for fuel.
Plus, when we're done, there will be cake.