Wheel of Timing. Success at last!
#21
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
Grade 5 is an SAE rating. These are metric bolts, so I used class 10.9, which is roughly equivalent to Grade 8. And they're torqued to factory spec. (though I'm thinking the loctite is a good idea. I'll do that tomorrow)
#22
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
Earlier this week, while sitting in my lab at work, I got to thinking about the runout which resulted from my slight yet careless over-boring of the center of the hub, and the resulting eccentricity of its alignment upon the crank bolt. As so often happens in these situations, I found myself speaking aloud, to the wall.
“The entire purpose of this exercise,” I said, “is to build my ignition trigger the right way. Accepting any degree of measurable runout, however slight, seems inconsistent with that philosophy.”
The wall remained stoic.
“There must be some way to add material back to the hub, so that I can re-machine the center bore to its proper dimension.”
The wall tilted imperceptibly, as if I had aroused its curiosity.
“What common household substance,” I asked, “bonds securely to aluminum and produces a hard yet easily machineable and non-shrinking surface?”
The wall suddenly glared. “Surely you cannot be serious,” the wall said without speaking, and I knew from its tone that it had been a statement, rather than a question.
“I am indeed. The inner surface of the hub, while dimension-critical, is not a load-bearing or structural element. JB Weld is just the thing for this application!”
So here we are. I mixed up some JB Weld and lightly coated the inside surface of the hub with it, just the area that aligns with the shoulder of the crank bolt. Quickly imagining a new use for the lathe, I loaded the workpiece back into it, shifted it into high gear, and centrifuged the hub to distribute the JB Weld easily.
The next day, the part was ready for re-boring, and this time I got it right. A perfect, snug fit on the crank bolt.
This time I measured runout at about .005”, and since I was using feeler gauges to do it, I think some of that has to do with the fact that all the teeth on the wheel are not exactly the same height.
While I had the hub on the lathe, I went ahead and bored out all the material in the middle that I’d left in the first time, and extended the center bore to within ½” of the wheel surface in an effort to lighten the hub somewhat. Prior to the re-boring, the hub weighed 471g (1lb, 0.6oz). Afterwards, it weighed 416g (14.7oz). I also weighed the wheel, which came to 132g (4.65 oz). All in all, not bad.
Next, on to the electronics. I decided to prototype and compare both the standard R3.0 VR input circuit (based on a dual op-amp) as well as the one mentioned in the documentation (and which also forms the foundation of the jbperf “Dual VR” board) which uses an LM1815N- special-purpose IC intended specifically for decoding VR sensors.
Testing with the Crank Wheel Pulser, both circuits worked well. The 1815-based circuit produced slightly cleaner edges, and when configured in adaptive zero-crossing mode (rather than R/C mode, as most people seem to do) it did indeed produce nice 50% duty-cycle output pulses.
I then put the wheel back into the lathe and spun it in front of the sensor, and the 1815 circuit fell on its face. At certain RPMs, it started to miss teeth. I tinkered with it for a while, went back to R/C, changed parts values, but couldn’t make it work right. Here’s an example, at 1,600 RPM:
In that image, the vertical on trace 1 is set to 500mv/div, so it’s clearly getting enough signal. The tooth that it’s failing on is of a slightly lower amplitude than the rest, but it’s still an obvious zero-crossing.
Beyond this, the “standard” circuit seemed more robust as well. It was still able to recover the signal and produce a clean output at more than 3mm gap, whereas the other went dead at just around 2mm. Not that I plan to run a gap that large, but it was just one more thing in favor of the op-amp design.
Having settled on a schematic, I decided to build it in an external box for two reasons. One, my many trigger problems over the past month have made me tired of removing and disassembling the MS every time I have a hiccup and need to probe/modify the trigger circuit. And two, there is a large 2200uf capacitor glued to my MS PCB right in the middle of where the VR circuit is supposed to be. Hey- when I built it I never thought I’d need that circuit.
Here’s the box:
One cable connects to the sensor via a 1/8” headphone jack, the other carries power, GND and signal to and from the MS. I drilled a hole in one of the endplates of the MS and ran a cable through it to carry these signals- I left the wiring of the DB-37 alone in case I needed to go back to the CAS for some reason.
It occurs to me that there seems to be a lot of confusion surrounding the wiring and polarity of the VR sensor. There are a lot of different scope traces posted, half of them are wrong, and there’s no good info as to which is which. In addition, you’ve got both inverting and non-inverting outputs of the VR decoder (with different websites giving different opinions as to which you should use) and to muddy the water just a little bit more, the “Non-Inverting” output of the decoder is technically inverting!
So, to spare anyone else who decides to try this, here is what it’s supposed to look like:
Note that the waveform of the missing tooth gap is upwards sloping, and the output squarewave is of opposite polarity- it goes high when the VR goes low. This is with the sensor polarity correct, and using the “normal” output- VRout, not VRoutINV. EDIT: THIS IS WRONG! It turns out that the "VRoutINV" output (the one which is, in fact, not inverted) is correct. More on this below.
And the end result? Success!
I temporarily installed everything onto the car, changed my setting to 36-1, and it friggin’ works. So far I’ve only revved the engine a bit in the garage, and I still need to permanently-install the sensor wiring (it’s just draped over the engine right now) but thus far indicators are uniformly positive.
“The entire purpose of this exercise,” I said, “is to build my ignition trigger the right way. Accepting any degree of measurable runout, however slight, seems inconsistent with that philosophy.”
The wall remained stoic.
“There must be some way to add material back to the hub, so that I can re-machine the center bore to its proper dimension.”
The wall tilted imperceptibly, as if I had aroused its curiosity.
“What common household substance,” I asked, “bonds securely to aluminum and produces a hard yet easily machineable and non-shrinking surface?”
The wall suddenly glared. “Surely you cannot be serious,” the wall said without speaking, and I knew from its tone that it had been a statement, rather than a question.
“I am indeed. The inner surface of the hub, while dimension-critical, is not a load-bearing or structural element. JB Weld is just the thing for this application!”
So here we are. I mixed up some JB Weld and lightly coated the inside surface of the hub with it, just the area that aligns with the shoulder of the crank bolt. Quickly imagining a new use for the lathe, I loaded the workpiece back into it, shifted it into high gear, and centrifuged the hub to distribute the JB Weld easily.
The next day, the part was ready for re-boring, and this time I got it right. A perfect, snug fit on the crank bolt.
This time I measured runout at about .005”, and since I was using feeler gauges to do it, I think some of that has to do with the fact that all the teeth on the wheel are not exactly the same height.
While I had the hub on the lathe, I went ahead and bored out all the material in the middle that I’d left in the first time, and extended the center bore to within ½” of the wheel surface in an effort to lighten the hub somewhat. Prior to the re-boring, the hub weighed 471g (1lb, 0.6oz). Afterwards, it weighed 416g (14.7oz). I also weighed the wheel, which came to 132g (4.65 oz). All in all, not bad.
Next, on to the electronics. I decided to prototype and compare both the standard R3.0 VR input circuit (based on a dual op-amp) as well as the one mentioned in the documentation (and which also forms the foundation of the jbperf “Dual VR” board) which uses an LM1815N- special-purpose IC intended specifically for decoding VR sensors.
Testing with the Crank Wheel Pulser, both circuits worked well. The 1815-based circuit produced slightly cleaner edges, and when configured in adaptive zero-crossing mode (rather than R/C mode, as most people seem to do) it did indeed produce nice 50% duty-cycle output pulses.
I then put the wheel back into the lathe and spun it in front of the sensor, and the 1815 circuit fell on its face. At certain RPMs, it started to miss teeth. I tinkered with it for a while, went back to R/C, changed parts values, but couldn’t make it work right. Here’s an example, at 1,600 RPM:
In that image, the vertical on trace 1 is set to 500mv/div, so it’s clearly getting enough signal. The tooth that it’s failing on is of a slightly lower amplitude than the rest, but it’s still an obvious zero-crossing.
Beyond this, the “standard” circuit seemed more robust as well. It was still able to recover the signal and produce a clean output at more than 3mm gap, whereas the other went dead at just around 2mm. Not that I plan to run a gap that large, but it was just one more thing in favor of the op-amp design.
Having settled on a schematic, I decided to build it in an external box for two reasons. One, my many trigger problems over the past month have made me tired of removing and disassembling the MS every time I have a hiccup and need to probe/modify the trigger circuit. And two, there is a large 2200uf capacitor glued to my MS PCB right in the middle of where the VR circuit is supposed to be. Hey- when I built it I never thought I’d need that circuit.
Here’s the box:
One cable connects to the sensor via a 1/8” headphone jack, the other carries power, GND and signal to and from the MS. I drilled a hole in one of the endplates of the MS and ran a cable through it to carry these signals- I left the wiring of the DB-37 alone in case I needed to go back to the CAS for some reason.
It occurs to me that there seems to be a lot of confusion surrounding the wiring and polarity of the VR sensor. There are a lot of different scope traces posted, half of them are wrong, and there’s no good info as to which is which. In addition, you’ve got both inverting and non-inverting outputs of the VR decoder (with different websites giving different opinions as to which you should use) and to muddy the water just a little bit more, the “Non-Inverting” output of the decoder is technically inverting!
So, to spare anyone else who decides to try this, here is what it’s supposed to look like:
Note that the waveform of the missing tooth gap is upwards sloping, and the output squarewave is of opposite polarity- it goes high when the VR goes low. This is with the sensor polarity correct, and using the “normal” output- VRout, not VRoutINV. EDIT: THIS IS WRONG! It turns out that the "VRoutINV" output (the one which is, in fact, not inverted) is correct. More on this below.
And the end result? Success!
I temporarily installed everything onto the car, changed my setting to 36-1, and it friggin’ works. So far I’ve only revved the engine a bit in the garage, and I still need to permanently-install the sensor wiring (it’s just draped over the engine right now) but thus far indicators are uniformly positive.
#28
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
Yeah, that seems to be the case. Unfortunately, the market for hopping up Miatas and doing cool things with engine management seems pretty well saturated right now. I just wish there was someone out there looking for a mechanical / engine management guru, and willing to pay a decent wage. I'm at a point in my life where I could afford to move across the country and take a job for $50k doing something I'm passionate about, rather than $100k for doing something I'm sick of...
#29
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
And at the moment, I seem to be failing again. Drove the car to work this morning, or at least tried to. The car simply would not rev above 3,600 RPM- huge tach dropouts in the log. Pulled over to tinker, and it wouldn't re-start.
Had it towed home and I'm looking into it. I can see good triggers going into the MS, but it's not making fuel or spark.
Log and MSQ attached.
#31
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
Ok, a minor win. I hooked the CAS back up (thank gods I left that circuit and all the wiring in place) and it started up fine. So I haven't blown anything important and whatever's going on is definitely trigger-related. Just can't figure out why I'm seeing nice clean triggers going in, and nothing coming out.
To add insult to injury, I loaned out my JimStim last week, so I can't bench-test anything. ****...
To add insult to injury, I loaned out my JimStim last week, so I can't bench-test anything. ****...
#32
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
Man, I just don't get it. I built a little harness so I can easily switch TSel back and forth between CAS and VR. Everything is find when the CAS is hooked up, but I get no spark output when the VR sensor is connected.
What really kills me is that it ran fine earlier! Yesterday in the garage it started and idled perfectly. This morning it started and idled perfectly. When I tried to drive to the post office it misfired badly at 3600 (but ran and idled perfectly otherwise) and then subsequently would not restart after I powered it off. Since then, nada.
I've tried cranking it while observing with a timing light (no flashes) and I've tried cranking with the scope hooked up to one of the ignition outputs. Absolutely nothing. I closed up the gap until the teeth were practically touching the sensor, and more nothing. I tried downgrading to 029y4, and nothing. Re-upgraded to HR10g and got worse then nothing- I had to re-flash three times before MT would stop giving me "could not connect to controller" errors.
That's this morning's lesson: NOTHING!
Picture of signal during cranking. Looks fine to me:
(both traces are 2v/div, horizontal is 20ms/div)
Unless I have flash of unspeakable brilliance in the next few hours, I am this close |_| to saying **** it and building a whole new MS2 from scratch.
What really kills me is that it ran fine earlier! Yesterday in the garage it started and idled perfectly. This morning it started and idled perfectly. When I tried to drive to the post office it misfired badly at 3600 (but ran and idled perfectly otherwise) and then subsequently would not restart after I powered it off. Since then, nada.
I've tried cranking it while observing with a timing light (no flashes) and I've tried cranking with the scope hooked up to one of the ignition outputs. Absolutely nothing. I closed up the gap until the teeth were practically touching the sensor, and more nothing. I tried downgrading to 029y4, and nothing. Re-upgraded to HR10g and got worse then nothing- I had to re-flash three times before MT would stop giving me "could not connect to controller" errors.
That's this morning's lesson: NOTHING!
Picture of signal during cranking. Looks fine to me:
(both traces are 2v/div, horizontal is 20ms/div)
Unless I have flash of unspeakable brilliance in the next few hours, I am this close |_| to saying **** it and building a whole new MS2 from scratch.
#33
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
I think we may have a win.
I flipped the decoder to the "inverted" output, and it started. Seems like my idle is a bit rough, but it's running. Revved it to 4,500 RPM in the garage with no problems.
Gonna go bolt everything down and take it for a test drive. There are too many bare wires dangling everywhere at the moment.
I flipped the decoder to the "inverted" output, and it started. Seems like my idle is a bit rough, but it's running. Revved it to 4,500 RPM in the garage with no problems.
Gonna go bolt everything down and take it for a test drive. There are too many bare wires dangling everywhere at the moment.
#34
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
Win!
It's confirmed, we have a win.
With the "VRoutINV" output (the non-inverted one) driving Tsel, she runs like a champ. Just got back from a quick trip to the gas station, and my datalog is beautiful. Took it up to about 5,500 RPM and 130 kpa (kept it low out of fear) with nary a single hiccup in the RPM trace. In fact it's cleaner than it ever was on the CAS- the little tics and blips I used to get are all but gone.
I owe everyone an updated scope capture of how the trigger is really supposed to look. Note that the polarity of the input is exactly as before, but the polarity of the output now follows the input. Apparently MS looks at falling edges on the IRQ1 line, instead of rising edges as I'd previously believed. I'd have saved myself a lot of trouble if I'd have just looked at page 115 of the datasheet for the MC68HC908GP32 which clearly indicates that the hardware interrupt line is active-low. (for that matter, so does the 3.0 schematic...)
Still, for all those people who don't know how to read microprocessor datasheets and schematic symbols (and I'm sure there must be at least a couple) it would have been really nice for this to be clearly and unambiguously stated in the MagaManual. On the subject of the VR input, Megamanual has this to say in Step 52:
What absolutely baffles me about this whole affair is that I cannot understand why it worked at all yesterday and this morning (at low RPM it was perfect) only to fail spontaneously and completely after I stopped at the post office. It just defies reason...
There is of course the small matter of posting the gratuitous "Everything is finished, painted, bolted together, installed, and done" shot of the sensor setup:
What a wild ride this has been.
With the "VRoutINV" output (the non-inverted one) driving Tsel, she runs like a champ. Just got back from a quick trip to the gas station, and my datalog is beautiful. Took it up to about 5,500 RPM and 130 kpa (kept it low out of fear) with nary a single hiccup in the RPM trace. In fact it's cleaner than it ever was on the CAS- the little tics and blips I used to get are all but gone.
I owe everyone an updated scope capture of how the trigger is really supposed to look. Note that the polarity of the input is exactly as before, but the polarity of the output now follows the input. Apparently MS looks at falling edges on the IRQ1 line, instead of rising edges as I'd previously believed. I'd have saved myself a lot of trouble if I'd have just looked at page 115 of the datasheet for the MC68HC908GP32 which clearly indicates that the hardware interrupt line is active-low. (for that matter, so does the 3.0 schematic...)
Still, for all those people who don't know how to read microprocessor datasheets and schematic symbols (and I'm sure there must be at least a couple) it would have been really nice for this to be clearly and unambiguously stated in the MagaManual. On the subject of the VR input, Megamanual has this to say in Step 52:
Jumper TSEL to VROUT (Or VROUTINV if you want the VR input to be inverted) on the bottom side of the PCB, near the center.
Well that's nice. How the hell is the user supposed to know whether he wants his VR signal to be inverted or not? I finally found one place that states it clearly, and it's near the bottom of the MSExtra Ignition Hardware document:Wire the MS internally for a VR input, link TSEL to VROUTINV and link VRIN to TACHSELECT
Hardware latency seems to be somewhere in the 150us range with this setup. I didn't spend a lot of time fine-tuning it, just got it close. Final sensor gap is appx. 0.8mm. What absolutely baffles me about this whole affair is that I cannot understand why it worked at all yesterday and this morning (at low RPM it was perfect) only to fail spontaneously and completely after I stopped at the post office. It just defies reason...
There is of course the small matter of posting the gratuitous "Everything is finished, painted, bolted together, installed, and done" shot of the sensor setup:
What a wild ride this has been.
#36
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
I'm pretty sure that you can trigger off the NB crankwheel with an MS1. You can't abandon the CAS altogether, but you should be able to cut the two oddly spaced teeth off of the crankwheel and use it in place of the CKP line from the CAS, while leaving the CMP signal in place to serve as the second trigger.
But yeah, crank triggering is the way to go for accurate timing. All the high-RPM jitter I used to see off the CAS is gone.
But yeah, crank triggering is the way to go for accurate timing. All the high-RPM jitter I used to see off the CAS is gone.
#40
Boost Pope
Thread Starter
iTrader: (8)
Join Date: Sep 2005
Location: Chicago. (The less-murder part.)
Posts: 33,026
Total Cats: 6,592
Wow, life is good.
Had a pretty serious scare yesterday. Got up in the morning, tried to start the car, and nothing. It took 3 or 4 very long turns of the key to get it to fire, then it stalled, then another try, and I was able to keep it running by carefully working the throttle to hold it above 2,000 RPM for a while. Looked at my GammaE gauge, and saw that it was sitting at 100% (IOW: zero enrichment). Ok, I've been down this road before- I must have disabled GammaE in the fuel table selection window.
Nope. It's fine.
Checked the logs when I got to work, and sure enough, I wasn't getting any ASE or WUE, but more importantly, I wasn't getting the right CrankingPW. Should have been around 4.5ms that morning, instead it was 1.9ms. Yet the CLT and IAT readings were correct, everything looked fine in MT, couldn't figure it out. Fiddled with the MSQ, made some changes (basically just changing things at random), re-wrote to the MS that evening, and had the same **** trying to get it started again. No ASE, no WUE, and wrong CrankPW.
Wait a sec... The MS transmits the raw ADC values for all its sensors to MT, and then MT decodes them for display using thermfactor.inc. So it's possible for my CLT to look normal on MT, but for the MS to be calculating it incorrectly internally.
Re-flashed MS with a freshly easythermed copy of 10g, and everything worked. I have utterly no idea how I managed to corrupt the CPUs therm table, but somehow in all the chaos of the past few days I must have. This is an important lesson- what you see on the screen does not always correspond to what the MS is actually doing.
Anyway, this morning was great. It seems like it might be taking just a tiny bit longer to start on first crank than it used to with the CAS, but it could also be that I'm just hyper-sensitive to that right now. That, and it's been really cold this week- morning temps consistently in the upper 50s to lower 60s. The important thing however is that it did start normally, it idled perfectly, and it ran through the whole RPM range with nary a single hiccup. Behold:
180-190 kPa, rock-solid, with reasonable (thought not yet perfect) AFRs and not so much as a twitch in the RPM reading. MAT is looking pretty good too; that cheap tube-n-fin intercooler seems to be doing the job. The highest MAT I saw was 89°, and that was after a really long pull up a hill.
Life is good.
Had a pretty serious scare yesterday. Got up in the morning, tried to start the car, and nothing. It took 3 or 4 very long turns of the key to get it to fire, then it stalled, then another try, and I was able to keep it running by carefully working the throttle to hold it above 2,000 RPM for a while. Looked at my GammaE gauge, and saw that it was sitting at 100% (IOW: zero enrichment). Ok, I've been down this road before- I must have disabled GammaE in the fuel table selection window.
Nope. It's fine.
Checked the logs when I got to work, and sure enough, I wasn't getting any ASE or WUE, but more importantly, I wasn't getting the right CrankingPW. Should have been around 4.5ms that morning, instead it was 1.9ms. Yet the CLT and IAT readings were correct, everything looked fine in MT, couldn't figure it out. Fiddled with the MSQ, made some changes (basically just changing things at random), re-wrote to the MS that evening, and had the same **** trying to get it started again. No ASE, no WUE, and wrong CrankPW.
Wait a sec... The MS transmits the raw ADC values for all its sensors to MT, and then MT decodes them for display using thermfactor.inc. So it's possible for my CLT to look normal on MT, but for the MS to be calculating it incorrectly internally.
Re-flashed MS with a freshly easythermed copy of 10g, and everything worked. I have utterly no idea how I managed to corrupt the CPUs therm table, but somehow in all the chaos of the past few days I must have. This is an important lesson- what you see on the screen does not always correspond to what the MS is actually doing.
Anyway, this morning was great. It seems like it might be taking just a tiny bit longer to start on first crank than it used to with the CAS, but it could also be that I'm just hyper-sensitive to that right now. That, and it's been really cold this week- morning temps consistently in the upper 50s to lower 60s. The important thing however is that it did start normally, it idled perfectly, and it ran through the whole RPM range with nary a single hiccup. Behold:
180-190 kPa, rock-solid, with reasonable (thought not yet perfect) AFRs and not so much as a twitch in the RPM reading. MAT is looking pretty good too; that cheap tube-n-fin intercooler seems to be doing the job. The highest MAT I saw was 89°, and that was after a really long pull up a hill.
Life is good.