Re: my simple ECU
Posted: Fri Dec 05, 2014 7:06 pm
Added a features which might be pretty powerful potentially: FSIO, fanciest-schmanciest IO.
rusEfi now supports up to 16 user-configurable outputs, each of these could be either an on/off or PWM signal. In case of a PWM signal the frequency is defined in the configuration and the duty cycle is dynamically controlled by the evaluated expression.
Fuel pump is already using this mechanism as "(time_since_boot < 4) OR (rpm > 0)"
Coolant fan logic is (fan and (coolant > fan_off_setting)) OR (coolant > fan_on_setting)
When I say user-configurable, I mean that one can open the console and specify the expression text in RPN:
the firmware would parse this expression, evaluate it constantly and drive an output pin according to the result. Non-zero would turn the pin on in case of digital mode, or the value would be used as the duty cycle in PWM mode. You are not re-compiling anything here - you are providing the expression and the rest is taken care of.
For example:
commands the duty cycle to go from 10% @ 1000 rpm to 90% at 5000rpm
I am hoping that advanced users might potentially use this to control stuff like VVT/VICS etc as long as they speak RPN
rusEfi now supports up to 16 user-configurable outputs, each of these could be either an on/off or PWM signal. In case of a PWM signal the frequency is defined in the configuration and the duty cycle is dynamically controlled by the evaluated expression.
Fuel pump is already using this mechanism as "(time_since_boot < 4) OR (rpm > 0)"
Coolant fan logic is (fan and (coolant > fan_off_setting)) OR (coolant > fan_on_setting)
When I say user-configurable, I mean that one can open the console and specify the expression text in RPN:
Code: Select all
set_fsio 1 "fan coolant fan_off_setting > & coolant fan_on_setting > OR"
For example:
Code: Select all
set_fsio 1 "rpm 1000 - 5000 / 0.1 max 0.9 min"
I am hoping that advanced users might potentially use this to control stuff like VVT/VICS etc as long as they speak RPN