At the end of the summer , the open engine control unit rusEfi had the first integrated circuit, Frankenso 0.1, then a couple of trails were put in a spoonful of tar.
At the end of August, only three people were able to start the engines on this control unit. In general, the mood was rather depressive. ')
Three months passed, and somehow everything slowly began to improve. The version of the board has been released with corrections - now, if you wish, you can solder the stm32f407 chip directly to the board, the board in this form almost does not look like a designer:
The club rusEfi now ten people and 12 engines. Bred first row six and first moped. The first non-original board appeared:
FSIO
On the one hand, all engines are very similar to each other in terms of engine control - injectors, spark, that's all. On the other hand, modern engines often have auxiliary devices - solenoids of the exhaust gas recovery system, intake geometry change systems, camshaft phase change systems ... Plus, the computer often also has the task of controlling attachments - air conditioning, power steering and radiator fan. There are a lot of variations here, everything is not programmed. Flexible Sexy Input Output is a chip of rusEfi ECU that allows you to control such non-standard equipment using user-defined logical or arithmetic expressions.
For example, the control of the fuel pump: instead of programming the logic in C, we use the FSIO expression (time_since_boot <4) OR (rpm> 0)
Details of the implementation: we translate the expression into the reverse Polish notation, and in this form we consider all this rather quickly - if we optimize and wait for even faster processors, then FSIO expressions can be allowed to be considered already at each turn - and thus make corrections to the flow fuel or spark. But this is still a dream - for the time being, we simply manage relatively slow devices.
A slightly more complicated example: the fan must be turned on and off at different temperatures, because it is hysteresis .
(fan and (coolant> fan_off_setting)) OR (coolant> fan_on_setting)
In existing control units, there is often a configuration of non-standard output ports in one form or another. The option of managing additional ports through a domain-specific language will probably be the most flexible of all the options that do not require compilation and reprogramming.
Pampering
You need to understand that I personally know little about machines - I am a programmer. Somehow the motor works, but by hearing I don’t understand how good or bad everything is, the right tool on this issue is a car dynamometer.
Native unit: 121ls / 127 pounds per foot.
first run on rusEfi - breathtaking 44Hp / 69 pounds per foot. The engine does not like the same ignition advance in the whole range /
8th start: 123hls / 128 pounds per foot, ahead of the native block - hurray. At the same time, only the ignition was tuned - the fuel is calculated according to the Speed ​​Density with the default parameters, apparently there is still potential for tuning.
Why increase the power of only one and a half horsepower? Firstly, because we were tired and went to celebrate :) Secondly, because no fantastic numbers could be taken out of the stock engine, the task of rusEfi is to control the engine with the changes made to it when the factory unit is no longer working.
Plans
Still, you need to understand why integration with HIP9011, which will decode the signal of the knock sensor, does not work. It is necessary to make control of the valve idling on the basis of the slug - while only the solenoid is supported. Still, I want to try a more automotive arm - TMS570 . And much more.