• Protip: Profile posts are public! Use Conversations to message other members privately. Everyone can see the content of a profile post.

bogle's 1991 mild build thread

Yeah the car runs mid-low 11 afrs in boost for safety, and I’m running pretty average fuel pressure: 45psi at idle. IIRC the OG ctsc setup would run like 100psi fuel pressure at lower boost

Glad you are enjoying the thread! Sometimes I wonder if anyone reads it
 
Injectors

The ID1050x install went pretty smoothly, so mostly pics on this one. Old injectors out!

IMG_5601.jpeg

The IDs (on the right) next to the ev14 550s (on the left). The IDs are super short:

IMG_5603.jpeg

And the new injectors with the clean injection manifold adapters. I emailed them and they made me a pack of 6:

IMG_5604.jpeg

Mocked up in the rail. The standoffs are oem phenolic standoffs. They are 12.3mm thick. I need around 15mm of standoffs, so i added a 3mm spacer under the phenolic one.

IMG_5605.jpeg

IMG_5606.jpeg

Fully installed, you can see the amount spring squish and 15mm of standoff in there

IMG_5611.jpeg

EV1 (stock) to EV14 (new injectors) adapters:

IMG_5612.jpeg

And installed!

IMG_5618.jpeg
 
Timing check

Last step before the first drive was setting / checking the base timing with a timing light. You set the timing to 0 in the ecu, check the timing mark on the crank pulley against the mark on the cover. If they don’t line up, there is a little adjustment field in the ecu.

This was challenging for 2 reasons, 1: it’s a coil on plug, and 2: the supercharger kit has a whole bunch of stuff in the way of the timing marker on the timing belt cover.

The timing light needs something to sense, so first order of business was pulling the no 1 coil and getting an extension on there. I read some people have ok luck putting the inductor on the harness to the coil, but I didn’t want to risk it. I got a Lisle inline spark tester and zip tied the coil to the strut bar. It’s hard to see, but you can see the inductor around the extension on the left:

IMG_5615.jpeg

Then the hardest part was actually seeing the marks with the timing light. It took a while to find all the right angles. First step was to get a light in there so I could see the tip of the mark on the timing cover. I wedged this work light in therein front of the alternator. I had to hold it with my right hand otherwise it’d touch the belts with the car running:

IMG_5616.jpeg

Next step was holding the timing light on the left. When both lights were in place and angled correctly, I could just barely see the marks match up through this little tiny hole. Only like 1mm of the tip of the timing mark was visible, it was tough to see:

IMG_5617.jpeg

After all that, timing was good, no adjustment needed. I checked it like 10 times once I had the process figured out, it looked good every time.

The light I have has an adjuster, I moved it a degree both advanced and retarded just to see how far off it would look if it were a degree off. It looked way off on both sides, so all good, time to drive!

I drove it a whole bunch this weekend, next post will be initial impressions, charts, and other related stuff
 
Last edited:
ECU stuff

It’s been a bit. Life has been busy, the weather has been rainy & cold, and I’ve been spending a little time with another hobby, so I haven’t had a ton of time for the car.

I do have several hours driving on the Link ECU, though, between initial adjustment passes and drives on the few nice days we’ve had. I’ve even taken it to a couple events with zero hiccups. It’s not perfect yet, but drivability is really good.

Initially, I wasn’t sure what to expect. But it felt pretty ok out of the box! After 4 or 5 adjustment iterations, drivability was almost as good as with the AEM unit. I even managed to work up to WOT pulls with timing maps from my old ECU and AFRs in a decent place.

The main thing I need to tune, other than a proper WOT dyno session, is tip-in fuel. The basemap has tip-in turned almost off, so it spikes a bit lean with any large TPS movements. I haven’t touched it at all yet, that’s the next step. But even that is not terrible, it doesn’t “skip” when the throttle is stabbed, but I can probably make it better.

Closed loop FTW

Immediate drivability is really credit to the closed loop functionality (o2 correction enabled). It kinda Just Worked and kept the AFRs at my targets, even though it was correcting _a lot_ out of the box. On the first drive it was adding like 8-10% fuel all over. I tried turning o2 correction off initially, but it was undrivably lean, so I learned to tune from the logged O2 correction values.

While driving, I look at AFRs more than anything else. More than even RPM, I think. Well, now that’s kind of a thing of the past. Like (pre-crazy) Kanye said: “He got a new b, now you’re Jennifer Aniston.”

While O2 correction is enabled, “CL O2 Correction % 1” & 2 are my new favorite parameters. I even added them to the CAN output + navpod because I kept looking at the laptop while driving. It’s the big yellow numbers here, -7 means it’s pulling 7% fuel, top is front bank, bottom is rear:

IMG_5730.jpeg

Because it was so lean without correction, I figured I’d just log the O2 correction percentages, then use that to adjust the fuel maps. The Link software has a “Mixture map” feature that shows the AFRs in each cell, then you can adjust from there.

