There is a critical issue with the firmware - I recommend against starting engines, any pin can stick open. More on this @ https://sourceforge.net/p/rusefi/tickets/107/
This project needs more software developers
I've also added a feature into dev console - it would check at the server if a critical issue is pending and show a warning on startup.
That's easy it's 42. http://en.wikipedia.org/wiki/42_(number) For those that haven't read the 5 book trilogy, known as the hitch hikes guide to the galaxy, I'd recommend it.
The root cause was irq nesting - in debug I've experienced up to 4 IRQs nesting one within another, most of them had no reason to have higher priority then others. As a fix I've assigned same priority to all IRQs. If that would have negative effects on performance I would revisit this, but anyway no reason to have six different levels of priority. The evil with nesting is that the planets have to align right for you to test this condition and there is nothing you can do to get it sooner then later.
Hey Andrey, well thanks to you for this great project! I will try to get some more patches to you in the next few days hopefully. I have a couple more improvements I want to do
I am again banging my head over some performance Still sporadic trigger synchronization issues with 60/2 @ 5000 rpm. Again not exactly sure what is the issue about.
russian wrote:I am again banging my head over some performance Still sporadic trigger synchronization issues with 60/2 @ 5000 rpm. Again not exactly sure what is the issue about.
We only have 100uS between rise and fall of a 60-2 trigger @ 5000 rpm, that's 18000 (18K) CPU ticks.
The way the firmware is designed right now, it wants to do a lot of calculations for the whole next engine cycle within the 1st tooth handling. triggerinfo now shows ignitionMathTime value which is the duration of this calculation in systicks. Right now this value is about 5K cpu ticks and that's a lot, 5K is too close to 18K.
I had to scalp a lot of excess in the code - less method calls more macro, less pointers more global variables. Also a huge part of the problem was a less-then-correct gap setting for 60/2 trigger (was 2.5+-25%. should be 3+-25%). https://sourceforge.net/p/rusefi/tickets/115/ is resolved
Note the delay between LCD turning on and the status LED (top-right corner of the frame) turning on. (the slow camera cannot shoot the blinking but it's there)
Also note the spark channel #1 being ON on startup (bottom-left corner of the frame)
Usability improvement: dev console now remembers last open tab & last entered command. The addition of configuration saving opens potential for more usability improvements.