Page 18 of 55 FirstFirst ... 8131415161718192021222328 ... LastLast
Results 256 to 270 of 825

Thread: DIY LTCC or similar system for LT1s

  1. #256
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    Quote Originally Posted by vilefly View Post
    I wonder if you could just cheat and leave the ignition module hooked up (but not to the coil)
    I've put 50+ hours into this project, if this electrical issue takes another 20 it's worth it simply to not have taken the easy route. This is the kind of "solution" I'd go with in an apocalypse, or if disabling the DTC wasn't an option and I wasn't opposed to using wire nuts and electrical tape on my pride and joy.

    As I've mentioned about four times, my testing has shown a 470 ohm resistor from the EST line to ground gives enough load to prevent the DTC. If you look closely at the Bailey module in the upper right quandrant of the PCB there are two 1k ohm 1/2 watt resistors (thinking they're wired in parallel for net 500 ohms) very close to a 14 pin dip IC (maybe an op-amp or Schmitt trigger). But if you're going to test with a potentiometer to confirm this I would suggest you try one in the neighborhood of 1k-2k because I was getting the code with a 1k resistor to ground. A 10k pot is going to give you a very small range of adjustment once you hit the threshold. Also, you're probably going to get the code almost all the time if you connect the pot to +5v because the PCM has it's own pullup on this pin.

    What happens when the ignition line is switched on is the PCM pulls the EST line low. You can confirm this with a TTL safe test light (led + current limiting resistor) by connecting the positive lead to +12v and negative to the EST circuit. When key is on the led will light solid, and pulse off when cranking starts. When it pulses off what is happening is the n-channel output transistor in the PCM is being switched off and the pin is allowed to float (presumably there is an internal pullup resistor) towards +5v. I believe the voltage threshold mentioned in the DTC description is only measured by the PCM when the line is allowed to float. When I take out the 470 ohm resistor that's simulating the load of the ignition module, I suspect the line rises up to +5v almost instantaneously after the EST transistor switches off.

    What I need to figure out is how to amplify this signal on the EST side of the 470 ohm resistor to a clean TTL one that the Atmega can see the falling (or if inverted, the rising) edge of. EDIT: Unfortunately I can't see the signal to quantify what I have to work with here. The optocoupler (essentially just an optically isolated transistor) was the closest, but some of my attempts with the comparator were very sketchy at best. The 7414 Schmitt trigger also seems to be a bust.

    Quote Originally Posted by vilefly View Post
    going to be zero degrees F tomorrow, so don't hold your breath, as I am working out in the open. Can't spare the shop room at work, too busy. But I will try sometime.
    Let me do some more experimenting in my garage. If I can't nail it down I might ask you to do some work with the scope, but let's wait until the weather is a little less stupid.

    What I really need is a capture scope of my own. Unfortunately my toy budget was completely annihilated in 2017. I'm going to try kur4o's eehack definition to see what voltage the PCM is measuring here, but I have the feeling the sampling rate won't be fast enough to be useful.

  2. #257
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    After careful consideration, I'd like to retract any statements I might have made in my previous post that suggested your 10k potentiometer idea wasn't an excellent one. A few moments after I finished the last edit of the last post the words "impedance matching" hit me like a brick and a flashback from "electronics principles 2" from 29 years ago lit up my mind like a big green led.

    Dug out a 10k 10-turn pot from my parts collection and managed to at least get an inverted signal out of the 7414 IC. Even better, it ran until I turned the pot far enough to lose the EST signal and dwelled enough coils to blow the 15 amp ingnition fuse. BTW, remind me to fix the stall detection because it's not firing the coils that are currently dwelling.

    Fine tuning will be needed, but I think this will work. Thanks for the nudge in the right direction!

    Don't mistake this for an apology about leaving the ignition control module connected as a "cheat". The word "crude" comes to mind.

  3. #258
    Fuel Injected!
    Join Date
    Oct 2013
    Posts
    1,022
    If it can't go above 4.6V then try using some diodes in series as the load. You could use up to 5 or 6 in series. They will limit the voltage so it can't go above 4.6V. They will also not load the circuit so much that it reduces the signal level you have to work with. You could use a zener too, but I don't trust them as much as a signal diode.

  4. #259
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    Quote Originally Posted by lionelhutz View Post
    If it can't go above 4.6V then try using some diodes in series as the load.
    I think vilefly's impedance matching idea has it handled. I tweaked on it a few minutes last night and again this morning. Ran for several minutes this morning without setting a code. Evidently the ignition module has pullup circuitry in it as well so what was needed was the correct balance of pullup + pulldown. I'll try to monitor the ADC tonight with eehack and fine tune.

  5. #260
    Fuel Injected!
    Join Date
    Oct 2013
    Posts
    1,022
    I'd think the ignition module more or less has the base of the coil driving transistor connected to that pin.

    If you know the resistor in the PCM then it's easy to add an external resistor to create the required voltage divider which lets the pin go to say 4V.

  6. #261
    Fuel Injected! vilefly's Avatar
    Join Date
    Sep 2017
    Age
    53
    Posts
    217
    Didn't mean to offend by leaving the ignition module connected, but I always picture myself on the side of the road without help in the ozarks. I usually leave myself a backdoor to reverting these things back so I can make it home in case of emergency....such as keeping the original plug wires and coil in the trunk.

    The resistor trick is commonly used to null out offset voltage in oscilloscopes and such. Ancient chinese secret. heh.
    We may have to get you an oscilloscope for your birthday. You are far too skilled to be working without one. Keeps the frustration and guesswork down, for sure.

  7. #262
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    I was mostly being sarcastic - no offense taken. I know all too well what you mean about being stranded on the side of the road in south central Missouri. If this is going on your daily driver you'd be best served by not even removing any of that "legacy" hardware for a few years until we know how this will handle real world conditions. I don't know how much room there is on a b-body but on the y-body I'd rather pull the engine out than to try routing plug wires without removing the left wheel, inner fender and most of the belt driven accessories. And forget about attempting it the side of the road.

    It should have occurred to me to try a trim pot Sunday when I was working on the comparator because the project I borrowed the potentiometer from was itself a voltage sense / comparator circuit. Was too busy looking for an "easy" solution and not thinking systematically. I probably spent the better part of an hour digging through parts totes looking for my original (failed) ignition module to hack open in hopes of finding something useful.

    Quote Originally Posted by lionelhutz View Post
    I'd think the ignition module more or less has the base of the coil driving transistor connected to that pin.
    I initially thought that myself but there's definitely more to it than that because the module only switches on / sources current through the coil when the EST line is turned off and allowed to float. So minimally there's an inverting input stage there.

    Fingers crossed I hope to finalize the initial circuit design tonight. Once I'm happy that it's doing more or less what it should be doing I'll try to finish the schematic. After that I probably won't be very active on the project until I get the engine out / back in.

  8. #263
    Fuel Injected!
    Join Date
    Oct 2013
    Posts
    1,022
    If the module is charging the coil while the line is floating then it could be a NPN transistor? It gets turned on when the PCM pull-up resistor is connected to it?

  9. #264
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    Doubtful it's a bjt transistor because the PCM isn't sinking any current when the EST line is high. Certainly not enough to drive a bjt into saturation. Maybe an n-channel fet, but my guess is it's a little more complex. If I can find my old one I'll hack it open just for fun.

    Whatever the case, it's not an issue. vilefly you're a genius for your impedance matching comment. I was able to do away with the external Schmitt trigger. I had no idea what voltage to shoot for so I took a WAG and adjusted the potentiometer until I was reading 4.29 volts (219 raw) on the adc channel. If anyone has a chance sometime soon I'd like to see what yours reads at idle. See kur4o's post on page 17 for how to measure.

    I was able to add ignition supply voltage sensing for the dwell compensation and tested successfully. I still need to look over the controller log for any anomalies, but no DTCs were set and everything seemed to work as expected.

    It may be my imagination or the ridiculously cold weather, but it seems like it takes another 90 degrees of rotation before the engine fires. I don't normally run this thing when I can't wear shorts but it seems to be just noticeably longer cranking with the exception of hot restarts. I'll have to test more on this but it does start every time and I haven't noticed any odd behavior.

    Current firmware source 0.9.2 now on github https://github.com/spfautsch/diy-ltcc/tree/master

    I will concentrate on finishing the schematic, but if anyone wants to start working on a test board before that materializes PM me any questions. The code should be relatively well commented as far as what pins are what, but it's not like a "blink" arduino sketch. Very little of the arduino core libraries were utilized due to the time sensitive nature of the main function blocks.

  10. #265
    Fuel Injected!
    Join Date
    Jan 2012
    Location
    Poland
    Posts
    147
    I've looked through your code, and I have a few suggestions.

    First of all, consider loosing Arduino IDE in favor of raw C code in Atmel Studio. I know that INO is easier at first, but has many flaws that make it virtually useless for any real-time, professional use.
    To make the project up to industry standards, C code should be used along with MISRA rule checking.
    Arduino libraries are great for testing, as they are very universal, but as anything that is universal, they are slow and too complicated for this use. Especially USART functions, which are blocking, and port control functions which are slow.

    I can help with porting the code to C and creating a project in Atmel Studio. This would have other benefits than smaller and more optimal code - you could use smaller ATtiny microprocessor.

    The Interrupt service routines can be optimized as well, and that's where the timing is critical at high RPM.

    Second, all the "populate" functions are unnecessary - all that work should be done by precompiler resulting with ready table in code, without unnecessary initialization routines. Also, such tables should be in program memory, to save RAM.

    Third, I'm considered with the table lookup method. The switch-case lookup is far from optimal, but that's not the real issue. Right now, the integer conversion on voltage causes looked up dwell to be the same for 13V and 13.99V. Optimally there should be a interpolation function for lookup. Unfortunately AVRs don't have TBLU instructions, which are so great on Motorolas, but that's not a big problem.

    Anyway, I don't want to criticise you in any way, quite the opposite in fact, as this project is growing very fast and looks very promising! If I'll find some time in the evening, I will upload some modifications to the code for you to consider.

  11. #266
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    Quote Originally Posted by dzidaV8 View Post
    First of all, consider loosing Arduino IDE in favor of raw C code in Atmel Studio. I know that INO is easier at first,
    In the interest of keeping the do-it-yourself ethos, I have no interest in using the Atmel toolchain.

    Quote Originally Posted by dzidaV8 View Post
    but has many flaws that make it virtually useless for any real-time, professional use.
    My opinion may be under-developed here but I think that's an unfairly generalizing statement. Sure, there's a wealth of poorly written example code out there that results in some very sloppy projects, but that doesn't mean all Arduino projects are poorly executed. I'm certainly not innocent in this regard - I have some real stinkers in my code library. I don't feel this one is quite so flawed.

    Quote Originally Posted by dzidaV8 View Post
    Arduino libraries are great for testing, as they are very universal, but as anything that is universal, they are slow and too complicated for this use.
    That's why as I stated I'm using them very sparsely.

    Quote Originally Posted by dzidaV8 View Post
    Especially USART functions, which are blocking, and port control functions which are slow.
    The current serial.print function as of 1.0 and up is non-blocking. And unless something slipped past me, I'm not using any of the Arduino port control functions except in non-time critical areas such as setup(). And those I'm really only using for illustrative purposes.

    Quote Originally Posted by dzidaV8 View Post
    I can help with porting the code to C and creating a project in Atmel Studio. This would have other benefits than smaller and more optimal code - you could use smaller ATtiny microprocessor.
    It's not already C?

    I'm not interested in debating which IDE or compiler is used. I'm not a huge fan of either IDE, but the Arduino platform exposes this to much broader audience. My personal opinion is as long as it remains a DIY project I believe it should stay with Arduino / gnu make / avrgcc toolchain. But you're welcome to create your own fork for a different toolchain.

    Quote Originally Posted by dzidaV8 View Post
    The Interrupt service routines can be optimized as well, and that's where the timing is critical at high RPM.

    Second, all the "populate" functions are unnecessary - all that work should be done by precompiler resulting with ready table in code, without unnecessary initialization routines. Also, such tables should be in program memory, to save RAM.
    Fantastic suggestions - I would love to know how to do that with the tables. As I've stated previously in this thread I have other projects I want to work on, so discussion and debate isn't nearly as helpful as examples.

    Quote Originally Posted by dzidaV8 View Post
    Third, I'm considered with the table lookup method. The switch-case lookup is far from optimal,
    That's why I put pretty much those exact words in the comment header of that function. Examples are welcome.

    Quote Originally Posted by dzidaV8 View Post
    Right now, the integer conversion on voltage causes looked up dwell to be the same for 13V and 13.99V.
    The integer conversion / rounding happens in the main loop. So 13.49 volts and lower should round to 13 and 13.50 and higher to 14.

    Quote Originally Posted by dzidaV8 View Post
    Optimally there should be a interpolation function for lookup. Unfortunately AVRs don't have TBLU instructions, which are so great on Motorolas, but that's not a big problem.
    Some type of smoothing is one of the things on my list to consider. I really don't know if the benefit is worth bogging down the mcu with the extra math. But I'm open to any ideas you have.

    Quote Originally Posted by dzidaV8 View Post
    Anyway, I don't want to criticise you in any way, quite the opposite in fact, as this project is growing very fast and looks very promising! If I'll find some time in the evening, I will upload some modifications to the code for you to consider.
    Thanks, no offense taken. I'm a self-taught jack of all trades but master of none. This is by far my most ambitious mcu project, and I had to learn quite a lot in the process. I'm in no way ashamed of this one.

    I look forward to seeing what you come up with.

  12. #267
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    In addition to the switch case code, one other area I would love to see better ideas on is the main loop. I'd like to have a scheduler mechanism here that prioritizes the dwell routine but have no idea how to implement such a beast. Edit: an idea just crossed my mind for a simple state machine scheduler. Hopefully the thought will evolve. But still open to suggestions.

    Also, I fixed a couple bugs I found in the log after uploading 0.9.2 last night. I want to test the changes tonight before I update the repository with it.

  13. #268
    Fuel Injected!
    Join Date
    Oct 2013
    Posts
    1,022
    What you've got is pretty impressive.

    Could the extra starting time be it synchronizing?

    What rpm have you taken it to in the car?

    Thinking about it more, there is likely a current limiting circuit in the module and the pin is an input to a logic circuit of some sort. But, if the PCM is just a pull-up resistor then finding the right external load resistor to keep the voltage under the fault level is all that is required as you have found out.

  14. #269
    Fuel Injected! spfautsch's Avatar
    Join Date
    Apr 2015
    Location
    Montgomery City, MO
    Age
    52
    Posts
    883
    The extra time could be imagined. I should also add that I haven't started it in ambient temps this cold since swapping to the 42 lb injectors. It's supposed to get into the 50s this weekend so I'll try to make a better video then before I start dismantling.

    I seem to recall hitting 3400 a time or two, but honestly I don't really have time to make something to parse the logs.

    Edit: oh grep, you're the best regular expression cli utility...

    Code:
    start-run-01-13-5.log:R3400:S31:D91:C6:E0:L0
    start-run-01-13-5.log:R3400:S32:D91:C6:E0:L0
    start-run-01-13-5.log:R3400:S31:D91:C6:E0:L0
    Note that spark advance plus dwell is around 122 degrees so that's 32 degrees where two coils would be dwelling simultaneously.

    Steveo, if you're listening there's a hint at an easy feature request for eehack - peak rpm statistic on one of the analyzer tabs would be freaking awesome. Also, if possible it would be great if you could push the latest code out to github so us two or three linux users can compile the current build - isn't it at 4.9 now?

    I would really like to get it off the wheel casters and run it, but I don't really have a week to spare to finish building a prototype board. As much as I want to, there's no way I'm going to go out and flog it with that ball of yarn that's hanging out of the breadboards.

  15. #270
    Fuel Injected!
    Join Date
    Mar 2013
    Posts
    1,470
    Quote Originally Posted by spfautsch View Post
    Steveo, if you're listening there's a hint at an easy feature request for eehack - peak rpm statistic on one of the analyzer tabs would be freaking awesome. Also, if possible it would be great if you could push the latest code out to github so us two or three linux users can compile the current build - isn't it at 4.9 now?
    The last stable version is 4.7. I am working on some version labeled 4.9 but is far from ready. Anyway my improvement will be only on added mode 4 controls and some clean up of the patches.
    Last edited by kur4o; 01-17-2018 at 11:50 PM.

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
  •