mixture-map.png

With o2 correction on, the mixture map is useless, though, cause the AFRs are perfect. There is no way (that I know of) to co opt it to show o2 correction instead. A while ago I wrote my own log analyzer app with a “mixture map” feature too. So I just tweaked it to read from my new besties: CL O2 Correction % 1 & 2 to show correction per cell. I haven't fixed the colors yet, so all red, but good enough:

fuelie-mixture-map.png

From there, I was able to adjust the fuel map. You can see that I'm not crazy far off. This is the front bank, negative is pulling that % of fuel, positive would be adding fuel. The rear bank is just about 0 correction as it runs leaner than the front.

Derp

The initial 2 or 3 passes over the fuel tables were not without WTF moments. After I had a table of O2 correction percentages, I’d adjust the fuel table to basically reflect the correction percentages. But on the next drive, the ECU would still add the SAME amount of O2 correction. Like my changes were not making changes. Sometimes I’d add fuel to the table, and the next drive it would correct to add MORE fuel than the last drive. WTF.

I went down a couple rabbit holes. Do I not understand the O2 correction values? And then a deeper rabbit hole: is something not set up correctly? The VE modeling approach relies on correct injector and fuel pressure settings. You should be able to add 5% to the VE fuel table and see it go 5% richer. If not, some setting is probably not set up correctly. I triple, quadruple checked everything, downloaded the latest ID injector data, looked at every table, and everything looked correct.

During this process I stumbled onto the IAT fuel trim. Turns out it was adding fuel at temps under 100F, and aggressively pulling fuel at higher temps. Each subsequent drive had higher IATs, which pulled more fuel and offset my changes to the fuel table. No bueno. I mostly zero’d it out and we were off to the races.

iat-trim.png

Closed loop all the time?

Before pulling the trigger on the Link, I did a lot of reading and watched a bunch of YouTube videos on tuning both the haltech and the Link. In a number of the videos, including official videos from like Haltech, people mentioned that they used closed loop (o2 correction enabled) even in WOT, high RPM scenarios. When I loaded up the basemap from SoS for the Link, O2 correction was enabled _all the time_ for all the load and all the RPM. This was super surprising to me.

Standard practice in days of old was to disable O2 correction under load. Stock motors do this because narrowband O2 sensors only accurately read stoich (14.7 AFR). But it’s always been in my head that, even with a wideband, it’s bad juju to use closed loop under load. Mostly because, if the O2 sensor goes bad, is inaccurate, or has some wiring issue, it could make things go lean and: pop goes the motor.

Why is closed loop forever ok now? Really, because CAN bus (IMO). The wideband controllers are connected to the ECU through the CAN bus, the ECU is reading AFR in digital form. The key here is that the wideband controllers are ALSO emitting data about the state and health of the sensor, like, is a sensor is bad, is it not heated up, etc. Out of the box, the SoS Link basemap has a bunch of protections based on data readability and errors from the wideband controllers. If there is an error condition, it’ll throw a CEL, turn off O2 correction, and lower the revlimit. Cool.

My plan is to run closed loop all the time, but tune it so it is mostly making 0% correction, erring on the rich side where it’s removing ~1% fuel.

Any quirks fixed?

I was curious if the new ECU and new injectors would change a couple quirks

1) The rear bank ran 1-5% leaner than the front bank

Well, the rear bank still runs leaner than the front, and it’s about the same as with the AEM. I guess this is a property of the fuel rail design?

2) Both banks run pretty lean after hot start for ~1-2 minutes

Stilllll happens! Why? I dunno! Hot fuel condensing on the something something… Not sure. But the O2 correction works its magic here so, ok, I guess it’s fine.

3) There was a voltage drop at the ECU under load. (Also the AEM ECU read lower voltage than the chassis voltage gauge)

Voltage drop is still there, but maybe slightly less pronounced. With more data I can see that the VTEC solenoids have a big effect:

voltage-drop-link.jpg

More info on my voltage drop thread.

Logging

Logging stuff with the Link is pretty cool. I’m still scratching the surface with it, but a few things that have been super useful. I really don’t like their log analysis tools so far though, generally the software is super clunky. (Like all software engineers, I am trained to dislike software written by literally anyone other than me. But, like, also their software is really hard to use) Supporting the log files in my own software was pretty quick. Now I got sweet charts and total control:

charts and stuff.png

The Link internally logs _everything_, hundreds of parameters. This means I don’t have to think about what I want to log ahead of time. I can’t tell you how many times, with the AEM, that something weird would happen on a drive, then I’d have to take the car out with the laptop and try to reproduce the issue so I could see what was going on in data. Also since I keep data from all drives, I can go back and dig into parameters I didn’t think of ahead of time. It’s been super helpful already.

Even logging all parameters, it can internally store like 36 hours of data. The AEM would log maybe 20 minutes, so I had to make sure to try any situations I wanted to tweak in the last 20 mins of the drive.

Another cool thing is that it starts internally logging from the moment you turn on the key, and logs through cranking. Tuning cranking has been a lot easier than with the AEM. Here is a cold start at 6am in 40F weather. Not shown in the logs: my neighbors seething anger when I start the car at 6am:

cranking.png

There’s a bunch more I’ll dig into later like CAN setup (which was a pain), and more learnings as I have more time tuning. The plan is still to take it out to driving ambition for a proper dyno session. But I want to spend more time with partial throttle before I go, likely a couple more months the way things are going.
 
Last edited:
This is one of those threads where I like, am waiting for updates! Like waiting for the next episode on your favorite streaming show.

I too found that using the O2 correction percentages was a great way to tune the closed loop regime for the car. My software- TunerPro- can log the average correction for each cell over an entire log. I figured since the NSX was already telling me where it was correcting and by how much, I could just make those adjustments manually in the map. It worked great.

Nice work here as usual.
 
This is one of those threads where I like, am waiting for updates! Like waiting for the next episode on your favorite streaming show.
Great to hear! I'm glad all the detail is interesting

I too found that using the O2 correction percentages was a great way to tune the closed loop regime for the car. My software- TunerPro- can log the average correction for each cell over an entire log. I figured since the NSX was already telling me where it was correcting and by how much, I could just make those adjustments manually in the map. It worked great.
Yep exactly, if it's already correcting, might as well just use those numbers! Cool that TunerPro does this too. An average of the entire log per cell is what my thing does too, there are a bunch of tweaks like how much weight a sample needs to count toward the cell, number of samples, etc

Do you guys run closed loop all the time? Or does it switch at WOT? I guess a bunch of the code is probably setup to go open loop at WOT...

Running lean on hot starts is pretty normal, typically this is accounted for with a post start fuel table where the initial correction is based on coolant temp which then decays down until the O2 sensors are up to temp and can take over.
Good to know it's normal. I did use the AEM post-start timed enrich tables to paper over this, but it only allowed 30 seconds max, and this behavior lasts around 1-2 min, so it didnt totally solve it. I haven't looked into the Link tables yet. But since it's normal, good to hear using those tables isn't a jank workaround. With the link, the o2 sensors take over after ~20-30 seconds, so maybe that was the justification for the 30 sec max on the AEM
 
Yep exactly, if it's already correcting, might as well just use those numbers! Cool that TunerPro does this too. An average of the entire log per cell is what my thing does too, there are a bunch of tweaks like how much weight a sample needs to count toward the cell, number of samples, etc

Do you guys run closed loop all the time? Or does it switch at WOT? I guess a bunch of the code is probably setup to go open loop at WOT...
TunerPro can create history tables and you can select the logged parameters and how they are calculated. For O2, I used the "historical average" setting, which re-calculates the average correction for each cell on a running basis, continually adding to the denominator as it collects samples. After driving around for 15-20 minutes, you have sample sizes in the tens of thousands. Then, @MotorMouth93 wrote me a python script that does the job even better because it tosses any samples that are outside of the closed loop parameters- stuff like CTS too cold or accel enrichment, etc., so you're getting a clear picture of true fuel correction. It only took about two or three sessions to completely dial the car in- it runs just like stock.

We do use open loop, which in the NSX ECU is called "power enrichment". It's a very convoluted "crossover" process that in John's opinion is needlessly complex. We're not even sure it works right in the current definition because even when you hit the required parameters (throttle position, load, minimum pulsewidth, rpm, etc.), the car won't go into open loop or it drops out into closed loop randomly. I just reset it to the factory parameters and it works fine now, though I'd like to get into open loop a little bit earlier in the throttle position, since I think there's extra mid-range torque to be found there. John has mentioned he's going to take another stab the the code in this regime and maybe make it more useable and understandable. But, he's gotta finish his engine first. :)
 
I have much respect for you guys and your self education on the nervous system of our cars....

but

maybe you are getting overthink on the steady stream of info

I could not imagine how we would all be If we had continuous BP monitoring like Blood glucose is becoming..

maybe just drive...o_O
 
I have much respect for you guys and your self education on the nervous system of our cars....

but

maybe you are getting overthink on the steady stream of info

I could not imagine how we would all be If we had continuous BP monitoring like Blood glucose is becoming..

maybe just drive...o_O
Totally reasonable position! I really do want to get there, but it still needs some tweaking before I can forget about it

Also, for me, this endless tinkering is part of the fun (“type 2” fun sometimes, let’s be honest). And understanding what’s going on makes me feel in control, I guess. It stresses me out when I talk to car people with complicated setups who have it all done by shops. There’s no way I could own this thing without messing with it / the ecu myself.

That said, part of me really wants something else (s2k/cayman/brz) I just leave stock and drive
 
Back
Top