PDA

View Full Version : DIY LTCC or similar system for LT1s



Pages : [1] 2 3 4

Aroberson77
09-08-2017, 05:36 PM
I figured this may be the best place to find any info. I have been having some issues with my ignition on my LT1 lately and am thinking about building my own LTCC type system that uses the optispark to determine crank and cam position, but uses individual coilpacks instead of routing the HV through the optispark. I assume I need to get the opti signals into a controller that has 4 or 8 outputs for each cylinder. has anyone tried this before?

vilefly
09-08-2017, 11:50 PM
I figured this may be the best place to find any info. I have been having some issues with my ignition on my LT1 lately and am thinking about building my own LTCC type system that uses the optispark to determine crank and cam position, but uses individual coilpacks instead of routing the HV through the optispark. I assume I need to get the opti signals into a controller that has 4 or 8 outputs for each cylinder. has anyone tried this before?

Well, I am working on a similar project, but have very little time. Still in the planning stage. To start with, you need this transistor to fire your coils (8 of them) https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&cad=rja&uact=8&ved=0ahUKEwjK1NKstJbWAhXojFQKHV2kBKYQFgg1MAU&url=http%3A%2F%2Fwww.irf.com%2Fproduct-info%2Fdatasheets%2Fdata%2Firgs14c40l.pdf&usg=AFQjCNHPxqh61suk_jzaqY24EtGtItbi9g

IRGB14C40L is a to-220 package protected on all sides with zener diodes, overcurrent protection, and can handle 14A with a proper heatsink. very tough and hard to kill, except for thermal destruction. A positive 5v pulse on the gate triggers it. dwell time is not controlled. Just a slave unit. All oem manufacturers use this one....ALL.
Newark or digikey or mouser should have some decent prices.

