Pages: 1 [2] 3
Author Topic: Med17 simple launch control - Ign retard  (Read 21454 times)
gt-innovation
Sr. Member
****

Karma: +60/-89
Offline Offline

Posts: 443


« Reply #15 on: August 11, 2019, 02:07:35 PM »

Start from the basics.... Load your own med17 file with ida ..study the original code and try to identify the variables/functions etc...after a while you will understand what this is as you will see that multiple times on the original code.

After some months come back on this thread and read it again.There is no reason to expect a full understanding of what any line does unless you spent some time with ida and a random full med17 readout...
Logged
Herleybob
Newbie
*

Karma: +4/-0
Offline Offline

Posts: 11


« Reply #16 on: August 30, 2020, 01:51:44 PM »

Start from the basics.... Load your own med17 file with ida ..study the original code and try to identify the variables/functions etc...after a while you will understand what this is as you will see that multiple times on the original code.

After some months come back on this thread and read it again.There is no reason to expect a full understanding of what any line does unless you spent some time with ida and a random full med17 readout...

Bringing this back from the dead.

I'm currently writing a LC for my ME17, i successfully cut spark at desired RPM(with changing dwell output). It doesn't always refer to the dwell table while sitting on launch RPM and seems to push past the desired launch RPM. My ECM calls a couple functions from SPRAM for outputting coil triggers, and i haven't figured out how those functions get copied to SPRAM yet so i can't follow them to see what exactly they do and or see the ECM trigger the coil's(they do it over SPI to a seperate IC inside the ECM).

So i'm investigating doing launch by changing timing. How far are you retarding/advancing timing, my ECM limits timing to 54 degrees of advance but i can set LC timing after that check. Timing on my ECM is set in an 8-bit signed int, so the max i can advance is 127 degrees. My though is to advance so far that the spark plug sparks before any fuel is injected, causing a spark cut essentially. is this correct thinking? 127 BTDC is still after fuel is injected.

Is my thinking correct, or am i way left field on this?

Thanks.
« Last Edit: August 30, 2020, 02:30:05 PM by Herleybob » Logged
gt-innovation
Sr. Member
****

Karma: +60/-89
Offline Offline

Posts: 443


« Reply #17 on: August 31, 2020, 01:25:08 AM »

There are multiple ways to cut spark. study ignition fade bits on the fr...

The way you are trying to do it i assume is through szouthom_w but you probably missed something before that.

On some sw versions you have to see also that there is the stratified output and temp values for dwell times.

Hijack it properly and it will work...

As far as the retardation goes..Its simple, study the internal combustion engine and you will know Smiley
Logged
Herleybob
Newbie
*

Karma: +4/-0
Offline Offline

Posts: 11


« Reply #18 on: August 31, 2020, 06:47:36 PM »

There are multiple ways to cut spark. study ignition fade bits on the fr...

The way you are trying to do it i assume is through szouthom_w but you probably missed something before that.

On some sw versions you have to see also that there is the stratified output and temp values for dwell times.

Hijack it properly and it will work...

As far as the retardation goes..Its simple, study the internal combustion engine and you will know Smiley

Thank you for the reply. I don't have a fr to go off of, this is all just by studying the ecm.

Yes, i followed the Dwell table (Batt V / RPM) and found the address in RAM that is stored with the table output, that gets multiplied by 3 and then that gets read into a core special function register within the function. Is the stratified output within the same function possibly?

I believe i found the calculation for dwell temp output, but it gets bypassed by a bit in the configuration area.

Edit: I looked a little deeper. Hooked up an oscilloscope to the coil trigger wire. Set dwell to 0 and fed the ecm a simulated crank trigger. Found when setting dwell to 0, it still pulled coil trigger wire to low and instantly back. Found where it called a function that passed the coil dwell time to a register and set/bypassed that and now it does not pull the coil control low. Thanks for the help.
« Last Edit: September 03, 2020, 08:52:10 PM by Herleybob » Logged
woj
Hero Member
*****

