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

MotorMouth93's 1994 Berlina Black NSX Thread

your attention to detail is amazing. i'm sorry that dilegence has caused you to find that nasty bore condition though.

Also, on using the stock ECU... man... the ITB configuration that's needed for an ECU is so different than stock, you're going to save a sh*t ton of time by starting from scratch with a stand-alone. I recall the old days when I had a boosted car and using a FI/C. Even just playing with Ignition and Fueling it was constantly fighting with the stock ECU. Having ITBs seems like it would 10x worse but I don't know anything about the stock ECU programming.

The stock ECU has Alpha-N tuning capability so in theory it will work with ITB. The real trick is does the ancient 80's-era CPU and limited maps have the fidelity to keep up with the rapid changes an ITB can generate?
 
The stock ECU has Alpha-N tuning capability so in theory it will work with ITB. The real trick is does the ancient 80's-era CPU and limited maps have the fidelity to keep up with the rapid changes an ITB can generate?
I don't know enough about the stock ecu to answer this but my educated guess tells me it's a lot more than that. Here's just one of a dozen of considerations... So you can pretty much toss the MAP signal out the door, and like you said, it's TPS/AlphaN based. However, in most cases you'll still build some vacuum at cruising speeds. How can the stock ECU compensate for mph, 6 inches of vacuum (moderate throttle at say 65mph), when your TPS is reading the same 9% of TPS. 9% of TPS is different at 65mph vs. say 25mph or even 100mph. That's just one of the parameters I'd have zero clue how the OEM ECU compensates for that. This is a non-issue in a MAP based configuration because the MAP itself compensates quite elegantly.

I can think of others...

Perhaps someone who knows the in-and-outs of the stock ECU can figure this out. IT WOULD BE SIMPLY AMAZING
 
I have some experience with this. A very long time ago I wrote Alpha-N support for OBD0 VTEC ecus: PR3, PW0, etc (same vintage as this one). The solution was a MAP/TPS crossover. So low throttle situations use MAP, higher use TPS. You pick a point in the 'breakpoints' (columns in this world) where it crosses over, which obviously depends on your setup and how much vacuum it pulls. The tricky part for people was figuring out where to crossover, and how to setup the TPS columns. I did no blending, so it could be a hard edge until you got it right. IIRC there were some cars running pretty well on the code. But to be fair, I never rode in them or saw them in person. They were almost always junkyard CBR setups on B16s, not so precious, and it's possible their tolerance for undrivability was high
 
Yeah I'm pretty happy with the interior except for the red stitching, at some point I want to get black leather pole position seats with matching anthracite alcantara centers but thats a long ways off, lots of other things to do first. If you want new leather for your seats I would go for the leatherseats.com covers instead of Ridies. Ridies installs - especially the DIY jobs - never seem to look that good, I had a pro do mine and they turned out better than most but still not perfect. Most of the LS installs I've seen have looked nearly factory.

I talked to the shop owner today and he said those marks are benign and what happens when the CNC hone stops going up and down before it stops turning and that they've never caused any issues in their builds, but that he'd fix it if I wanted so I'm sending it back. He has an excellent reputation so I believe him, but I'm also paranoid as hell and I can't do anything without main bearings which will take weeks either way, and the fix seems to be a simple matter of honing a few more tenths out of the bore so no invasive procedures like replacing a sleeve or anything As far as main bearings go, I bolted the bottom end up with some bearings from the last build and got measurements between 0.0012 and 0.0015 (service manual calls for 0.0009 - 0.0019) so I'll just order one step looser for the ones at 0.0012 and everything should be right on at 0.0015".

The stock ECU is more of a science experiment than anything, I think it will become clear quite quickly whether it's viable or not. I'm going to hook the MAP sensor up to the ITB vacuum manifold and see if I can tune the part throttle maps using speed density then transition to open loop/throttle angle load with various compensations for high load. Where that transition point ends up happening will depend on when the MAP reading goes to atmosphere, if I can get some meaningful map signal up to 25-30% TPS I think it could theoretically work. If/when it fails miserably I'll just buy a standalone or maybe mess with the AEMv1 that I got for cheap and everyone has told me sucks.

Edit: Bogle got here before I finished typing.

