- Thu Mar 11, 2021 8:42 pm
#48961
Hi!
I`m working on adding the Speeduino to my Yamaha Vmax, which is an oddfire machine. Due to the way the current ignition unit (that i`m not replacing) is wired, I have to use a flywheel signal at 0 and 68 degrees. After that, 292 degrees of nothingness.
To make it (somewhat) work, I had a look at the Harley trigger code, for which I changed the 2nd triggertoothangle from 157 to 68. Next, I noticed I got somewhat of a good reading, however from time to time, the RPM`s would read 0.
The reason for that is this line in: the uint16_t getRPM_Harley() function:
tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime;
Since the first tooth is set a 0 degrees, when it tries to calculate the ROM, the tempToothAngle is 0, resulting in 0 RPM.
So I fixed that by adding the following just in front of it:
if (toothCurrentCount == 1){
tempToothAngle = 292;
}
Now, the RPM`s are fixed, and cylinders 1,2 and 4 fire as they should on the testbed. The Injectors however are for now set to sequential and that results in injector 3 not working. If I decrease the RPM`s a bit, it starts to squirt but after a bit, stops.
To me, it feels like the speeduino doesn't like the huge 292 degree jump and can't interpolate the stuff in between. Any ideas or suggestions to remedy this are greatly appreciated. Thanks!
I`m working on adding the Speeduino to my Yamaha Vmax, which is an oddfire machine. Due to the way the current ignition unit (that i`m not replacing) is wired, I have to use a flywheel signal at 0 and 68 degrees. After that, 292 degrees of nothingness.
To make it (somewhat) work, I had a look at the Harley trigger code, for which I changed the 2nd triggertoothangle from 157 to 68. Next, I noticed I got somewhat of a good reading, however from time to time, the RPM`s would read 0.
The reason for that is this line in: the uint16_t getRPM_Harley() function:
tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime;
Since the first tooth is set a 0 degrees, when it tries to calculate the ROM, the tempToothAngle is 0, resulting in 0 RPM.
So I fixed that by adding the following just in front of it:
if (toothCurrentCount == 1){
tempToothAngle = 292;
}
Now, the RPM`s are fixed, and cylinders 1,2 and 4 fire as they should on the testbed. The Injectors however are for now set to sequential and that results in injector 3 not working. If I decrease the RPM`s a bit, it starts to squirt but after a bit, stops.
To me, it feels like the speeduino doesn't like the huge 292 degree jump and can't interpolate the stuff in between. Any ideas or suggestions to remedy this are greatly appreciated. Thanks!