|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #121 on: June 23, 2016, 02:29:20 AM »
|
|
|
I had some major clutch revision, because my pilot bearing in the crank took a piss and left some parts between the pressure plate and clutch. After some searching I came to a completely new and untested setup with the modified 240mm single mass flywheel. I am now running a Audi v6 unsprung clutch with Porsche 911 996 clutch cover (Sachs SRE). Clutch cover Sachs SRE 883082 999736 (PORSCHE OE-99611602701) old vs new pressure plate Bought new throw out bearing and needle bearing too Bought this Sachs V8 disk, but after fitting it did not work because of the height of the center section with springs allmost touching the fingers of the pressure plate! Too bad... Its for sale, €100,-. Then bought a V6 unsprung Sachs clutch to make sure I did not have this issue anymore. Clutch disk Sachs 1864 528 441 (AUDI OE-034141032L) Had to modify the throw out bearing a bit to extend further out to contact pressure plate, there might be an oem solution for this. Now this thing should hold up to around 550NM at the expense of being very heavy on the clutch pedal. We'll get used to that in time for sure. The clutch engagement is very smooth and controlled, and the added gearbox chatter is not too bad. I am confident about this clutch holding about anything I can throw at it with a stock block. If it decides to let go with the K04 (i highly doubt that) there is the option of the SRE clutch disk to hold 700NM. But I think I'll be fine with the smooth stock clutch disk. No lift shift is tested and has zero problems now! While the gearbox was out, I took my time to revise a couple of things. Because it is flipped upside down, I had issues with breather location. I removed the differential to find a new location. I used a bent brake line brazed to a 8mm copper tube to locate the breather between the ribs, away from oil splashing Little filter on top, and done. No more oil spraying out of the breather now! Also revised my shift mechanism, I used new uniballs with special rubber covers. Also made a better bracket, as can be seen above. This time shaped like a box to keep dirt out. This mechanism reverses the gear stick motion in both directions, so I can select all gears according to the normal Audi H pattern. Gearbox support died from age and abuse Bought new Powerflex Reinforced gearbox bracket as well. Fitting all parts on the driveway Got 2 turbine housings on stock now, so after my holiday I will repeat the milling process on the fresh housing. The other new K04-022 housing is for sale, so if you are interested (Europe) feel free to contact me. I can beat the ebay price of other sellers Machined housing is also possible, but you'll have to use my spec wheel (2006 Mazdaspeed K04) And got my new K04 flange ready, just got sent the wrong size center hole (76mm instead of 80mm). Need to turn it out on the lathe I guess.
|
|
« Last Edit: July 01, 2016, 08:10:22 AM by TijnCU »
|
Logged
|
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #122 on: August 06, 2016, 01:19:39 PM »
|
|
|
Clutch broke loose from center after 5000km So unsprung stock clutch on solid flywheel is not a good idea... Had a new clutch custom made to fit with the pressure plate and still have springs in the center, and since then I have driven another 5000km without any problems. Did a 3600km holiday through the Alps, and everything was fine. Little hot intake after climbing long 8% mountain roads, so intercooling can be better. Thats all for later concern, first up is building the turbo for more powah "defective" clutch new custom clutch clearance with pressure plate
|
|
« Last Edit: August 14, 2016, 05:51:11 AM by TijnCU »
|
Logged
|
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #123 on: August 21, 2016, 01:23:29 AM »
|
|
|
Spent the evening on finishing my turbo (finally!) Result is very pleasing, exactly 0.5mm clearance between housing and turbine wheel. The turbine inducer area is also modified, since my turbine wheel has 8mm inducer tip height. Also re-skimmed my manifold on a big belt grinder, because the guy that skimmed the manifold did it in 2 grinding passes and left some unevenness. Now it is nice and flat without tracks. chra fitted, wastegate is also slightly ported I'm going to do some finishing touches to the housings, like polish the inlet and port out the wastegate and exhaust inlet a bit more. Then, coat the manifold and bolt the assembly to my engine! To deal with the added hot airflow, I decided to switch from air/air to water/air. There will be a 500x300mm radiator in front of the engine radiator and this should be more than adequate for charge cooling the expected airflow. The twin sidemounts in the back of the car will not be sufficient, because it already gets fairly hot now on k03.
|
|
« Last Edit: August 21, 2016, 01:32:40 AM by TijnCU »
|
Logged
|
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #124 on: September 08, 2016, 10:57:04 AM »
|
|
|
Just for the cool picture here Coated and baked the manifold and housing Testfit Removed camber from rear suspension with a neat shim. At -1.5 degrees per wheel now. Much better! Radiator for charge cooler (ford fiesta 1.1 engine radiator ) Exomount radiator JDM style . No, this will be packaged between the front panel and radiator including a slim fan. Should work with available space... And driven by this pump Hope to receive parts within the next week. There is also a new wastegate actuator coming in, I bought a unit with adjustable spring to finetune.
|
|
« Last Edit: September 13, 2016, 01:06:20 AM by TijnCU »
|
Logged
|
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #125 on: September 13, 2016, 01:16:04 AM »
|
|
|
Made a custom actuator bracket Fits very nice, and clears belt cover Special menu Actuator rod was 3cm too long, so I just cut and weld it instead of re-threading (stainless). Plug n Play!
|
|
|
Logged
|
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #126 on: October 06, 2016, 04:49:50 AM »
|
|
|
Hardware for AWIC complete Removed head and pistons from spare block, engine is in top condition. AYP head will be replaced with this AEB head Almost no carbon buildup on the inner pistons... I will put forged connecting rods in this engine, but for now I still run the 280.000km AEB engine untill it dies. I inspected the cams through the oil filler hole, and my AEB cams look REALLY worn out compared to the set I have on stock. More power with the new head for sure The new AEB head will get new Supertech exhaust valves and uprated springs too for maximum durability. Rosten Performance rates their springs at 211lbs at full lift, which is more than the Supertech. Today I looked around for pricing on titanium alloy, I am considering to do a small batch (like 3 sets) of titanium spring retainers. If anyone is interested, I am willing to calculate pricing on those items. I have a starting company in performance parts and I'm willing to do starting offers to get the name out. I'm also considering to do a small batch of 144x19mm forged I beam rods for around 300€ per set. Upcoming plans: I will make a new center muffler this winter because I want to get the exhaust more silent. There is a lot of drone on the highway, and we're expecting another baby in February that I don't want to make deaf instantly. Industrial earmuffs would be an option too, but that looks stupid My plan is as following: There will be a 3" straight tube with electric valve, with the valve shut the gasses will leave the tube on the side into a 2" perforated tube towards the back. Then bounce back on the end cap of the muffler into another 2" perforated tube and through a chamber back in the 3" straight after the valve. Because I use a dual 2" setup, total tube ID area will be only be reduced by 10% when the valve is shut, but damping area is increased by 400%. The addition of chambers will get rid of the drone too. My final goal will be to control the exhaust valve with map switching and using the N80 output as a control trigger. Much like the new RS3 in dynamic mode Another advantage is that with the valve opened, I have even less dampening then I have now, since the 3" pipe will not be perforated anymore like it is now.
|
|
« Last Edit: October 07, 2016, 05:16:20 AM by TijnCU »
|
Logged
|
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #127 on: October 10, 2016, 01:43:44 PM »
|
|
|
Today I spent about an hour on my automatic map switching asm, I had a great idea to super-simplify it. I already located the ignition routine in IDA, so I took another look at it. seg010:EE22 ; =============== S U B R O U T I N E ======================================= seg010:EE22 seg010:EE22 ; Ignition subroutine seg010:EE22 seg010:EE22 sub_9EE22: seg010:EE22 mov [-r0], r9 seg010:EE24 mov [-r0], r7 seg010:EE26 mov [-r0], r6 seg010:EE28 sub r0, #2 seg010:EE2A extp #0E1h, #1 ; 'ß' seg010:EE2E movb rl4, fnwue ; Cam switchover flag seg010:EE32 cmpb rl4, #0FFh seg010:EE36 jmpr cc_NZ, loc_9EE58 ; KFZW2 seg010:EE38 mov r12, #kfzw2 seg010:EE3C mov r13, #33A6h seg010:EE40 mov r14, word_380C80 seg010:EE44 mov r15, word_380C92 seg010:EE48 calls 0, sub_78B8 seg010:EE4C movb rl7, rl4 seg010:EE4E movb zwnws, rl4 seg010:EE52 movb rl6, #0 seg010:EE54 jmpa cc_UC, loc_9EEE6 This part of the code makes the ecu choose either KFZW2 or KFZW1 depending on the cam changeover flag. My engine doesnt have variable cam timing, so KFZW1 would make the perfect map switching for me between petrol and lpg. I want to switch the mapping with the input from ushk (rear o2) since I dont use this one either. I located the ram variable for ushk and simply coded this adress in place of fnwue so the map will be chosen depending on voltage from the o2. seg010:EE22 ; =============== S U B R O U T I N E ======================================= seg010:EE22 seg010:EE22 ; Ignition subroutine seg010:EE22 seg010:EE22 sub_9EE22: seg010:EE22 mov [-r0], r9 seg010:EE24 mov [-r0], r7 seg010:EE26 mov [-r0], r6 seg010:EE28 sub r0, #2 seg010:EE2A extp #0E1h, #1 ; 'ß' seg010:EE2E movb rl4, ushk ; ushk @ RAM380973 >> F3 F8 73 89 seg010:EE32 cmpb rl4, #0FFh seg010:EE36 jmpr cc_NZ, loc_9EE58 ; KFZW2 seg010:EE38 mov r12, #kfzw2 seg010:EE3C mov r13, #33A6h seg010:EE40 mov r14, word_380C80 seg010:EE44 mov r15, word_380C92 seg010:EE48 calls 0, sub_78B8 seg010:EE4C movb rl7, rl4 seg010:EE4E movb zwnws, rl4 seg010:EE52 movb rl6, #0 seg010:EE54 jmpa cc_UC, loc_9EEE6 Now, I simply changed this in the binary (F3 F8 0D 09 I replaced with F3 F8 73 89) and the ecu still boots. I started me7logger, and if I short pin 68 and 69 on the ecu the ram variable of ushk changes. The ecu does not brick or reboot . Next step is to test this in the car with different (safe) ignition mappings and see if I succesfully hacked the ecu to force it into KFZW1. It is allmost too simple to be true, but we'll see what happens! Maybe it needs a bit more hacking, for instance if the variable is actually never at zero in the ecu. I'll just test that in the car first. I'll let you guys know if it works. ** update 11 october I thought about this and I need to rectify one thing. While fnwue is working like a flag in this part of the code, it is actually a factor. The next part of the routine consists of the interpolation between kfzw1 and kfzw2, so if I dont touch this code and the actual fnwue factor is <1 I wont get the (exact) ignition mapping I'm looking for. So I'll log if fnwue is 1 and if its not I'll replace it with a fixed factor in the code. Hope to test later today. If this works, maybe even a flex fuel sensor can be used to set a fake fnwue factor for use in bi fuel applications.I'll start a new topic about this if todays experiment works...
|
|
« Last Edit: October 11, 2016, 11:55:27 AM by TijnCU »
|
Logged
|
|
|
|
nyet
|
|
« Reply #128 on: October 10, 2016, 01:45:55 PM »
|
|
|
NICELY DONE
That is really cool.
|
|
|
Logged
|
ME7.1 tuning guideECUx PlotME7Sum checksumTrim heatmap toolPlease do not ask me for tunes. I'm here to help people make their own. Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your ex
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #129 on: October 11, 2016, 06:22:21 AM »
|
|
|
I'm really stoked about this idea, but maybe it will not work without other modifications to the code. I logged fnwue on my car, and with the engine running it is 0. So to fully understand what I need to do, lets take another look at the code that I have split into 3 sections seg010:EE22 sub_9EE22: ;ROUTINE FOR ABSOLUTE KFZW2 INPUT seg010:EE22 mov [-r0], r9 seg010:EE24 mov [-r0], r7 seg010:EE26 mov [-r0], r6 seg010:EE28 sub r0, #2 seg010:EE2A extp #0E1h, #1 ; 'ß' seg010:EE2E movb rl4, fnwue ;move fnwue to rl4 //replace with ushk to manipulate seg010:EE32 cmpb rl4, #0FFh ;compare byte #0FFh to rl4 //0FFh is the maximum value of a byte. seg010:EE36 jmpr cc_NZ, loc_9EE58 ;if the result is Not Zero, jump to next part of the routine. if the result is Zero, then seg010:EE38 mov r12, #kfzw2 ;move contents of kfzw2 to r12 seg010:EE3C mov r13, #33A6h seg010:EE40 mov r14, word_380C80 seg010:EE44 mov r15, word_380C92 seg010:EE48 calls 0, sub_78B8 seg010:EE4C movb rl7, rl4 seg010:EE4E movb zwnws, rl4 seg010:EE52 movb rl6, #0 seg010:EE54 jmpa cc_UC, loc_9EEE6 ;bypass kfzw1 routine seg010:EE58 ; --------------------------------------------------------------------------- So, what I can conclude from this code is that fnwue=0 is passed in the ecu as a value of FF. I think that because if the difference between 0FFh and the value stored in fnwue has to be zero to actually run from the kfzw2 values. So, I need to find out what exact value I am giving to the ecu when I short the lambda2 input. Next part of the code: seg010:EE58 seg010:EE58 loc_9EE58: ;ROUTINE FOR ABSOLUTE KFZW1 INPUT seg010:EE58 extp #0E1h, #1 ; 'ß' seg010:EE5C movb rl4, fnwue ;move byte fnwue to rl4 // change this for ushk as well seg010:EE60 jmpr cc_NZ, loc_9EE80 ;jump to interpolation part of routine if the conditionflag Not Zero is set seg010:EE62 mov r12, #kfzw1 ;move contents of kfzw1 to r12 seg010:EE66 mov r13, #33A6h seg010:EE6A mov r14, word_380C80 seg010:EE6E mov r15, word_380C92 seg010:EE72 calls 0, sub_78B8 seg010:EE76 movb rl6, rl4 seg010:EE78 movb zwnws, rl4 seg010:EE7C movb rl7, #0 seg010:EE7E jmpr cc_UC, loc_9EEE6 ;bypass interpolation routine seg010:EE80 ; --------------------------------------------------------------------------- Now, if I understand this part correctly it means that when the byte of fnwue is at a value of 0, the conditionflag 'Not Zero' will not be set, and the content of kfzw1 is loaded into the registry. If there is any other value than 0 in fnwue, the routine jumps to the final section of code: seg010:EE80 seg010:EE80 loc_9EE80: ;ROUTINE FOR INTERPOLATION KFZW2+KFZW1 seg010:EE80 mov r12, #kfzw2 seg010:EE84 mov r13, #33A6h seg010:EE88 mov r14, word_380C80 seg010:EE8C mov r15, word_380C92 seg010:EE90 calls 0, sub_78B8 seg010:EE94 extp #0E1h, #1 ; 'ß' seg010:EE98 movbz r5, fnwue seg010:EE9C mul r4, r5 seg010:EE9E mov r4, word_FE0E seg010:EEA2 mov [r0], r4 seg010:EEA4 movb rl7, [r0+1] seg010:EEA8 mov r12, #kfzw1 seg010:EEAC mov r13, #33A6h seg010:EEB0 mov r14, word_380C80 seg010:EEB4 mov r15, word_380C92 seg010:EEB8 calls 0, sub_78B8 seg010:EEBC extp #0E1h, #1 ; 'ß' seg010:EEC0 movbz r5, fnwue seg010:EEC4 mov r2, #100h seg010:EEC8 sub r2, r5 seg010:EECA mul r4, r2 seg010:EECC mov r4, word_FE0E seg010:EED0 mov [r0], r4 seg010:EED2 movb rl6, [r0+1] seg010:EED6 movb rl4, rl6 seg010:EED8 addb rl4, rl7 seg010:EEDA jmpr cc_NV, loc_9EEE2 seg010:EEDC movb rl4, #7Fh ; '' seg010:EEE0 addcb rl4, #0 This is the part where from my understanding the interpolation and multiplication is done from the factor in fnwue. To hack the code and force kfzw1 I think I have 2 options: Find out what values my ushk gives when open and when shorted, if the shorted ushk gives a byte of 0 or 255 it follows the code and runs from either kfzw1 or kfzw2. The catch is that ushk must not give any other value than 255 or 0 or else it will go into interpolation mode. If the open or shorted ushk does not give 0, maybe I just make it jump to loc_9EE62 so it completes this part of the routine anyway. It will then run from kfzw1 and skip the interpolation part. The only problem in this situation is that I still need the 255 value or I will disable kfzw2. Lets find out! Any comments or tips are welcome, I really suck at asm. I logged the variable ushk without any conversion, and it gives a value of 125 when its open and 38 when it is shorted to the output pin. I assume that these are the actual byte values. So either I need to change the ushk conversion, or just compare to 07Dh in code section #1 and change the jump in section #2. I´ll try to compile something and test it tonight I have made a seperate topic for the kfzw switching function: http://nefariousmotorsports.com/forum/index.php?topic=11558.0
|
|
« Last Edit: October 11, 2016, 11:56:02 AM by TijnCU »
|
Logged
|
|
|
|
turbojohan
Full Member
Karma: +5/-0
Offline
Posts: 185
|
|
« Reply #130 on: October 11, 2016, 07:15:56 AM »
|
|
|
Heel gaaf, Tijn. Really cool if this all works.
|
|
|
Logged
|
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #131 on: November 07, 2016, 05:23:53 AM »
|
|
|
The switching is functional now, see the other topic for how I did it. One thing I have to add is that I had a lambda B1S1 malfunction code after running lean for a minute while the switch condition was active. This code is set when the ecu sees a lean condition on B1S1 and a voltage over 0.46 on B1S2 over a set period of time. Now, the secondary o2 is coded out in my file, but it can still trigger this fault code it seems. I then hardcoded the value for the secondary o2 to 0.45v and have seen no fault codes ever since. I will flash a more agressive timing map on it today and see how it responds Havent seen any CF's for over a year since I have been running petrol timing on lpg. Now its time to look for the hidden power. At the same time, my driveshafts are taking a dump on me again (this is my 3rd set, genuine GKN/Lobro CV's that just get destroyed from the torque at my driveshaft angle, its a common 4wd offroad issue normally but i managed to introduce it to a lowered 2wd street car....) and I'm getting a bit sick of it. I hope to develop a custom set of gears soon to flip the box back into its natural position (drive flanges low, axles straight) and get my CV joints to actually last over 5 months... Dumping the clutch in a frustrated mood did not help for the sound effects that I get when driving... (clunk clunk clunk) ** did a log with the new ignition settins, still no CF. added another 3* Clunking noises have been identified this morning, I spent a couple of minutes under the car and found out that the CV's are fine. When spinning the wheels, I would get very metallic clicking noises from... the gearbox. So I added about 3(!) litres of oil and now it is a lot quieter. Looking for a new gearbox now, seems like there is a ton of play on the differential. Maybe if it lets go I'll just weld it shut untill I get my previous plan with custom gears up to speed... *** Just did a quick testdrive, in my own street the box was clicking like it was going to die, the next street it was a bit more quiet. Did a 5km drive at 80km/h and then the box was completely silent again! wow.. I dont really trust the box for longevity anymore, but it sure isn't going down without a fight Maybe it is because of the super pro gearbox oil additive that I threw in with todays oil refill , or the new oil just washed some gear debris from the differential hahaha ****One day later, the noise was back. I did another check of the driveshafts, and found that the car was silent again after moving the passenger side driveshaft in and out, then after about 100meters it started making noise again. So it was the cv joint after all! Spent a good 2 hours on the parking lot at around 5 deg C, but I fixed it with a spare CV joint and new grease. Now all is good again. I hacked my file to 5120mbar, and it is working very well. The only problem is my turbo, it doesnt want to make enough boost to actually go over the old limit haha It looks like the turbinehousing is cracked, but thats not too bad after ~300.000km of service. A thing I noticed in my logs is that I re-enabled KFLBTS fueling in my file somewhere along the way, and the mixture was way too rich for my liking (0.76). But with my recently accuired skills of writing custom code I just added a switched KFLBTS map that tops out at lambda 0.9 when driving on LPG. Better economy at WOT and lower EGT WIN!
|
|
« Last Edit: November 13, 2016, 08:24:33 AM by TijnCU »
|
Logged
|
|
|
|
TijnCU
Hero Member
Karma: +60/-4
Offline
Posts: 690
flying brick
|
|
« Reply #132 on: November 20, 2016, 01:33:51 PM »
|
|
|
In my latest file I am now running a 16x10 hand-coded field since I have got the hang of asm I decided to switch some more maps with the lpg switch. Now I'm switching: -KFZW -KFLBTS -FKKVS -KRKTE (tricky, it is used in 3 different parts of code in 3 different registers. So I gave it 3 dedicated subroutines) -TVUB So all fuel control for the LPG is now also done by ME7 except for correction by gas pressure and gas temperature. This will give me more realistic injector opening times in my logs, thus more insight in the tune. So far the LPG is holding up quite nicely, the pressure is low and the factor is only about 15% compared to my 550cc petrol injectors. I am still looking for the LALIUS code in ida, I may have overlooked it when I was searching for it some time ago. It was at least not referenced as a map, but maybe it is passed as a couple of words.. This would give me the final control that I am looking for, I want to offset the o2 reading a bit during cruising speeds so I get lambda ~1.1. I will add rl as a variable, so it is only active during low loads (and above idle). Also, while I was working around in the bin, I noticed that my launch control variables are actually partially in a xref code section. So I reworked the adresses to a new location. I noticed in the main code that the coolant temperature variable is actually not even referenced... I never tested the function on cold engine, but I assume that it will work at any coolant temp. Driver should be in control anyways I received my 3bar mapsensor, but havent installed it yet due to size difference. I'll install it in my new intercooler to save me some extra work.
|
|
|
Logged
|
|
|
|
|
turbojohan
Full Member
Karma: +5/-0
Offline
Posts: 185
|
|
« Reply #134 on: November 21, 2016, 12:43:11 AM »
|
|
|
Nice project! How are IAT's with this intercooler? I use same one, but heatexchange is quite bad. IAT's go high and water stays cold..
|
|
|
Logged
|
|
|
|
|