- Fri Aug 03, 2018 6:51 pm
#27525
Let me first thank you all of you for this amazing project.
I know that some people request 8 channel injection and/or ignition and that would be very difficult with the 4 16bit timers available in the arduino but I think i found a way to make it possible without much hassle.
As at the moment 6 and 8 cyl operation is possible with wasted spark and semi sequiential ignition, I thought about using time demultiplexing and only using one extra pin on the arduino wich would be flipped every 360º of rotation to indicate which bank is operating. This could be achieved with 8 1:2 demultiplexers, two 74FST3257's for example.
As PSIG pointed out here viewtopic.php?t=600 that would not work as at high rpm's the dwell time from the coils that would fire just before and after the bank flip would overlap (5000rpm's in a v8 @3ms if I'm not wrong)
The solution to that would be easy, instead of grouping the four ignition channels in one ic and the four injector channels in the other, group two injectors and their respecting two ignition channels in each ic, and have two independent select lines.
Every time the two ignition cycles have ended flip their corresponding select line, continue with the other two and after these finish flip their select line. Now the first two channels will be operating in what should have been the two wasted spark cylinders from the first two cycles.
In a v8 with the firing order 1-8-7-2-6-5-4-3 you would have:
In IC A channels 1 (cyl1 and cyl6) and 2 (cyl8 and cyl5) with select line (Hi or Lo) SA
In IC B channels 3 (cyl7 and cyl4) and 4 (cyl2 and cyl3) with select line (Hi or Lo) SB
The operations would be:
1 - 2 - flipSA - 3 - 4 - flipSB- 1 - 2 - flipSA - 3 - 4 - flipSB...
And the fired cylinders:
1 - 8 - 7 - 2 - 6 - 5 - 4 - 3 - 1 - 8 - 7 - 2 - 6 - 5 - 4 - 3...
I think this would add little complexity to the code. Of course the select lines could be flipped in other moments like at the start of dwell or ignition.
One flaw this has is that a board with this layout wouldn't be too good for 4 cyl operation but this could be solved adding 8 jumpers between the IC input and one of it's outputs, and pulling output enable high which leaves the outputs floating. Aditionally if you want the board to be 4 cyl only you don't need to populate the IC's and just add 8 little pieces of wire.
Finally, why? I hate wasted spark: decreased plug life, more noise, higher power consumption and coil heat, etc
Why not?
Maybe this is all flawed and I wrote this post for nothing
I know that some people request 8 channel injection and/or ignition and that would be very difficult with the 4 16bit timers available in the arduino but I think i found a way to make it possible without much hassle.
As at the moment 6 and 8 cyl operation is possible with wasted spark and semi sequiential ignition, I thought about using time demultiplexing and only using one extra pin on the arduino wich would be flipped every 360º of rotation to indicate which bank is operating. This could be achieved with 8 1:2 demultiplexers, two 74FST3257's for example.
As PSIG pointed out here viewtopic.php?t=600 that would not work as at high rpm's the dwell time from the coils that would fire just before and after the bank flip would overlap (5000rpm's in a v8 @3ms if I'm not wrong)
The solution to that would be easy, instead of grouping the four ignition channels in one ic and the four injector channels in the other, group two injectors and their respecting two ignition channels in each ic, and have two independent select lines.
Every time the two ignition cycles have ended flip their corresponding select line, continue with the other two and after these finish flip their select line. Now the first two channels will be operating in what should have been the two wasted spark cylinders from the first two cycles.
In a v8 with the firing order 1-8-7-2-6-5-4-3 you would have:
In IC A channels 1 (cyl1 and cyl6) and 2 (cyl8 and cyl5) with select line (Hi or Lo) SA
In IC B channels 3 (cyl7 and cyl4) and 4 (cyl2 and cyl3) with select line (Hi or Lo) SB
The operations would be:
1 - 2 - flipSA - 3 - 4 - flipSB- 1 - 2 - flipSA - 3 - 4 - flipSB...
And the fired cylinders:
1 - 8 - 7 - 2 - 6 - 5 - 4 - 3 - 1 - 8 - 7 - 2 - 6 - 5 - 4 - 3...
I think this would add little complexity to the code. Of course the select lines could be flipped in other moments like at the start of dwell or ignition.
One flaw this has is that a board with this layout wouldn't be too good for 4 cyl operation but this could be solved adding 8 jumpers between the IC input and one of it's outputs, and pulling output enable high which leaves the outputs floating. Aditionally if you want the board to be 4 cyl only you don't need to populate the IC's and just add 8 little pieces of wire.
Finally, why? I hate wasted spark: decreased plug life, more noise, higher power consumption and coil heat, etc
Why not?
Maybe this is all flawed and I wrote this post for nothing