Read this page on LT-1 electrical specs and optispark decoding. http://chevythunder.com/lt1_electrical_page.htm
(http://chevythunder.com/lt1_electrical_page.htm)LOW RESOLUTION SIGNAL:
Cylinder # 8: 7 edge counts wide (from Hi-res signal)

Cylinder #3: 12 edge counts wide

Cylinder #5: 17 edge counts wide

Cylinder #2: 22 edge counts wide
The other cylinders between these (1,4,6,7)= 2 edge counts


The next item I intend to use is an 1-to-8 demultiplexer, sometimes called a data distributor. I will use this data switch to redirect the ignition module's FIRE signal to the 8 transistors listed above. That way, I can still let the ECM control the dwell time. easy-peasey.

The hard part: making a counter-convertor for the optispark signals. I can deal with the 2 signals by gating them to one another with an "and" gate. Then I decode the counts to decide which cylinder to switch to with a decade counter. Use an edge-trigger strategy for both positive and negative going pulses. The problem is that between the pulses is a single 2 count slot. Shouldn't be too much trouble if I switch the "and" gate off with the 1st decode, and count the starting edge pulses from then on as TDC.

My time is still limited by the fact that I am chasing a toddler around these days.

Aroberson77
09-09-2017, 03:26 PM
Cool, I can definitely help out with this. Are you planning to use an arduino to write the program? I think that would be easy. Im not the greatest with programming but like wiring a lot so hopefully I can help

vilefly
09-09-2017, 05:00 PM
nope. I think it would be like using a sledgehammer to drive in a nail. And there is the problem of propagation delay. Counters and gates. old school. I think an arduino might get cooked under the hood. I have yet to even use one....need time to learn more about them. Coding looks easier than in my day, but if I do it by hardware, I can make more in a cheaper fashion.

Aroberson77
09-09-2017, 08:43 PM
I didnt know it could just be done with hardware, that makes it way easier.

vilefly
09-10-2017, 02:22 AM
Well, I had a tough time finding ICs that were not surface mount only. How annoying. Makes prototyping difficult.
Step 1.........signal conditioning. I will use a positive edge triggered flip-flop with both outputs tied to an OR gate to double the pulse count from the low res signal.
This is because I couldn't find a dual edge triggered.....anything. So, for compatibility sake, I had no choice. (counters only see the positive-going edges)

I will have to check each signal output, to make sure I don't mess up the count, with an oscilloscope. Because I'm old and forget things when my child is eating the dog's food with too much gusto. Have to complete this thought later, I have to save the dog food.

Fast355
09-10-2017, 03:31 AM
EFI connection 24x swap with an 0411 is how I would fix the optispark in a LT1. The only non factory part at that point would be the reluctor ring itself.

steveo
09-10-2017, 04:32 AM
definitely a great hobby project.

i would consider building a more general purpose piggyback ignition controller.

make it accept many types of signal.. opti, various reluctors. make it work for arbitrary number of cylinders.

make it able to drive coil per cylinder, waste spark, -or- single coils for distributors.

give it a loadable config file. add two analog inputs for a map or tps.

give it tables for add/subtract advance, dwell, multiple sparks per cycle, cut and retard options for nos n rev limit....

arduino for a brain should be able to do it

if its worth doing its worth doing well

vilefly
09-10-2017, 05:29 AM
Fast 335,
Sounds too expensive for me. $1200 just to run like it normally does anyways. Add to that obd2 tuning program and programmer for the new ECM to get it running right for another $1000 + time. I could simply drop in a LS engine and computer instead.

My ulterior motive is to make my ignition system into an ion sensing ignition system. That way, I can directly measure cylinder pressure and produce the most optimal spark timing for any condition on the fly. The optispark signals will need no decoding to produce a 1 degree accuracy for my system. The LS system provides me with no such decoding output that I can splice into.

vilefly
09-10-2017, 05:41 AM
steveo, check this chip out.
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiFyI70yZnWAhVB1oMKHTo9BgUQFggrMAE&url=http%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fdata-sheet%2FMC33813.pdf&usg=AFQjCNHVgDEzqecJJfhk2A8bwU5MCqf9UA
Also, there is the NanoEFI project, which uses an arduino to run things. https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwi-2-bey5nWAhUC94MKHUt_CloQFggmMAA&url=https%3A%2F%2Fwww.nanoefi.com%2F&usg=AFQjCNHibT7K_9E9QYKNX5-zzu0MGJKJLg

I have the single chip 1cyl engine controller IC on backorder, should arrive next month or so. it contains its own reluctor signal processing and is programmable. It even resolves the signal to a tenth of a degree. So, I just had to have one to poke at and prod.

Fast355
09-10-2017, 03:48 PM
Fast 335,
Sounds too expensive for me. $1200 just to run like it normally does anyways. Add to that obd2 tuning program and programmer for the new ECM to get it running right for another $1000 + time. I could simply drop in a LS engine and computer instead.

My ulterior motive is to make my ignition system into an ion sensing ignition system. That way, I can directly measure cylinder pressure and produce the most optimal spark timing for any condition on the fly. The optispark signals will need no decoding to produce a 1 degree accuracy for my system. The LS system provides me with no such decoding output that I can splice into.

0411 runs better and the Blue/Green 1 meg runs even better and there was a 16 rwhp power gain at redline in my Vortec 5.7 going to the Coil Near Plug setup. I am currently running a Flex Fuel sensor and E85. Fuel change alone netted me an additional HP/TQ gain on the dyno.

I had used 6.0L D585 coils at my disposal but the rest of the parts were relatively cheap. I only bought the coil brackets, mounting hardware, the crank reluctor, crank sensor and the distributor cap from EFI connection. Seem to remember my bill being less than $500.

I already had HP Tuners and at the Time I bought it was under $700 with credits to tune 4 GM vehicles.

If I had a LT1 to start with I would not consider anything under a 6.0L and that engine would cost you $2500 for a high mileage engine needing some work. You would need another $1000 in parts to swap it in on top of the pullout engine with harness. I am right in the middle of a LS 6.0L swap as I type this and it is time consuming and $$$$.

The F-car LT1 I messed with put down 320 rwhp and 340 rwtq through a M6. 150K mile stock longblock with a spring/retainer/guide plate/pushrod/1.7:1 rocker/24x coil per cylinder 0411 swap. The car had a Moroso CAI kit and a catback exhaust.

Fast355
09-10-2017, 04:18 PM
I will also not get into the fact this engine also gained 27 hp and 6 ft/lbs from a valve spring and retainer change. Lets just say I had a local machine shop pickup and install 2.02/1.60s in these heads and somehow ended up with 0.100" longer than stock valves and shimmed stock springs that did not even have 70# at the seat. With 1.7:1 rockers my small 395' cam had .489/.511 lift on stock Vortec springs at a 1.8" installed height. Between 5,100 and 5,300 it lost more than 20 rwhp mostly from valve float. I went from 230 rwhp to 257 rwhp changing to LS6 springs and Comp 787 retainers and using hardened .030" and .015" shims stacked to get to a 1.755 installed height.

vilefly
09-10-2017, 05:39 PM
Well fast355,
You've been having some fun lately. I am jealous.
My rough pricing was for starting out with a '95 LT-1, which requires a later model timing cover, which I do not have. The kit that has it costs $865.00 without the computer. The computer costs $395.00 w/o programming, which they will not do for you. EFI live flashscan and tune costs $899.00. Without the wiring harness, that's about $2159.00. +$675 for the wiring harness. Grand total = $2834.00 without bargain hunting on ebay. So.....I was way off. It would be much cheaper if I started out with a distributor-equipped 5.7L vortec.
Anyways, this journey is mostly about learning and honing my electronics skills, which are dreadfully out of practice. 25yrs in the automotive tech field barely kept my electronics skills alive, and I have forgotten a few basics in the logic circuit area.
The LS motors bug me. I am seeing cam bearings walking out of place, and blocking oil from the lifters, sludge plugging the pickups, oil pump pickup o-rings failing, and Displacement-On-Demand roller lifters fail often. Oh, and I hate having to remove the cylinder heads to gain access to the lifters. They run great, but don't have much staying power without synthetic oil. (350,000 if synthetic is used)
Oh crap. I'm ranting. Somebody stop me.

steveo
09-10-2017, 07:23 PM
might i suggest not turning a really cool hobby electronics project discussion (which is why this forum is awesome) into some kind of horsepower estimating, shoulda used this ecm instead, lsx-is-better bullshit

vilefly
09-10-2017, 07:42 PM
Thank you steveo for slapping me. And now, back to the project.
I think I will use the CD74HC4024E 7-stage ripple counter to count the pulses. It counts on the negative edge, though. (all ripple counters seem to, for some reason) I should mind my counts just in case.

The single chip engine controller has a Variable Reluctor decode output that you might like. The arduino should like it nicely. I will have to get with the program, and learn more about this handy little device.

Aroberson77
09-11-2017, 05:45 PM
I need to look at this stuff more in depth. the nano EFI looks cool and I like Steveos idea of making it an all in one type of controller. I also like how precise the opti could be if working correctly and I think it really opens up what you can measure with calculations

vilefly
09-11-2017, 08:33 PM
Combine this chip with an arduino, and you have an obdII ready .....lawnmower. Complete with check engine light (CEL) heh. You don't have to use all of the chip, but it should get you on your way.
12085
They should get restocked soon.

Tom B.
09-12-2017, 09:28 AM
Is there any chance you guys would consider doing a waste spark system ala delteq? They have been out of business for quite a long time. I had good success with their system when it worked. I can send the proprietary parts from them if you have any interest. I converted my Impala to the EFI connection COP set up solely because the delteq didn't hold up.

vilefly
09-12-2017, 03:19 PM
That should be no problem. Just tie the coil drivers together from any COP setup. 1-6, 8-5, 4-7, 3-2 for sbc firing order.
Here's a little trick for waste spark system: take the firing order, cut it in half and stack the rows of numbers.
Like this: ford= 15426378 =
1542
6378
link 1-6 5-3 4-7 2-8 cylinders to the coils. works on every engine, even v10s.
I would like to see pictures of the parts to the deltec, I wonder if it is like the Electromotive waste spark system.
Might give us a few ideas.

ras"86
09-12-2017, 03:33 PM
Tom
is there any ecm/pcn that will work with the deltec? something like the buick/olds v6 for a v8? it would be good fot lots of apps.

Tom B.
09-12-2017, 07:19 PM
The 93-97 LT1 pcms. the 93 is all by itself and is not a flash pcm. The 94-95 OBD1's are the easiest. 96-97 for OBD2. The only problem I have had with them is a lot of flashing issues and bricked pcm's. I had no issues for years and then had 6 bad pcm's. I don't know if it is the age or that the flash chips were replaced with substandard parts. I would like to find someone that could fix them reliably.
The delteq uses a Northstar module and coils. I would think you could use the coil pack and module from a 3.8 buick. The only fancy piece to the Delteq is a small convertor that replaces the stock coil and module. I would consider making my own convertor if I can get someone to back engineer them. I have too much going on to properly focus on that project. If any one would like to try it, I can send you one to decipher.

Aroberson77
09-12-2017, 09:38 PM
The 93-97 LT1 pcms. the 93 is all by itself and is not a flash pcm. The 94-95 OBD1's are the easiest. 96-97 for OBD2. The only problem I have had with them is a lot of flashing issues and bricked pcm's. I had no issues for years and then had 6 bad pcm's. I don't know if it is the age or that the flash chips were replaced with substandard parts. I would like to find someone that could fix them reliably.
The delteq uses a Northstar module and coils. I would think you could use the coil pack and module from a 3.8 buick. The only fancy piece to the Delteq is a small convertor that replaces the stock coil and module. I would consider making my own convertor if I can get someone to back engineer them. I have too much going on to properly focus on that project. If any one would like to try it, I can send you one to decipher.

Once I get my car running more reliably I would love to see the delteq stuff. That is weird that you bricked the PCMs just because the delteq was hooked up. Vilefly is really on the right track with making a converter box for the opti signal. Tom there are people that fix bricked PCMs and if you are good with a soldering iron you can do it yourself as well. I know tunercat had a pretty cheap service to fix them.

Ras, the 94-95 LT1 PCMs run the $EE program and are by far the easiest to hack and tune with the available software. Check out SteveO's website fbodytech.com for more info on that PCM.

Tom B.
09-12-2017, 09:50 PM
The delteq wasn't bricking the pcm's. I'm still not sure what was doing it. It didn't matter if they were installed in the car or on the bench. I checked and double checked my hardware and software. I had 3 of them repaired prior to the last bricking episodes. I would replace the chips myself if I knew where to buy the chips and how to do the initial flashing. I would really like to convert one to be an emulator for real time tuning.

Aroberson77
09-12-2017, 10:04 PM
The delteq wasn't bricking the pcm's. I'm still not sure what was doing it. It didn't matter if they were installed in the car or on the bench. I checked and double checked my hardware and software. I had 3 of them repaired prior to the last bricking episodes. I would replace the chips myself if I knew where to buy the chips and how to do the initial flashing. I would really like to convert one to be an emulator for real time tuning.

http://www.goldsswagon.com/PCMFlash/HowtofixthePCMFlashMemory.htm Have you seen this before?

getting back on topic, assuming we decode the opti signals successfully, what other true/false statements can be used to tell the demultiplexer which coil to fire? I don't think the stock PCM has any signal outputs for this since it uses a cap and rotor arrangement

Tom B.
09-12-2017, 10:05 PM
Vilefly if you are close to a solution I am interested. I will post photos of the Delteq parts. The mounting brackets and convertor are the Delteq parts. The rest are standard GM coils and module. One thing I did like with the Delteq is that the engine would take 50 degrees of timing.

Aroberson77
09-12-2017, 10:07 PM
Vilefly if you are close to a solution I am interested. I will post photos of the Delteq parts. The mounting brackets and convertor are the Delteq parts. The rest are standard GM coils and module. One thing I did like with the Delteq is that the engine would take 50 degrees of timing.

50 degrees?? that seems insane. we really need to see what is inside the converter. Do you at least have a wiring diagram or remember how the converter is hooked up into the system?

Tom B.
09-12-2017, 10:20 PM
I have a copy of the diagram. Do you want me to send you a convertor?

Aroberson77
09-12-2017, 10:39 PM
I have a copy of the diagram. Do you want me to send you a convertor?

if you want, the diagram would be great as well

buddrow
09-13-2017, 12:14 AM
Most of what you want can be done with software, and you wouldnt need delteq hardware(which is likely supported by accompanying firmware). The coil driver hardware is easy, the software, on multiple cylinders is easy although the arduino would be taxed during higher rpm operation, looking at microseconds to process dwell time before the next trigger pulse is received.

Bud

Tom B.
09-13-2017, 12:20 AM
Aroberson77 (http://www.gearhead-efi.com/Fuel-Injection/member.php?11846-Aroberson77)
You have a PM

Tom B.
09-13-2017, 12:26 AM
The delteq was the work around because of the driver issue. The system was developed over a decade ago. The beauty of the system was no programming changes were necessary. The average guy could install it in about an hour.
The tuning community has grown quite a bit since this stuff was the hot ticket.

vilefly
09-13-2017, 03:18 AM
Vilefly if you are close to a solution I am interested. I will post photos of the Delteq parts. The mounting brackets and convertor are the Delteq parts. The rest are standard GM coils and module. One thing I did like with the Delteq is that the engine would take 50 degrees of timing.

Still working on a solution between toddler attacks. Basically, all I have is on paper. I have the LoRes and HiRes signals tied together through an AND gate, going to a Flip-Flop coupled to a Exclusive OR gat to double the pulses I get (a workaround for only single edge triggering ICs), going to a 7-stage binary ripple counter (CD74HC4024E), and those outputs going to 4-input AND gates (5 of them) which decode the Lo-Res "large slots" correctly, and the 5th one for the 2 degree slots.
12086
I just have to work on the switchover to a nice, mindless decade counter linked to a demultiplexer/data distributor chip which will be sending the ignition trigger pulse to the correct ignition transistor. It will only look for the leading edge of the Lo-Res signal, nothing more. The decoding gates will reset it at the 1st time, then it will recycle on its own. Switching to the simple setup will be plenty fast for anyone.....nanoseconds baby, nanoseconds. Only limit will be the ignition trigger/dwell signal from the stock ECM. Easily modified by anyone from there.

Tom B.
09-13-2017, 04:24 AM
I have the Delteq convertors if you want to dissect one. PM me with your address if you want to look at it. I will say the only major flaw was the sealing and lack of a superior heat sink. The unit bolted directly to the cylinder head.

Aroberson77
09-13-2017, 04:08 PM
Tom once I get the Delteq I will pull it apart and see if I can make a schematic so we can compare to Vilefly's work. I wonder if a better cooled and sealed Delteq unit would be the ticket. I would also like to get it to work with LS style coils since those are available everywhere and I can test with coils off my truck

Aroberson77
09-14-2017, 03:25 PM
So my Opti officially died on me today, I did more research and there are some guys that have attempted to take normal hall effect signals like 58X and convert to the signals to the square wave that is seen by the PCM.

Apparently this chip can help: http://www.ti.com/product/LM1815

See this thread: https://ls1tech.com/forums/lt1-lt4-modifications/1387149-opti-eliminator-preview.html

Aroberson77
09-14-2017, 04:25 PM
More rambling, but could you basically make a trigger wheel with 360 slots and one with 8 slots for the LS sensors to pick up? would whatever crank sensor is used in the LS engines work? Im gonna sketch something up today

lionelhutz
09-14-2017, 10:46 PM
You can get a sensor from AIP Electronics. P/N is OS95LT and they cost about $55.

If you're going to put trigger wheels on the engine then might as well add the coil wiring harness and do the 0411 PCM conversion.

Note that the crank turns 2X for every cam rotation. So, you could move the high resolution 1* signal to the crank but would need to use 720 teeth instead of 360 teeth. You can't put the low resolution signal on the crank, it has to be on the cam.

Aroberson77
09-14-2017, 11:04 PM
You can get a sensor from AIP Electronics. P/N is OS95LT and they cost about $55.

If you're going to put trigger wheels on the engine then might as well add the coil wiring harness and do the 0411 PCM conversion.

Note that the crank turns 2X for every cam rotation. So, you could move the high resolution 1* signal to the crank but would need to use 180 teeth instead of 360 teeth. You can't put the low resolution signal on the crank, it has to be on the cam.

It would be easy to do the 0411 PCM conversion, but I guess I am being cheap and trying to keep the LT1 PCM

Tom B.
09-14-2017, 11:10 PM
The 411 swap on an LT1takes a lot of tuning. You also have to put a 1996 and newer valve body in your 4L60E. I am finishing up tuning a 411 swap on my LT4 Hotcam engine that is heavily modified. I will assist anyone who plans on doing one.
The delteq system and a good opti work great without spending the cash on the 411 swap. I was wrong when I said that delteq was out of business. I was just looking at their website. The kits are still kinda pricey, but still cheaper than a 411 swap. We will have to see what Aroberson77 & Vilefly come up with.

Fast355
09-15-2017, 03:11 AM
The 411 swap on an LT1takes a lot of tuning. You also have to put a 1996 and newer valve body in your 4L60E. I am finishing up tuning a 411 swap on my LT4 Hotcam engine that is heavily modified. I will assist anyone who plans on doing one.
The delteq system and a good opti work great without spending the cash on the 411 swap. I was wrong when I said that delteq was out of business. I was just looking at their website. The kits are still kinda pricey, but still cheaper than a 411 swap. We will have to see what Aroberson77 & Vilefly come up with.

My 0411/24x/CNP/DBW swap did not take too much tuning honestly speaking. Swapped in a 2002 8.1 engine operating system, copy pasted most of my 350's old table values into the tune. Flashed the entire PCM not just the calibration. After it was all wired up & connected, hit the key. It fired up, idled, had good throttle response, took it for a drive and did a little fine tweaking. I had swapped the heads and cam at the same time. If the 350 Vortec had been stock, it likely would have run well with ZERO additional tuning. I am actually in the process of removing the L31 marine intake and swapping in a ported Edelbrock Vortec TPI base and siamesed SLP runners and plenum onto it. I have one of the LT1/TPI EFIConnection DBW throttle bodies I picked up second hand that I will end up using if it fits and clears the accessory drive I ran previously from a 1995 G20 van on my 1983 G20 that had a 383 TPI in it. I will probably have the only OBD2 TPI Express van in existence.

Tom B.
09-15-2017, 03:49 AM
You are one of the few that had a relatively easy time. There are a lot of pro tuners that have had nothing but headaches. While the conversion isn't overly difficult, getting the tune right can be extremely time consuming. There have been some consistent problems, especially with the LT1/4's. The novice tuner will need some good assistance from those of us that have their stuff dialed in.

Tom B.
09-15-2017, 03:51 AM
Andy,
The delteq should be at your house on Saturday.

Aroberson77
09-15-2017, 03:59 AM
Andy,
The delteq should be at your house on Saturday.

Awesome, thanks Tom, I'll let you know what I find out

Tom B.
09-15-2017, 04:06 AM
No sweat. You can download the manual on Delteq's site. http://www.delteq.com/support_manuals.htm

Fast355
09-15-2017, 04:12 AM
You are one of the few that had a relatively easy time. There are a lot of pro tuners that have had nothing but headaches. While the conversion isn't overly difficult, getting the tune right can be extremely time consuming. There have been some consistent problems, especially with the LT1/4's. The novice tuner will need some good assistance from those of us that have their stuff dialed in.

Biggest issue I have seen and this was fixing what a "PRO" screwed up was getting the injectors & coils in the right order at the PCM and then correcting the injector bank assignment and firing order in the tune. If you go by a Gen3 wiring diagram on the coils and injectors it will be wrong 100% of the time on a traditional small block. It all has to match or it will run terribly. It also had the left and right o2 sensors swapped and when the PCM tried to go into closed loop, one LT fuel trim went to 125% and the other 75%. Then getting good injector data is a MUST! Finally the trickiest part I have found tuning anything with the Blackbox and the 0411 has to be the way the PCM handles fuel enrichment for AE and the idle air stuff. I have found leaving the tune a little on the rich side helps the driveability tremendously with the bigger cammed setups.

Then again I have tuned far bigger challenges. A 232/240 @ .050 cam cut on a 110° LSA in a heavily modified TPI 383 running the 7730 speed density ECM. That one was fun just to get it leaned out enough so it would idle and you could drive it and tune it.

The LT1 I tuned was a 396 with 42 lb/hr junk bosch injectors and a GM 847 cam. Luckily I had injector data from my buddies 6.0L truck that has the same JUNK bosch injectors in it. The 0411 does not like Bosch injectors much and both still occasionally get codes for open injectors. Moral of the story there don't buy cheap Ebay garbage injectors if you want the thing to run well.

I like the Gen3 PCMs because you can do alot of cool stuff like add an Ethanol Flex Fuel sensor and run anything from straight gasoline to E85 and have the PCM adjust both the spark map and fuel delivery to secondary values you can set. I gained a good bit of power running E85 with no engine changes. The next engine in my Express van will be a 383 in the 11.5:1 range with aluminum heads and run E85 for power. Goal is 500 ft/lbs @ 3,500 from a small block. 383+ moded TPI is how you get there. Should still be able to get 400 hp out of it as well.

Tom B.
09-15-2017, 05:33 AM
I agree with you about some of the so called "Pros". As far as the average tinkerer goes, one example for the trials and tribulations of the LT/LS swap that can screw up a tune is the injection timing. Stock LS1 engines have no overlap, LT1's have varying degrees of overlap, if it isn't corrected you get a false rich condition when the engine is actually lean. You have the injectors spraying into an open intake valve while the exhaust valve is still open.
Most novice tuners trying to DIY, wouldn't know that and will be chasing their tail trying to get their VE corrected. This is just a single example, there are many other parameters that need to be addressed. My philosophy is to the best of my ability, to make the car hobby more enjoyable than frustrating for all involved. Sometimes the time and expense of these various upgrades is just not worth doing. Sensible, cost effective solutions on a case basis are usually the best way to proceed.

Fast355
09-15-2017, 06:06 AM
I agree with you about some of the so called "Pros". As far as the average tinkerer goes, one example for the trials and tribulations of the LT/LS swap that can screw up a tune is the injection timing. Stock LS1 engines have no overlap, LT1's have varying degrees of overlap, if it isn't corrected you get a false rich condition when the engine is actually lean. You have the injectors spraying into an open intake valve while the exhaust valve is still open.
Most novice tuners trying to DIY, wouldn't know that and will be chasing their tail trying to get their VE corrected. This is just a single example, there are many other parameters that need to be addressed. My philosophy is to the best of my ability, to make the car hobby more enjoyable than frustrating for all involved. Sometimes the time and expense of these various upgrades is just not worth doing. Sensible, cost effective solutions on a case basis are usually the best way to proceed.

The overlap is really a non-issue with these PCMs. I have run the same values on 4 different cams. The factory Vortec 5.7 Express van tune offers a great starting point for most LT1 setups.

FWIW the LS1 engines DO have overlap. It just happens to be at lower valve lifts than the LT.

I see your point though.

I also have a history table I setup to log gms/cyl vs RPM vs KPA and can recreate any Map based spark map in the LS controller. I run a Ramjet 350 crate engine based timing map in my Express van.

vilefly
09-16-2017, 03:59 AM
Finding the right chips to talk together is annoying, especially when a toddler is constantly attacking you and your paperwork. I may have to rework a few counting strategies.
12091
My 8 channel analog multiplexer/demultiplexer chip had to be switched to a 16 channel one, due to a different counting strategy. (all low inputs make a count, leaving me with 7 outputs, not 8 to use with my ripple counter) The 24 pin dip version is obsolete and no one stocks it. So, I will use the CD74HCT4067-Q1 chip.
1209312094
You can see how I tie in the ripple counter. To the uninitiated, a binary counter turns on certain output pins on the chip to express a number. a 7 would use 3 pins, 1+2+4. So, it should be a small matter to tie the proper value pins together from the counter directly to this chip. (basically, an electronic rotary switch).
I am being attacked again. be back when I can.

spfautsch
09-16-2017, 04:34 AM
FWIW the LS1 engines DO have overlap. It just happens to be at lower valve lifts than the LT.

Valve overlap is purely a function of cam timing (lobe separation angle), duration, and lobe ramp rates. You and Tom B should take your LS vs LT p###ng contest elsewhere, it's not contributing to the essence of what the OP is trying to accomplish, which is cooler than you're capable of comprehending.

vilefly: - killer idea. I can't wait to see how it pans out.

vilefly
09-16-2017, 04:41 AM
More rambling, but could you basically make a trigger wheel with 360 slots and one with 8 slots for the LS sensors to pick up? would whatever crank sensor is used in the LS engines work? Im gonna sketch something up today

No reason you couldn't have a new optispark disk laser cut to your specs and installed in place of the original. Then "analog up" the signal to simulate a reluctor. Oh, wait.....forgot the magnetorestrictive sensor has a digital output like a hall effect sensor. No analoging needed.

Neat post on the alternate opti-conversion, just wish they weren't trading one problem for another.....such as debris damaging those tiny teeth and crank sensor. The crank sensor would have to be a hi-impedence type just like an ABS wheel speed sensor to make it sensitive enough to work.

Tom B.
09-16-2017, 04:45 AM
Hey now! We did get a little off topic for a minute. Anyways, I am committed to help you guys find a good, reliable, economical solution. I'm sure Fast 355 will be just as generous with his time and expertise. (P.S. we know exactly how camshafts function).

spfautsch
09-16-2017, 04:51 AM
(P.S. we know exactly how camshafts function).

Then you should know it has nothing whatsoever to do with the engine it's installed in. It doesn't matter how many cylinders there are, if it's an inline or v60 or crossplane v90. In a four stroke engine the intake stroke occurs immediately after the exhaust stroke. End of discussion.

This is a thread discussing the possibility of interfacing a cop setup to a PCM designed for for a distributor. Let's get away from the LS swap economics discussion. The subject has been beaten to death. Let it rest in peace.

Tom B.
09-16-2017, 05:14 AM
I will say this once and then I am done with it. Valve overlap has a lot to do with the way it affects how an engine runs. If your position is to the contrary, I can only surmise you are less experienced than some of us that know better. You and I don't know each other or our personal abilities and experience, so lets not to try to play school teacher.
Back to the subject at hand. As far as this project goes, Andy should have the convertor box I sent him dissected in a timely fashion, and he and Vilefly will have a viable solution.

Aroberson77
09-16-2017, 05:30 AM
VF, I know those hall effect sensors might be more durable than the optical sensor, but Im not sure. It was hard to find one that had high enough frequency. I think a well sealed opti with no HV will live just fine. Im glad you found a chip that will work so easily.

spfautsch
09-16-2017, 05:32 AM
Valve overlap has a lot to do with the way it affects how an engine runs. If your position is to the contrary, I can only surmise you are less experienced than some of us that know better.

Valve overlap is a measurement in crankshaft degrees of how long the intake valve and exhaust valve are open at the same time. It is entirely controlled by the camshaft, and for most factory cams it's zero or very nearly. Let's get back to discussing what's relevant here. Overlap, whether in an LT or LS block, is not.

vilefly
09-16-2017, 05:35 AM
I can only hope I will ever have time alone to myself to make a prototype. Hard enough to concentrate these days. I at least hope to post a schematic someday that works.
It still would be cool to have interchangeable optical disks for various computers and such. Laser cut sheet metal. Sounds pretty cheap to me.
Nissan uses such discs, too.

vilefly
09-16-2017, 06:01 AM
VF, I know those hall effect sensors might be more durable than the optical sensor, but Im not sure. It was hard to find one that had high enough frequency. I think a well sealed opti with no HV will live just fine. Im glad you found a chip that will work so easily.

Years ago, when HEI was all the rage, I had epoxied spark plug towers to HEI coils, had a mirror on the rotor and a IR detector/emitter in the cap. Everyone said I was crazy. I had found the 1-to-8 data distributor chip (as it was called) back then, but I didn't have squat for money, and the internet was not up.

Tom B.
09-16-2017, 06:10 AM
The Opti without the high voltage running through it will be just fine. Just clean it up and seal it. The same sensors seem to run forever in the other cars they are installed in.

dzidaV8
09-16-2017, 11:31 AM
Nice project, I think it would be much easier just to use uP for coil switching, we are talking about frequencies of about 25kHz at 8k RPM, that's basically a slow signal for let's say AVR or STM32 running at a few MHz... But I appreciate your effort to make it discrete!

Another point that comes to my mind is that almost all of the optis I had replaced had the optical sensor failing due to high temperature, NOT the HV part. It seems that over time temperature causes the LED and phototransistor to lost alignment somehow.

I think a good solution would be to use vortec style cover with CKP sensor for hi-res signal (180 tooth wheel), and only low-res sensor in the opti. The question remains if the CKP sensor is capable of picking so dense teeth.

spfautsch
09-17-2017, 01:46 AM
The Opti without the high voltage running through it will be just fine. Just clean it up and seal it. The same sensors seem to run forever in the other cars they are installed in.

I'll agree with you on this one. The optis I've seen fail died in two different fashions. One was the cheap chinese junk replacement off eBay with the Chrysler optical sensor installed that loses high resolution signal when it gets hot. I have one of these and replaced the optical sensor with one from AIP Electronics that meets the specs of the original Mitsubishi unit. The others died because the optical wheel was destroyed by arcing from the high voltage side.

As lionelhuntz mentioned, AIP Electronics makes a sensor that meets oem temperature specs. They're sometimes out of stock, but I've been running one in my triple-c opti from eBay (previous owner installed it) for going on 3 years now. No problems up to 6800 rpm rev limiter.

vilefly
09-17-2017, 01:50 AM
Thanks dzidaV8, I figured that if I make it hardware based, anyone with a processor can make use of it.
yup, heat kills the optical pickup by increasing the resistance of the led emitter until it burns out or is too dim to work. Heat kills hall effect sensors, too. Roughly at the same temperatures, too. It's just the fact that the emitter generates heat in operation is why it probably fails slightly sooner.

I don't think the vortec timing cover fits the LT-1 due to the water pump/distributor drives. I think you mean the 1996-up timing cover that has the extra 4x reluctor and crank sensor. The tooth density that you speak of definitely would raise issues with the stock crank sensor. They are magnetorestrictive in nature, and can be quite touchy.
A custom hi-impedence sensor would work better....something that develops a higher voltage per tooth, basically.

spfautsch
09-17-2017, 02:15 AM
It seems that over time temperature causes the LED and phototransistor to lost alignment somehow.

I believe what happens is the phototransistor slew rate slows to the point it basically runs into saturation (on all the time) when it gets hot. Theres an "equivalent" sensor that was used by Chrysler in a traditional distributor application that was used heavily in cheap aftermarket optis that did this. The Chrysler application was designed to work in a thermosplastic distributor body, and wasn't able to handle the heat of operating while attached to an aluminum plate bolted to the front of the engine block.

Tom B.
09-18-2017, 02:15 AM
You need to use the 96-97 cover. The crank damper mount is also shorter to accommodate the trigger wheel.

Aroberson77
09-18-2017, 05:05 AM
I took the delteq apart and heres some pictures
12103 12102

vilefly
09-18-2017, 05:25 AM
Ah-ha! they used an UV eprom to possibly sequence the coils, which is something I considered as a cheat if I couldn't find the right combination of counters and gates. Could also simultaneosly store an advance curve, too. Can you read the number on the SOIC chip up there? I suspect a data distributor chip of some kind.
He said it uses a northstar engine ignition module, but I have a doubt, since the northstar uses 2 crank sensors angled 27 degrees apart and a very complex reluctor wheel on the crankshaft.
12105 12106

vilefly
09-18-2017, 05:29 AM
Still trying to work despite constant distractions. Here is roughly where I said I was at. The Digikey website has a free online electronics drafting program linked to their huge catalog. It is called "Scheme-it". Allowed me to post a diagram with a screen capture.
12104

I haven't setup the reset for the counter, and other stuff. but it should give everyone an idea.

Tom B.
09-18-2017, 05:46 AM
The Delteq does use a Northstar module and coils.

vilefly
09-18-2017, 07:27 AM
The Delteq does use a Northstar module and coils.

Then this information will be useful to you. It is northstar ignition system trigger wheel at the exact size and configuration for 10* btdc base timing.
https://www.thirdgen.org/forums/attachments/diy-prom/186132d1254197468-do-away-dizzy-northstar-dim.pdf


this is the northstar ignition system patent.

https://www.thirdgen.org/forums/attachments/diy-prom/203422d1279739190-do-away-dizzy-northstar_dis_patent.pdf

so, I think I was right in thinking they used an eprom as a custom signal generator that is synched and clocked to the optispark signal.
Easiest way I can think of to produce a complex waveform cheaply.

Aroberson77
09-18-2017, 01:42 PM
Soic chip says HCF4050 31A317

Aroberson77
09-18-2017, 03:20 PM
so, I think I was right in thinking they used an eprom as a custom signal generator that is synched and clocked to the optispark signal.
Easiest way I can think of to produce a complex waveform cheaply.

So does that mean we need to figure out what is on that eprom? I would almost rather use the LT1 ignition module and then use LS coils. I believe that is what your original plan was, right?

Aroberson77
09-18-2017, 03:24 PM
Found this pic of the LTCC that uses the LS coils

12107

Aroberson77
09-18-2017, 03:29 PM
More relavent reading. LT1 equipped boats used the Northstar ignition system

http://www.ls1lt1.com/forum/lt1-%7C-lt4-%7C-l99-engine-tech/90369-indmar-lt-1-a.html

lionelhutz
09-18-2017, 06:12 PM
I've been trying to figure out what you're describing. The 1-8 demultiplexer made no sense. A 5-bit ripple counter could work by counting the high res pulses each time the low res turns-on.

I assume once you have the count you'll latch it into a chip so it's held until the next count? You need to use a latch signal for this chip that transitions properly when the low res signal goes away.

I would have expected you to use the high res as the clock to the ripple counter. I suppose you could and the high res and low res so the clock pulses only occur when both exist. Definitely use the low res as the input. So, the counter begins counting up during the low res pulse and then when the low res pulse ends you latch the count into the latch chip.

I'm curious how you'll determine between the other 4 cylinders which have the equal 2 high res pulses. I suppose you could keep the count from the previous cylinder and then count the 2 pulse pattern on-top. Cylinder 4 would be 9 counts for example which is a unique count. This means you'd need a counter reset circuit that looked specifically for a 2-pulse pattern to reset the counter.

I'm not sure why you'd want to use the ignition module and then use it to drive another ignition transistor. If you use LS coils you drive them at logic levels since they have a built-in driver.

Best I can tell, the low res signal starts when the corresponding cylinder is at TDC. So, don't forget that you have to switch to the #8 cylinder when you've found the #1 TDC low res pulse so that the PCM can fire the #8 cylinder in advance of the #8 TDC low res signal appearing.

vilefly
09-18-2017, 07:36 PM
So does that mean we need to figure out what is on that eprom? I would almost rather use the LT1 ignition module and then use LS coils. I believe that is what your original plan was, right?

we might need to in order to prove/disprove any theories. I have no intention of using the original ignition module. The ignition transistors only cost about $1.29 each last time I checked. Allows me to use any coil configuration I want. I am still undecided which coil setup I want, because I have been wrong before. I am only mildly curious as to what is on the eprom, so don't do it for me, do it only if you want to. It is still possible to figure out what they did without an eprom's data.

vilefly
09-18-2017, 07:53 PM
I've been trying to figure out what you're describing. The 1-8 demultiplexer made no sense. A 5-bit ripple counter could work by counting the high res pulses each time the low res turns-on.

I assume once you have the count you'll latch it into a chip so it's held until the next count? You need to use a latch signal for this chip that transitions properly when the low res signal goes away.

I would have expected you to use the high res as the clock to the ripple counter. I suppose you could and the high res and low res so the clock pulses only occur when both exist. Definitely use the low res as the input. So, the counter begins counting up during the low res pulse and then when the low res pulse ends you latch the count into the latch chip.

I'm curious how you'll determine between the other 4 cylinders which have the equal 2 high res pulses. I suppose you could keep the count from the previous cylinder and then count the 2 pulse pattern on-top. Cylinder 4 would be 9 counts for example which is a unique count. This means you'd need a counter reset circuit that looked specifically for a 2-pulse pattern to reset the counter.

I'm not sure why you'd want to use the ignition module and then use it to drive another ignition transistor. If you use LS coils you drive them at logic levels since they have a built-in driver.

Best I can tell, the low res signal starts when the corresponding cylinder is at TDC. So, don't forget that you have to switch to the #8 cylinder when you've found the #1 TDC low res pulse so that the PCM can fire the #8 cylinder in advance of the #8 TDC low res signal appearing.

1) A 5-bit counter is not available in the marketplace. you have to build it out of flip-flops, and I will never give up precious breadboard space making that which is much easier to do with discrete components. 2 unused pins won't kill you, heh. The demultiplexer is not pictured yet.
2) The nor gate does this already. I even wrote a note about its output.
3) The AND gate turns excessive and fruitless work into a signal I can sync with. Again, this is already done. Who wants to count to 720?
4) The circuit so far is merely for syncing during start. The rest of the time it will be the job of another counter that recycles automatically, coupled to the 1-16 demultiplexer/data selector, because they count 0, and the ripple counter does not. It will clock on the LEADING edge of the low-res optispark signal. (switch to next coil when TDC is reached)
5) I never said I was going to use the oem ignition module. I have 8 transistors at my disposal.
6) I already posted about advancing to the next coil in advance. The optical wheel I posted now has TWO sets of numbers on it.

I don't believe in measuring and calculating on the fly. This leaves you vulnerable to a glitchy signal, and is not very fault tolerant. I am no longer an idealist. Just set the counter, and go.

Aroberson77
09-18-2017, 08:07 PM
we might need to in order to prove/disprove any theories. I have no intention of using the original ignition module. The ignition transistors only cost about $1.29 each last time I checked. Allows me to use any coil configuration I want. I am still undecided which coil setup I want, because I have been wrong before. I am only mildly curious as to what is on the eprom, so don't do it for me, do it only if you want to. It is still possible to figure out what they did without an eprom's data.

I forgot that you had found the transistor already...

lionelhutz
09-18-2017, 09:59 PM
I wouldn't assume you can use any coil by simply driving it with a transistor. I'm pretty sure the GM ignition modules have current limiting, basically driving full-on until the current in the coil reaches the limit and then holding the limit.

Aroberson77
09-18-2017, 10:13 PM
I wouldn't assume you can use any coil by simply driving it with a transistor. I'm pretty sure the GM ignition modules have current limiting, basically driving full-on until the current in the coil reaches the limit and then holding the limit.

Here's the coil schematic. Looks like it just needs a 5v signal

12108

vilefly
09-19-2017, 01:57 AM
I wouldn't assume you can use any coil by simply driving it with a transistor. I'm pretty sure the GM ignition modules have current limiting, basically driving full-on until the current in the coil reaches the limit and then holding the limit.

