I guess I misunderstood what you were getting at with the rpm spark advance adder. It seems a little like you're trying to fix a problem before you know it exists. Take it from someone who's done that quite a bit lately - science is your friend.
Whatever the case, since we made the firmware and can modify it to our liking, the first, most obvious place to start trying to fix deficiencies is in the controller firmware, not the PCM. This was the first "commandment" I adopted when I decided to give this a shot - no tuning changes should be necessary. Even if only to avoid a CEL that's easily disabled - a problem that was fixed by finding the right set of resistors (thanks be to vilefly). If users disagree with this and want to take my code and fork it in a different direction you have my blessing and encouragement, just call it something else and keep your sources publicly available.
So, I'm hoping to reel you back in on how the spark fire event happens - there's nothing going on in the controller firmware other than the code I posted in the disassembly. This is the highest priority interrupt on the AVR so when the PCM drives the EST line low within four clock ticks all other code execution is pushed down the stack and the ISR that fires the controller's coil is executed. To quantify exactly how much delay that is would require stepping through the disassembly and figuring out how many clock cycles the instructions eat, then dividing by 16mhz. In summary - it doesn't matter how fast the engine is spinning, when the PCM commands the EST line low the AVR stops what it's doing and handles the coil firing.
Edit: going by the instruction set summary it looks like this comes out to a maximum of 14 clock ticks for BTDC spark timing. Adding the worst case of 4 before the ISR begins executing that looks to be 1.125 microseconds (0.000001125s). Check my math, but at 8000 rpm doesn't each crankshaft degree represent about 20.8 microseconds? If that's correct the coil firing delay introduced by the controller would be about 0.054 degrees? So if there is any delta it should be too small to observe at any engine speed the PCM is capable of.
I mean this in a positive and joking way, but I think you might have an addiction to patching. If you're jonesing for a new challenge there's somebody over here asking for a lean cruise strategy for $ee. This would interest me immensely but it's not something I'm capable of and wouldn't have time to test until spring of 2020. It seems to be right in your wheelhouse.
In case anyone's interested, my personal roadmap / goals as they pertain to this project are:
1) replace my wideband and control power to it so it's not being heated without the engine running - should get this done this weekend
In no particular order other than how they're popping out of memory:
*) get my tune to a solid, consistent baseline so I can work on improving and optimizing the diy-ltcc firmware without having to second-guess the cause of any problem - pretty sure this is done but would like to verify with reliable wideband data
*) gather igniter current and target dwell data on some of the most common coils that will be used here
*) improve and optimize the firmware as mentioned, including possibly adding misfire detection, verifying dwell times, etc.
*) add an in-circuit programming header and jumpered ground planes for the leds, and order another, larger batch of boards
*) build an arduino based injector flow bench - I know, this has nothing to do with the project - just a pipe dream I wanted to share
Bookmarks