Any strange behaviour, crashing issues etc, post them here! Problems compiling the firmware should go in the General support section rather than here
#41824
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
#if IGN_CHANNELS >=
statements

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
#46201
Yes, @pazi88 is right.
There have been a few contributions since then (including mine) to get this feature working.

You will need to edit the globals.h. Look for this section and edit as follows:
Code: Select all
  #define CORE_AVR
  #define BOARD_H "board_avr2560.h"
  #define INJ_CHANNELS 8
  #define IGN_CHANNELS 1
Then you have to assign the added channels to an output. This depends on the Speeduino board that you are going to use. You will find the pin mappings in init.ino.
I have been using a UA4C for my tests, therefore I edited the corresponding section. Please note that I replaced VVT / IDLE / BOOST with the injector outputs.
Code: Select all
      pinInjector1 = 8; //Output pin injector 1 is on
      pinInjector2 = 7; //Output pin injector 2 is on
      pinInjector3 = 6; //Output pin injector 3 is on
      pinInjector4 = 5; //Output pin injector 4 is on
      pinInjector5 = 9; //Output pin injector 5 is on PLACEHOLDER value for now
      pinInjector6 = 10; //Output pin injector 6 is on
      pinInjector7 = 11; //Output pin injector 7 is on
      pinInjector8 = 12; //Output pin injector 8 is on
[...]
      pinIdle1 = 38; //Single wire idle control
      pinIdle2 = 39; //2 wire idle control
[...]
      pinVVT_1 = 41; //Default VVT output
[...]
      pinBoost = 40; //Boost control
The last step is to configure TunerStudio appropriately.
Set the number of injectors to 8 + sequential. The warning that there are not enough outputs on the selected board can be ignored if you configured it as demonstrated above.
The last step is to configure the ignition to Single Channel.

I have not heard if anyone else has tested it or is using it yet, therefore I would love to hear some feedback. :D

Hi, I am trying to assign Signed values to the x-a[…]

Vr Conditioner Noise when cranking

New version 202305 don't fix the issue. Now after[…]

blitzbox

I've finally figured out why MAP and Lambda weren'[…]

Hello, I bring news!! Let me tell you that after […]

Still can't find what you're looking for?