@bogle a while back I dug up a RAM bit in the ECU code that switches between TPS and MAP based load and am actually planning to do exactly what you mention. I did some testing and I can force the car to use alpha n load calculations just by toggling that bit and I can do it at any time when the car is running. Making the crossover smooth could be somewhere between tricky and impossible, but by placing that crossover at the same place as the closed/open loop transition I have completely separate fuel and ignition tables for alpha n and MAP load calculations which will help but it will still need to have good compensation routines on the TPS side. I'll have to hand code compensations for things like barometric pressure, maybe road speed, and others depending on what is needed. I can write the routines, the question is does the ECU have enough spare cycles to execute them at 8500rpm? I'm hoping that using speed density and fuel trimming for low load cruising and idle will help keep some factory drivability.

I wouldn't be surprised if I came across old posts of yours on the old PGMFI forums when I was researching this. It was kind of interesting to read those old threads where guys were just flipping bits and trying to read spark plugs to see how well it worked. Different times...
 
Last edited:
Man.. you guys are on top of this. Super awesome to see and inspiring.

Yes, I read crossover point and halted. In my limited experience, the ability to blend that transition smoothly makes or break a street oriented engine build. I'd live with it for a track built but for the street I'd probably annoy me.

Also, you guys are bringing up great ideas with exception coding and manual code changes... but I wonder.. at what point will the ECU speed just lag too much for it to even matter.
 
I did some testing and I can force the car to use alpha n load calculations just by toggling that bit and I can do it at any time when the car is running. Making the crossover smooth could be somewhere between tricky and impossible, but by placing that crossover at the same place as the closed/open loop transition I have completely separate fuel and ignition tables for alpha n and MAP load calculations which will help but it will still need to have good compensation routines on the TPS side. I'll have to hand code compensations for things like barometric pressure, maybe road speed, and others depending on what is needed. I can write the routines, the question is does the ECU have enough spare cycles to execute them at 8500rpm? I'm hoping that using speed density and fuel trimming for low load cruising and idle will help keep some factory drivability.

Oh cool, I wonder if there was something like that in the civic ECUs. At the time, the only time I knew of it running off TPS stock was limp mode, so I ended up writing my own thing.

I wouldnt worry too much about it being able to handle running more code. The amount of math you'd be adding is probably small, and you could probably hook into the baro corrections happening now. If you need something super custom, my gut says you add a table to the end of the ROM, and use one of the built in vcal funcs to interpolate your trim(s) over the table. Then you add only a handful of new operations. I added all kinds of probably-inefficient nonsense and never had an issue with it missing deadlines, though admittedly I wouldn't know what it felt like if it were.

Thinking back, RPM shouldnt be a huge factor. IIRC, the civic ECUs ran the main loop on a timer interrupt (overflow interrupt? I cant remember), so it was the same amount of time to do most calculations no matter the RPM. The only rpm driven thing was the CYP/CKP interrupt that literally just stored some timer vals in mem to calc RPM and kicked out. I guess maybe tons of interrupts could cause the main loop to miss some deadlines, but you're probably ok. I suppose you could see how the main loop timer is setup, do some math on the crystal value, then know how many operations you get per loop and how fast the loop is. Even though it's old AF, you probably still have a lot of time. 9k RPM is only 150hz. Also, processors are faster, but they also run a whole lot more code these days.

I wouldn't be surprised if I came across old posts of yours on the old PGMFI forums when I was researching this. It was kind of interesting to read those old threads where guys were just flipping bits and trying to read spark plugs to see how well it worked. Different times...

It definitely was a lot of trial and error. I'd make a half-baked thing and post it on the forums; someone would always try it. Sometimes it'd just result in 'uh my main relay wont stop clicking' lol. I needed a linter....
 
In the NSX ECU it also only exists as a limp mode function from the factory, but the way it's programmed, the RAM bit to enable TPS load calculations can be set without entering limp mode....almost like the original programmers intended for it to be used outside of that scope.

The existing barometric pressure compensations amount to a small number of "high" altitude and "low" altitude switches that don't affect a whole lot. In a speed density scheme barometric pressure compensation is inherent - at higher altitude you just won't be able to reach the top of the load scale - but for operating ITBs with throttle angle as load and no O2 feedback I'll need to write an actual compensation function down. Fortunately Austin is more or less at sea level so that won't be an immediate concern - the other compensations like [MENTION=20915]RYU[/MENTION] mentioned most likely will though, that should be fairly straightforward, I have "tons" of space available due to the now unused EGR timing and fuel tables and I've located the existing table access and interpolation routines which are fairly generic, located in fast mask ROM, already optimized algorithms, and I can just call into those as needed.

I love the programming and reverse engineering aspect I just hope the tuning is anywhere close to as interesting.
 
We'll find out soon enough what happens when you try to run ITBs on a stock ECU.

The AS motorsport ITB kit is a work of art. I had to do a bit of hole chamfering and edge deburring on the manifolds but it was only a few minutes worth and everything was nice and smooth afterwards.

IMG_1805.jpg


IMG_1806.jpg


IMG_1807.jpg


IMG_1812.jpg


IMG_1813.jpg


IMG_1814.jpg


IMG_1815.jpg


These manifolds are nearly perfectly matched to the intake gaskets. I was originally planning on having them ground out to match the ported heads but if its this close I don't see a point, and it would tear up the beautiful 5 axis CNC finish.

IMG_1811.jpg


I'm going to have to drill the injector holes out to 14mm to fit the RDX injectors properly so I'm going to carefully clamp them into the drill press for that operation.

As for the engine, I change my mind every 5 minutes about sending it back, I believe the guy when he says the marks are benign, they are very very light and you can see crosshatch lines going through them, but I'm also extremely paranoid so who knows I'll figure it out.

I've been going through my boxes of engine parts and doing final cleaning and prep on them. For the cylinder head parts I'm lightly chamfering and deburring the outer edges as well as cleaning up some dented corners and such from the previous guy who worked on the engine to make sure all the cam caps fully seat properly, then running them through the ultrasonic cleaner and rinsing in warm water before drying and wrapping in plastic until needed. For the hardware I also gave it the ultrasonic treatment then air dry and bag it up with a nice coat of oil to prevent rust.

IMG_1818.jpg


IMG_1819.jpg
 
All you ITB guys are doing amazing stuff.There was a time maybe in the late 90's early 00's that almost every JDM vid was a crazy ITB car screaming on road and track.
 
looks and sounds very smooth..
 
Its definitely a bit rougher than stock, I have a TON of tuning and programming work to do, but it does start and run better than I thought it would. I suspect that OEM injector placement of the AS Motorsport kit helps with this dramatically and I don't think I'd attempt this with any other kit without a standalone. I was able to get it to idle at a steady 850rpm and only a bit rougher than stock.

@bogle I have everything run into a vacuum manifold now, I'm seeing 7-8 PSI of vacuum at idle but I have a few more issues to work out before I get out on the street. Those gauges have adjustable restrictor valves on them to clean up the vacuum signal so the map is a little more noisy from what I've seen and I might have to add a restriction or increase the volume of the vacuum rail to smooth it out a bit.

I'm finding that I jumped the gun a bit and should have done more ECU patch testing with the stock manifold, rather than trying to debug my code and tune the ITBs at the same time.
 
Last edited:
Install photo dump, some of this is fairly boring but maybe some of y'all will find it interesting.

Overall this kit fit pretty well, but there were 3 minor and somewhat expected issues I encountered during the install process. Minor fitment issues with a kit like this are 100% expected and I don't consider it a flaw, I'm just pointing them out so other people know what to expect. The first was the green round alternator plug, it hit the throttle closest to the alternator so I depinned it, cut the end where the seal goes off, and put the pins back in. I'll just have to use dielectric grease or silicone to insulate it from now on. I tried Molykote dielectric grease but as soon as the engine got warm it liquified and dripped down so back to the drawing board.

IMG_1853.jpg


The 2nd fitment issue was with the fuel rail crossover pipe, this ITB kit has the injector positioning very close to stock but not 100%, rather than being angled a tiny bit out at the base like stock (think an A shape) the injectors are straight up and down (like an H), this means the fuel hose needs to be longer. Since my fuel hose is old anyways I cut the crimps off, installed new 8mm ID fuel hose (left over from my BMW fuel system refresh, it fit perfectly), and used hose clamps. I might find a hydraulic shop to do a cleaner job like @Honcho did but this was fast, free, effective, and infinitely rebuildable so I'm rolling with it for now. This is what the fittings looked like after cutting the hose crimps off and cleaning them, the color shift in whatever coating Honda used is pretty wild.

IMG_1856.jpg


IMG_1859.jpg


The 3rd fitment issue was the vacuum block fittings, I don't know that there's a way to use these and still have somewhat sane vacuum line routing. The 90 degree fitting was drilled and added by me, the straight fittings come with the kit, I needed one more vacuum port so I can hook up the evap system again once I get the intake system more sorted out. The silver fitting on the end I made on the lathe as well in case I need to expand the volume of the vacuum rail or hook anything else up. One of the end ports will be for an IACV.

IMG_1868.jpg


IMG_1882.jpg


There's spacers to make the vacuum block lower but then I'd still have the hoses looping around and a lot of tight bends that might kink. I retapped the holes to 1/8 npt (they supposedly already were 1/8npt, and the thread pitch was correct, but they were not tapered threads) and bought a bag of 90 degree fittings on Amazon and used those instead. Here's the final iteration of my vacuum block, the lines are 7/32" ID vacuum hose I got from Oreillys down the street. I don't know if it matters, but I made sure the length of the 6 tubes going to the intake ports were identical in length to hopefully get the smoothest MAP reading possible.

IMG_1962.jpg


The Jenvey TPS comes with a small 4 pin Deutsch connector: 5v, ground, and two signal outputs so it can be used on either the left or right throttles. The factory harness uses a round sealed Sumitomo plug that does not have a male counterpart available since it's only used on sensors and things with molded plastic housings but it does share terminals with other sealed Sumitomo plugs, so I bought a couple 3 pin Sumitomo connectors and replaced the the original TPS (and accelerator pedal position sensor) plug with them, then made an adapter harness to plug the Jenvey TPS into both the throttle position sensor input and the accelerator pedal position sensor. The APPS is used to double check the TPS so I'll feed the same signal into both so the ECU is happy. The Jenvey TPS output is virtually identical to the OEM Honda sensors but off by a fraction of a volt at full open which can be taken care of in the tune. With the sensor calibrated to 0.5V at full close, the Jenvey TPS hits 4.2-4.3v at full open whereas the stock sensor reads 0.5v - 4.5v, so the Jenvey TPS will read 95% when its actually at full open, but this shouldn't matter.

IMG_1876.jpg


TPS wiring with the connector housing removed.

IMG_1878.jpg


New plug installed on original terminals.

IMG_1877.jpg


Adapter harness ready to go, along with a block off plug for the TCS motor. I just used a 6 pin plug housing with rubber blank plugs for the holes to seal it up since it's no longer used. The 2nd plug for the APPS ended up being very helpful for calibrating the TPS, as I could just turn on the ignition and connect the multimeter to the 2nd TPS output while leaving the main one plugged in.

IMG_1929.jpg


While getting the fuel rails set up I noticed that my RDX injector hats weren't seating all the way on the injectors due to the little tab sticking out, rather than cut the tab off I just turned the hats shorter on the Harbor Freight lathe.

IMG_1898.jpg


They still don't quite fit with the included fuel rail standoffs though, which is expected since everyone has a different injector setup. The included standoffs can be made to work with just about any injector setup through the use of washers as spacers.

IMG_1899.jpg


So I spent far too much time making my own fuel rail standoffs out of titanium. (and ultrasonic cleaning the fuel rails because why not) Shame they will be buried so deep in the engine bay that nobody will ever see it.

IMG_1909.jpg


But anyways, finally got the 6 throttles bolted up to the manifolds.

IMG_1935.jpg


This is the setup I used for the initial synchronization of the throttles. These gauges are meant for balancing the carburetors/throttle bodies on 6 cylinder motorcycles. $80 ebay find, worked great. Before startup I used a dial indicator to set the plate angles as close as I could and it was actually very close, only minimal adjustment was needed after that.

IMG_1955.jpg


After installing the trumpets.

IMG_1951.jpg


I tried out the fuel rail covers and they still fit on the rear, but the front one will need to be trimmed to fit around the relocated throttle cable. I could also make a bracket to put the original manifold cover to cover up the linkage, thoughts?

IMG_1959.jpg


On the tuning front, I'm having some trouble getting a good hot idle. Cold idle is beautifully smooth with perfect AFR control but as soon as the engine fully warms up it goes nuts, so I'm looking through the various idle functions and parameters trying to figure out whats going on. I suspect its idle timing control related, and also possibly related to the fact that I have the base idle set fairly high right now so I need to try to lower it as well as play with the idle timing. Basically what happens is the engine will idle great until it gets hot, then it will sit at about 1000rpm at a 10:1 AFR which is crazy rich, and as I start adding fuel to correct it I can see the AFR rise then it jumps up to about 18:1 and starts oscillating between 1100 and 1200 rpm at a rate of about 1hz. When I start pulling fuel to correct it it will drop a bit then jump back down to 1000 at 10:1 and the cycle repeats. When its stable at 1000rpm/10:1 the timing is also stable, but when it starts oscillating the timing also moves around a lot. My base timing maps might also be too far off, idle vacuum with the ITBs is a couple PSI less than it was with the manifold so its running a lot less timing advance since I haven't played with the timing map much yet. A stock car idles at around 35 degrees base timing, the base timing value for this cars idle is 17* so that might just throw the idle timing control too far off, I dont' know, I'll figure it out (hopefully...).

Huge thanks to @RYU whos answered all of my tuning questions to the best of his ability.
 
Last edited:
I got the idle issues mostly worked out, pretty smooth idle and nice open loop AFRs at 800rpm. :smile:

The issue I was having before seemed to be a combination of too much base idle air flow (set rather crudely using the throttle stops) so turning that down reduced the oscillations enough to properly dial in the idle areas of the fuel map. I unplugged the IACV and disabled idle timing control, set the base idle at 650rpm per the service manual, then reenabled the idle timing control (the car uses timing to control idle speed, ideally the IACV is used for cold starting then shut once hot) and the idle popped back up to 800 like stock and stayed there. The IACV I ordered should be here this week and I'll start playing with that to get smooth AC compressor engagement and additional air for cold starts. I can finally start tuning the car for real now, I'm looking forward to playing around with MAP and alpha N load to see if I can get a hybrid setup to work well.

I ended up buying the only carburetor synchrometer on Amazon that would arrive in 2 days. It showed up in a white cardboard box but when I opened it it was actually a nice Made in Germany tool. It worked far better than the vacuum gauges for balancing the throttles (and was cheaper...). I used it to correct some balance issues as well as equalize idle air flow across the banks.

 
Last edited:
Reworking The Throttle Linkage

Before I get too far in tuning I want to get the throttle linkage sorted out. One method is using an assist spring, which works well but is a very delicate balance of having enough assist to make the throttle feel good or too much assist and not letting the throttles close all the way if you let the pedal out slowly.

I played around with various springs and found some that worked okay but none I was truly happy with, so I set about modifying the center crank linkage instead.

The issue with linkages like this is the change in mechanical advantage as the crank rotates. In this picture, the blue lines show the component forces of a pull on the linkage, and only about 60% of the force goes to rotating the crank and the other 40% is wasted by pushing straight into the pivot point. This makes the initial throttle press feel VERY stiff and prone to snapping open once you apply enough force to overcome the initial bump, since as the crank rotates counterclockwise, the application of force becomes more and more efficient as the force component straight into the pivot gets smaller. Once you cross the middle point, though, you start to lose efficiency again resulting in a pedal that just doesn't feel good and is hard to modulate at low throttle openings.

IMG_2058.JPG


My solution was to do away with the center linkage in favor of a cable reel. I made this on the lathe out of some scrap 1/8" aluminum plating I had, some slightly thicker material would probably be better as I could make the grooves deeper but this works well for now and doesn't seem like slipping off will be an issue. And the cable is just a standard mountain bike brake cable that cost me $5 at the bike shop down the street.

IMG_2034.jpg


I mounted it to the center crank using holes that were originally for the linkage.

IMG_2036.jpg


At the other end of the cable I drilled and tapped a set screw into one of the ball joint ends, stuck the cable in, and cranked it down tight. I want to find a better way to do this but it'll work for now. (meaning I'll use this until the cable pops out at a stoplight or cruising down the highway and leaves me stranded by the side of the road) If anyone has any suggestions for how to mount the cable to the ball joint fitting I'd love to hear it! The ball fitting has an M5x0.8 thread in it.

IMG_2049.jpg


Here is the new cable reel linkage. I increased the pull radius a bit as well as decreased the radius at the lever arm for a lighter and longer pedal, which combined with the progressive arc on the lever that RYU came up with should result in very good low throttle drivability. I still think the pedal press could be a bit lighter though, so I might try to mount a light torsion spring underneath the crank.

IMG_2052.jpg


At this point, I'm pretty much ready to start trying to tune for real. I could write an essay on ECU code changes but I'll save that for another day, the gist of it is my initial plan failed so I had to scrap it and start over. I now have the car running in the EGR maps for speed density with the standard maps reserved for TPS load which should work a lot better than trying to use the open loop standard maps for TPS load and the closed loop maps for speed density since those shared timing tables and would have been very hard to work around that.
 
Really good engineering going on and I like all the misc. pics that detail all the little things that have to get solved to get the project done. That's where the real work gets done :)

I like the idea of keeping the original manifold/"wiring harness" cover on in-between the trumpets, like a bow on top to make it look more complete. The stock one works with the original valve/coil covers but you could try the NSX-R cover or another color scheme too. Will there be an airbox or filters over the trumpets as well?

I'd be concerned about the set screw on the ball joint too, long-term not sure about the pull strength but a failure could be real bad. You can get wire rope threaded plugs that crimp on to the cable and have an M5x0.8 (UNC 10-24) thread that you could add a locknut to. Something like https://catalog.lexcocable.com/item/threaded-studs/threaded-plugs/te515 or https://www.mcmaster.com/cable-ends/attachment-type~threaded-stud/. Or crimp on a small flat ferrule at the end and drill a hole & slot through a M5x0.8 bolt to thread into the ball joint as a jam-bolt of sorts. The hard part is the crimping but I'm sure you could come up with something without buying an expensive tool & die.

Excited to see road tests and videos :)
 
Last edited:
Unfortunately, there will have to be some sort of airbox setup but the main priority right now is just getting the car running so open stacks it is for the moment. I still haven't done any more tuning, I've been strapped for time the past 2 weeks so have instead just been knocking out small things like installing a catch can, replacing my homemade idle valve block with a much nicer off the shelf billet part (NSX IACV has the same foot print as the H22 so any H22 idle valve block will work) and mounting it in the engine bay, and generally improving my vacuum line routing and things like that.

Rather than ordering a cable end crimp fitting I realized I could just make one. The end result is a lot cleaner looking and has the added bonus of being adjustable, I'm not super happy with the crimp so I need to see if I can get a more appropriate set of dies but I pulled as hard as I could and it didn't budge. I made a spare cable/ball joint assembly to keep in the car in case this one pulls apart, since swapping them out is quite easy.

IMG_2102.jpg


IMG_2104.jpg


I'm really happy with the throttle linkage now so I've taken it all apart and put it back together using blue loctite on the small bolts and screws. With no assist spring the pedal is a bit heavier than stock but not much, and with the last few adjustments full pedal travel is pretty much spot on with the throttle plate full open and closed, whereas with the original linkage setup you'd reach full throttle plate opening with an inch or so of pedal travel left.

Rosko racing sells a very nice billet part to remote mount an H22 idle valve for $30, so I bought that then drilled out the fittings as much as possible without ruining them to allow as much idle air flow as possible, since one problem I had with my homemade idle valve block was that it doesn't seem to flow well enough for cold starts to be as nice as I'd like. I also drilled out the fitting that goes into the vacuum rail since that was quite restrictive as well.

IMG_2082.jpg


The fuel and ignition maps use a load value from 0-255 with cells along the load axis evenly spaced in increments of 16 for a total of 16 load columns. The standard TPS reading is measured from 0-220ish (depends on throttle calibration point and adjustment) so this value must be mapped into the 0-255 load range. Just scaling it by doing (tps*255)/220 would sort of work, but it wouldn't work well as TPS changes at low throttle result in huge changes in airflow whereas the same percent change at high throttle results in almost no change in airflow, so we need a better mapping than this. For tuning alpha n you usually want very tightly spaced load columns at low throttle opening with very wide spacing at WOT so I wrote a routine that maps TPS to load using a configurable table, then set this table so throttle load columns are something like 0, 2, 4, 6, 8, 10, 15, 20, 25, 35, 40, 50, 60, 80, and 100% TPS. The ECU also maintains a separate high precision throttle position reading that goes from 0-255 for roughly 0-28% throttle, so my routine uses this value below 28% TPS and then switches to the standard low precision reading beyond that to get the best possible low throttle opening resolution. I also found that the factory TPS calibration routines (the ECU constantly tries to calibrate the TPS zero position) cause issues with ITBs as they will literally calibrate out a few % worth of throttle movement under some circumstances, so I disabled that code and tweaked it a bit to use a manual throttle calibration value that can be adjusted and tuned as needed.

Then there's the issue of idle air compensation when using TPS as load, opening the idle valve introduces air to the cylinders that can't be metered using TPS since it's bypassing the throttle plates, but as far as load calculation is concerned, opening the IACV a bit is the same thing as cracking the throttles a tiny bit, so I programmed in a 5x5 table of IACV% vs TPS% where the result is added to the TPS value before going through the TPS to load conversion. It can't just be an adder value based on IACV% though, as cranking the idle valve open at 0% TPS will result in a much larger effective change in throttle position than cranking the idle valve open when at, say, 8% TPS. So along with everything else, this table will need to be tuned too.
 
Last edited:
Back
Top