## ### ## ## ## ####
## ## ####### ####### ## # ## ## ##
### ##### ## ## ## ## ## ## ## ## #### ###
_______ ( ____ \ | ( \/ | (__ | __) | ( | (____/\ (_______/
###### # ## ## ## # ######
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. The '''deadlines are very tight''', it should be ready for race before 2006-03-17 With a standard trigger, it should be no big deal, but this engine has a '''special trigger'''. ---- '''IAC''' Simple bipolar stepper - should be straightforward ---- '''Ignition''' '''Wasted spark.''' Coil on plug style. Yes, only 2 transformers, each have a second high voltage connection for the cyl pair (1-4 and 2-3). ---- '''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''' 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 ** 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] ''' 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). The * 1.41 that we've seen in the short log is not very typical. So what's wrong with this setup ? * Does the timing lamp show fire when expected ? ** Maybe base timing is off? (maybe as much as 180 crankdegrees ?) * or fuel quantity way off ? 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.