Firmware and MegaTune patch for 1.0.23 - ALS, Launch control, Soft revlimiter, etc

With this modification, the current ALS code reworked a little to meet racer's needs. Several options implemented, whose you see only on expensive professional systems before. Take a look to the setup window:


Let me explain the config variables:

Global settings

ALS Ignition retard example (with als_retard = 50 degrees):


ALS ignition cut is similar, but the 2 RPM thresholds, the 2 TPS thresholds and the max cut can be adjusted independently.

OLD drawing (same, but different axis): igniton retarding and spark cutting is done as seen of the figure:


Note: the horizontal axis is labelled TPS, don't think that is RPM!

Ignition Retarding

Spark Cutting

You can enable ALS functions in my_make:


Override default maximum 20 degree ATDC limit:


The patch contains implementation of three new soft revlimiters. Soft revlimiters cut spark instead of cutting fuel if the desired maximum rpm are about to beaten. These are used for idle control, launch control and redline control. Idle control is TPS sensitive, and disabled, if ALS enabled and working. Launch control can be enabled with a button on the steering wheel, and it can be combined with the ALS. Redline control is for normal overrun protection without unsafe lean run, which is essential for the turbo engines. All (soft)revlimiters in one window:


And there is a little explaining about these.

Idle control

Used on racecars, where no other methods (IAC stepper, PWM solenoid) can be applied, especially where always open throttle is needed. The main function is to limit the rpm on a reasonable low range, when the pedal is depressed, and ALS is not active. See the figure.


Sorry for not commenting this earlier, I thought that "spark cut" was a typo. NOTE that this should be fuel cut in most cases as it cools the engine and exhaust. The function is called ALS_COOLDOWN by Autronic. -Jörgen

The lower "target rpm" and normal fuel amount will make the spark cut run cooler then ALS and it can be useful for keeping the tempreature of the manifold and turbo up when idling before the start. We should be able to choose fuel cut or spark cut for the "ALS_IDLE" I suggest that we call this function ALS_IDLE.

Note that spark cut is likely to cool the exhaust efficiently when the exhaust is not white-hot. But when the exhaust is extremely hot it's likely that the fuel will burn the second it enters the exhaust and this might be dangerous. -Jörgen

You can enable spark-cut based idle control in my_make:


Launch control

Used on start line, to achieve best performance with the less effort. Driver must press gas pedal to 100%, and press a button on the wheel. Launch control routine need to limit the rpm into a desired range, while the button pressed, and allow ALS to work (ALS normally disabled on so high TPS). See the figure how it is achieved:


You can enable launch control in my_make:


Q: How to archieve constant boost using launch control? We need lower boost than boost control gives at 100% TPS. Say 1.2 bar on launch control but full boost near 2bar. Currently launch control manage retard relatively to advance table. as boost start to rising -> spark retards -> boost rises... It is labile situation: Process at beginning gives relatively slow boost bulid-up because of less retard than little later. Then during ~2-4 seconds (it is too long when other driver is ready on start) boost rises up too maximal and it causes overspinning from startline. Driver have no control over. Is there some way to manage it? GintsK?

Redline control

Simple sparkcut-based revlimiter, used below the hard RPM limiter, as you see on this figure:


You can enable launch control in my_make:


If you are understand and accepted the warnings generated in compile time, when using SOFTRPM based new functions, you can disable them with the following line in my_make:


Fero's ALS related suggestions

How to disable ALS

The below config snippet (variables directly available since 1.0.32) disables ALS: (and kpa_conf configures reasonable unit for KPA-pressure related variables, 2 kPa for kpafac and 1 kPa for other variables including the k[] bins). kpa_conf=22 applies for the high-boost megatune profile (config units is 2kPa everywhere), for an engine that needs further retard and VE-increase above 256 kPa MAP (with this, engine mappable upto 510 kPa, above which further retard or VE-increase is not possible, but injector pulsewidth will continue to grow proportionally with even higher MAP of course).


Here is the quick path to start upgrade from a pre-ALS firmware to an ALS firmware. This minimizes the chance to get bitten by serious unintentionaly retard accidentally activated.

Uploading the tables is similar (although it can be done from MegaTune - Remember to use a recent MegaTune for the ALS firmware):

If you have questions, remember to use your MembersPage and provide all necessary info as on IssueReports. Eg. (especially when testing an experimental firmware), when you suspect there is no retard in ALS mode, look at the "spark-angle" gauge or capture logs. This will certainly help identify the issue.

Old settings, with comments:

Launch Control suggestion

Deactivate launch using TPS (without clutch or simular switch),

Example: We set high and low TPS value for the launch to be activated. Low=50% (???), High=90%.

Lower threshold disables launch means that releasing throttle => RPM goes up Truly horrifying and unexpected. That cannot be good !

Offcourse we would need an overrev protection, if the driver gives more throttle and deactive the launch with no engine load. But this would probably be cought by the rev-limiter since launch is off at that state? - Reidar

under that turbo-boost engine revvup, it's likely to blow up the engine... But without the lower threshold (leave launch mode above one adjustable threshold - above 100% disables this feature) it should be less likely to get burnt by the horrifying "releasing throttle => engine-revvup" behavior

So is there ANY case where the "release throttle" => increase RPM limit (which is the result of the lower threshold ) is justified ? If no, we can just delete the reference to launch deactivated by TPS "lower threshold" and clean up the concept.

The two step TPS is a verry good suggestion, and I think we should focus on this.