Not sure if you were talking to me or not. But I do know that the LS coils with the igniter built in are very basic. Hit one with a 5v signal and hold it. You will burn it out. Dwell time is controlled by the ECM. The pulsewidth of the 5v signal will prove it when you rev it up while watching it with an oscilloscope. It is not cost effective nor practical to install a dwell control circuit inside every coil. The size is a factor, not to mention temperature. More parts=more chances of failure. This is not a new concept for me at all. See it every day at work.

Now, you have to ask yourself.....do you want to pay $100 per coil or $45? Second, I will set up ion sense ignition feedback on mine, so I don't want any surprise circuitry in my way.
I have decided to use ordinary coils for mine, the rest can do as they will.

lionelhutz
09-19-2017, 02:13 AM
I'd pay about $25 for 8 from the junkyard assuming they'd work with the LT1 PCM. It's loaded with LS engines these days.

Sure, the LS coils are simple and the LS controls do dwell, but so what? The LT1 PCM isn't a LS PCM. I don't believe the LT1 ignition module is as basic. I have no idea if a LT1 PCM does any internal dwell timing or not but I doubt it. I expect the LT1 ignition module is a current limiting HEI type design. So, if you run the LT1/TBI etc coil on straight switched power you'll likely just burn it out.

Aroberson77
09-19-2017, 04:13 AM
I dont think we'll use an lt1 coil, i think the idea was to use the ls1 coil

vilefly
09-19-2017, 04:28 AM
I'd pay about $25 for 8 from the junkyard assuming they'd work with the LT1 PCM. It's loaded with LS engines these days.

Sure, the LS coils are simple and the LS controls do dwell, but so what? The LT1 PCM isn't a LS PCM. I don't believe the LT1 ignition module is as basic. I have no idea if a LT1 PCM does any internal dwell timing or not but I doubt it. I expect the LT1 ignition module is a current limiting HEI type design. So, if you run the LT1/TBI etc coil on straight switched power you'll likely just burn it out.

I am not so sure the lt-1/vortec ignition module is auto dwell or not. Guess we'll find out. Not one of the most challenging problems ever, you know. You are putting cart before the horse. We need to get back to decoding and counting, otherwise we will get nowhere.

Here is a dwell calculator for you. Stretching the trigger signal from the ecm should pose no real problem.
http://www.useasydocs.com/theory/setdwell.htm

I will not discuss this any further until I need to. I have more important things to do. You have a better idea, draw it up and show us. That is why this forum exists. To share ideas and solve problems. Offer us something.

lionelhutz
09-19-2017, 05:36 AM
I will not discuss this any further until I need to.

Getting a plan together first is better than going off half cocked with a "solution". But, you've got it all figured out so go ahead.

Still, this isn't your thread so it's not really your place to be pissy about my posts...

Personally, I will just buy a replacement sensor if it fails, or do a 24X conversion if I really want a change. So, I have no real incentive to design anything myself. I'd try to help but you apparently don't need it.

Still. thinking about it more I probably would have investigated using the combined rising or falling edges of the high and low res signals combined to clock a shift register chain of 8 flip-flops. Decode one of the pulse combinations to inject a 1 into the shift register each revolution. Then, the bit just passes through the chain at each TDC so there's you cylinder identification done and done. None of the AND gate decoding required and no latch required since the flip flops hold their state until the next low res signal comes along.

kur4o
09-19-2017, 08:07 PM
Here is how PCM interprets opti signal and what it counts.

High res signal is counted at every slot full or empty, totalling 720 counts.
Low res signal is trigger for high res counting. The cylinders are encoded 8 1 2 3 4 5 6 7 in the software.

The rotation could be backwards, not sure. TDC location on the disk is also not confirmed. Someone with dismantled opti could check rotor position and see where the disk is at #1 TDC.

All calculations in PCM are handled by a special third processor. Unfortunatelly I cant access rom section of the processor to make a dissasembly of the code.
If anyone knows how to read the third processor rom or have a dump of it, I will be more than happy to make a dissasembly.

vilefly
09-19-2017, 08:24 PM
Lionel, I did consider the method you mentioned above before I drew up the current design. It would work, but it would take as much as 2 crank rotations to sync, meanwhile the injectors are firing long before then, and might allow flooding in colder climates. I suppose you could disable the injectors until the sync, but I am uncomfortable doing so. So I decided to sync as soon as possible so that it won't change how the engine starts. This is simply a personal preference, nothing more.

Nice research, kur4o. I had posted previously an optispark wheel labled for coil switching and TDC. All leading edges of the Lo-Res signal indicate TDC. I had a spare optispark unit to confirm with rotor position, also. It is correct.

lionelhutz
09-19-2017, 10:45 PM
Here is how PCM interprets opti signal and what it counts.

High res signal is counted at every slot full or empty, totalling 720 counts.
Low res signal is trigger for high res counting. The cylinders are encoded 8 1 2 3 4 5 6 7 in the software.

The rotation could be backwards, not sure. TDC location on the disk is also not confirmed. Someone with dismantled opti could check rotor position and see where the disk is at #1 TDC.

All calculations in PCM are handled by a special third processor. Unfortunatelly I cant access rom section of the processor to make a dissasembly of the code.
If anyone knows how to read the third processor rom or have a dump of it, I will be more than happy to make a dissasembly.


Looking at your picture, you can take make a decent guess that TDC will be the leading edge of each low res notch since the leading edges are all equally spaced 45* around the disk and it would only make sense for 1 edge of the low res signal to represent TDC.

It's also possible that the PCM detects the low res notch and then does the detecting to know the next upcoming cylinder so it can then fire that cylinder at the proper BTDC advance. So, the notch everyone assumes represents #1 TDC could really be to tell the PCM it's 45 notches from cylinder #8 being at TDC.

Fast355
09-20-2017, 01:44 AM
I am not so sure the lt-1/vortec ignition module is auto dwell or not. Guess we'll find out. Not one of the most challenging problems ever, you know. You are putting cart before the horse. We need to get back to decoding and counting, otherwise we will get nowhere.

Here is a dwell calculator for you. Stretching the trigger signal from the ecm should pose no real problem.
http://www.useasydocs.com/theory/setdwell.htm

I will not discuss this any further until I need to. I have more important things to do. You have a better idea, draw it up and show us. That is why this forum exists. To share ideas and solve problems. Offer us something.

PCM controls the Dwell on a Vortec atleast. Guessing it is the same on a LT1 since I believe atleast the OBD2 LT1s used the same module.

lionelhutz
09-20-2017, 02:05 AM
The LT1 never used a black block PCM. I'm quite positive the OBDII LT1 PCM was unique to that engine the same as the OBDI PCM was. You can swap between the OBDI and OBDII PCM's pretty much directly. Just the knock sensor changed and the OBDII had read O2's.

vilefly
09-20-2017, 03:15 AM
PCM controls the Dwell on a Vortec atleast. Guessing it is the same on a LT1 since I believe atleast the OBD2 LT1s used the same module.

They sure look the same, and have the same wiring to them. But just in case, I have a smart ignition driver IC ready to intervene for the bargain price of $4.89 each.
http://www.mouser.com/ProductDetail/ON-Semiconductor-Fairchild/FGBS3040E1_F085/?qs=sGAEpiMZZMv4z0HnGdrLjhaH%252bkcmo1ndc54qoTxaVs sJTnklZFEN1w%3D%3D
It will come in handy for the future. I will order 8 of them in case. If not, I will use them in my bag of tricks at work used to save/convert old classic vehicles that intermittently show up.
The datasheet is available on that page.

vilefly
09-23-2017, 05:24 AM
Sorry about the delay, guys. Here's what I've got so far. not fully accurate, since I am missing a reset for the 4-bit counter, but it should get the idea across.
12115

Hope this clears up any misinterpretation due to my horrible way of explaining things due to constant distraction. Nothing is set in stone, yet. The LOAD input on the 4 bit counter tells it to preset a value, and start counting from there with every LOW-RES leading edge. It is positive edge clocking.
This is the datasheet on the CD54ACT161 presettable 4-bit synchronous counter.
http://www.ti.com/lit/ds/symlink/cd74act161.pdf

(http://www.ti.com/lit/ds/symlink/cd74act161.pdf)

vilefly
09-23-2017, 09:08 PM
Hey Aroberson77,
How's the delteq schematic decoding going?
I have a theory on how it converts the optispark signals to a northstar reluctor signal. And the eprom theory, of course. A northstar reluctor has 32 teeth total, unevenly spaced....or so I thought. 24 slots are 15degrees evenly spaced, and 8 more slots 7.5 degrees spaced between the 15 degree slots at various points. I imagine you can take the 360 degree signal from the optispark and double it, and use it as a clock signal for the circuit once it is synchronized. so now the 7.5* becomes an integer at 14*.

The crank sensors are spaced 27 degrees apart. This can be simulated by 2 outputs separated by a 27 count counter. Now it is a 54 count, since we doubled everything. Hope this helps if you use an arduino with a for-next loop that is 720 counts incremented by the doubled hi-res input.

The eprom method would consist of raw sensor readings digitized into memory that is accessed by a binary counter coupled to the synchronized Hi-res signal.

Aroberson77
09-25-2017, 03:51 PM
Hey Aroberson77,
How's the delteq schematic decoding going?
I have a theory on how it converts the optispark signals to a northstar reluctor signal. And the eprom theory, of course. A northstar reluctor has 32 teeth total, unevenly spaced....or so I thought. 24 slots are 15degrees evenly spaced, and 8 more slots 7.5 degrees spaced between the 15 degree slots at various points. I imagine you can take the 360 degree signal from the optispark and double it, and use it as a clock signal for the circuit once it is synchronized. so now the 7.5* becomes an integer at 14*.

The crank sensors are spaced 27 degrees apart. This can be simulated by 2 outputs separated by a 27 count counter. Now it is a 54 count, since we doubled everything. Hope this helps if you use an arduino with a for-next loop that is 720 counts incremented by the doubled hi-res input.

The eprom method would consist of raw sensor readings digitized into memory that is accessed by a binary counter coupled to the synchronized Hi-res signal.

I've been too busy trying to get my car back together to look at the delteq too much. Hopefully this week I can spend some time with it. Your theory sounds pretty good since it is easy to just change counts

spfautsch
09-27-2017, 03:22 AM
Just to try and catch up, is the goal here to ultimately piggyback the optispark signaling with the OEM wheel?

I'm wondering if the arduino platform might be capable of this. I'm somewhat reluctant to bet the farm on a microcontroller like the Atmel 328 in the thermal and EMI environment encountered under the hood, but is it even fast enough? 360 rising edge signals per 2x (edit: crank) revolutions, right? Also, what would "limp home" look like with something like this - the ECM can function quite satisfactorily without the high res signal. (edit: perhaps the second half of this sentence should be phrased as a question)

vilefly
09-27-2017, 05:06 AM
Well, we've got 3 projects going on. 1) my minimalist hardwired electronic "decode optispark signals for 8 ignition coils using oem computer timing"
and 2) Aroberson's "decode with arduino and possibly have limp mode operation"
and 3) "reverse engineer the Delteq unit", which converts the optispark signals to Northstar dual crankshaft signals and sends them to a stock northstar ignition module and coils. This is a waste-spark system with 4 coils for 8 cyls.
Although, not nessesarily in that order.

My system should behave like the OEM design....synchronize during starting only, switch coils using leading edge of Low-Res signal from then on. No restart on loss of Hi-Res signal. You could do the same thing with the Arduino I bet. Speed shouldn't be too much for it in that mode of operation.

As for synthesizing a northstar signal using an arduino, I have to wonder about the speed factor, too. Not well versed in the arduino stuff.
Any other ideas/strategies are most certainly welcome. Plenty of room for more projects.

spfautsch
09-27-2017, 05:35 AM
Couple questions arise, please humor me as I'm terribly unfamiliar with the Northstar system.

1) what would be the advantage(s) of using the Northstar ICM (and I'm assuming the "old" gm waste spark coil setup that bolted directly to the ICM)?

2) is there any reason other than lack of programming expertise, that the arduino couldn't do your minimalist version (my personal preference)? Assuming we're letting the ECM control timing and only need to sequence which FET is enabled next, the code for something like this should be fairly minimalist.

This idea has completely piqued my interest. I'm going to be pulling my freshly built LT1 out this winter to fix an oil leak and possibly fit EGT sensors on my headers. I might be willing to serve as a volunteer guinea pig for your minimalist rendition. My only concern is coil selection - the size of the LT1 / 2nd gen HEI coil pack (x8) is going to require some creativity for mounting and secondary wire routing in a factory LT1 install environment.

vilefly
09-27-2017, 06:01 AM
1) the northstar system has more parts availability, and is still fairly compact. not much more.
2) should be no problem for the arduino to do minimalist data distribution for the 8 coils.

The coils we will probably use are the LS engine coils (4.8L, 5.3L, 6.0L, 6.2L). They are fairly small, and mount on the valve covers with short plug wires to the spark plugs.
There are aftermarket coil mounting kits from EFI connection, and some others.

I hope I will be able to make a prototype this winter, but my toddler might be busy distracting me. 3yr olds....all energy, no focus.

spfautsch
09-27-2017, 11:04 PM
The coils we will probably use are the LS engine coils

I thought you were opposed to using the LS coils because of the built-in FET drivers. Looks like they could possibly be driven directly from an arduino output. I've got a bunch of projects waiting for me this winter, but this is one I would love to try my hand at.


I hope I will be able to make a prototype this winter, but my toddler might be busy distracting me. 3yr olds....all energy, no focus.

Been there, I completely understand. Thankfully (or maybe unfortunately) my youngest will be of legal drinking age this year.

vilefly
09-28-2017, 02:42 AM
yup. I had said I didn't want the "smart" LS coils, but they are quite readily available as was pointed out to me. So, I will set it up to use the LS coils anyways, since they are easy to find and have nice brackets to hold them. I had thought there was an early "dumb" version of the LS coil setup, but I was wrong. My alternate Ion Sense Ignition circuit might still work with the LS coils.....maybe. Depends if they like running on 300v on the primary or not. The built-in transistors might not be rated for the increased kickback.
However, I have tons of ford ignition COP coils at work. Most from people who "shotgun diagnose" their triton engines. I might use those or whatever I can find when I go to Ion Sense Ignition later.

spfautsch
09-28-2017, 04:26 AM
Most from people who "shotgun diagnose" their triton engines.

Last year I broke my moral code and took wrench to one of those, and can tell you the most useful way to "shotgun diagnose" a VVT triton engine is with a real shotgun. Load it with slugs or steel buckshot and stop shooting when there's both oil and antifreeze pouring out. Whoever designed the cam phasers for that application should also be likewise "diagnosed".

Has anyone positively determined the signal alignment of the low-res circle? I'm curious because the ECM needs only to sequence the injectors so the TDC signal might be a full crank revolution out of phase with the ignition sequence.

vilefly
09-28-2017, 07:06 AM
You forgot that the optical disk turns a 1/2 crankshaft speed since it is connected to the camshaft. yes, it has 360 slots in it, but the computer turns it into 720 by counting both edges of the square wave signal coming out of it. This gives you 1 degree accuracy with respect to the crankshaft. 180 degrees out of phase is impossible. I did confirm rotor position with my spare optispark I will be using as a signal generator for my circuits.

As to the triton VVT woes.....I was tasked with finding out the real source of the cam phaser problems. The oiling system. Starting with the oil pump, it has an aluminum backing plate that flexes at 1700 rpm or earlier, bleeding off oil pressure. Melling has fixed this problem with a cast iron backing plate. The oil pressure sending unit position only lets you monitor oil pressure right at the pump outlet, not at the upper end. There are orifices in the heads to limit inlet flow to the camshafts, then to another orifice in the front cam bearing, then to the cam phasers, then lastly to the chain tensioners. Nice fault tolerant design. pffff. Then there is the 2 piece spark plugs that seize in the head and break off. The special tool used to extract the piece works perfect, because it came out 3 months after this design rolled out to the public. They knew. The repair manuals don't show the oiling diagram......interesting, yes?
12128
This is a 1st generation diagram, it still tells the story.

Aroberson77
09-28-2017, 06:25 PM
The leading edges of the low res circle are 45 degs from each other. We are assuming that the leading edges trigger a counter for the high res signal that is stopped by the trailing edge of the low res signal. I believe this tells the ECM what cylinder is combusting. I know in EE Hack you can turn cylinders on and off, I assume that this shuts the spark and the injector off, does anyone know?

vilefly
09-28-2017, 08:34 PM
It should shut off the selected injector only. just like the factory scan tool can. The feature wasn't widely available to the aftermarket at the time. I tell people all the time that it is not the scan tool that that has all the self-diagnostic features, it is the ECM that does.
Your sync theory is right on, since the trailing edges happen unevenly, disqualifying them for TDC indication. The leading edges are symetrical, and perfect for TDC indication.

Here is the LT-1 electrical page. http://chevythunder.com/lt1_electrical_page.htm

johnny_b
09-28-2017, 08:44 PM
Hey guys been following your thread, I don't understand everything you guys are talking about. Taking some electrical engineering classes this semester have definitely helped but I don't want to slow you guys down with asking for explanations.

I just dropped by to say that I'm also very interested in a project like this. I would be willing to help however I can with parts, ecms, etc. i have several lt1s I have chip readers I've unbricked ecms so I'm not a total noob just let me know if there's anything I can do

spfautsch
09-29-2017, 12:06 AM
You forgot that the optical disk turns a 1/2 crankshaft speed since it is connected to the camshaft. yes, it has 360 slots in it, but the computer turns it into 720 by counting both edges of the square wave signal coming out of it. This gives you 1 degree accuracy with respect to the crankshaft.

No, I assure you I didn't, just explained my thought process poorly. I have my doubts about the meaningfulness of the high resolution signal to the ECM. The amount of slop introduced by the timing chain at lower engine speeds makes it all but useless in detecting misfires, so what is it used for? I would venture a guess this is why GM went to crank mounted sensor wheels for obd-2 as it mandated monitoring crank angular velocity to detect misfires.


180 degrees out of phase is impossible.

What I was trying to get across here is the ECM doesn't care about sequencing anything but which injector to fire. By my understanding, because the distributor handles sequencing, spark is controlled as a single signal that pulses 4 times per crank revolution at varying degrees BTDC - i.e. in "batch" mode. Essentially the point I was trying to make, which after some reflection I think wasn't very meaningful is if we knew how the ECM decoded the opti signal it would be doing so with the sequencing geared around the intake stroke. Since no-one has yet to dump the code that this third processor runs, we don't know.


I did confirm rotor position with my spare optispark I will be using as a signal generator for my circuits.

With a degree wheel? Is it signaling at TDC or at some fixed advance point such as 15 degrees?


As to the triton VVT woes.....I was tasked with finding out the real source of the cam phaser problems. ... Nice fault tolerant design. pffff. Then there is the 2 piece spark plugs that seize in the head and break off.

Funny you also have such experience. One other thing not to discount is people running cheap oil that turns to the viscosity of water when it heats up. The one I had the displeasure of working on belonged to my daughter's at the time boyfriend. I found it odd when the kid called the spark plugs "two piece", but I soon realized it was sarcasm. The OE phaser design is lacking in that it resembles a vane pump, and is extremely fragile when the oil pressure drops, the proportioning valve can no longer control the cam but the pins are unlocked, and it starts banging back and forth in 60 degree strokes. Patent stupidity. Then there's the soft camshaft material and the pathetically inadequate indexing pin location. The whole design was just one poorly engineered stupid idea after another. When I pulled the one phaser off and realized the driver side cam had excreted the indexing pin and spun 180 degrees I told the kid to get it running and sell or trade it immediately. He did not heed my advice, so I later told him maybe he should replace the cams and oil pump and plan on keeping it. When I talked to him after replacing the cams and asked about the oil pump he said he hadn't got to that yet, but did change the oil. Just not the filter. Sometimes it's worth re-engineering the stupid in machines, but the only way to fix it in humans is with a bullet.

vilefly
09-29-2017, 02:57 AM
Ah, sorry I forgot you were going Nano EFI on this project. Well, if I can find the time at work, I will hook up my pressure transducer to cylinder #1 and put it on the scope with the Hi-res and Lo-res signals so that it indicates top dead center perfectly and give you what you need. I will also tie into the injector circuit for the 4th trace. That should clear up everything.

By the way, I had found the smallest $50 2 channel oscilloscope that I intend to install into the dash with a multiplexer switch like the one in my schematic someday. It has all the functions of a real oscilloscope except waveform capture. The rest of the guys should have a look at it, too.
http://www.gabotronics.com/development-boards/xmega-xprotolab.htm

I put a secondary probe on it, and had me a little ignition scope pattern on it. I also tried it out with the lo and hi res signals. Neat little gadget and tool. It might distract me when I drive, so I will have to add an on/off switch.

vilefly
09-30-2017, 02:40 AM
Here are the waveform captures. I was limited on time and scope channels. So, you have proof of #1 TDC on the leading edge. I lined up the cursor on it and the injector leading edge. The trailing edge of the injector waveform never changes position, but the leading edge does with commanded on time. Surprised me how much injector lead time there was.
12132
12133
12134
Even though it says Jeep Grand Cherokee, I assure you it was on my 95 caprice wagon. That was the vehicle I was working on before I ran out to my vehicle to do this.
Whoops! it looked like I left the coupling to the red injector signal on the AC voltage setting. the high line is supposed to be 13.5V, the low dip is close to zero volts, the peak kickback voltage is around 60v.

johnny_b
09-30-2017, 08:35 AM
those scope charts are awesome. is this project going to be something someone can easily home brew?

vilefly
09-30-2017, 09:57 AM
We should have a number of different choices person could try to see what works for them. Not sure what constitutes easy, but if the code is posted for the arduino version, it should make it a lot easier for someone to try. Mine is a hardware approach at it, since it is all I know. I need more free time to tinker with arduinos and raspberry pi's. I don't think I will be doing much coding, heh. But I will post my schematics, which aren't finished right now, just so I can remember where I left off.

kur4o
09-30-2017, 02:56 PM
That scope is real fun to play with.
I still need some more info to decode the information.
Is the injector pulse the dip or the rise on the graph and what is measured volts or amperage.
That cylinder pressure thing is also very interesting. Can you gavi some info how it is measured and what tools are needed.

I will ask you to do some more testing to figure out on the hardware level fueling.
There is no points in the code how fuel injectors are fired. Only hint is for ind cyl corr. They are fixed to 3000 rpm and 10% TPS.
Since the TPU controls injectors, the only way to tell injectors are in sequential mode is to monitor the coils with a scope.
Can you do that graph with varying rpm and tps, so we know exactly at what conditions batch mode is used and how PWM are calculated at batch mode if it exists at all.

Another thing that bogs me down is the built in total advance of 46 degree.
I got two theories. First is the the rotor tip is wide that much and is a mechanical limit.
Second is the soft theory. The degrees between falling edge of the widest low res slot and the rising edge of the next low res slot is exactly 46 degrees, It could be coincidence, but as we know in the code PCM counts high res slot between falling edge and rising edge of low res signal and determines current firing cyl ID.
It is verified by data stream at RAW cyl ID and it is a perfect match.

What is strange there is built in +-2 degree error built in the code. The cyl ID on first cyl can vary between 44 and 48 degree. If it is outside this range high res failure code is triggered.
I have monitor the cyl id raw value and at rapid rpm changes the counts on cyl ID drops by 1 or 2 degrees.

I noticed that the northstar ign module uses a 4x cam sensor also. Could the delteq modify the low res signal and feeds it to the ICM.

vilefly
09-30-2017, 06:00 PM
That scope is real fun to play with.
I still need some more info to decode the information.
Is the injector pulse the dip or the rise on the graph and what is measured volts or amperage.
That cylinder pressure thing is also very interesting. Can you gavi some info how it is measured and what tools are needed.

I used a Fluke PV350 Pressure/Vacuum Transducer Module, coupled to a air hose quick connect, coupled to a compression guage hose with the schrader valve removed. Linked with alligator clips to the annoying snap-on verus scope/scantool connectors. The dip in the injector voltage waveform is when the driver is turned on on the ground side of the injector.

Since the TPU controls injectors, the only way to tell injectors are in sequential mode is to monitor the coils with a scope.
Can you do that graph with varying rpm and tps, so we know exactly at what conditions batch mode is used and how PWM are calculated at batch mode if it exists at all.

I only have 4 channels on my scope, but when I was checking out the buick v6, I used a 10 bar led graph display with current limiting resistors to find out batch fire was only used during cranking unless the cam sensor signal was missing. I imagine the strategy did not change, but we don't know for sure. I will see what I can do. I think I can current ramp all the injectors at once at the power source, and see what I get.

Another thing that bogs me down is the built in total advance of 46 degree.
I got two theories. First is the the rotor tip is wide that much and is a mechanical limit.
Second is the soft theory. The degrees between falling edge of the widest low res slot and the rising edge of the next low res slot is exactly 46 degrees, It could be coincidence, but as we know in the code PCM counts high res slot between falling edge and rising edge of low res signal and determines current firing cyl ID.
It is verified by data stream at RAW cyl ID and it is a perfect match.

I like the mechanical limit theory, because it is related to longevity and the limit placed on a 10.25 compression ratio engine running regular gas. We will be able to exceed this when we go to the coil on plug setup.

What is strange there is built in +-2 degree error built in the code. The cyl ID on first cyl can vary between 44 and 48 degree. If it is outside this range high res failure code is triggered.

I believe this allows for timing chain slop and optispark bearings wearing out, so that you have a chance to make it somewhere before it quits completely. Fault tolerance and recognition.

I noticed that the northstar ign module uses a 4x cam sensor also. Could the delteq modify the low res signal and feeds it to the ICM.

I think the deltec module syncs to the LowRes signal, and uses the HiRes signal as a clock input to generate signals that are 1 degree accurate.
Oh crap. The injector waveform voltage is incorrect, as I left the input on the AC voltage setting. I reposted the waveform posting with some values.

vilefly
09-30-2017, 06:24 PM
By the way, there is an arduino ecm project. https://speeduino.com/wiki/index.php/Speeduino
For those who are interested.

johnny_b
10-02-2017, 05:02 AM
We should have a number of different choices person could try to see what works for them. Not sure what constitutes easy, but if the code is posted for the arduino version, it should make it a lot easier for someone to try. Mine is a hardware approach at it, since it is all I know. I need more free time to tinker with arduinos and raspberry pi's. I don't think I will be doing much coding, heh. But I will post my schematics, which aren't finished right now, just so I can remember where I left off.

Well like I said in my previous post, Im no expert, but I'm not a newbie either. If a schematic gets posted that should be enough.

I actually have an arduino that i don't use for anything currently, I have the IDE on my computer as well, and am somewhat familiar with coding.

Let me know if there is anything I can do to help you guys.

vilefly
10-03-2017, 03:00 AM
Ok kur4o,
here is quick screenshot I grabbed from playback mode. This event is during cranking/startup. Just like the 3800 engine, it starts with simaltaneous double-fire, then switches to sequential on the 3rd revolution. Basically, it pulses all injectors once per revolution, until the 3rd rev.
12138
The current draw indicates how many injectors are firing.
I was carrying on conversations with 2 different people when I was doing this at the last 15 min of the day. So excuse the lack of other reference signals.

vilefly
10-03-2017, 04:55 AM
I am posting this just for easy reference, so we can find this all in one place. The Northstar ignition module wiring and the signal waveforms going in and out of it.
12139
12141
Hope this answers more questions than it creates. During startup, no 5v signal is sent to the BYPASS input until after 400rpm, where 5v makes the module switch to computer ignition control. From then on, the computer has direct control as to WHEN the next coil is going to fire. The module keeps track of WHICH one to fire.

vilefly
10-03-2017, 05:18 AM
Sure thing Johnny. I have an arduino mega 2560 ordered from ebay. Might help me follow along. Should have enough memory for spark tables. I am hoping we might be able to transfer spark tables over from a flash binary file(s), and run the northstar module with it. I still need to concentrate on my hardware decoder......am having issues finding surface mount chip adapters at a decent price, so that I can do some proper prototyping.

I am also working on a bolt-on reluctor wheel that was posted on another site, but they never released any final forms or brackets, so I have to work up my own. The waterjet cutting company is willing to do business with me and have decent prices. Now, I just have to figure out the layout for the sensors and base timing. That will be much later on. But I will post the DXF files publicly.

Hooking an arduino up to the ignition module with its own spark tables would be neat, but I have to do my part 1st. Not sure about knock detection on an arduino, though. Which is why I want to use Ion Sense Ignition so knock detection does not require a tuned knock sensor/software.

WAIT! Damn it. I am over thinking this....you can hook up the OEM ecm to the northstar module's EST input directly, since it is still getting a signal from the optispark. NO LOSS OF FUNCTION. The ignition module will still decide which coil to fire + dwell, and the other outputs need not be connected at all (to the ECM). That is how Deltec did it! Would need a harness to prove it, but not really. As long as the crank signals are adapted for the northstar module, it should be fine. Will have to tie the BYPASS input to constant 5v to put it into constant EST mode like the original ignition module, but it has no reason not to work.

johnny_b
10-04-2017, 01:50 AM
WAIT! Damn it. I am over thinking this....you can hook up the OEM ecm to the northstar module's EST input directly, since it is still getting a signal from the optispark. NO LOSS OF FUNCTION. The ignition module will still decide which coil to fire + dwell, and the other outputs need not be connected at all (to the ECM). That is how Deltec did it! Would need a harness to prove it, but not really. As long as the crank signals are adapted for the northstar module, it should be fine. Will have to tie the BYPASS input to constant 5v to put it into constant EST mode like the original ignition module, but it has no reason not to work.

I like where you are headed. Wouldn't this mean we would have to change the signal coming out of the opti to match the northstar?

There is a junkyard no more than a mile from my house littered with northstars, if you need any northstar stuff let me know. Does this mean we will only be able to use the waste-spark style coils?

johnny_b
10-04-2017, 02:25 AM
Found this site:
http://lukeskaff.com/projects/car/cadillac-northstar-dis-to-gm-hei-sbc-ecm-project/

and a delteq diagram

vilefly
10-04-2017, 03:03 AM
I like where you are headed. Wouldn't this mean we would have to change the signal coming out of the opti to match the northstar?

There is a junkyard no more than a mile from my house littered with northstars, if you need any northstar stuff let me know. Does this mean we will only be able to use the waste-spark style coils?

To mimic the deltec exactly, we will definitely have to adapt the opti signals to match the northstar's 2 crankshaft sensors, minus the cam signal. It is confirmed that they wired the EST and BYPASS exactly as I imagined. The signals will have to be above and below the zero volt line because of a zero crossing detector built in. So about +5v/-5v peak to peak should work fine.

This would work only for the waste spark setup type coils, unfortunately. But it would get you distributorless. I have a spare northstar ignition module with a bad (shorted) EST input. Just enough to test a signal generator and my crankwheel setup later on. I wonder how much the junkyard would want for one without the coils on it?

johnny_b
10-04-2017, 03:36 AM
I can grab some northstar ignition modules no problem, i bet they would only be a few bucks.

The waste spark setup is perfectly fine.
Northstar's have a different firing order than sbc.
looking at delteq's Ignition module that the coils seat on, I wasn't sure if this was the factory northstar module or they perhaps made their own.

Just so we are clear, what I have pictured below is the Ignition Module correct?

vilefly
10-04-2017, 03:59 AM
Yup. there is only one like it. You might want to grab the pigtail connectors to it as well.

johnny_b
10-04-2017, 09:09 PM
Yup. there is only one like it. You might want to grab the pigtail connectors to it as well.

I will grab a few on saturday and report back.

So from what I understand about the northstar module, it only ever needs 2 of the 3 sensors to actually function. either both crank signals 27* degrees out of phase I think? or one crank sensor (think its 24x?) and the 1x cam sensor. Having all 3(both crank and the cam sensor) allows for faster start?

It seems maybe the 1x cam signal would not be that difficult to convert to with the factory opti-wheel signals?

vilefly
10-05-2017, 03:03 AM
I will grab a few on saturday and report back.

So from what I understand about the northstar module, it only ever needs 2 of the 3 sensors to actually function. either both crank signals 27* degrees out of phase I think? or one crank sensor (think its 24x?) and the 1x cam sensor. Having all 3(both crank and the cam sensor) allows for faster start?

It seems maybe the 1x cam signal would not be that difficult to convert to with the factory opti-wheel signals?

Well, what I am not sure of is exactly where in the rotation that the cam sensor sends its quick 1-pulse. Maybe 67.5 degrees after the 1st pulse from the leading sensor. +/- maybe 2 degrees. I am not sure if the ignition module can run on one crank sensor and one cam signal, but it would be cool. We might be able to cheat. If a cadillac comes in sometime, I will grab a better scope pattern from it with pulsewidth measurements if possible.

You know what? I think I will make a round slide rule that will fit inside of a cd case with a 27 deg set of spaced windows so I can check my synchronization at any time. Am sick of getting out the ruler and protractors. Might help me think clearer amidst distraction.

vilefly
10-05-2017, 08:46 AM
Here is a flawed picture not to a cd case's scale, but accurate. not done with the overlay. Still using cadillac coil numbering, but we really know that COILS A=1/4 B=2/5 C=7/6 D=3/8. In that order. After #1 TDC, coil B is armed for firing, and is the next to fire.
12148

vilefly
10-06-2017, 07:11 AM
Ok, codebreakers.
I found some arduino code that is a cam/crank signal generator for multiple engines. It is called ardu-stim. It has an optispark configuration file in it, but I have no arduino stuff yet to test it. I did not see a northstar one, though. It has alot of engine patterns, though. The code looks like it can be converted for hardware clocking, if scaled properly. I don't know enough about the code yet, but I know that one and zeros placed in a data array should work fairly well.
Here is the link https://gitlab.com/libreems-suite/ardu-stim
Tell me what you think. My arduino mega 2560 arrives tomorrow, and I will start my learning process.

vilefly
10-06-2017, 08:37 PM
I think I have a data array that should produce a single northstar crank signal if placed in a loop with an output to a pin.
{1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0}

In this array, there are 95 elements, including zero.
position 0 = 1st pulse from crank sensor A
crank sensor B = lags behind A by 7 positions
position 2 = cyl 1-4 TDC
position 18 = cam sensor pulse
position 26 = cyl 2-5 TDC
position 50 = cyl 7-6 TDC
position 74 = cyl 3-8 TDC

Hope this looks accurate, I checked it 3 times before posting.
I'll bet if we read the eprom in the delteq unit, we will find this data set also.

kur4o
10-06-2017, 10:15 PM
Northstar can run without cam signal. Starting time will be around 45 seconds though{from service manual}.
The other obstacle is the signal these sensors produce. It is some kind of frequency signal with different DC%. The same as running a pwm valve or VSS sensor signal. A similar signal can be found on lt1 PCM at pin a12. It is a fixed freq signal with DC% varying with TPS change.
This signal will be completely opposite to opti 0v-5v signalling.
What is inside a norhstar ICM. Is there some form of processor, maybe a pic will help alot.

How hard will be to control Ls coils and how opti signal will be divided between two devices.
I think nortstar ICM will be step back. The main focus should be on running ls coils.

vilefly
10-06-2017, 11:41 PM
Page 5 has the link to the northstar patent, which gives lots of detail to the operation. Lots of AND gates, too.

Not sure what year ECM pin A12 is referring to. Does not appear related to the ignition system in my schematic.

With this software approach, the 5v optispark signaling will run a counter synched to a northstar pattern. In the case of the Delteq, they use optispark to count through memory locations inside the eprom, and simply output logic hi or low. You run the output through capacitors to simulate an AC signal.

I agree that I need to get my butt in gear on the hardware coil decoder, but I am still ordering chip adapters so I can prototype easier. Everything is surface mount soldering these days. Irritating. I am bouncing around as to which brands and styles of chips to use. The logic has to match. Once that is ironed out, I can start building a prototype. This will take some time to sort out properly, but time is limited, and software/firmware solutions are easier write up.

johnny_b
10-07-2017, 03:17 AM
the northstar signals fed to icm seems it will be complicated to nail unless we get some good scopes of the 3?
if using the northstar icm will be a step back then,

thinking from a hardware , software perspective or some combination of the two, could we not piggy back the opti signal into the arduino.

from there couldn't the high-res signal be used as a clk and then count the number of clock cycles occurring when the low res signal is 1?
with 8,3,5,2 having a unique number of clk cycles occurring during their low res signal being 1 this could be used to then sync the firing order switching cylinders upon each next low res rising edge?
still use the ecm est signal but use some type of hardware that selects which coil to arm based off the firing order sync?

disclaimer:
a lot of this stuff is way over my head so i may have just sounded like a complete idiot.

vilefly
10-07-2017, 04:15 AM
The answer to all those questions is yes, johnny. You've got the idea. The great part about a data loop referenced like this allows us to sync up with any of the long slots of the low res signal, and jump into the loop at the exact data point. Gotta love random access. I am still learning about program structure.

lionelhutz
10-07-2017, 06:12 AM
Yes Johnny, The basic way I'd do the program is by decoding the low + high patterns to load an 8-bit register with the correct starting pattern (8-bits with a single 1 to represent the current cylinder). Then, use the low + high leading edges to rotate the register. The tricky part is putting in a continuously operating decode and compare routine that corrects the rotating register when an error occurs. Does this routine correct it every time, correct it when it's wrong or have some more complex logic behind it?

kur4o
10-07-2017, 11:30 AM
Since low res signal is time based, and the width of the slots cant be measured, due to rpm speed. The higher the rpm the shorter the pulse.
I suggest to use leading and falling edges as pointers. What you need to count is between rising edge and falling edge and schedule next firing cylinder.
For example the falling edge of the widest low res slot indicates that #1 tdc is 46 degree away. Since PCM will control timing and there is lag at fast rpm transitions, which can be up to 6 degree, we will be limiting the total advance so , I guess that will only be needed for syncronisation. After that each rising edge will switch to next coil and we will get full (90-adv) degree advance to schedule the coil and wait for est signal to fire.

http://www.megamanual.com/seq/coils.htm
Here is some info on ls1 coils and dwell times.

vilefly
10-09-2017, 05:30 AM
Hmm. can't get the ardu-stim signal generator firmware to compile on my arduino mega 2560. Some kind of interrupt-driven programming is used. Very beyond me at this time. Lots of errors.
I did however, get the speeduino firmware to run on it. Kinda neat. Will not support anything beyond waste spark ignition on a v8, due to only 4 driving signals output. Better suited to a 4 cyl or less. Bank fire stuff on more cylinders. I was hoping that I could have used the injector drives to select coils, but nope. Shame. I think I will fuel inject the lawnmower, though. heh. Very configurable when it comes to crank triggers.

johnny_b
10-09-2017, 10:48 PM
It seems member dave w has come up with a solution for the vortecs to run the 0411 pcm. The project looks rather affordable and simple. it requires the use of a vortec distributor combined with his piece. It seems to me that this could be used on the LT1 by drilling a hole in the intakes the same way people do when they swap lt1 intakes on to tpi setups. I love EEhack so much id really hate to ditch the original pcm, and the ultimate dream for lt1 lovers, at this point with the amazing software already available, really would be coil on plug with the original pcm. but his project looks promising. just thought id share.

edit: after further discussion with dave w, his project will not support coil-on-plug at the moment.

vilefly
10-14-2017, 05:06 AM
ok. I think I found a place that still sells the non-fashionable DIP-14 IC packages that I can work with. Jameco electronics still has the old ICs that I remember, and super cheap, too. I have placed an order to try out my schematic. Unfortunately, I already orded SOIC chip adapters also. Oh, well.
Has anyone used my northstar data array to generate a signal, yet? I am still reading about loops and stuff, despite being attacked repeatedly by "the Squab".

vilefly
10-25-2017, 03:30 AM
So, Johnny, how's the northstar ignition module working for you? I still need to learn how to write a program to generate crank signals from the array I made. I was hoping you knew how, since I have over extended myself on solving multiple problems.
In case everything fails, I have a toothed northstar wheel designed in a DXF file that should bolt up to the harmonic balancer. I am working on the dual crank sensor bracket. This was inspired by the Indmar LT-1 ignition system installed in the Mastercraft boats. The waterjet cutter service would cost me about $80-$100 for one wheel. Less if I have more made, but I am still working it all out with no final design yet. The belt system goes on the left or right, depending on application. How inconvenient.

spfautsch
10-26-2017, 06:21 AM
I revisited the thread tonight to catch up, and finally read the link in the second post pointing to chevythunder. I couldn't help but stumble several times on the description of the degree wheel.


and since the camshaft rotates once per two revolution of the crankshaft, it is in reality seeing 720 pulses.

Uh, no. Your math is bass ackward. It is true that the camshaft rotates once per two crank revolutions, but if the outer wheel has 360 slots it's only seeing 360 / 2 = 180 per crank revolution. Let's not get caught up on rising and falling edge signals here, but looking past one's interpretation of "pulses" it's getting 360 signals per crank revolution or 720 signals per cam revolution, max.


Like the outer ring, the ecm "sees" 16 pulses for each revolution of the camshaft

This statement is only correct if you consider "pulses" as both rising and falling edge, but why would we be thinking in terms of camshaft revolutions? As a person who's on the Asperger's spectrum, this drives me batty.

Unless vilefly beats me to it, I'm thinking my game plan for winter is giving the arduino a shot with the assumption of driving ls1 coil modules with 5v ttl signaling. I think this can be done without looking at the high resolution signal by keeping memory of the current position and calculating rotational speed based on the smaller of the lower resolution signals which the aforementioned page says are signaling 1,4,6 and 7. Another presumption I think can be relied on is where the crank comes to rest at engine shutdown. I've learned from talking to some white haired gentlemen who've seen their share of missing flywheel teeth that chevy v8s tend to come to rest in only about four different spots. In a case of the crank being jogged by a mechanic, if we assume the ECM follows the same logic, worst case the uC will miss the first or second cylinder firing after a power loss but so will the ECM with injection sequencing.

Am I making any grotesque oversights?

vilefly
10-26-2017, 06:55 AM
nope, didn't miss a thing. It sounds like a game plan to me. I did wonder why they only synched using cylinders 1,4,6,7, but I think you may have answered that question. Resting position.
The TTL drive sounds like a winner to me, providing a current limiting transistor is used between the two, just in case. 15-20mA sounds safe to me.
I've been buying some Arduino Pro Mini controllers on ebay at about $5 each to tinker with. The very flexible compiler will let me use the same code on a different controller. Kinda nice, when building expendable projects where risk is high. Made some animated 8x8 led matrix eyes for my kid's halloween costume. Taught me a lot. Still, I borrowed heavily from the example code, but I am hooked.
The Pro Mini is the size of a medium postage stamp, and it just might be able to pull this trick off. Much more powerful than I expected.

spfautsch
10-26-2017, 08:27 AM
I'm thinking a simple class d bjt amp powered by the ECM's coil trigger output for each coil. Or FETs if you want to get fancy (possibly higher parts count)? There are also some widely available stepper motor driver DIP ICs that may fit the bill.

My thinking is the uC employs a watchdog timer that triggers relearn. So we haven't seen an input change in a while, watchdog timer fires and says assume the engine isn't running anymore so set a bit in memory and go to sleep (power consumption can be an issue with the arduinos).

Let's assume that the stopping position is 20-30 degrees shy of tdc of a compression stroke. We're either going to be near 1, 4, 6, 7, or 8, 3, 5, 2. Let's also make a huge leap that this is not in a light gap in the wheel (logic low to the uC).

So the user cranks the engine.

The user engages the starter, and the uC picks up a rising edge interrupt that wakes it. We look at the "is it running" bit to see if we need to re-learn the position. We do, so we start counting microseconds until the next falling edge.

The falling edge signal happens and we store the microseconds in variable a.

Now we wait for the next rising edge signal. <thumbs twiddling>

Rising edge signal clicks. Now we count microseconds again until the next falling edge signal.

Falling edge signal happens. Store microseconds in variable b. Compare a to b.



if ( a > b ) {
c = a / b;
[ some code I haven't thought through completely]
x = (next firing cylinder);
} else {
c = b / a;
[ some code I haven't thought through completely]
x = (next firing cylinder);
}

Once the running bit is set the uC sequences ignition from memory based on the rising edge.

So you say what if the engine is parked in a light gap, and the first signal we see is a falling edge. Simple - set another bit that inverts the sequence detection logic [that I haven't thought out completely].

Easy peezy. I'll think about fleshing out the code on my drive to work tomorrow. There will need to be some fuzzy math allowing for variance in angular velocity during cranking. That's why they made the big gaps larger by multiples of 5.

spfautsch
11-01-2017, 07:33 PM
After working this out mentally and doing some additional research on Arduino interrupt handling I've learned that accessing time functions inside an ISR appears to be a bit of a tangled subject. This would make it quite a bit "hairier" to detect sequence with only the low-res signal.

This got me wondering how the ECM behaves. If no-one knows I'll confirm myself when I have a chance, but I'm wondering if it will start after:

1) disconnecting the high-res signal
2) removing power from the ECM to clear learned cam position

I know it will start and run without the high res signal, but it was more than a few years back when I worked on replacing my opti sensor and I don't know if I ever disconnected the battery throughout that process. I don't believe I did.

If the ECM is improperly sequencing the injectors I would presume the engine may run, but poorly. If, on the other hand the ECM simply won't detect cam position or fire the injectors without the high res signal that simplifies things immensely. Detecting the position becomes considerably simpler and faster if we need only count high res pulses to determine a trigger slot's opening size.

Terminal_Crazy
11-01-2017, 08:11 PM
After working this out mentally and doing some additional research on Arduino interrupt handling I've learned that accessing time functions inside an ISR appears to be a bit of a tangled subject. This would make it quite a bit "hairier" to detect sequence with only the low-res signal.

This got me wondering how the ECM behaves. If no-one knows I'll confirm myself when I have a chance, but I'm wondering if it will start after:

1) disconnecting the high-res signal
2) removing power from the ECM to clear learned cam position

I know it will start and run without the high res signal, but it was more than a few years back when I worked on replacing my opti sensor and I don't know if I ever disconnected the battery throughout that process. I don't believe I did.

If the ECM is improperly sequencing the injectors I would presume the engine may run, but poorly. If, on the other hand the ECM simply won't detect cam position or fire the injectors without the high res signal that simplifies things immensely. Detecting the position becomes considerably simpler and faster if we need only count high res pulses to determine a trigger slot's opening size.


1: Don't know
2: It always runs after you pull PCM fuses?

Can't you watch / count pulses whilst the motor cranks over untill you know the cam/crank position then start firing the injectors.
Presumably monitoring/counting the pulses is only watching we're synchronised with the motor.
Timing time between events so we can measure RPM and time spark & injector firing.

Mitch

vilefly
11-01-2017, 08:51 PM
1) it will start, but in simultaneous double-fire mode (1x inject per revolution). Since it has a distributor, all it need to do is fire the coil on the leading edge. The IAC will have to open up to compensate for 0 degrees TDC timing, so it may start and die unless the throttle is held open a little and set down slowly.
I might have to disable the hi-res signal and break out the timing light to confirm if it really is 0 deg base timing.

2) I don't believe there is a memorized cam position, but a programmed one might exist, but not applicable in this fail-safe mode of operation.

Hope my waveform posts on page 8 were helpful.

spfautsch
11-01-2017, 09:48 PM
Hope my waveform posts on page 8 were helpful.

There was definitely some useful information in page 8 and 9 that I missed. Re-reading...


1) it will start, but in simultaneous double-fire mode (1x inject per revolution). Since it has a distributor, all it need to do is fire the coil on the leading edge. The IAC will have to open up to compensate for 0 degrees TDC timing, so it may start and die unless the throttle is held open a little and set down slowly.
I might have to disable the hi-res signal and break out the timing light to confirm if it really is 0 deg base timing.

2) I don't believe there is a memorized cam position, but a programmed one might exist, but not applicable in this fail-safe mode of operation.

Are you sure this is actually a fail-safe mode and not an unintended coincidence? I'd love to have confirmation that it will run like this - with batch fueling I can't imagine it would run very well.

The batch fire / double fire explains some of difficulties I had with the startup afr tables after an injector swap.

In consideration of your timing light experiment, do you have a keyed balancer hub? It's one of the items I need to put on my winter to-do list.

spfautsch
11-01-2017, 10:34 PM
This is a very helpful piece of information I overlooked.


Another thing that bogs me down is the built in total advance of 46 degree.
I got two theories. First is the the rotor tip is wide that much and is a mechanical limit.
Second is the soft theory. The degrees between falling edge of the widest low res slot and the rising edge of the next low res slot is exactly 46 degrees, It could be coincidence, but as we know in the code PCM counts high res slot between falling edge and rising edge of low res signal and determines current firing cyl ID.

So we know this? Cool.


What is strange there is built in +-2 degree error built in the code. The cyl ID on first cyl can vary between 44 and 48 degree. If it is outside this range high res failure code is triggered.

I would venture a guess that this is because the sequenced slots differ in 5 degree steps (plus 2 degree base), and that more than 4 degrees of error would prevent the code from determining cyl ID.

vilefly
11-02-2017, 12:13 AM
There was definitely some useful information in page 8 and 9 that I missed. Re-reading...



Are you sure this is actually a fail-safe mode and not an unintended coincidence? I'd love to have confirmation that it will run like this - with batch fueling I can't imagine it would run very well.

The batch fire / double fire explains some of difficulties I had with the startup afr tables after an injector swap.

In consideration of your timing light experiment, do you have a keyed balancer hub? It's one of the items I need to put on my winter to-do list.

GM always used simultaneous double-fire (all injectors per 1x rev) when starting on prior years, but to blast the shadow of doubt into oblivion, I will see about getting a waveform to prove it. We are crazy-busy at work, so it may take some time to get. My other injector waveform proves the cranking strategy, though.
My harmonic balancer is marked at 0 deg, as I was testing fitment of my northstar crankwheel project. I will probably use the hi-res waveform to prove exact timing.

vilefly
11-02-2017, 03:33 AM
Ok. More codebreaking done. I used the previously posted northstar crankwheel data array to make a
ignition module "stimulator" program to be compiled by Arduino IDE. I haven't had time to test it on an ignition module yet.
Pins 2 and 3 will be the crank sensor outputs. 2= "A" and 3= "B" crank sensors.
4,5,6,7 are the coil selector outputs/indicators.
All outputs have been tested as best as possible w/o a module.
Remember to put a small value ceramic or polyester capacitor between the Arduino outputs and the Ignition module crank sensor inputs to simulate an ac voltage signal so that the zero-crossing detector in the Module will work.



int nstar[] = {1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0};
// there are 0-95 elements, position 0 = 1st pulse from crank sensor A
// crank sensor B = lags behind A by 7 positions
// position 2 = cyl 1-4 TDC
// position 18 = cam sensor pulse
// position 26 = cyl 2-5 TDC
// position 50 = cyl 7-6 TDC
// position 74 = cyl 3-8 TDC
// approx 3.857* per position
int crank1 = 2; //pin2 = cranksensor 1
int crank2 = 3; //pin3 = cranksensor 2
int coil = 4;
int x = 0;
int y = 0;
void setup() {
Serial.begin(9600);
pinMode(crank1,OUTPUT);
pinMode(crank2,OUTPUT);
pinMode(4,OUTPUT); //coil 1
pinMode(5,OUTPUT); //coil 2
pinMode(6,OUTPUT); //coil 3
pinMode(7,OUTPUT); //coil 4
pinMode(LED_BUILTIN,OUTPUT); //enable the built-in led
}

void loop() {
// put your main code here, to run repeatedly:
for (int x = 0; x < 96 ; x = x + 1) {
Serial.print(x);
Serial.print(" ");
if (x==2) {digitalWrite(5,HIGH); digitalWrite(7,LOW);}; //coil 2 enable coil 1 disable
if (x==26) {digitalWrite(6,HIGH); digitalWrite(4,LOW);}; //coil 3 enable coil 2 disable
if (x==50) {digitalWrite(7,HIGH); digitalWrite(5,LOW);}; //coil 4 enable coil 3 disable
if (x==74) {digitalWrite(4,HIGH); digitalWrite(6,LOW);}; //coil 1 enable coil 4 disable
if (nstar[x]==1) {digitalWrite(crank1,HIGH);
delay(3);
digitalWrite(crank1,LOW);}
else {digitalWrite (crank1,LOW);}
y = x+7;
if (y>=96) {y=y-96;}
if (nstar[y]==1) {digitalWrite(crank2,HIGH);
delay(3);
digitalWrite(crank2,LOW);}
else {digitalWrite(crank2,LOW);}
// digitalWrite(LED_BUILTIN,HIGH);
//delay (3);
//digitalWrite(LED_BUILTIN,LOW);
}
Serial.println("");
}

spfautsch
11-02-2017, 04:23 AM
I performed a few tests tonight, and think I've been laboring under flawed assumptions.

I wasn't able to determine pins readily at the opti pigtail connector, and though my 22 year old harness is a bit discolored I wasn't seeing anything similar to blue so I just determined the pins by trial and error. With a DMM I found ground and +12v with key on. The other two pins went to +5v which I made the assumption were the ECM's opti inputs. I removed the male connector end from the pigtail side of the connector.

The first one I disconnected appeared to be the low res pin, because it cranked but nothing was happening - no RPM change in the ALDL, and it immediately set DTC16.

I cleared the DTC, reconnected low res and disconnected high res. This time i was seeing RPM changes in the ALDL data, but no codes, no fire, nothing.

I would love for someone to confirm or disprove. I wonder if the presumption that the engine would fire without high res signal came from the pre-94 LT1s that were batch fired and didn't need to sequence anything. In the case of my having witnessed it start with the high res code, it would have to have been a case where the high res phototransistor was working well enough during cranking for the ECM to determine sequence. As I think I mentioned, mine would only re-set the code when the engine got to temperature.

What I'd like to find out is what happens when the high res signal is removed while the engine is running, but I don't currently have the connectors to allow this without cutting wires I don't want cut.

At any rate, I'm going to labor under the assumption that we need high res to determine sequence. I hope to post a sketch soon.

vilefly
11-02-2017, 04:43 AM
Does yours have a front crank sensor on it or not? I imagine if it did, it would still start with the hi-res disconnected.
Here's a tool kit that everyone should have.....
https://www.toolsource.com/terminal-tools-c-1321_408_520/gm-micro-metric-pack-jumper-wire-set-p-54385.html
the thexton #392 micro/metric pack jumper wire set.

kur4o
11-02-2017, 05:19 AM
I performed a few tests tonight, and think I've been laboring under flawed assumptions.

I wasn't able to determine pins readily at the opti pigtail connector, and though my 22 year old harness is a bit discolored I wasn't seeing anything similar to blue so I just determined the pins by trial and error. With a DMM I found ground and +12v with key on. The other two pins went to +5v which I made the assumption were the ECM's opti inputs. I removed the male connector end from the pigtail side of the connector.

The first one I disconnected appeared to be the low res pin, because it cranked but nothing was happening - no RPM change in the ALDL, and it immediately set DTC16.

I cleared the DTC, reconnected low res and disconnected high res. This time i was seeing RPM changes in the ALDL data, but no codes, no fire, nothing.

I would love for someone to confirm or disprove. I wonder if the presumption that the engine would fire without high res signal came from the pre-94 LT1s that were batch fired and didn't need to sequence anything. In the case of my having witnessed it start with the high res code, it would have to have been a case where the high res phototransistor was working well enough during cranking for the ECM to determine sequence. As I think I mentioned, mine would only re-set the code when the engine got to temperature.

What I'd like to find out is what happens when the high res signal is removed while the engine is running, but I don't currently have the connectors to allow this without cutting wires I don't want cut.

At any rate, I'm going to labor under the assumption that we need high res to determine sequence. I hope to post a sketch soon.


That`s happening because when high res dtc is set eside processor is trapped at infinite do nothing loop.
If you unset high res dtc bit at 12029 bit $10, you may try again runnig with high res disconnected.
I am pretty sure it will at least fire up and all the calculations will be time based on the low res signal. It will work just like the older distributor system with coil pick up signal. Of course spark scatter will be higher and timing will be not very accurate and we will lose the great starting time of less than a second.

spfautsch
11-02-2017, 05:23 AM
No that was only on OBD-2 cars.

spfautsch
11-02-2017, 05:32 AM
If you unset high res dtc bit at 12029 bit $10, you may try again runnig with high res disconnected.
I am pretty sure it will at least fire up and all the calculations will be time based on the low res signal. It will work just like the older distributor system with coil pick up signal. Of course spark scatter will be higher and timing will be not very accurate and we will lose the great starting time of less than a second.

None of this compels me to want to code to time based sequence detection. At least not for a proof of concept. What are your thoughts? Does the Delteq system require high res?

vilefly
11-02-2017, 06:20 AM
Just confirming obd-1 status. I will see if I have time to see if my 95 caprice does anything different. probably next week I might have the time at work.

kur4o
11-02-2017, 01:29 PM
How about the dwell time of ls1 coils. They need to be charged between 3.5-5ms before they fire. If we use pcm signal as a spark trigger, the coils should be already charged in advance, so they can fire at the correct time. Guessing is not an option here, so how do we calculate properly in advance start time of coil charging.
If we can you measure the time between the icm recieving spark signal from the pcm and the coil firing, we can put this time into account.
I hope it can be spread by software calibration in pcm.

Low resolution signal measures time between 90* crank rotation. 19ms are around 750 rpm and 2.5ms around 6000 rpm. It is used as a source for rpm calculation for PCM. This is the conversion formula
x=word_a1[eside]
983040/x = rpm
0.015234*x = msec.
Half of the pcm calculation depends on correct RPM value.
Without any low res opti signal PCM is doomed.

Vilefly can you remember when you make that awesome graph at page 8-9, what was the car coolant temp at time it was taken.
I am trying to find and confirm End of injection time constant but without the proper scope tools it will take indefinite time.

vilefly
11-02-2017, 03:21 PM
All my posted waveforms were done with a warmed up engine. 196-224 deg. F. I try to do all mine at this temp range to remain as consistent as I can.

spfautsch
11-02-2017, 06:12 PM
How about the dwell time of ls1 coils. They need to be charged between 3.5-5ms before they fire. If we use pcm signal as a spark trigger, the coils should be already charged in advance, so they can fire at the correct time. Guessing is not an option here, so how do we calculate properly in advance start time of coil charging.

I hadn't taken charge / dwell into consideration. This complicates things - at higher RPMs the coils will need to be charged two low res pulses ahead of firing sequence, before the preceding cylinder will be firing. And then there's spark advance to consider, and evidently also primary voltage (https://ls1tech.com/forums/generation-iii-external-engine/1337141-dwell-time-coils.html#post13940314). This puts things way out of my league as far as time constraints go. Essentially this becomes an ignition computer instead of a simple sequence controller.

kur4o
11-02-2017, 09:22 PM
Ltcc somehow managed to overcome that obstacle. I wonder if it works as it should be or there are some shortcuts. Anyone with ltcc experience can share how it works.

Vilefly thanks alot for the shared info. It really helps alot.
It partially confirms my theory how end of injection target works.
At b-body bins at warmed engine it is $50 which might be 5 low res pulses before TDC, exactly as seen on the graph.
If you want to contribute a little more, you can play with low res signal and #1 injector pulse at the scope. The coolant should be below 32*C at startup.
If my assumptions are correct the end of injector pulse will move slowly from 4 low res pulses bTDC to 5 low res pulses slowly as the engine warms to 44*C.

I have a cold starting log. The engine starts after 300ms cranking at 10*C coolant. It took two low res pulses to syncronise before starting.

vilefly
11-03-2017, 03:02 AM
I suspect that the LTCC module simply lets the original ECM run the coil dwell time. I will attempt to prove that the ECM controls coil dwell time, not the Ignition module with a waveform if I can find the time. Something like EST signal vs primary waveform.
As to controlling dwell time yourselves, I suspect they use a simple lookup table instead of real-time calculations that would slow everything down. You guys would know more about that than I would, though. One thing I learned from messing with ECM strategies externally is that they run the engine on a dyno with cylinder pressure sensors on each cylinder so they can put the info all into lookup tables so that the cheapest processor can be used to run the show.
The Delteq has a UV eprom in it, and I still wonder what is on it. I believe its lookup table should mimic my northstar data array in pattern, at least.

spfautsch
11-03-2017, 04:15 AM
I suspect that the LTCC module simply lets the original ECM run the coil dwell time.

Is this module still available? I don't see any technical data about it on his website and most of the links are dead.


I will attempt to prove that the ECM controls coil dwell time, not the Ignition module with a waveform if I can find the time. Something like EST signal vs primary waveform.

Even if it does that's somewhat irrelevant, because we would still have to maintain a real-time picture of RPM and commanded spark advance in the uc to be able to provide adequate coil charge time while avoiding overcharging / overheating the coils.


As to controlling dwell time yourselves, I suspect they use a simple lookup table instead of real-time calculations that would slow everything down.

Even with lookup tables for dwell you still have to calculate RPM, advance, and ideally supply voltage to know what to lookup. I believe this may be possible with a 16mhz avr, but I'm not sure I trust myself to write the code to maintain accurate spark to 6800rpm with a $25 microcontroller.

vilefly
11-03-2017, 05:19 AM
I found the LTCC installation instructions here. https://www.camaroz28.com/forums/lt1-based-engine-tech-9/ltcc-install-instructions-new-882760/

I noticed it requires the EST signal to function, as well as hi/low res signals. If it truly controls dwell by itself, then it would have no need for the EST signal at all. It probably takes the EST signal, measures the pulsewidth and stores it, multiplexes a pulse to the correct ignition coil driver and fires the coil at a stock pulsewidth/dwell time.

If I had to, at gunpoint, reduce the dwell time, I would send +300v to the primary of the ignition coils. Works for MSD. Or maybe just 24v. Lie once, cheat twice.

Oh, something else the LTCC unit does......flash codes with green light to identify failure conditions. Seems to complain if the key is toggled inside of 5 seconds for some reason. This is what I have been able to find out so far.

spfautsch
11-03-2017, 06:10 PM
If it truly controls dwell by itself, then it would have no need for the EST signal at all.

EST being the white wire? Are you implying the LTCC module has it's own spark advance tables?

Adding a buck-boost circuit to power the coils with > 14.4v adds part count and would significantly increase cost. Considering this and the difficulties I see in writing the controller firmware, the LTCC module seems very reasonably priced. I may just buy one eventually but right now my toy fund is severely depleted.

If I had a way to produce a cad drawing of the trigger wheel quickly I'd draw up some graphics to illustrate. But I just don't have time. Here's the best I can do with words.

Let's assume some generic constants - 5ms coil charge time, and 30 degreees spark advance. 1000RPM idle and 6000RPM wot with these same constants. Please double-check my math.



RPM 1000 6000
Crank Rev. Time (360d) 60ms 10ms
Cam Angular Velocity 0.333ms/d 0.0556ms/d
Cam deg - 5ms dwell 15 deg 90 deg
Spark advance in ms 4.995ms 0.834ms
Cyl 1 Dwell Strt (cam) 30d btdc 105d btdc
Cyl 1 Dwell Strt (crnk) 60d btdc 210d btdc


What I'm hoping you take from this is that at 6000 rpm the #1 coil pack will need to start charging 15 cam degrees before the #2 low res slot is encountered, or approximately the same time the #2 coil is fired. And 30 degrees advance at 6k rpm is fairly tame at 100kpa.

This has been a very valuable learning experience. I've learned that the factory coil must have really low impedance and charge time. At the same time I can't help but think I'm probably losing power above 5500 rpm due to weak spark.

kur4o
11-03-2017, 08:22 PM
That`s it. Ltcc measures the time between low res pulses and calculates rpm. Than use simple lookup table [rpm] vs [low res pulses till BTDC] to start charging the coil.

low res pulses till BTDC=at tdc counter is reset for current cylinder and you have 7 low res pulses till next ignition event.

Here are some formula [60*1000] / [x*4]=rpm
60=60 seconds in a minute
1000= to convert in ms
x= time for 90* cranshaft rotation or time between low res pulses
4= to get 1 crankshaft revolution time

2.5ms/90 = 0.0278ms for 1 degree rotation at 6000 rpm

46 total advance = 1.27ms error at 6000 rpm for dwell time. which is acceptable since dwell can vary.
Since nobody runs anything between 20 and 38 at high rpm that error can be brought down.

vilefly
11-03-2017, 08:59 PM
spfautsch,
I am not sure if the LTCC unit has its own spark tables, but it has its own spark-retard tables and settings. I cannot say if it changes timing during normal, non-knock operation without proof for myself. I grant you it would be cheaper not to bother with it.
But it seems rather certain that it does not control dwell time, only divides it by 8 by selecting coils. If you take the stock dwell time, and give each coil 2 revolutions before the next fire, you will have solved any dwell problems easily without the need to modify anything. Now, you can magically rev beyond stock speeds. Cheap and easy.
As to the lack of power above 5500, that depends if you are using a stock cam or not, or outrunning your injector flow rate/on-time. I don't know any specifics on the engine you mention, unless it is the one listed under each of your posts. The science of dwell time is no mystery to me, but it never hurts to review. Injector on time can pose major problems at high speed, though.

spfautsch
11-03-2017, 11:35 PM
That`s it. Ltcc measures the time between low res pulses and calculates rpm.

Don't you think measuring / tracking spark advance would be necessary also?


I am not sure if the LTCC unit has its own spark tables

I'm more than a little sure it doesn't. More directly the ECM controls spark advance, which is why it requires a signal from EST. Otherwise anyone with a LTCC would have to customize the spark tables for their own tune.


If you take the stock dwell time, and give each coil 2 revolutions before the next fire, you will have solved any dwell problems easily without the need to modify anything.

You also create a condition where you have a bunch of coils that are energized all the time and will all spark simultaneously the moment the ignition circuit is cut.

On top of this, wouldn't coil overheating be a concern?

[edit: or did I misunderstand your suggestion here]


As to the lack of power above 5500, ... The science of dwell time is no mystery to me, but it never hurts to review. Injector on time can pose major problems at high speed, though.

The point I was trying to make is that the stock setup has very little dwell time capacity at higher RPMs and spark advance. Or am I mistaken?

The only way I can forsee doing something like this "easily" with an Arduino compatible uc would rely heavily on the high-res signal, using dwell lookup tables and keeping everything in terms of degrees so the uc can track by the high-res count. Unfortunately it still needs to be able to measure the time between low res pulses to four or five decimal places or RPM [edit: and spark advance] calculations are going to be horribly inaccurate. So three inputs that all need relatively precise and fast ISRs, and time to within 100us, possibly 10us. All this is well outside my comfort zone.

Attached is the sketch as I left it yesterday. It has not been tested but does compile. If it's of any help take whatever liberties you'd like with it.

kur4o
11-04-2017, 01:36 AM
Here are some threads with pictures.

https://www.youtube.com/watch?v=_8JrLEso7Vg at 0:56

http://www.dw-zone.com/ltcc/LTCC1.jpg

So ltcc have different board revisions.

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSh-GXBwbBJ8g4U8DNwWLbd7zTmVtox0hO58rmWbfWgxK6HQx-X

And the delteq unit.

spfautsch
11-04-2017, 02:35 AM
I recognize that microcontroller package but it's from waaaaaay before my time (in the realm of ucs).

I think before I jump to any more conclusions I'd like to see a scope capture of the following signals.

EST
LowRes Opti
Inductive clamp on #1 spark
#8 Injector (or #4 or whichever gives best waveform capture for kur4o's request)

Both at idle and holding at say, 4000rpm.

If that's not something you can do any time soon vilefly, I'll look into doing it. I wouldn't mind owning one of the little capture devices you posted, even though my toy fund is currently deep in the red.

vilefly
11-04-2017, 06:56 AM
"You also create a condition where you have a bunch of coils that are energized all the time and will all spark simultaneously the moment the ignition circuit is cut.
On top of this, wouldn't coil overheating be a concern?"

Naw. You're just overthinking it like I did earlier. All I meant was that the on/off signal for the stock, single coil would be rotated through the 8 coils in sequence. None of them would be on until the transistor was switched on by the redirected EST signal. This would be plenty of charge time for a coil running 12.5% as much as the original coil. This is the basis of my non-processor approach to the problem. Just GATE the signals to the right coils at the right time. No calculation. No changes. Just sequence the gating so that it "arms" the right coil transistor at the right time. I have no intentions of going beyond this. You have plans to do so, I bet, and there's nothing wrong with running 2 arduinos to accomplish what you need to do. One to calculate, one to act on it. 2 arduino pro minis don't take up much space. (5v-16mhz versions) I don't know for sure if it would be fast enough, but at $5 each, it would be nice.

I have weekends off from work, and away from the best scopes. I have only 1 old 4 channel Interro PDA scope with a small black/white lcd display. Probably have to take a picture with my phone to get a decent capture. Or.....I could try for the next work week when I have access to everything. Either way, I will see what I can do.

johnny_b
11-06-2017, 02:24 AM
So, Johnny, how's the northstar ignition module working for you?

Haven't had much time to play with anything, as I have about 5 weeks left in the semester.

Given Kur40 knowledge of EE if he thinks the northstar icm is a step back then it most likely is so I have abandoned that idea.

I'm still lurking on y'alls discussion though

good luck guys

vilefly
11-06-2017, 03:19 AM
Haven't had much time to play with anything, as I have about 5 weeks left in the semester.

Given Kur40 knowledge of EE if he thinks the northstar icm is a step back then it most likely is so I have abandoned that idea.

I'm still lurking on y'alls discussion though

good luck guys

I tend to look at it as a half-step towards 1 coil per cylinder. It still eliminates the hi-voltage side of the optispark, which is the goal of all these
experiments. I would not use it for a top-fuel dragster, but on the street, sure.

spfautsch
11-06-2017, 07:44 PM
All I meant was that the on/off signal for the stock, single coil would be rotated through the 8 coils in sequence. None of them would be on until the transistor was switched on by the redirected EST signal. This would be plenty of charge time for a coil running 12.5% as much as the original coil.

This makes the assumption that the LS coils have electromagnetic properties that are similar to the Opti / HEI2 coil, and I think that's a flawed assumption. If you recall back to this post (http://www.gearhead-efi.com/Fuel-Injection/showthread.php?6767-DIY-LTCC-or-similar-system-for-LT1s&p=67728&viewfull=1#post67728) the auto companies put a lot of effort into sourcing the cheapest components that will get the job done. I'm sure the LS coil selection received the same due diligence. If they knew they had two full engine revolutions to provide adequate charge time I'd bet that heavily influenced the type of coil that was chosen. I haven't been able to find any specs on the HEI2 coil or driver module to compare, but what I was hoping to see with the waveform capture at idle and then 4k rpm is a rough picture of dwell at different speeds. I would imagine there's a dwell table in $EE but I haven't had a chance to dig through all the .xdfs and the disassembly looking for it.


This is the basis of my non-processor approach to the problem. Just GATE the signals to the right coils at the right time. No calculation. No changes. Just sequence the gating so that it "arms" the right coil transistor at the right time. I have no intentions of going beyond this.

And that approach might be perfectly adequate up to a certain RPM. But I doubt many of the LT-1 enthusiasts would care much for an ignition system that performs worse than a properly functioning Opti.


You have plans to do so, I bet, and there's nothing wrong with running 2 arduinos to accomplish what you need to do.

I haven't ruled out the possibility but it's certainly looking more and more like a scenario where the the LTCC module is a much better value than what I initially thought. The only thing I would gain by spending all the time and effort to do it on an arduino platform is having the code open-sourced.

In looking for more intelligence on the subject I ran across this (http://www.superchevy.com/how-to/0310htp-lt1-ignition-system-understanding-modifying/) article that seems to hint the opti system is heavily reliant on the high res signal for controlling spark advance in real time during cranking when angular velocity is least stable. There's even a heading where they discuss time versus angle based ignition.

vilefly
11-06-2017, 09:34 PM
Well, I didn't get a chance to get a scope capture for you yet. I will try this week at work, but we are hammered with cars so ugly, a genius couldn't sell them. It's "resurrection season" at the shop. Blech. It will be later in the week, if possible.
I know it drives everyone crazy that I play "slop" pool, but it gets me through the tedious things without a proper education. heh. It's from racing around in my youth with "claimer" engines, and such. Get it running, then fix it. Bass ackwards. Infuriating to those who follow proper procedure, for sure.

kur4o
11-07-2017, 12:02 AM
An interesting find from a 94 service manual.

vilefly
11-07-2017, 04:03 AM
AH HA! Just as we suspected! Thanks kur4o.
EST controls dwell.
Loss of Hi-Res signal = still runs.
Loss of Lo-Res signal = does not run.
Limp mode is most likely simultaneous double-fire injection.
I will still gather waveforms when in limp mode, though.

spfautsch
11-07-2017, 11:36 PM
Here's (http://www.megamanual.com/seq/coils.htm) a really good writeup on the LS coils. Describes how the dwell requirement changes with input voltage. Also states they have internal current and dwell limiting.

Curious, does anyone know the cpu clocking of the 8051 and 1333 PCMs? The only spec I've been able to turn up is the flash size.

vilefly
11-08-2017, 07:00 AM
Is there a dwell setting that is accessible with $ee hack?

spfautsch
11-08-2017, 06:32 PM
I assume you mean in the PCM firmware (referred to as the $EE mask for 94-95 model years), and not that I've been able to discern. All the documentation we've seen indicates it's controlled by the EST output but I would have to defer to kur4o or someone else who has the intestinal fortitude to stare at the disassembly because I simply lack the willpower.

I've found an interrupt triggered capture function available on the Atmegas that might allow for calculating RPM accurately enough to suffice, but a lot more research is needed. One thing I can say for certain is whatever I might be able to come up with will not function whatsoever without the high res signal.

kur4o
11-09-2017, 01:55 AM
There are plenty of unidentified parameters used by tpu processor.
It runs from some built in memory ROM but uses some of data in the bin as calibration parameters.

I figured some high res counters in the code, thanks to service manual opti error descriptions.
Finding dwell parameters without TPU processor main code will be a guess work.
Some waveforms from the est signal might help alot though.

PCM calulates spark:
1. angle based when high res signal is present{high res counter {possibly triggered after low res rising edge} + {90- spark advance}
2. time based when high res error is set( in ms after low res pulse is detected}.

68hc11f1 is 4mhz. I cant find a pic of the crystal used on the board to confirm.

spfautsch
11-09-2017, 05:41 AM
There are plenty of unidentified parameters used by tpu processor.
It runs from some built in memory ROM but uses some of data in the bin as calibration parameters.

Like a mask ROM? There's generally no way to dump something like that, right?


I figured some high res counters in the code, thanks to service manual opti error descriptions.
Finding dwell parameters without TPU processor main code will be a guess work.

I was afraid that would be the case. This goes way beyond my propensity for machine code hacking. The deepest I got into this type of thing was dumping avr firmware from a smartcard "unlooper" and reverse engineering it to change a few uart commands.


68hc11f1 is 4mhz. I cant find a pic of the crystal used on the board to confirm.

This got me thinking it would probably advisable to use an arduino with a crystal oscillator, which eliminates my preferred adafruit piece (https://www.adafruit.com/product/72). :-\

kur4o
11-10-2017, 11:29 PM
Mask rom code showed some good google results.
The best invasive method is to scrape the chip and read the data optically.

I know someone figured an easy way. These D84G TPU processors{I guess some 68hcXX variant} are used in many sir, abs, and other controllers in that era as a primary processor.

vilefly
11-11-2017, 04:43 AM
Ok. I was extremely busy this week at work, so I did this tonight in the cold after I cannibalized a battery pack to fix my interro scope. Hopefully, this will be enough to keep all coil dwell paranoia at bay, and determine which coils will work best.
From what I have found out, the LS2 non-finned truck ignition coils (barrel shaped), should work best for this conversion. My '95 wagon has 4.59 mS max dwell and 3.2 mS minimum dwell. According to the Megasquirt coil dwell page, max dwell for the LS2 coil should be set to 4.5 mS. This looks like a perfect match. The LTCC product page says you cannot use the finned LS2 ignition coils. Not sure why.
"The round body truck coils with the metal fins (19005218) DO NOT WORK"
Now we also know why the LTCC module has so few parts. It most likely GATES the EST signal to the correct coil in sequence. The lack of other chips is why I suspected this. It just looked too simple for yesteryear's technology. I figured that engineer was clever, and he sure is. More clever than most, since he has a finished product with a minimum of internal parts.

Anyways, here is my proofs. The battery voltage was 13.85v
12253
12254
12255
damn it. The server flipped them sideways.

spfautsch
11-11-2017, 05:45 AM
None of the attachments are working on this end. Anxious to see what you got but no rush. This weekend I'm going to be freezing my stones off finishing my deck rebuild that should have been done in May.

What I think you might be misunderstanding or in denial about is the notion that multiplexing the EST circuit will work. The reason coil per cylinder setups work well at high RPMs is because they aren't limited to 90 degrees of crank / 45 degrees of distributor rotation to charge. The EST circuit on the other hand has to live within this constraint. What I was trying to illustrate with this post (http://www.gearhead-efi.com/Fuel-Injection/showthread.php?6767-DIY-LTCC-or-similar-system-for-LT1s&p=67742&viewfull=1#post67742) is that if we're multiplexing the EST line, the very best dwell we could possibly get at 6000 RPM, assuming a very tame 30 degrees spark advance is 1.67 ms. That's the opposite of "good".

edit: I got sidetracked by dogs needing to go outside, but meant to also add that I've been thinking this over non-stop and think there may be hope for the arduino platform. If the original LTCC module multiplexes / gates the EST line (I'd bet you a bottle of good whiskey it doesn't) then what I'm hoping to be able to come up with should be better in the same way sliced bread was an improvement on flour dough baked on a hot stone.

vilefly
11-11-2017, 06:20 AM
12256 idle
12257 above 4000rpm
12258 3000rpm

not much to look at. Blame 1994 technology.
According to this page http://www.megamanual.com/seq/coils.htm
shows the LS2 coil (12573190) having a minimum dwell time of 1.760 mSec.
The finned coil's minimum dwell is 2.180 mSec.

lionelhutz
11-11-2017, 07:19 PM
spfautsch

At this point, I definitely would bet against switching to the next coil on each low-res crank signal working correctly. I too highly doubt that the PCM could command 46* advance at any rpm and still restrain the coil charging time to be between two low-res signals. I'd bet that the PCM turns the coil back on to fire the next cylinder coil before the low-res pulse identifying the cylinder that just fired even appears.

This doesn't make it that much more difficult to use 8 coils. Do it by using the opti signals to determine which coil to connect next and the EST to switch to that coil. In that way, you connect the next coil required immediately after the previous coil has fired. This doesn't give the ideal dwell time, but would work. However, this eliminates the main advantages of using 8 coils. A proper 8 coil system will overlap the operation of the 8 coils to maintain the ideal dwell time for the coils at every rpm. That's too big an advantage to give up.

I too would bet against the LTCC module simply multiplexing EST line. It is advertised as having more spark energy which likely means it does maintain the ideal dwell time for each coil. This means it also does some much more complicated calculations to be able to switch 2 coils on at once. It doesn't need to do any timing calculations, but rather just use the EST and rpm along with the desired dwell time of the coil to calculate the time when the next coil should turn on. The EST can still be used to trigger the correct coil firing. In this way, even if there was some error in the dwell timing calculations as the engine operating conditions vary, it wouldn't affect the actual engine timing. Or in other words, the calculations don't have to be as exact as doing timing would require for it to still work just fine.

I recall posting something about having a full plan before going off half-cocked on a solution fairly early in this thread. It seems to have taken another 100+ posts to start coming up with a plan that could work but I think there is a decent understanding of what is required to properly do a coil near plug system now. It's much more complicated then just multiplexing the coil driving wire.

spfautsch
11-12-2017, 09:49 AM
I'd bet that the PCM turns the coil back on to fire the next cylinder coil before the low-res pulse identifying the cylinder that just fired even appears.

I would imagine it depends heavily on RPM and commanded spark advance. My assumption is that beyond some pre-determined RPM (for the sake of discussion let's pretend it's 5000) it simply switches the ICM back on immediately after it switched off as a "best effort" type methodology. But without someone dumping the TPU ROM or a bunch more waveform captures it's all conjecture.


... This doesn't give the ideal dwell time, but would work. However, this eliminates the main advantages of using 8 coils. A proper 8 coil system will overlap the operation of the 8 coils to maintain the ideal dwell time for the coils at every rpm. That's too big an advantage to give up.

This is my sticking point. If it's worth doing it's worth doing correctly. To use your metaphor, there's no point building a half cocked setup here. By my reckoning there are two types of LT-1 enthusiasts - the folks who want to preserve the stock setup as cheaply as possible and the modders who want to squeeze every ounce of power out. If you're the former go buy an aftermarket opti, a new water pump, a new optical sensor, suck it up and drive for another 200,000 miles. It's a damned reliable ignition system and will make great power well into the 6500 RPM neighborhood, until your water pump s**ts the bed.


I too would bet against the LTCC module simply multiplexing EST line. ... It doesn't need to do any timing calculations, but rather just use the EST and rpm along with the desired dwell time of the coil to calculate the time when the next coil should turn on.

I doubt it calculates advance but simply keeps a "running" variable derived from comparing when the EST line switches off to high res pulses since low res falling edge. Maybe it's more complicated than that, but I doubt it. But ultimately, to know exactly when to start dwell the controller must know about commanded spark advance. Else it's just a "close enough" thing, which gets us back into the realm of "half-cocked".


The EST can still be used to trigger the correct coil firing.

It must, else the controller would need to duplicate a bunch of spark advance functionality that the PCM handles just fine. To do that it would need to know about MAP, TPS, ECT, knock, (need I go on?).


It seems to have taken another 100+ posts to start coming up with a plan that could work but I think there is a decent understanding of what is required to properly do a coil near plug system now. It's much more complicated then just multiplexing the coil driving wire.

Yes it is.

I think I have a picture in my mind of how to do this on a single arduino "core". Hopefully I'll have a chance to build out a sketch that will demonstrate the concept before one of my 7 other projects get in the way.

vilefly
11-13-2017, 01:07 AM
Well, spfautsch, ya got me. Mostly stock preservationist here. I already have my spare distributor and such standing by. But I would like to give myself alternatives as well as get back on the electronics design horse. This project accomplishes both. Not to mention someone is bound to build on that work, and come up with something better. That's just how it goes.

Perhaps next week I can get those waveforms you need, as well as limp mode behavior when the Hi-res signal is lost. I hope my workload lightens a bit so I can do it. I am still dedicated towards collecting all data possible.

spfautsch
11-13-2017, 02:28 AM
But I would like to give myself alternatives as well as get back on the electronics design horse.

It sounds like you have a bit of a tinkerer thing going on and I can certainly relate to that and have nothing but respect for you. For me, it's catching up on the hot rodding I needed to do in my 20s but got married and had kids instead and was broke for the next 24 years. I remember reading the stories on the LT1 in the early 90s (which were always a footnote compared to the ZR-1 / LT5 stuff) and thinking that's the smallblock I'd want to build if I ever had the means.


Perhaps next week I can get those waveforms you need,

Don't worry about me - I have enough to work with here. The only thing that would contribute slightly is seeing dwell at (above your rev limiter) and I wouldn't ask you to stress your engine that hard for something I've already determined isn't going to be "enough".


as well as limp mode behavior when the Hi-res signal is lost.

I'm not too worried about this at the moment. Honestly, my take on "limp mode" is that if it doesn't start after 3-4 seconds of cranking something's broke - call your significant other to come get you so you can tow it back to the shop. This isn't a grocery getter. If I can conquer step 1 completely I might consider time based sequencing and the possibility of limp mode, but it's not something I'm going to lose sleep over.

lionelhutz
11-13-2017, 05:13 AM
I would imagine it depends heavily on RPM and commanded spark advance. My assumption is that beyond some pre-determined RPM (for the sake of discussion let's pretend it's 5000) it simply switches the ICM back on immediately after it switched off as a "best effort" type methodology. But without someone dumping the TPU ROM or a bunch more waveform captures it's all conjecture.

Why can't anyone read a whole paragraph?


At this point, I definitely would bet against switching to the next coil on each low-res crank signal working correctly. I too highly doubt that the PCM could command 46* advance at any rpm and still restrain the coil charging time to be between two low-res signals. I'd bet that the PCM turns the coil back on to fire the next cylinder coil before the low-res pulse identifying the cylinder that just fired even appears.

As in the PCM must at some point turn the coil on again almost immediately after firing it to always be able to produce 46* of advance. When it does it exactly doesn't matter, the fact is that it's EXTREMELY likely that it does it.

I just don't get the reason to cherry pick little bits of a response to make the exact same comment as the COMPLETE paragraph that you cherry picked has. You did it again when I was describing a method that could be used to provide 8 coils with the proper dwell at all time. Why else would I have wrote that the EST line can still be used to trigger the spark, besides the FACT THAT I WROTE the 8-coil LTCC module doesn't have to do any actual timing calculations in the previous sentence right before the line you felt you had to make a special point about basically repeating what I posted.

delcowizzid
11-13-2017, 12:34 PM
The truck coils with finned heatsinks self trigger with too much dwell to stop them overheating it's the built in protection.the delco ecu I use with an external ls1 coil driver box the cranking dwell is too high and if it doesnt crank fast enough and start fast enough they cause a nasty kick back .lots of people with aftermarket ecus have the same issues too

vilefly
11-13-2017, 03:54 PM
You sure are cute when you are pissy, Lionel.

12264

kur4o
11-13-2017, 09:38 PM
Vilefly Thanks for the pics. They give some good hints.
Did the dwell time input decrease gradually with rpm increase.
If that is the case it can be calculated from the low res input or be a function of it. If that scaling can be turned off there will be always 5ms dwell available. Engine will run like crap at high rpm though but with 8 coils will be fine.
What some of you miss is that there is always 90 degree charging time for the coil available, and that doesn`t depend on commanded spark advance.
At 6000 rpm that will be 2.5ms between pulses.

Can I assume that 5 volts on the est charge the coil and 0 volts fires the coil.
I guess there is end of spark time just like end of injection and dwell is controlled by similar means.
End of dwell time is calculated to happen at commanded spark advance degrees.

vilefly
11-13-2017, 09:41 PM
so delcowizzid,
You're saying that the finned truck coils add a certain amount of additional dwell to the trigger signal sent to it? Any specifics on that theory? We are all ears. I figure the feed back is for ignition burn time monitoring. Similar to nissan in design.....sort of.

vilefly
11-13-2017, 09:56 PM
kur40,
The dwell transition was smooth, and went down with increasing rpm.
0v fires the coil, yup.
Unfortunately, for the full 90 deg to be available, one would need a very fat rotor to get away it. but I have no definite intention of changing the spark advance much. So stock will still work for me. The 8 coils would allow one to reprogram a crazy-ass timing curve for sure.

lionelhutz
11-14-2017, 12:18 AM
What some of you miss is that there is always 90 degree charging time for the coil available, and that doesn`t depend on commanded spark advance.
At 6000 rpm that will be 2.5ms between pulses.

Yes, with a single spark control output, there is close to 90* of crank rotation charge time available if you start charging the coil again immediately after it was fired. It can never be a full 90* because there has to be time to turn the ICM off so it triggers the coil before turning it back on again.

But, there is never even close to 90* of crank rotation charge time available if you start charging the coil each time a low-res signal appears. If you start charging when the low-res signal appears then at most you have (90 - commanded timing advance) degrees of crank rotation available to charge the coil.

I agree with 2.5mS being the theoretical maximum, which means the measured minimum dwell number of 3.2mS is not possible.

It's common to find the low vacuum high rpm area of the spark tables containing 46*. At 6000rpm and 46* of advance, the theoretical maximum coil charging time is 1.22mS if the coil charging starts when a low-res pulse is received.

Even though it can't be the real minimum dwell, the measured minimum dwell of 3.2mS above 4000rpm does indicate that the coil charging does not start when a low-res pulse is received but rather right after the coil is fired.

delcowizzid
11-14-2017, 02:14 AM
so delcowizzid,
You're saying that the finned truck coils add a certain amount of additional dwell to the trigger signal sent to it? Any specifics on that theory? We are all ears. I figure the feed back is for ignition burn time monitoring. Similar to nissan in design.....sort of.

No just if you dwell them for to long they will cut the 5v signal themselves and fire a spark no matter the crank postion it's a nasty kick back when they fire on the compression stroke well before tdc lol

spfautsch
11-14-2017, 03:50 AM
I was wondering what happened when the dwell limiting kicked in. The info I've seen states they all have dwell limiting but the LS1 and the non-truck LS2 coils must employ a different limiting mechanism like clamping charge current.

That's bad with a capital B.

lionelhutz
11-14-2017, 08:01 AM
Sounds like a broken starter and/or block waiting to happen.

lionelhutz
11-14-2017, 08:32 AM
Unfortunately, for the full 90 deg to be available, one would need a very fat rotor to get away it. but I have no definite intention of changing the spark advance much. So stock will still work for me. The 8 coils would allow one to reprogram a crazy-ass timing curve for sure.

I don't think you're understanding the maximum 90* of dwell number. This is a physical limit based on the basic engine layout of the LT1 and the fact that a single coil is being used in the ignition system. It has nothing to do with the timing advance being used. As long as the LT1 PCM is kept in control it also doesn't change even when switching to 8 coils.

On this engine, a cylinder fires every 90* of crank rotation. At most, a single coil ignition system can have the coil turned-on to magnetically charge it for the whole time between each ignition event. This will end up being a little less than 90* of crank rotation, but lets call it 90* just for simplicity.

At 6000 rpm, 90* of crank rotation is 2.5mS. That is the theoretical maximum possible dwell at 6000 rpm. Of course, some of that time will be lost firing the ignition and turning the coil back on so in practice the dwell time will be less. What this means is that the 3.2mS you measured can't be the minimum possible dwell of the LT1 ignition system. It is physically impossible to have that much dwell at any RPM above 4687 rpm and still fire every cylinder on it's compression stroke.

All the above assumes you turn the coil back on to begin charging it again right after it fires, not at the next TDC event where you see the next low-res signal. Turning it back on at the next TDC event or leading edge of the next low-res signal will significantly reduce the dwell time.

vilefly
11-14-2017, 04:37 PM
Well, I know I didn't rev past 4500 rpm in a no-load condition. You just don't do that sort of thing on a stock engine for safety concerns. I merely meant the rpm was above 4k rpm, since my outdated scope didn't have a rpm readout along with the scope pattern. If I had the newer scope, you would have seen more info, for sure. I should have mentioned that.
As to the crazy-ass curve, I was referring to the maximum potential of having 8 coils, with advancing coil charging by 2 ignition events, and such. This is probably the strategy all the racers want, and maybe the original LTCC provides, but we have no proof yet. It would be nice, though.

spfautsch
11-14-2017, 08:30 PM
As to the crazy-ass curve, I was referring to the maximum potential of having 8 coils, with advancing coil charging by 2 ignition events, and such.

I think you still might be confusing Spark Advance with coil charging (dwell) somewhat.

Just for the sake of sanity let's establish terminology. Dwell is when the EST line (or whatever is controlling a coil per cylinder or waste spark setup) goes high (or possibly low) to cause the ignition control module (principally a huge transistor) to turn on and charge the coil. When the EST line goes low or turns off the coil's magnetic field collapses, resulting in the high energy discharge (aka the spark event). Optimum dwell time is where the coil has generated the largest magnetic field the transformer core can sustain, causing the "fattest" discharge. It is a function of diminishing returns - more dwell creates more energy up to the coil's saturation point, and beyond that more dwell simply creates wear and tear on the components because the energy has to go somewhere so it heats the coil and components and is thus dissipated.

In the "good old days" when this was controlled by mechanical point contacts, dwell was usually referred to in degrees. This is where the potential 90 degrees comes in because of the inherent nature of a crossplane v8.

Spark advance and dwell are related as such - the spark event happens at the end of dwell time and lasts a very short time. For a distributor setup the rotor has to have it's conductive end in proximity to the corresponding tower post for the secondary energy to be transferred to the post, plug wire, etc. The size of the conductive "arc" of the Opti and most HEI2 rotors is elongated like it is because there's no mechanical advance system such as in the original HEI.

Any arguments?


This is probably the strategy all the racers want,

You don't have to be a "racer" or a hot rodder to benefit from healthy combustion ignition. Coil per cylinder setups are being used almost exclusively on current vehicles because they promote more complete combustion which can reduce emissions and increase efficiency. Everybody likes improved efficiency, right?


and maybe the original LTCC provides, but we have no proof yet.

I think if delcowizzid's claim is accurate that's pretty strong evidence that the LTCC module is commanding quite a bit of dwell time, at least during cranking which makes sense. I believe the (edit: ls coil dwell limiter) number I've seen is 8 milliseconds, which is a proverbial crap-ton of dwell.

lionelhutz
11-14-2017, 11:32 PM
As to the crazy-ass curve, I was referring to the maximum potential of having 8 coils, with advancing coil charging by 2 ignition events, and such. This is probably the strategy all the racers want, and maybe the original LTCC provides, but we have no proof yet. It would be nice, though.


With a properly done single coil ignition system, the timing advance has no effect on the dwell. The rpm is what limits the dwell.

With a properly done eight coil ignition system, the timing advance has no effect on dwell even when using one common signal to tell each coil when to fire. The rpm will have no effect on dwell either.

Maintaining an ideal constant dwell IS the main advantage of 8 coils, since that means you're providing the cylinders with the strongest possible spark at all times.




According to this page http://www.megamanual.com/seq/coils.htm shows the LS2 coil (12573190) having a minimum dwell time of 1.760 mSec.


I predict you will run into this minimum coil dwell time somewhere between 4000 rpm and 5000 rpm assuming you're using around 36* of timing and you are switching to the next required coil at each TDC event (or each low-res leading edge).

spfautsch
11-15-2017, 12:52 AM
With a properly done eight coil ignition system, the timing advance has no effect on dwell even when using one common signal to tell each coil when to fire. The rpm will have no effect on dwell either.

We'll have to agree to disagree on this point. At least from the implementation standpoint, I believe I have to know spark advance because dwell (measured either in time or hint: degrees) is in essence "added" to the (edit: lead up to the) firing event. It gets a little sticky in that we need to follow the falling edge of the EST line to know when to end dwell and let the coil fire. Even stickier that dwell may need to be started before the preceding cylinder's coil is fired.


assuming ... you are switching to the next required coil at each TDC event (or each low-res leading edge).

I don't intend to do it that way, so it won't be a limitation.

This is what I was dreaming about last night. This may end up a failure, but it will be a spectacular one.


#define DWELL_TGT 4.0
#define DWELL_MAX 4.5
#define VOLT_COMP_8 2.4
#define VOLT_COMP_10 0.9
#define VOLT_COMP_14 -0.5
#define VOLT_COMP_16 -0.9

#define CRANKING_SPK_ADV 14 // in the $EE cal this is skewed against ECT so ???
#define RUNNING_RPM 400 // assume engine is running after reaching this speed

typedef struct
{
int dwell8V;
int dwell10V;
int dwell12V;
int dwell14V;
int dwell16V;
} dwell

dwell dwellTable[27];

int rpmReference[27] = { 400, 600, 800, 1000, 1200, 1400,
1600, 1800, 2000, 2200, 2400, 2600, 2800, 3000, 3200, 3400,
3600, 3800, 4000, 4400, 4800, 5200, 5600, 6000, 6400, 6800 };

kur4o
11-15-2017, 01:48 AM
So this is the suspect routine for dwell calculations.
It relies heavily on low res, old low res, delta low res, ign voltage, rpm and map.
Still have no clue what it does.



RESERVED:3E0C loc_3E0C: ; CODE XREF: OC4I+40Bj
RESERVED:3E0C bclr byte_25 $20 ; ' '
RESERVED:3E0F ldd word_13D
RESERVED:3E12 lsrd
RESERVED:3E13 lsrd
RESERVED:3E14 lsrd
RESERVED:3E15 coma
RESERVED:3E16 comb
RESERVED:3E17 addd word_13D
RESERVED:3E1A bpl loc_3E1F
RESERVED:3E1C ldd #0
RESERVED:3E1F
RESERVED:3E1F loc_3E1F: ; CODE XREF: OC4I+420j
RESERVED:3E1F std word_13D
RESERVED:3E22 ldd word_A1
RESERVED:3E24 std word_135
RESERVED:3E27 ldaa #$FF
RESERVED:3E29 ldab word_16B
RESERVED:3E2C subb byte_16D
RESERVED:3E2F bcs loc_3E35
RESERVED:3E31 cmpb #$20 ; ' '
RESERVED:3E33 bcc loc_3E53
RESERVED:3E35
RESERVED:3E35 loc_3E35: ; CODE XREF: OC4I+435j
RESERVED:3E35 ldd #$4000
RESERVED:3E38 cpd word_135
RESERVED:3E3C bls loc_3E56 ; above 60 rpm
RESERVED:3E3E cpd word_137
RESERVED:3E42 bls loc_3E56
RESERVED:3E44 ldd word_137
RESERVED:3E47 subd word_135
RESERVED:3E4A lsld
RESERVED:3E4B subd word_13D
RESERVED:3E4E bmi loc_3E56
RESERVED:3E50 addd word_13D
RESERVED:3E53
RESERVED:3E53 loc_3E53: ; CODE XREF: OC4I+439j
RESERVED:3E53 std word_13D
RESERVED:3E56
RESERVED:3E56 loc_3E56: ; CODE XREF: OC4I+442j
RESERVED:3E56 ; OC4I+448j ...
RESERVED:3E56 ldd word_16B
RESERVED:3E59 std word_16B+1
RESERVED:3E5C ldd word_135
RESERVED:3E5F lsrd
RESERVED:3E60 lsrd
RESERVED:3E61 lsrd
RESERVED:3E62 cpd word_13D
RESERVED:3E66 bcc loc_3E6B
RESERVED:3E68 std word_13D
RESERVED:3E6B
RESERVED:3E6B loc_3E6B: ; CODE XREF: OC4I+46Cj
RESERVED:3E6B ldd word_135
RESERVED:3E6E std word_137
RESERVED:3E71 ldd #0
RESERVED:3E74 brset byte_23 $80 loc_3E7B ; 'À'
RESERVED:3E78 ldd word_2048
RESERVED:3E7B
RESERVED:3E7B loc_3E7B: ; CODE XREF: OC4I+47Aj
RESERVED:3E7B std word_145
RESERVED:3E7E ldab byte_128
RESERVED:3E81 cmpb #$2D ; '-'
RESERVED:3E83 bcc loc_3E87
RESERVED:3E85 ldab #$2D ; '-'
RESERVED:3E87
RESERVED:3E87 loc_3E87: ; CODE XREF: OC4I+489j
RESERVED:3E87 subb byte_204B
RESERVED:3E8A clra
RESERVED:3E8B xgdx
RESERVED:3E8C ldd word_204C
RESERVED:3E8F idiv
RESERVED:3E90 ldd word_135
RESERVED:3E93 cpd word_204E
RESERVED:3E97 bhi loc_3EB1 ; bra below 3400 rpm
RESERVED:3E99 ldd word_204E
RESERVED:3E9C subd word_135
RESERVED:3E9F lsrd
RESERVED:3EA0 adcb #0
RESERVED:3EA2 adca #0
RESERVED:3EA4 std word_143
RESERVED:3EA7 xgdx
RESERVED:3EA8 subd word_143
RESERVED:3EAB bcc loc_3EB0
RESERVED:3EAD ldd #0
RESERVED:3EB0
RESERVED:3EB0 loc_3EB0: ; CODE XREF: OC4I+4B1j
RESERVED:3EB0 xgdx
RESERVED:3EB1
RESERVED:3EB1 loc_3EB1: ; CODE XREF: OC4I+49Dj
RESERVED:3EB1 stx word_13F
RESERVED:3EB4 ldd word_135
RESERVED:3EB7 lsrd
RESERVED:3EB8 lsrd
RESERVED:3EB9 lsrd
RESERVED:3EBA lsrd
RESERVED:3EBB std word_A3
RESERVED:3EBD addd word_145
RESERVED:3EC0 addd word_13D
RESERVED:3EC3 addd word_13F
RESERVED:3EC6 std word_13B
RESERVED:3EC9 ldx word_2052
RESERVED:3ECC ldaa byte_160
RESERVED:3ECF cmpa byte_2050
RESERVED:3ED2 bls loc_3EDF
RESERVED:3ED4 ldaa word_16E
RESERVED:3ED7 cmpa byte_2051
RESERVED:3EDA bls loc_3EDF
RESERVED:3EDC ldx word_2054
RESERVED:3EDF
RESERVED:3EDF loc_3EDF: ; CODE XREF: OC4I+4D8j
RESERVED:3EDF ; OC4I+4E0j
RESERVED:3EDF stx word_143C
RESERVED:3EE2 pshx
RESERVED:3EE3 tsx
RESERVED:3EE4 ldd word_135
RESERVED:3EE7 subd 0,x
RESERVED:3EE9 pulx
RESERVED:3EEA cpd word_13B
RESERVED:3EEE bcs loc_3EF3
RESERVED:3EF0 ldd word_13B
RESERVED:3EF3
RESERVED:3EF3 loc_3EF3: ; CODE XREF: OC4I+4F4j
RESERVED:3EF3 std word_139
RESERVED:3EF6 std word_141C
RESERVED:3EF9 subd word_A3
RESERVED:3EFB cpd word_13F
RESERVED:3EFF bls loc_3F04
RESERVED:3F01 ldd word_13F
RESERVED:3F04
RESERVED:3F04 loc_3F04: ; CODE XREF: OC4I+505j
RESERVED:3F04 std word_141
RESERVED:3F07 bne loc_3F0C
RESERVED:3F09 ldd #1
RESERVED:3F0C
RESERVED:3F0C loc_3F0C: ; CODE XREF: OC4I+50Dj
RESERVED:3F0C std word_1440
RESERVED:3F0F brset byte_23 $80 loc_3F40 ; 'À'
RESERVED:3F13 ldd word_139 ; at eng off
RESERVED:3F16 ldx word_135
RESERVED:3F19 fdiv
RESERVED:3F1A ldaa #$B4 ; '+'
RESERVED:3F1C pshx
RESERVED:3F1D tsx
RESERVED:3F1E psha
RESERVED:3F1F ldab 1,x
RESERVED:3F21 mul
RESERVED:3F22 adca #0
RESERVED:3F24 pulb
RESERVED:3F25 psha
RESERVED:3F26 ldaa 0,x
RESERVED:3F28 mul
RESERVED:3F29 tsx
RESERVED:3F2A addb 0,x
RESERVED:3F2C adca #0
RESERVED:3F2E ins
RESERVED:3F2F pulx
RESERVED:3F30 adda byte_14B
RESERVED:3F33 tab
RESERVED:3F34 ldaa #$B4 ; '+'
RESERVED:3F36 adda byte_2044
RESERVED:3F39 sba
RESERVED:3F3A tab
RESERVED:3F3B lsrb
RESERVED:3F3C clra
RESERVED:3F3D std word_14CE
RESERVED:3F40

spfautsch
11-15-2017, 03:12 AM
Interested how you got that more than what it does. I thought that was in a rom. Cool.

The thing with coil per cylinder is that we want (and if done correctly can have) the same dwell time across the board. Obviously it has to have voltage and possibly acceleration compensation but the dwell table I'm going to be populating in the uc setup route for the 14 volt row is going to be 4ms from 400 rpm to 6800.

lionelhutz
11-15-2017, 03:30 AM
We'll have to agree to disagree on this point.

What I wrote was true. Read it again, but don't read into it. With a properly built system, both the timing advance and rpm do not affect the dwell time. Sure, you need to know the timing advance and rpm to know when to start charging the coil, but neither affect the dwell time. You don't have the single coil limitation and with some processing power you can start the dwell of a coil before the last cylinder fires.

You and I are both in agreement on how an ideal system would look.

spfautsch
11-15-2017, 06:37 AM
Sorry, you are correct. I've been hung up on implementation.

The dwell table, populated by the setup routine:


RPM 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000 3200 3400 3600 3800 4000 4400 4800 5200 5600 6000 6400 6800
us/lrp 37500 24999 18750 14999 12499 10714 9375 8333 7499 6818 6249 5769 5357 4999 4687 4411 4166 3947 3749 3409 3124 2884 2678 2499 2343 2205
8v 16 24 33 41 50 57 66 75 83 92 100 107 116 125 132 140 150 160 168 186 202 215 237 255 265 287
9v 14 21 28 36 43 50 57 65 72 80 86 93 101 109 115 122 130 139 146 162 176 187 206 222 230 250
10v 12 19 25 32 39 45 51 58 65 72 78 84 91 98 103 110 117 125 131 145 158 168 186 200 207 225
11v 11 17 23 29 35 41 47 53 59 65 71 76 83 89 94 100 106 113 119 132 144 153 168 181 188 204
12v 10 16 21 27 32 37 43 48 54 60 65 70 76 81 86 91 97 104 109 121 132 140 155 166 173 187
13v 10 15 20 25 31 36 41 46 51 57 62 67 72 78 82 87 93 100 104 116 126 134 148 159 165 179
14v 9 14 19 24 29 34 39 44 49 54 59 64 69 74 78 83 89 95 100 110 120 128 141 151 157 170
15v 9 13 18 22 27 31 36 41 45 50 55 59 64 69 73 77 82 88 92 102 111 118 131 140 146 158
16v 8 12 17 21 26 30 34 39 43 48 52 56 61 65 69 73 78 83 87 97 105 112 124 133 138 150

lionelhutz
11-15-2017, 08:17 AM
Looks reasonable the way it changes, but what do the numbers mean, is it degrees before the plug fires?

spfautsch
11-15-2017, 08:29 PM
That's the idea.

kur4o
11-15-2017, 08:33 PM
Even if we found dwell settings, and hack PCM to control dwell, at higher rpm we are doomed.
Since there will be overlap at coil charge. At any high rpm sitiuation there will be at least two coils that needs to charge simultaneously with 50% overlap.
So controlling 8 coils dwell with one est signal is not possible. We need at least two, preferably 4 est signals from PCM to make it work.

vilefly
11-15-2017, 09:24 PM
Kur4o, I think coil charging can be altered with a firmware-designed RPM switch (or dwell switch) installed in the LTCC unit. Not the smoothest method, but effective. Someone probably has a better idea, but this is just off the top of my head.

spfautsch
11-15-2017, 09:29 PM
As I mentioned a few posts back the only thing I intend to do with the EST line is watch for the falling edge to know when to fire the currently sequenced coil that will already be charged. Also to get a running "picture" of spark advance.

Multiplexing or gating the EST line may be what it will fall back to for limp mode / loss of high res signal.

The more I think about this the more I'm tempted to also monitor ECT, MAP and possibly TPS. But I need to get it measuring RPM and spark advance first.

edti: I'm curious if anyone has a dead opti from a 94 or newer they'd be willing to part with. I have an extra optical sensor so I'd just need the wheel, spindle and hub minimally.

lionelhutz
11-15-2017, 11:57 PM
Even if we found dwell settings, and hack PCM to control dwell, at higher rpm we are doomed.
Since there will be overlap at coil charge. At any high rpm sitiuation there will be at least two coils that needs to charge simultaneously with 50% overlap.
So controlling 8 coils dwell with one est signal is not possible. We need at least two, preferably 4 est signals from PCM to make it work.

Yes, it is possible. Ignore the rising edge of the EST signal. Don't use the EST line to signal coil charging at all. Instead, only use the falling edge of the EST signal inside the external module. The falling edges are always 90* apart plus or minus any timing change occurring.

You do bring up an interesting point. Are there enough spare I/O lines to add the wiring for 8 coils? If there are, it could be possible to add the code for the 8 coils into the PCM. Not easy, but maybe possible.

kur4o
11-21-2017, 02:07 PM
Here are some pics of the board with the TPU processor.
Any help will be appreciated.

spfautsch
11-26-2017, 12:33 AM
Current progress on an Atmega328 @ 16mhz demonstrating simulator mode: video (http://www.pfautsch.com/wp-content/uploads/diy-ltcc-simulation.mkv) 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.

spfautsch
12-04-2017, 04:19 AM
Now driving 3 GM 12658183 coils: video (http://www.pfautsch.com/wp-content/uploads/diy-ltcc-driving-coils.mkv) 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.

lionelhutz
12-04-2017, 07:20 AM
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.

spfautsch
12-04-2017, 02:52 PM
Sorry, try now.

spfautsch
12-22-2017, 11:15 PM
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.


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 (http://www.gearhead-efi.com/Fuel-Injection/attachment.php?attachmentid=12257&d=1510370245) 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.



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.

kur4o
12-23-2017, 01:36 AM
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.

spfautsch
12-23-2017, 04:48 AM
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.

Terminal_Crazy
12-23-2017, 11:30 AM
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

spfautsch
12-24-2017, 11:06 PM
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.



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).

vilefly
01-04-2018, 09:23 AM
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.

spfautsch
01-04-2018, 07:00 PM
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.

vilefly
01-09-2018, 05:14 AM
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_cub/library/ignition_waveforms.pdf

12487

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.

spfautsch
01-09-2018, 07:21 AM
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).

vilefly
01-09-2018, 07:33 AM
Curses! Too late, again!

lionelhutz
01-09-2018, 07:51 AM
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.

spfautsch
01-10-2018, 12:32 AM
It's hard to put a finger on what all the issues might be, so I can't say positively that noise is one of them but it's highly likely. I unwrapped the right bank upper harness and tapped the 14ga pink wire for power Sunday. In the process I created a small rat's nest of wire that could be contributing also.

It doesn't help that I'm only getting about 90 minutes a day to work on it, and those are usually distracted minutes. Words cannot describe how anxious I am to get this nailed down and move on to yanking the engine and fixing the oil leak, etc. I'm sure that impatience isn't helping.

I managed to get an order placed yesterday with digikey for some rc filter parts, a spare boarduino kit and a couple proto boards. Hopefully I'll have that this weekend and can try cleaning up my wiring mess. Between chasing noise / count errors and soforth I've been contemplating how to package the thing for underhood conditions - would love to hear ideas here. Mine is going to be dead simple - potting the whole thing in epoxy. Possibly an external m+f weatherpack connector set for the power, uart and inputs (10 pins total if memory serves) and then either 10 or 16 loose-ended pigtails (8 ttl pins and either two or eight ttl grounds) for the coil igniters coming right out of the epoxy.

Work's been busy lately so I haven't had much time to research and audit code. Today I was hoping to look for a wiring diagram because the info at http://chevythunder.com/lt1_electrical_page.htm isn't close to what my Y body has - there is no tach wire on my black coil connector.

vilefly
01-10-2018, 07:52 AM
What I am going to suggest might seem obvious, but it could be a lot of the problem. I suggest twisting the positive and negative voltage supply wires around each other. I remember the early fuel injection computers having issues with their injector drivers until they did that. Twisting the input signal wires around each other is a good idea, too. (5v signal + gnd). Twist all inputs and outputs if nessesary, but start with the heavy current users 1st.
I was putting together my Rostock MAX 3D printer 3yrs ago, and noticed in the forum that they have feedback issues, so I twisted all my wires in +/- pairs, and never had a problem. So from then on, I twist everything. ABS wheel speed sensors have twisted wires going to them as well, as they are touchy amplified inputs to begin with.

Worth a shot.

How about some PCM pinouts?
12493124941249512496
12497

lionelhutz
01-10-2018, 05:57 PM
I would have to say potting can have it's downsides, especially with a hard material like epoxy. I have been involved with some items at work that were potted and failures were happening due to the potting and components expanding and contracting with temperature at different rates. Components were breaking and solder joints were getting damaged. Then, it can't be fixed either. Just saying, it's great to seal but can still create problems.

Now, if you can find a silicone based material that remains soft then you might be better off. Still can't fix it, but at least it avoids mechanical thermal stresses.

vilefly
01-10-2018, 09:39 PM
I think a light layer with RTV silicone followed with epoxy for the rest of the cavity would balance the need for speed (curing time) and retain some degree of toughness. If it were fast, I'd use 100% RTV silicone, but it would take too long. Silicone dielecric grease would be nice(thermal conductivity), but may leak out before it "dries out" in high temps. A nice "chewy" potting material would be perfect, like the potting material used in Ford TFI ignition modules, and such. Chewy=tough.

dzidaV8
01-10-2018, 10:40 PM
Have a look at ELASTOSIL products, I have used their two component curing silicone before with great results. I don't remember the exact number, but you mixed it with hardener, poured it into the case like water and it cured chemically, becoming reristant to over 150*C.
It is a german company, but I'm sure you have something similar in US :)

spfautsch
01-12-2018, 11:18 PM
All good info, thanks guys. I hadn't given much thought to the possibility of thermo-mechanical stress problems from hard potting. The catalyzed silicone sounds intriguing, but I may go with some combination of silicone around the soldered components and epoxy over that for impact resistance for mine.

I didn't see any mention of a tach driver in those diagrams, but at least the colors match what I have. For now I'm going to labor under the assumption that the 94-96 Y bodies have a digital gauge cluster. Edit 2: found an addendum to the ltcc install document stating that only a few LT1 cars had the tach driven off the coil - 92-94 y bodies and 93 f bodies. Sweet - sounds like I can eliminate that with conditional compilation for those who don't need it.

I'm sorry to report I haven't made much progress over the last few days but I did get about an hour on it yesterday during which the outside temp dropped from 62f to 32f finally settling in at a balmy 16f. It's back to "stupid" cold. :-\

After cleaning up some changes I hadn't debugged fully I was able to get a better picture of what the microcontroller is seeing. This looks likely to be a case of the EST line causing induced or capacitively coupled noise on the low res input. Edit: the test coil was disconnected at this point so the microcontroller was only driving leds.


R1000:S29:D27:C1:E0:L0
R1000:S29:D27:C4:E1:L0
R1000:S29:D27:C3:E1:L0
R1000:S29:D27:C6:E1:L0
R1000:S29:D27:C5:E1:L0
R1000:S29:D27:C7:E1:L0
R1400:S29:D37:C1:E29:L0 << looks like low res rising edge is caught about 29 degrees early here - eerily similar to spark advance
R600:S0:D16:C8:E59:L0 << low res falling edge is then delayed another 30 degrees
R1000:S29:D27:C4:E59:L16
R1000:S29:D27:C3:E0:L0

If I decide to brave the cold tonight I'll try some external pullup resistors on these inputs since the AVR's built-in pullups are advertised to be in the neighborhood of 20-40K ohms.

Another possible source of noise may be a ground loop - I added a power ground for the microcontroller to one of the fuel rail bolts but didn't disconnect the other ground at the opti pigtail connector. I'm open to suggestions on what the best practice is here - do I need some type of filter for this secondary signal ground or should I do away with it?

dzidaV8
01-13-2018, 03:07 AM
LT1 PCMs have separate Tach output, so don't worry about that function.

Fast355
01-13-2018, 09:33 PM
LT1 PCMs have separate Tach output, so don't worry about that function.

The flash based LT1 PCMs do, the older chip based LT1 ECMs do not.

vilefly
01-13-2018, 09:52 PM
Just in case, I would check the alternator output for ac voltage and voltage drops from the positive lead to the alternator connection. Mine had some issues, and I added an extra positive connection to the underhood fusebox when I replaced and upgraded the alternator. Since the optispark runs off of 12V, I figure this could help.

I tested the optispark with a regulated 5v power supply, and it worked. It was a few months ago, so I hope I am remembering it right. With a clean power supply to it (grounded to the power supply of the controller), it could help eliminate any 12v entanglements.

I wonder if feedback was designed into the coil drivers like nissans do. One can hook an oscilloscope to a nissan's coil trigger signal and see a 5v representation of the secondary output. Kinda neat, but can cause problems if you are not ready for it. I suggest running your coil trigger outputs through a buffer IC with 8 input/outputs. I think the proper term is "unity gain amplifiers", but they will probably be sold as buffers.

Probably could use a big, fat capacitor right at the controller for anything else I missed.

spfautsch
01-13-2018, 10:31 PM
The flash based LT1 PCMs do, the older chip based LT1 ECMs do not.

Thanks, that's exactly what I was looking for! Shouldn't be an issue either way, there are plenty of open pins so I'm using the tach driver output to display the state of the EST input when in input test mode.


Just in case, I would check the alternator output for ac voltage ... Since the optispark runs off of 12V, I figure this could help.

I think I've got it sorted out, it wasn't a power problem. I just didn't know where the 12v power to the opti was connected to so I wanted to eliminate any doubt about adequate power. The extra signal ground from the opti pigtail also wasn't the apparent cause of the noise.

I ended up with 4.7k pullup resistors on the opti pins with a 1000pf cap on the low res input, and a 10k on the EST line. Oddly, 4.7k on the EST line set a "EST Open" code - 41 if memory serves.


I suggest running your coil trigger outputs through a buffer IC with 8 input/outputs. I think the proper term is "unity gain amplifiers", but they will probably be sold as buffers.

I'm opposed to growing part count unless absolutely necessary. When you test, if you can find a need for driving the coils w/ buffers we'll look into it.

The LS2 coils I have apparently have a very low current requirement on the igniter pin. I'm feeding mine through a 470 ohm resistor in series to the arduino pin. I'm also driving the sequencer leds from the arduino pins directly. I've noticed no issues thus far, but I'll save any further comment for when I've been able to bring the engine up to temp with the system.

Here's about a minute worth of video (http://www.pfautsch.com/wp-content/uploads/cyl4-driven-by-diy-ltcc.mkv) demonstrating cylinder #4 driven by the system with the opti running the other 7 cylinders. Once again, apologies for the shoddy camera work. I have no aspirations of becoming a videographer, amateur or otherwise.

Zip of logs here (http://www.pfautsch.com/wp-content/uploads/start-run-01-13-4.zip).

vilefly
01-13-2018, 11:25 PM
I have to agree to low parts count. Nice video. Got a question. Is your LS1 ignition coil hooked up the the same + lead that feeds the ignition coil? I know the ignition coil feed has a noise capacitor on it right at the coil. Other manufacturers do this too. Try using the V+ feed for the OEM ignition coil and see if your noise goes away. The inductance of he other coil may dampen some noise as well. The ignition module may have other noise-dampening circuits in it (on the shared positive side), such as a zener diode or something. No extra parts required.

spfautsch
01-14-2018, 12:26 AM
Is your LS1 ignition coil hooked up the the same + lead that feeds the ignition coil? I know the ignition coil feed has a noise capacitor on it right at the coil.

Yes, and I'm relatively sure there's nothing like that on my '95. Last weekend I stripped the tape off the entire right side harness from the #8 injector to where the MAF sensor branches out including all of the ignition feeds and there's nothing but wires and connectors.

If I can find all my old spark plug wires I'll try firing it with the original ignition system disconnected tonight. Fingers crossed, bunghole clenched...

spfautsch
01-14-2018, 04:18 AM
As my videography skills run, I accidentally deleted the crank / start segment from my phone. It was unimpressive because I'd already started it twice before - once so I wouldn't drop my phone in the event the engine came apart and I soiled myself, and the second time my wife was "helping" with the video. The valves had warmed up by #3 so it was a bit of a long crank as I suspect it flooded slightly. After the final video when ECT was around 60c I re-started it and it fired off just as vigorously as we're all used to.

At any rate, proof of concept at long last. Also, revel in my woodworking skillz (temporary coil brackets). :rockon:

Short clip (http://www.pfautsch.com/wp-content/uploads/diy-ltcc-revving.mkv) revving (haven't looked at the logs to see peak rpm).

90 second clip (http://www.pfautsch.com/wp-content/uploads/diy-ltcc-going-cl.mkv) showing eehack when it switched to closed loop. At the end I walk around and pick up the disconnected ICM and coil connectors as well as the opti coil wire.

Logs (http://www.pfautsch.com/wp-content/uploads/start-run-01-13-5.zip)


After disconnecting the ICM plug, DTC 41 set immediately as it did when I was using a 4.7k pullup. So I suppose I might need to try a zener diode or something on this pin to keep the ECM from freaking out.

I'm stoked to have gotten this far. There's still a lot of work, but that's all going to be dead nuts fun for me.

What still remains to be seen is what the Atmega will behave like the first time I get stuck in St. Louis traffic on a 95F day.

I'm going wander over to my neighbor's place, have a couple glasses of bourbon and come home and sleep like I haven't in a few months. I'll do some research tomorrow and try to decide how to publish the source code.

vilefly
01-14-2018, 06:11 AM
Very awesome work! I commend you on beating me to the punch very soundly. I especially like the wooden coil bracket, seeing how most bracket kits cost $85 and up.
You are using the mega2560 unit, right? I imagine you can send a password-locked zip file. If legality issues concern you, you can draw up a patent-style Disclosure Document that proves you thought of the idea before you disclosed it to someone else, and have them sign it, and send it back to you. This will hold up in a court of law, but am not sure if you need to have it notarized. Should provide you with some code protection at least.

What I don't know, is how you can download what has been flashed to the AtMega so you can prove the code was stolen with a comparison. Should probably keep that secret to yourself, though. Just say if you can do it or not.

As to the code 41- I think the circuit impedence on the EST line is 10k ohms. Perhaps a 10k resistor in between the arduino and the EST white wire might fix it. (ignition module terminal "B")
12528

spfautsch
01-14-2018, 07:26 AM
Very awesome work!

Thx!


I commend you on beating me to the punch very soundly.

I wasn't exactly trying to scoop you - just possibly a little more enthusiastic about the prospect of <the title of the thread>. DIY is ingrained in me fairly deeply.


You are using the mega2560 unit, right?

No, 328P. 28 pin dip package. Google "DC Boarduino Kit". Us hillbillies with shaky soldering hands love 'em. I'll have to read the 2560 datasheet to see what changes would be needed to make my sketch compatible (if possible).


I imagine you can send a password-locked zip file. If legality issues concern you, you can draw up a patent-style Disclosure Document ...

My legal concerns aren't focused on you or the gearhead community at large, but the inventor of the namesake device. I just want to protect myself from legal repercussions if Bailey owns a patent and decides to go after me. The only reason I put all this work in is to have the source open and available for everyone to modify and improve upon.


What I don't know, is how you can download what has been flashed to the AtMega...

The compiled binary can be flashed with avrdude if you can wrangle the command line. But I don't intend to make it that difficult.


As to the code 41- I think the circuit impedence on the EST line is 10k ohms. Perhaps a 10k resistor in between the arduino and the EST white wire might fix it. (ignition module terminal "B")

I'm relatively sure the "EST Open" refers to not having enough loading on the EST circuit (i.e. the absence of the ignition control module). So adding resistance is probably going in the wrong direction. In the grand scheme of things this is the proverbial gnat on an elephant's ass.

vilefly
01-14-2018, 09:23 PM
I just hope that the code 41 doesn't make the ecm lock the ignition timing.

I have 2 more spare arduino 328P pro mini's at my disposal. I bought 5 for halloween animated eyes that I made so I could teach myself about these things. So no need to recompile.

I need to get a hold of 8 ls1 coils still.

spfautsch
01-14-2018, 09:58 PM
It doesn't seem to have any effect on timing, it's just an ECM diagnostic to let ppl know their EST wire is broken / disconnected. It would be simple enough to just disable the test in the calibration (if possible) but I'm trying to work around it electrically.

I've found that a 470 ohm resistor is enough load on this pin to prevent the code, at least while cranking. Unfortunately it pulls the voltage down enough the arduino isn't seeing the pin go high. So it might require a schmitt trigger or ???

I got a bit sidetracked trying to fix this issue and got off the task of posting the sketch. Will try to get it on github in a bit.

kur4o
01-14-2018, 11:12 PM
Here are some info on dtc 41 and 42.

It is triggered during cranking when the voltage on the line exceed 4.6 volts. Normal value is between 0.5 to 4.5 volts.
On the calibration you can disable dtc 42.
For DTc 41 you can only raise the voltage threshold. It is located at byte_12037. It is set at 4.6volts. Raising it to Max value will likely disable DTC 41.

I still can`t be sure, does the PCM provides power or ground path on the IC line?

Terminal_Crazy
01-14-2018, 11:52 PM
Just watched the videos. Looking Good.

Will this allow the motor to rev over 7K or is that limited by the PCM ?

Thanks
Mitch

kur4o
01-15-2018, 12:15 AM
Just watched the videos. Looking Good.

Will this allow the motor to rev over 7K or is that limited by the PCM ?

Thanks
Mitch

The PCM will freak out at 7228 rpm. Beyond that the opti signal might be too corupt or the PCM too slow to read it.
Most of the tables will be maxed at 6000-6400 rpm too.
The opti signal is capped at 7228 rpm and the injectors at 7245 rpm in the code. These limits can be raised but the engine operation might become unstable.

Terminal_Crazy
01-15-2018, 01:35 AM
Here are some info on dtc 41 and 42.

It is triggered during cranking when the voltage on the line exceed 4.6 volts. Normal value is between 0.5 to 4.5 volts.
On the calibration you can disable dtc 42.
For DTc 41 you can only raise the voltage threshold. It is located at byte_12037. It is set at 4.6volts. Raising it to Max value will likely disable DTC 41.


FYI (anyones) On my '95 LT1 PCM ($EE 16188051) is it set to 10.43 for the stock Z28 and the LT4 .bin i have.

Mitch

Terminal_Crazy
01-15-2018, 01:40 AM
The PCM will freak out at 7228 rpm. Beyond that the opti signal might be too corupt or the PCM too slow to read it.
Most of the tables will be maxed at 6000-6400 rpm too.
The opti signal is capped at 7228 rpm and the injectors at 7245 rpm in the code. These limits can be raised but the engine operation might become unstable.

I've just checked my logs from today.
I thought i was abusing the motor but i only just managed to turn 5500 whilst logging for the VE tables.


Mitch

kur4o
01-15-2018, 01:46 AM
FYI (anyones) On my '95 LT1 PCM ($EE 16188051) is it set to 10.43 for the stock Z28 and the LT4 .bin i have.

Mitch

The conversion on the xdf is wrong. It should be
x*0.019607843

spfautsch
01-15-2018, 02:05 AM
I still can`t be sure, does the PCM provides power or ground path on the IC line?

The PCM drives the EST line low, or in other words its an open collector output.

I'd rather stay away from tuning requirements, and I think I can - connecting the EST line to ground through a 470 ohm resistor seems to prevent the DTC. I just need to figure out this voltage comparator circuit so the microcontroller can see the signal.

This won't increase any inherent RPM limitations, but it should give stronger spark than the opti above 4500 RPM.

spfautsch
01-15-2018, 05:23 AM
Initial code commit - diy-ltcc-0.9.0 (https://github.com/spfautsch/diy-ltcc)

Hope to have time this week to work up a partial schematic.

Been banging my head against the wall with this EST line / DTC 41. Replacing the 10k pullup resistor with a 470 ohm pull-down allows cranking without setting the code, but with the side effect of the microcontroller not catching the falling edge (and no spark). I've tried a LM339N comparator, a 7407 buffer and a 2501 optocoupler. The optocoupler showed promise but nothing close to success. I'll have to do some bench testing on this one because it's really difficult getting useful test data cranking (but not running).