Karma: +41/-3
Offline Offline

Posts: 500


« Reply #19 on: July 19, 2022, 01:43:43 PM »

There are multiple ways to cut spark. study ignition fade bits on the fr...

Reviving an old one. First, not knowing German does not really help digging the information out from FR (that's the only FR I have for MED17). We are working with ME17.3.0 and cutting spark through szout_w hijacking, still trying different values for the best result (yes, I know 0 is not a good idea), but I would like to find a cleaner way, as leaving something in szout_w does not cut the spark fully and the effect is not as pleasing as it could be. So any more hint (variable name?) on how to cut spark better would be appreciated.

Second, back to the first post (thanks for that info BTW). Is there anything fundamentally wrong with introducing the retard through hijacking zwgruhom? Apart from the obvious limitation by all ZWMN maps on the way to zwcalcar. Again, we got it to work like this, but I am still after improving the code and perhaps I have not yet hit any use cases where zwgruhom would not do what I would like it to do.
Logged
gt-innovation
Sr. Member
****

Karma: +60/-89
Offline Offline

Posts: 443


« Reply #20 on: July 20, 2022, 12:58:51 AM »

There are plenty of ways to approach this.The "right way" is to build your own table, put it into a function that uses zwmin and then trigger it based on a condition.

As far as ignition Cut goes there are also 2-3 ways to do it...Again the somehow "Right way" is the ignition fade in/out function while "forcing" an overrun condition as ignition fade in/out functions are triggering fuel cut.You could also make certain functions disregard fuel cut while you are on LC.

That said it would be good to set one more table for boost control and make sure that the functions you are hijacking are disabling misfire recognition otherwise you will have to do it yourself.

Setting a manual value to Szout_w is not always a bad idea and mostly depends on the coil type. Some immo functions on bosch ecus are inducing fuel and ignition cut so you could study that as well.

BTW fuel cut is just for show. I use retard via zwout_syns (or syncs0 ) function and hlsdem on newer vag based cars to achieve such results for rolling launch or launch control.

https://www.youtube.com/watch?v=4zjhuW_C4nM
« Last Edit: July 20, 2022, 01:08:08 AM by gt-innovation » Logged
prj
Hero Member
*****

Karma: +915/-426
Offline Offline

Posts: 5834


« Reply #21 on: July 20, 2022, 01:22:54 AM »

With only hlsdem it still closed throttle... unless you make hlsdem always cut, but that's not always desirable.

When I was doing rolling antilag a while ago, I did the following:
1. Hijack zwout based on a map, which gets activated delta rpm before target.
2. Set a different hlsdem target.
3. Introduce a map with delta RPM to target and the output being how many cylinders to fade out. This way you have a soft rolling fadeout mask also.

This is closest to the OEM launch control on S18 and MED17.1.62...
Lets you build as much boost as you want while still being soft.
Logged

PM's will not be answered, so don't even try.
Log your car properly.
woj
Hero Member
*****

Karma: +41/-3
Offline Offline

Posts: 500


« Reply #22 on: July 20, 2022, 03:29:12 AM »

Thanks for all the pointers. I got most of what you said, the problem is that the ignition fade in/out procedures are total mystery to me. I did disable misfire detection and knock detection (just to be safe) "manually", so these should not be a problem. And there is a WG duty cycle control on top of things too (essentially the code is a complete mirror of what I have done for ME7.9.10 some years ago and posted somewhere here). Just that ME17 is more stubborn it seems.

So for now I am sticking with reducing szout_w, but now I also forcefully reset fubaanz to 0 when cutting spark. As for ZW, I moved from zwgruhom to your way posted here, there was a problem with this though, on ME17 zwcalcar has a complement array for monitoring (did not see this in your listing), so both of them have to be modified. Long story short, most optimal way was to do it "slightly" elsewhere than you did it to avoid hooking up in two places in a contrived way. If this works, I will post some details here for future generations Wink I am not the tester of this, so now I have to wait for the next results.

As for the "soft" solution, the "kids" want to be really loud it seems (and then collect pieces of their engines from the ground, but that's not my concern), the client is always right... Wink
Logged
prj
Hero Member
*****

Karma: +915/-426
Offline Offline

Posts: 5834


« Reply #23 on: July 20, 2022, 04:49:05 AM »

You don't need to disable anything if you use the correct way to fade out cylinders.
Logged

PM's will not be answered, so don't even try.
Log your car properly.
gt-innovation
Sr. Member
****

Karma: +60/-89
Offline Offline

Posts: 443


« Reply #24 on: July 20, 2022, 09:58:35 AM »

Thanks for all the pointers. I got most of what you said, the problem is that the ignition fade in/out procedures are total mystery to me. I did disable misfire detection and knock detection (just to be safe) "manually", so these should not be a problem. And there is a WG duty cycle control on top of things too (essentially the code is a complete mirror of what I have done for ME7.9.10 some years ago and posted somewhere here). Just that ME17 is more stubborn it seems.

So for now I am sticking with reducing szout_w, but now I also forcefully reset fubaanz to 0 when cutting spark. As for ZW, I moved from zwgruhom to your way posted here, there was a problem with this though, on ME17 zwcalcar has a complement array for monitoring (did not see this in your listing), so both of them have to be modified. Long story short, most optimal way was to do it "slightly" elsewhere than you did it to avoid hooking up in two places in a contrived way. If this works, I will post some details here for future generations Wink I am not the tester of this, so now I have to wait for the next results.

As for the "soft" solution, the "kids" want to be really loud it seems (and then collect pieces of their engines from the ground, but that's not my concern), the client is always right... Wink

Find this and analyze it "ignFadeStatBits_w"
Logged
terminator
Sr. Member
****

Karma: +15/-4
Offline Offline

Posts: 425


« Reply #25 on: July 20, 2022, 10:19:59 AM »

First, not knowing German does not really help digging the information out from FR

it was right a few years ago. Google Translate really translates these days)
Logged
woj
Hero Member
*****

Karma: +41/-3
Offline Offline

Posts: 500


« Reply #26 on: July 20, 2022, 11:12:09 AM »

it was right a few years ago. Google Translate really translates these days)

I do not doubt the quality of the translation, just that copying and pasting it piece by piece is a bit of pain... Anyhow, now I got my hands on the actual FRs for the ECU I am working with, and in the right language too.
Logged
woj
Hero Member
*****

Karma: +41/-3
Offline Offline

Posts: 500


« Reply #27 on: July 20, 2022, 11:15:04 AM »

Find this and analyze it "ignFadeStatBits_w"

Came across this, but also many other things with suggestive names. Thanks for putting me on some track Wink In the process also discovered there is this B_koevab business, which at first sounded like exactly what I would need, but then it cuts everything, including the throttle, so not what I need I guess.
Logged
woj
Hero Member
*****

Karma: +41/-3
Offline Offline

Posts: 500


« Reply #28 on: July 20, 2022, 11:58:57 AM »

Find this and analyze it "ignFadeStatBits_w"

OK, this seems easier than I thought (or I am totally wrong), there are dedicated functions I can call to turn the ignition off and on, for all cylinders or selectively. So another direct question, I know that you know what I mean, which one of these patterns will work the best:

Code:
POSTDRV
WFS
NLZOFF
COMPTST
DMDZAG
AIRBAG
WDA
RDE
NLPH
IGNSTRT
CYLCUTOFF

I do not want to test all of them, my money would go on CYLCUTOFF or DMDZAG.
Logged
woj
Hero Member
*****

Karma: +41/-3
Offline Offline

Posts: 500


« Reply #29 on: July 21, 2022, 10:33:43 AM »

I have been studying the FRs and sources for almost two straight days now, I still can't figure out how the ignition fade-out request is coupled with the injection cut-off  Huh
Logged
Pages: 1 [2] 3
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.024 seconds with 18 queries. (Pretty URLs adds 0s, 0q)