Page 15 of 55 FirstFirst ... 5101112131415161718192025 ... LastLast
Results 211 to 225 of 825

Thread: DIY LTCC or similar system for LT1s

  1. #211
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    Current progress on an Atmega328 @ 16mhz demonstrating simulator mode: video 12.9 MB

    Sorry for the shoddy camera work and mix-and-match leds, couldn't find my tripod and my led supply is dwindling.

    This is targeting 4.5ms dwell @ 12v nominal. I'm no longer very familiar with "default" microsoft media players but with mplayer you can pause and then go forward frame by frame using the period key. At 3500 rpm at reduced time reference you can see two "coils" dwelling at once, and at 7000 three. Lower left led is #1.

  2. #212
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    Now driving 3 GM 12658183 coils: video 27.0 MB

    Again, apologies for the poor camera work. Only circuit change is addition of a tach driver pin on Arduino analog 0 - the yellow led I point to in the beginning. From left to right the plugs represent 4, 8 and 1.

    Having seen some spontaneous Arduino resets occur with other projects that were triggered by commanding an a/c induction motor off, I'm somewhat surprised to see none here with all the electrons flying around and no noise suppression caps anywhere. After 5-10 minutes of running the simulation the coils get fairly warm (~120F) but the Atmega and the 5v regulator are cool to the touch. I haven't measured trigger current to verify but it seems like this will work fine driving these coils directly from the microcontroller outputs.

    Similar to the dwell limiting on the truck coils, if you pause during the last low speed simulation sequence and step frame by frame you can see the coils firing (#1 is the bright white led) before the microcontroller has pulled the pin low and turned off the led. I don't have the necessary test equipment to measure when the dwell limiting is firing the coil, but it clearly is. So I don't think its safe to assume any of the LS coils have a "soft" dwell limiting system. Whatever the case, I doubt it will be a problem in a working application and if it is the dwell target can be easily adjusted.

    Hoping to test out sequence detection on my car soon - hopefully this week. If that functions all that's left is to add voltage detection which should be dead simple. I don't want to count my chickens too soon but if everything works out I might be able to test fire the thing before I pull the engine out after the holidays.

  3. #213
    Fuel Injected!
    Join Date
    Oct 2013
    Posts
    1,022
    Good to hear you're making progress but your video links don't work. 3 coils have to dwell at a time at high rpm? Sure illustrates the limits with a single coil.

  4. #214

  5. #215
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    While it seems like it's just me talking to myself here I wanted to post some progress on this anyway. Between prepping for the holidays, keeping my daughter's car on the road and doing battle with a squirrel that's taken up residence in my attic time has been pretty sparse. Last night I finally managed to find the "forehead slapper" bug in my code that was preventing dwell to happen correctly and collected some more or less successful debugging data while connected to the car.

    The first thing I'm finding is that I believe it will be necessary to utilize a separate dwell table for cranking / initial startup.

    Code:
    ready in: 97ms
    cyl=-1
    sa=10
    dwl=5
    lri=451183  << this is the low-res interval - microseconds between low-res rising edge signals (90 degrees of crank rotation)
    deg=77
    stalled
    detect norm, degFalling=55  << sequence detection
    sequenced
    c7 fire 13   << this is the interrupt routine for the EST line showing which coil is being fired and the degree count (13 btdc here)
    cyl=2        << this is signifying the low res rising edge was caught - cyl 2 is now on the compression stroke
    sa=13        << detected spark advance from two lines earlier
    dwl=5        << dwell requirement from lookup table
    lri=230646
    deg=0        << this is how many degrees (counting down from 90) were left when the low res rising edge was caught (sometimes this wraps around to 254 and sometimes 1 or 2 are "left over")
    c2 dwl 18 18 << this signifies that coil #2 dwell has been commanded - the first number is the desired dwell start and second the actual degree count (btdc) when the routine turned the pin on
    c2 fire 13
    cyl=1
    sa=13
    dwl=5
    lri=113033
    deg=0
    c1 dwl 18 18
    c1 fire 8    << this is a problem - at this angular velocity we're around 1.3 ms per crankshaft degree so when the ECM commanded 5 degrees less spark advance than the previous cylinder, the dwell time went from 6.5ms to 13ms
    cyl=8
    The issue here is that the coil might reach it's dwell limiting and fire itself prematurely. That's probably not a problem in this particular instance, but it highlights the need to use a much lower amount of dwell while cranking due to instability of angular velocity. Doing that necessitates a routine to detect when the engine is running that works similar to the ECM so it knows when to switch to the normal dwell table.

    The other issue I'm running into is ringing on the EST line. If you recall back on page 13 where vilefly posted waveforms of the EST signal, it wasn't a perfectly clean square wave. Sometimes the microcontroller picks up this ringing when the ECM drives the EST line high and is seen as a falling edge.

    Code:
    cyl=4
    sa=25
    dwl=27
    lri=18670
    deg=0
    c4 dwl 52 52
    c4 fire 45  << coil fires here @ 45btdc !
    c4 fire 45  << more ringing
    c4 fire 26  << true falling edge
    cyl=3
    
    
    cyl=8
    sa=28
    dwl=21
    lri=16707
    deg=0
    c8 fire 53 << ECM begins dwelling the opti's coil before microcontroller does so we'd experience a miss here
    c8 fire 29
    cyl=4
    The second instance can probably be worked around by removing a failsafe I added trying to resolve the bug mentioned earlier. But the first instance is a problem requiring debouncing of this input logically. I have an idea how to accomplish this, but I'd like to do it while keeping the interrupt routines as lightweight as possible.

    I'm still hoping to test fire the engine with this before the new year. If I can sort out these two issues (and any others I uncover) my plan is to verify sequence on a running engine by comparing the opti system and mine using a single LS coil and two timing lights. If that works without hiccups I plan to test fire with the coil per cylinder setup temporarily "patched in". But I'm a bit worried there may be many other demons lurking in the details.

  6. #216
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,470
    Sounds promising.
    I can dig whatever routine you need from the PCM code , so you can implement it the right way.
    If you need steady dwell signal I can do a fixed dwell time patch. Or a 3d table lookup for dwell.

  7. #217
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    In the interest of keeping this a bolt-on type mod, I'd like to stay clear of any patches or even tuning requirements. Fixed dwell probably won't help - the problem is the output being driven high when the PCM turns it on. If there are spare outputs that are high impedance when off and switch low when turned on (i.e. N-channel fets) that might be helpful. But I would only go that route as a last resort.

    I think I have the cranking dwell issue figured out. Instead of creating a separate table I used a different dwell target for RPM < 400 and then added a bunch of columns in 25 RPM increments from 25 to 275 RPM. Going out in the garage to test shortly.

  8. #218
    Fuel Injected! Terminal_Crazy's Avatar
    Join Date
    Oct 2015
    Location
    Lancashire England
    Posts
    410
    Nope, you’re not talking to yourself.
    There’s others watching and listening here.
    I write my notes in a similar way.
    If I can talk it through and I still makes sense then I think I understand it.

    Keep it going!

    Mitch
    '95 Z28 M6 -Just the odd mod.
    '80 350 A3 C3 Corvette - recent addition.

  9. #219
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    X-mas eve progress report: everyone left the family christmas party this year with the same number of fingers and toes they arrived with, and I have nearly all the mess cleaned up! My two nephews who've been jonesing for a tire smoke laden joyride left satisfied. The 15.5 year old with a freshly printed learner's permit even went so far as requesting a lesson in driving the very same M6 car. In the interest of not having to source a new clutch and DM flywheel I declined and instead offered up the clutch in my 1.9L diesel Jetta. I was not at all shocked to hear "Nah uncle Scott, I'm good" as his reply.

    Anyway, I'm happy to report that debouncing the EST input was fairly simple and seems to work well. I found a solution that didn't involve adding a delay and then re-sampling the input after-the-fact, which is as close to ideal as we can get.

    Unfortunately, my fears of flushing out more demons materialized.

    Code:
    c5 fire 30 49         << the first # here is degrees btdc when the EST interrupt was fired, and the second is part of my debouncing method - counting degrees that the EST line is high (+5v)
    cyl=7
    sa=30
    dwl=60
    lri=6431
    deg=4                << the count errors are higher here, and you might notice the coils aren't always being dwelled (hint, sa=30 + dwl=60 = 90 degrees btdc)
    c7 fire 29 49
    cyl=2
    sa=29
    dwl=60
    lri=6416
    deg=4
    c2 dwl 72 89
    c2 fire 28 49
    cyl=1
    sa=28
    dwl=60
    lri=6347
    deg=4
    c1 dwl 72 88      << once again the first # is actual dwell and the second is commanded - it's losing 16 degrees of here (about 2300 rpm)
    c1 fire 27 50
    cyl=8
    sa=27
    dwl=60
    lri=6424
    deg=4
    c8 dwl 73 87
    c8 fire 26 50
    c8 fire 26 50
    cyl=4
    sa=26
    dwl=60
    lri=6483
    deg=9
    c4 dwl 73 86
    c4 fire 27 46
    cyl=3
    sa=27
    dwl=60
    lri=6603
    deg=4
    c3 dwl 73 87
    c3 fire 27 47
    c3 fire 27 47
    This may be the issue that illustrates the need for adding another processor to handle dwell, voltage detection and uart functions. I believe the failure to dwell the coils when spark advance + dwell target > 90 degrees is probably a bug in my dwell code, but the bigger problem demonstrated here is the 14-16 degrees that are occurring between when the miscellaneous low priority functions in the main loop complete and "come back around" to calling the dwellCoils() routine.

    My first avenue of attack will be disabling all uart logging as the problem may be tied to the uart interrupt blocking the main loop while trying to prevent the output buffer from overflowing.

    Beyond that I will attempt to move dwell functions to an event driven trigger instead of in the main loop. This will require significant changes and optimization of the dwell routine, at the expense of more atomically safe variables.

    Contrary to some of my initial posts here, I didn't actually expect this to be easy. Hopefully the challenge will continue to be a rewarding one.

    EDIT:

    Reducing uart output (logging) at higher RPM seems to be resolving the lost dwell degrees issue. So (touch wood) I believe I have another "forehead slapper" bug in the dwell routine, because at the moment the only show stopper issue is the coils aren't being dwelled > 90 degrees total (spark advance + dwell degrees).

  10. #220
    Fuel Injected! vilefly's Avatar
    Join Date
    Sep 2017
    Age
    53
    Posts
    217
    Wow. I really fell behind during the holidays. I have a lot of catching up to do.
    I will have to study this code in detail, and try it out if I can.

  11. #221
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    I was thinking about how nice it would be to have access to all the cool test gear you do this past weekend.

    Testing with dual timing lights was mostly a bust. Mother nature wasn't cooperating for starters - the highs for the three days I had to work on it were in the low teens.

    My primary problem was that the "throw away" light I bought was evidently manufactured by the Chinese equivalent of Fischer-Price. It produced two weak strobe flashes per spark and was noticeably out of sync with the timing light I trust when connected to the same plug wire.

    Plan b involved breaking out my antique analog oscilloscope connected to some DIY inductive pickups (8 inches of 20ga wire coiled around the plug wires).

    Unfortunately I wasn't able to confirm to my satisfaction that sequencing is "perfect". In a nutshell I was unable to find a good sync trigger for the scope that produced a reliable picture of what was happening.

    I also ran into noise and / or power issues that I believe are the result of powering the microcontroller from the opti's power pin. Sequencing looked great when driving only the leds, but when I added a coil things ran off the rails pretty quick. I didn't have time to identify the exact problem with test equipment but my instinct tells me it's a power issue because I was losing uart output almost immediately after start, output pins were "sticking" on or not dwelling at all, and eventually the pins driving the coils and tach output would degrade to the point the leds weren't even lighting. I witnessed nothing like this when driving three coils in simulation mode, so I'm feeling confident better power will solve this problem.

    If I have time after knocking out my honey-do list for this weekend my intention is to tap into the wiring harness for everything I need to test fire the system. I'm not quite confident enough this is going to work that I'm willing to take wire cutters to my harness, but it's certainly looking promising.

    If I strike out again this weekend I may want to enlist your help, assuming you have a compatible arduino.

    I haven't fully contemplated how I want to release the source for this - I've been holding out until I know it's going to work. I want it to be open for everyone to use and modify, but I also want to be careful not to have a dozen schmucks selling their own versions on <big auction site> and all the buyers coming here for help or complaining when they break stuff. Unfortunately I'm not sure there's anything I can do about that other than keep the source private, which negates the only factor that's kept me motivated to get this far.

  12. #222
    Fuel Injected! vilefly's Avatar
    Join Date
    Sep 2017
    Age
    53
    Posts
    217
    sorry about the late response. Your plan B with the old oscilloscope should be done with a capacitive voltage divider probe to keep from zapping the oscilloscope. It is like a resistor voltage divider, but uses capacitors instead.
    this is a link to a pdf document showing you how to make one. see page #5
    https://www.princeton.edu/ssp/tiger_..._waveforms.pdf

    oscilloscope probe diagram.png

    The clamping ends of the probes are clothespins hot-melt glued to split pieces of tubing. You probably could use foil also, but is less consistent.
    Hope this sheds some light on secondary ignition probes. The capacitors are 1000pF.
    Don't forget that the signal will be inverted as it is a measurement of negative voltage.
    Last edited by vilefly; 01-09-2018 at 06:01 AM.

  13. #223
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    Interesting read but I think I've moved past that. I was able to get a good enough picture of the coil discharges with my hillbilly inductive pickups to tell me sequencing looked good. I may be proven wrong on that, but chasing other demons now.

    I ran it for a few minutes yesterday with the test cylinder (#4) being fired from the arduino. I may test more in this configuration tomorrow just to verify it was actually hitting (most of the time).

  14. #224
    Fuel Injected! vilefly's Avatar
    Join Date
    Sep 2017
    Age
    53
    Posts
    217
    Curses! Too late, again!

  15. #225
    Fuel Injected!
    Join Date
    Oct 2013
    Posts
    1,022
    Wow, it's impressive how well you're making out.

    If you need some help with the noise issues let me know. I might be able to come up with some ideas that help. I also might be able to help if you have any circuit questions.

Similar Threads

  1. Which TBI system is better?
    By KeyAir in forum GM EFI Systems
    Replies: 41
    Last Post: 05-13-2019, 09:39 PM
  2. Hard start 93 LT1 with LTCC Ignition Mod
    By beestoys in forum GM EFI Systems
    Replies: 0
    Last Post: 05-18-2015, 08:58 AM
  3. ABS system?
    By K1500ss4x4 in forum Gear Heads
    Replies: 3
    Last Post: 02-06-2014, 06:21 AM
  4. Vortec EGR System?
    By EagleMark in forum OBDII Tuning
    Replies: 40
    Last Post: 06-02-2013, 10:07 PM
  5. Quicker way to do Spark Hook test on the street for LT1s and others?
    By sherlock9c1 in forum Fuel Injection Writeups Articles and How to New and Old
    Replies: 15
    Last Post: 03-03-2013, 01:52 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •