- Thu Apr 02, 2020 7:02 pm
#41824
INJ_CHANNELS 8, IGN_CHANNELS 1
will work fine for injectors, but the ignition output will spark only at cylinders 1 and 5, no matter which spark setup is selected (of course I had set TS to "Single Channel").
INJ_CHANNELS 6, IGN_CHANNELS 3
will work as intended as long as you stick with exactly this setup. I compiled the firmware with these settings just to track down the issue for the behaviour seen with 8+1.
Then I configured TunerStudio for 4 cylinders + single channel spark. The ignition was firing 3 times but missing the last cylinder.
I do not understand the firmware fully yet, but as far as I can tell, the necessary routines are not created if there are less than 4 ignition channels. Check all
Or let's say, the firmware was written assuming that there will always be more than 4 ign channels, so these "edge cases" are not checked and thus not handled right. It would need to alter the way "single channel" works, so instead of pointing all interrupts to the same output, it would require to alter the single ignition timer to fire multiple times per revolution instead of once.
That is what I can tell at the moment, any ideas?
edit: forgot to add, I tried this with MEGA 2560
This should now allow 6 and 8 cylinder semi-sequential and sequential injection with the INJ_CHANNELS and IGN_CHANNELS change in globals.h.I tried the new master firmware with the ability to change the timers in globals.h and found that the ignition outputs were missing in certain constellations.
INJ_CHANNELS 8, IGN_CHANNELS 1
will work fine for injectors, but the ignition output will spark only at cylinders 1 and 5, no matter which spark setup is selected (of course I had set TS to "Single Channel").
INJ_CHANNELS 6, IGN_CHANNELS 3
will work as intended as long as you stick with exactly this setup. I compiled the firmware with these settings just to track down the issue for the behaviour seen with 8+1.
Then I configured TunerStudio for 4 cylinders + single channel spark. The ignition was firing 3 times but missing the last cylinder.
I do not understand the firmware fully yet, but as far as I can tell, the necessary routines are not created if there are less than 4 ignition channels. Check all
Code: Select all
statements#if IGN_CHANNELS >=
Or let's say, the firmware was written assuming that there will always be more than 4 ign channels, so these "edge cases" are not checked and thus not handled right. It would need to alter the way "single channel" works, so instead of pointing all interrupts to the same output, it would require to alter the single ignition timer to fire multiple times per revolution instead of once.
That is what I can tell at the moment, any ideas?
edit: forgot to add, I tried this with MEGA 2560