_ _ | | | | | | | | | |/\| | \ /\ / \/ \/
#### ## ## ###### ## #####
## ## ###### ## ## ## ###
_______ ( ___ ) | ( ) | | (___) | | ___ | | ( ) | | ) ( | |/ \|
## ## ##### ## ## ## ## #####
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: The car got an '''1.6L 4cyl NA engine''' because it is believed to better compete in that class, compared to the 1.8L engine. Location: 3h drive West from Budapest (Sopron, at Austrian border). Because of illness the project was delayed, but it should be completed This engine has a '''special trigger''', and the PlugAndPlay harness makes overview and debug hard. ---- '''IAC''' Simple bipolar stepper - should be straightforward ---- MembersPage/YasecElise/Ignition ---- '''MAP / AlphaN''' The engine has a MAP sensor. However, because of very aggressive cams, some loadsites might need to be tuned from TPS (AlphaN). ---- '''Trigger''' - Rover K-series wheel (we refer to it as "elise" trigger) The engine has camsync, but because of wasted spark, only primary trigger will be used for now. * '''Primary trigger VR''' Is there a chance that something is fundamentally wrong with the trigger ? Maybe the trigger is HALL ? can you measure ohm between trigger pins ? Both polarity. Try to record the trigger signal with notebook soundcard. Try 20k pullup on the trigger signal. This crankwheel is very smart construction, because it can sync in half revolution (often even earlier!). * Early startup is supported (the right output channel will be fired as soon as it can be found). * camsync is currently not fully supported for this elise trigger (recommended to keep secondary_trigger disabled in config) We made some modifications to signalgen to generate the wav sound files to test the trigger setup on the table. Firmware code was tested against this. http://www.vems.hu/files/MembersPage/YasecElise/Lotus_crank_wheel_36-hell_counted_s.jpg The trigger is supported from 1.0.38 with the following setting (multitooth, no camsync) MAKE SURE YOU TRY THESE TOO, there is a mismatch right at the very first (primary_trigger=00 is not 01 although it might work with both edges if the sensor is HALL for sure): * primary_trigger=01 # multitooth (advanced filter is not applied; actually, advanced filter could work with N-1 setting) * secondary_trigger=02 # disabled * another_trigger_tooth=12 # decimal 18, no surprise * tooth_wheel=20 # decimal 32, no surprise (36-4 wheel) * trigger_tooth=04 # 0..12 could work with different TDC position; 4 seems right with above drawing * ign_tdcdelay=78 # decimal 120, that is 60 degrees; according to drawing, TDC is 60 degrees after tooth 4 ** this can be varied of course, but F0 sounds way too high (adjust trigger_tooth instead); ** is it possible to check with timing light ? * ignchmax=03 # fire ign channels 3..0, and ign sequence: * h[2]=02 03 02 03 00 00 00 00 ** assuming 03 channel (EC36pin36) is wired to fire spark for cyl1 and 4 '''TODO: confirm or correct this !!!! ''' ** 02 channel (EC36pin34) fires cyl2 and 3 Take InputTrigger/TriggerLog to check the tooth pulsetrain correctness. (upload the binary too, and possibly the output after formatted with ''perl binary.pl < terminal.log > terminal.txt'' ) ---- A describtion of the trigger (HU; just to confirm the direction and position seen on the image): <code> Mind1, itt küldöm a képet, immáron dedikált lendkerékkel. A felsõ holtpont fizikailag ott van, ahol a lendkerék tövében a csap van. (azaz van 6db felfogató csavar + 1 tájoló csap, na a csap van felül holtponton) A jeladó ehez képest lejjebb van, gondoltam azt a bordát jelölöm meg, amit "lát" a szenzor felsõ holtpontban. Komikus mód ez úgy semmilyen rendszerben nincs semmivel se. Utána a forgásirány szerint még kettõ bordát "olvas" a szenzor, és kezdõdik az elsõ kihagyás. Udv Yas Azt hittem soha nem fox feliratkozni.:) Lenne 1 kersem:) Ha lehetne akkor kommentalnad magyarul is a torteneseket? Lassan azert tanulok angolul:) A_Feri/Saybor:) </code> --------------- Here are the configuration files: [http://www.vems.hu/files/MembersPage/YasecElise/config.txt config] [http://www.vems.hu/files/MembersPage/YasecElise/tables.txt tables] '''InputTrigger/TriggerLog''' Seems very nice, signal and polarity is correct. Analysis of the file, missing teeth: * position (in [http://www.vems.hu/files/MembersPage/YasecElise/trig1.txt triggerlog]), difference from following * 41 3 * 47 13 * 73 2 * 77 14 * 105 3 * 111 13 * 137 2 * 141 14 * '''169''' 3 * 175 3,13,2,14, ... pattern seems correct for the wheel. '''worst case:''' ('''note that the log is very-very short''' read below! There are likely to be worse cases) * highest tg/tg_prev for single tooth: 1.16 (2010/1733) * lowest tg/tg_prev for missing tooth: 1.41 (1869/1318) The problem is, that the engine stroke kicks the engine at the '''169''' position, so the crank accelerates (I guess it has a lightweight flywheel). Therefore the 1318 (*4 usec) difference is followed by 1869 difference, '''which is LESS THAN 1.5 * 1328'''. Normally a missing tooth is 2x normal tooth, and the standard code only consides it missing if >1.5 x We must use multitooth advanced filter (checking toothrel_ ... on GenBoard/UnderDevelopment/FirmwareChanges), and set the treshold, so 1869 / 1318=1.41 is accepted as missing tooth. * primary_trigger=09 # instead of 01, to enable multitooth advanced filter * toothrel_normal=44 # or 54; tg_prev * n/16 <= tg <= tg_prev * (1+N/16) * toothrel_missing=40 # tg_prev * (1.25 + m/8) <= tg <= tg_prev * (2.5 + M/8) ---- '''Explanation''' - N,n,M,m are one hexa digit each: * toothrel_normal=Nn #tg_prev * n/16 <= tg <= tg_prev * (1+N/16) * toothrel_missing=Mm #tg_prev * (1.25 + m/8) <= tg <= tg_prev * (2.5 + M/8) '''OLD semantics - before 1.0.40''' If the tg (time-gap) between 2 teeth compared to tg_prev (previous time-gap) * if( tg_prev * (1-n/16) <= tg <= tg_prev * (1+N/16)) than it's '''considered normal tooth''' * if( tg_prev * (1.5 + m/8) <= tg <= tg_prev * (2.5 + M/8)) than it's '''considered missing tooth''' '''NEW semantics - since 1.0.41''' If the tg (time-gap) between 2 teeth compared to tg_prev (previous time-gap) * if( tg_prev * n/16 <= tg <= tg_prev * (1+N/16)) than it's '''considered normal tooth''' * if( tg_prev * (1.25 + m/8) <= tg <= tg_prev * (2.5 + M/8)) than it's '''considered missing tooth''' As you see, for the missing-tooth condition, original 1.5+m/8 changed to 1.25+m/8 in http://www.vems.hu/files/Firmware/release/v3_firmware_1.0.41.zip In our case, it's critical than N is 6 or less. Thresholds for different config: * toothrel_normal=6x # 1+6/16 = 1.375 * toothrel_normal=5x # 1+5/16 = 1.31 * '''toothrel_normal=4x # 1+4/16 = 1.25 ... recommended''' Apparently it's problematic to define a good threshold for this engine. 1.5 was too high by any means, 1.375 didn't work either (we don't know exactly why, it didn't improve from 1.5). The best is somewhere between 1.16 and 1.41, my vote is to try * 1.25 (toothrel_normal=44) first and * 1.31 (toothrel_normal=54) later If it really doesn't want to work - note: longer triggerlog needed to decide -maybe (but this is hard, requires nontrivial firmware mod) * when missing tooth is expected, we should allow tg > 1.25 * tg_prev to be considered as missing tooth * when normal tooth is expected, we should allow tg < 1.5 * tg_prev to be considered as normal tooth * what to do when nothing expected ? (at the beginning). 1.31 would be a good threshold ? Also upload the binary triggerlog (before formatting with binary.pl). Use zip if fileyhingy otherwise does not allow upload. '''Analysis of new [http://www.vems.hu/files/MembersPage/YasecElise/trig2.zip log2] ''' This is a long log, with appr 33 perfect crank rotations. With improved binary.pl (see http://www.vems.hu/files/MembersPage/YasecElise/trig2_all.zip ) it's easier to spot MISSINGTOOTH for certain threshold (default 1.5, but any other (like 1.31) can be specified on the command line. The right side is interesting (left side is rabbish), the 3,13,2,14 pattern is also shown: <code> 2177 3681 2.07 MISSINGTOOTH 3 2178 24839 0.4 2179 1941 0.52 2180 38153 1.53 MISSINGTOOTH 2 2181 2118 1.09 2182 17929 0.46 2183 2400 1.13 2184 24587 1.37 2185 2752 1.14 2186 49162 1.99 MISSINGTOOTH 3 2187 2517 0.91 2188 54538 1.1 2189 2666 1.05 2190 27147 0.49 2191 2822 1.05 2192 1548 0.05 2193 3005 1.06 2194 48396 31.26 MISSINGTOOTH 4 2195 3231 1.07 2196 40718 0.84 2197 3354 1.03 2198 6668 0.16 2199 3143 0.93 2200 18186 2.72 MISSINGTOOTH 3 2201 2570 0.81 2202 2576 0.14 2203 4029 1.56 MISSINGTOOTH 13 2204 48391 18.78 MISSINGTOOTH 2 2205 1761 0.43 2206 57613 1.19 2207 3527 2 MISSINGTOOTH 2 2208 50951 0.88 2209 1790 0.5 2210 65032 1.27 2211 1891 1.05 2212 25352 0.38 2213 2031 1.07 2214 61192 2.41 MISSINGTOOTH 5 2215 2275 1.12 2216 58123 0.94 2217 2696 1.18 2218 34826 0.59 2219 2558 0.94 2220 65035 1.86 MISSINGTOOTH 3 2221 2689 1.05 2222 33035 0.5 2223 2810 1.04 2224 64011 1.93 MISSINGTOOTH 2 2225 3000 1.06 2226 46861 0.73 2227 3218 1.07 2228 37389 0.79 2229 3311 1.02 2230 61196 1.63 MISSINGTOOTH 3 2231 3061 0.92 2232 62730 1.02 2233 2530 0.82 2234 57871 0.92 2235 4024 1.59 MISSINGTOOTH 14 2236 47111 0.81 2237 1784 0.44 2238 63495 1.34 2239 1764 0.98 2240 58382 0.91 2241 3660 2.07 MISSINGTOOTH 3 </code> This means that the pattern is recognized with the original 1.5 threshold (without the advanced filter). There was one 1.51 in this long log, one 1.56 and the rest are 1.57 or above. The * 1.41 that we've seen in the short log is not very typical. It is clearly seen, that 1..2 tooth before the MISSINGTOOTH (after the long, 13 or 14 periods) the engine accelerates appr 10% every tooth. It is so consistent (0.93, 0.81 and 0.92, 0.82, but really very consistent throughout the whole long log!) that makes it suspect there is no combustion taking place AT ALL, we just see the compressed air acting in the cylinder accelerating the engine. So what's wrong with this setup ? * Does the timing lamp show fire when expected ? ** both on cyl2,3 and cyl1,4 ? ** Maybe base timing is off? (maybe as much as 180 crankdegrees ?) ** it has been verified (Fero just told on phone) that ECU times exactly when expected. * or fuel quantity way off ? * fuel pressure ? * injector supply +12V ? The original loom (remember than plug-and-play install is always much more problematic than making a new loom) is somewhat brain-dead. The supply to the injectors, fuel-pump, ignition transformers (and ECU) is fed from the starter-motor, instead of the battery. This might mean 1..2V more voltage drop than necessary, which can make a big difference (starting or not), especially with a discharged battery '''Engine started after the supply+ was connsected properly, from the battery. The trigger was fine from the start'''. There is still connection problem at the ignition transformer, and obviously tuning is needed. ----------------- The car does not work good again: Here are the files: [http://www.vems.hu/files/MembersPage/YasecElise/config.txt config] [http://www.vems.hu/files/MembersPage/YasecElise/tables.txt tables] [http://www.vems.hu/files/MembersPage/YasecElise/Elise03.xls Megatunelog] Investigating ... trigger section Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.