Haltech Forum Area is for discussing Haltechs

First attempt at Haltech map

Thread Tools
 
Search this Thread
 
Old Jul 11, 2020 | 07:10 PM
  #1  
idonaldson's Avatar
Thread Starter
Full Member
Tenured Member: 10 Years
iTrader: (2)
 
Joined: Apr 2012
Posts: 103
Likes: 2
From: Austin, TX
Question First attempt at Haltech map

Hello,

While I wait for parts to ship to wrap up my build, I figured it was a good time to learn to tune my ECU and see if can put together a file to get the car started eventually and hopefully more. I've spent hours browsing this forum, the Haltech Tuning and Tips Facebook group, HPAcademy,the documentation in ESP and more and this is what I've put together so far. I'm hoping someone can take a look if you have a few minutes and give any pointers you have. I don't want to only use a base map and hand my car over to someone else to tune it, I want to know what's going on and why things are setup the way they are.

So far all I've tried to do is setup the fuel the best I can from what I've read, and setup the inputs/outputs. I'm not clear on how to properly setup the 4 secondaries in the setup page of ESP, and I can't find anything online that states how it should be done on a rotary.

Using an Elite 2500.

The car (1994 single turbo) will have the following that will need to be connected to the ECU:
  • Dual fuel pumps
  • Flex fuel/temperature sensor
  • 2 ID2000 primaries
  • 4 ID2000 secondaries
  • Fuel pressure sensor
  • Drive By Wire
  • Fan control (2 OEM fans)
  • Coolant temp
  • Oil temperature sensor
  • Oil pressure sensor
  • Intake Air temperature sensor
  • Fuel level sensor
  • IGN1-A coils
  • MAC valve for boost control
  • Dual knock sensors
  • Hall effect trigger kit from FFE
  • 4 bar map sensor
  • IC7 Dash
  • Haltech WB1
  • Haltech TC2
Anything else I should be looking at or digging into? The car is still a few months away from starting while I wait for my coils and a fuel rail to arrive.
Attached Files
File Type: zip
Rx7_20200710-151909.zip (50.8 KB, 79 views)

Last edited by idonaldson; Jul 11, 2020 at 07:12 PM. Reason: Added ECU
Reply
Old Jul 14, 2020 | 09:47 AM
  #2  
Skeese's Avatar
Rocket Appliances
Tenured Member 05 Years
iTrader: (11)
 
Joined: Nov 2013
Posts: 1,134
Likes: 206
From: Canton GA
Hey man! I applaud you for doing the research and taking a pass at it! Too many people these days just want the instant gratification of someone else doing it and don't put any effort into understanding how it works. I started a few years back doing the same thing as I didn't like the idea of blindly trusting a 'tuner' who claimed to know what they were doing. Learning to tune myself has been the absolute biggest aid in RX7 ownership that I've found across the last 7-8 years. If you're open to learning, it really becomes pretty simple and straight forward once the data starts coming in.

The thing about a base map is, it still really needs to remain a base map for the purpose of being a 'first fire' tune where major issues related to a complete new engine/fuel/ignition setup can be easily diagnosed. When you try to work every feature that has been talked online into a base map you'll end up with so much going on its impossible to diagnose a problem or gauge the results of making a change. When setting one up for a first fire on a new setup, I always widdle the map down to the bare necessities to get it fired up and idling cleanly. When the base map is simple and clean, it makes it easy to accurately gauge the results of changes you're making to get the idle sorted and also makes it easy to diagnose any mechanical/electrical issues from the build that you won't find until its running.

Not so much focusing on the values in the table but the setup, I'd recommend the following based on that file:

1. Turn off the 4D axis for fuel composition in the target lambda table. Until tune data drives a need for more resolution, you'll want to just offset the AFR target as a function of ethanol content using the "Fuel Composition Correction" table located below the primary target lambda table in the function tree.

2. Turn off the 4D axis for fuel composition in the base fuel map. The "fuel compensation scalar" table comes pre-loaded with values that are known to be close to what is needed for the petrol to ethanol and when you set the fuel type to 'flex' in the main fuel tab and connect a flex fuel sensor, the ecu will automatically calculate the required fuel increase based on the scalars. You can do it like you have it setup, but it would require zeroing the scalar or changing the fuel type back to petrol then manually tuning each of the tables for each content level. I've always found the scalar and single base fuel table method to be very close to the target across the full ethanol content range and wouldn't take on all the additional effort and complexity of tuning the individual tables unless the data showed a need.

3. Also in the base fuel map I'd go back to a 500-rpm increment step size map to begin with and then add resolution from there as needed. When you or a tuner are first roughing out the fuel map to reflect the target AFR it will be hard to make accurate changes to a map with that much resolution. As the map gets closer to running on target, the data will tell you if you need to add additional resolution in certain areas as you'll see where you need more/less fuel across a cell to maintain target so you can either add an additional row there or rescale the map globally at that point once its close. The software will interpolate between all the newly scaled cells so if you do so after its tuned close to target then the extra resolution becomes easy and clean to update to run even closer to target.

4. You can get rid of the MAP correction table as the MAP is already accounted for in the base fuel table since it operates as a function of manifold pressure to begin with. This is most commonly used when you utilize TPS as the primary load axis in the base fuel map to add a correction for boost above ambient pressure.

5. Didn't see what port you are running but unless you're in the full bridge or semi peripheral port level of overlap, I'd start with the zero demand fuel function turned off. I've found its not necessary for a clean idle unless you have a massive amount of port overlap and a really choppy map signal and with it off you eliminate the need to blend it into the fueling demands of the base fuel table which can make for some un-necessary hiccups in that transition until its worked out.

6. I'd change the base ignition timing table and split table back to a 500 rpm step size table, same rationale as above. Until the base fuel map is tuned to run on the AFR target and you go to tweaking ignition timing on the dyno watching torque and EGT, you really just need a basic and safe ignition table and too much resolution just complicates things without added benefit during initial tuning.

7. I'd also get rid of the zero demand ignition table, same rationale as the zero demand fuel. It's one of the things I only use if idle tuning without it leads you to need it due to a choppy map signal.

8. For the boost control setup, you'll want to initially change it back to open loop for now and zero out all the values in the open loop duty cycle table. During initial tuning, you'll be tuning the fuel table up to the spring pressure of the wastegate until the car runs on target AFR at that boost level. From there, you'll add wastegate duty as needed to bring the pressure up to the next boost level while in parallel watching the fuel and AFR to 'tune' that new column of cells in the base fuel map to reflect the need of the new boost level. Only once you have a baseline for how much duty is needed to reach each boost level will you want to go to the closed loop boost as the accuracy of the PID controller entirely depends on how close the 'base' values it uses for the calculation are to the actual need. The larger the offset, the less accurate the correction can be made quickly.

9. Drive by wire is awesome. Period. You'll want to turn on the 'idle control' feature to be a function of drive by wire and set it for open loop operation to start with as this makes it easy to find the baseline needed for the closed loop idle control to be turned on later.

10. For the injector setup, you'll want to pull the dead time and flow values directly from the ID website and plug them into the tables there. Are you planning on running 2 stages with four injectors coming on together in the second stage or do you have the harness setup to run them as 3 separate stages of 2 injectors each? The 3 stage setup is ideal, but it can be done either way with the right setup. I've never had a need to configure the injector settings to 'custom' for IDs in either configuration and have always been fine setting them to just the "HIGH" condition.

For getting familiar with the software it would be best if you implement all the changes if you agree with what I'm suggesting. If you'd like to go this route, just make the changes above and post the updated file back on here then we can start working through good starting point values for each of the fields.

Cheers,

Skeese
Reply
Old Jul 14, 2020 | 11:34 AM
  #3  
idonaldson's Avatar
Thread Starter
Full Member
Tenured Member: 10 Years
iTrader: (2)
 
Joined: Apr 2012
Posts: 103
Likes: 2
From: Austin, TX
Skeese,

I've made all the suggested changes and there's nothing I don't agree with. K.I.S.S. is definitely a principle I want to take going into this. I did a little bit of tuning on my PowerFC in the past but that was after a friend and I tuned the car together and he knew what he was doing. I just made small adjustments here and there afterwards. This time I'd like to do as much as possible before calling in a tuner.
  1. Agree with turning off the 4D axis and letting the ECU handle it and if it's needed down the road turn it back on.
  2. Same as above, it's off now.
  3. Done and makes sense to start at 500 RPM increments.
  4. Done.
  5. Half-bridge ported by BDC Motorsports with an Elite intake kit and 90mm DBW throttle.
  6. Done.
  7. Done.
  8. Done. I think this setup from was from the initial Haltech supplied s6 single turbo map. I haven't even started to look at boost control yet as I was planning on just waste gate spring pressure to begin with like you said. I have the Turbosmart upgraded Wastegate IWG75 for my EFR 8374 as well as the Turbosmart upgraded EFR BOV and 4 port mac valve, but tuning this is still down the road. For now I'd like to be able to figure out whats going out outside of boost and up to spring pressure and why things are setup the way they are.
  9. Done.
  10. I downloaded the spreadsheet from Injector Dynamics for the ID2000s and input all the data points that were provided. The dead time and flow tables both have 2 axis as provided by Injector Dynamic with all the data input from their spreadsheet. Using three stages is perfectly fine and the more I think about it the more it makes sense that bringing them online could be a lot smoother since there won't be 4 injectors coming on all at once, it'll just be two. I was stuck in thinking in the same logic as my PowerFC map that had two stages.
Thanks!
Ian
Attached Files
File Type: zip
Reply
Old Jul 15, 2020 | 07:30 AM
  #4  
Skeese's Avatar
Rocket Appliances
Tenured Member 05 Years
iTrader: (11)
 
Joined: Nov 2013
Posts: 1,134
Likes: 206
From: Canton GA
Good deal man! That setup is lookin much better as a base map for sure. So now on to details! I'm not going in any real particular order here, but rather just going down the feature tree. I'll admit I'm overly **** with most of the setup and some will say all the details aren't necessary but to me its just part of being thorough.

I always start with a common scale between all of the major tables (Target AFR, Base Fuel, Base Ignition). For your case, I would make the scale range from 0-10,000 rpms, progress in 500 rpm increments, have 9000-10,000 be the final increment, and have a 1250 rpm row between 1000 and 1500. As you mentioned its a half bridge (and a BDC halfbridge which is definitely cool, met Brian Cain a few years ago back in Texas, cool guy) I'm assuming its going to want to idle somewhere around 1200 rpms so having that definitive row will add stability.

For the load scale, I always just start with the basic spread that haltech gives you. The numbers appear to be evenly spaced, but somewhat arbitrary at first glance but if you go to tools --> options --> units and change pressure from psi/inHg to KPa then you'll see the scale become (-100, -90, -80, -70, -60, -50, -40, -30, -20, -10, 0, 10, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200) so you've got load spacing at 10 KPa per column in vacuum, one 10 KPa column just above 0, then 20 KPa on up from there. If you rescale all the primary maps to follow this, then flip the units back over to psi/inHg, you'll have the spacing below common between the primary tuning maps.

For a half bridge, this is about where I would start with target AFR for regular 93 gas. Not sure what wastegate spring you've got in there, but I typically begin with a 14 PSI spring and tune the base fuel map on 93 up to the 14 PSI spring pressure which should be safe on the pump gas with AFR targets like you in my table below. We'll get to it later, but I'll also setup the wastegate table as a function of ethanol content so that if the car detects anything below say 40% E then it won't add any duty to the gates and instead only run spring pressure to 14 and stick to the safe targets below. We'll offset the target for E85 later.

I'm assuming your idle will be somewhere between 1000 and 1500 rpms and -17.7 to -11.8 inHg with a half bridge, but you'll just have to play with it and see what it likes best. I'd start off targeting a clean 13.5 AFR idle as I think that is probably a good spot for a half bridge idle, where its lean and clean but also got enough fuel to hold the rpms down and still chop once warm.



So next is the base fuel map, which has been setup with the same scaling as the target AFR. I've highlighted the cells in blue below where I think you'll likely be for idle at least to begin with while you balance out the factors for drive by wire control. I've bricked the cells there to 55 and just kinda scaled and smoothed everything around there to increase in relatively small increments which will help hold everything consistent until you find out what exact cell(s) its going to want to sit in. In theory, a perfectly efficient engine will achieve 100% VE at atmospheric pressure (0 PSI), however there are always losses in the system. Regardless its a pretty good rule of thumb starting point to have your VE fuel approaching 100 by the 0.0 PSI mark on the table. Beyond that, I'd always just scale the fuel up relatively consistently erroring on the side of having too much in there to begin with and pulling it out later with wideband data.



I noticed that there were no values in the fuel - air temp compensation table. There's a couple of way of handling this, but the way I prefer is to utilize the "Auto VE Air Temp Function" to allow the ECU to control the fuel added based on the air temp measured through the bulk of the normal operating range, then use the table to add a safety blanket on either side. In the fuel tab of the main settings, you'll see the box there to check for the Auto VE Air Temp Compensation. Its important to know that this function works on top of the Fuel Air Temp table, so if its on and you have values in that table you'll be doubling up on the applied trim. This is why I leave the bulk of the operating area in the table free of trim, and only add at the ends so it will add/pull additional when at the extremes for added safety.





That pretty much covers it for the fueling portion of the setup for a good base map. It looks like you got the injectors setup correctly in the main table for 3 stages with it setup as 2 injectors per stage and cylinder, in synchronous mode. You just need to make sure those 3rd stage injectors are wired to the right outputs on the ECU and not tied to the 2nd stage wiring and depending on your LIM setup you can determine if it makes sense for the inner or outer set of injectors to be the 2nd/3rd stage. It does appear the flow and dead times tables for all three stages still need a little touch-up.

I scaled the battery voltage and fuel pressure axises to reflect the scaling of the ID2000 data table (see below) and populated the dead flow and dead times with the exact values from the ID table.





Another bit of advice, which is really just personal preference, I typically set base fuel pressure to 45 PSI instead of the 43.5 PSI standard. This dates back to before when I had a fuel pressure sensor and had to set the base using a mechanical gauge on the regulator at which point it was always easier to pin it to the 45 PSI marked line instead of the unmarked 43.5 PSI place on the gauge. Additionally, the flow and dead time values given by ID range from 43.5 PSI up, so by setting base at 45 there is data below base that the ECU can reference should pressure drop below. It also just makes for a round number so its easier to mentally head calc how far off from base you are at any point in time. If you were to do this, you'd want to be sure to change the base fuel pressure in the main settings fuel tab and the rest will be handled by the ECU based on the injector dead time and flow settings in the injector setup so long as its getting a fuel pressure reading from a sensor.

That's all I have for now, will go through the rest of it when I have time likely tomorrow morning before work gets nuts.

Skeese
Reply
Old Jul 15, 2020 | 11:16 AM
  #5  
idonaldson's Avatar
Thread Starter
Full Member
Tenured Member: 10 Years
iTrader: (2)
 
Joined: Apr 2012
Posts: 103
Likes: 2
From: Austin, TX
Skeese,

Thanks for the updates, I've made most of them. As for your point about wiring the injectors, I have a universal haltech harness that I'm pinning myself, so there's no worry about making sure they're wired correctly.

I do have a couple of questions though.

On the VE correction table what is the top axis? It says fuel load in your screenshot but when I look at setting up the axis, fuel load has a max value of 145psi, there's no way to get 201.3 or 301.3.

The other question I have is about the Injector Dynamics injector values. I pulled my values from this spreadsheet supplied by Injector Dynamics specifically for the Haltech and ID 2000, Haltech : Injector Dynamics Support. The values differ from the universal slope/offset data points that are in that table. I'm leaning more towards using the specific data supplied for the Haltech, but if you have a reason to use the universal data set, I'm open to hearing about it.

Ian
Reply
Old Jul 16, 2020 | 10:05 AM
  #6  
Skeese's Avatar
Rocket Appliances
Tenured Member 05 Years
iTrader: (11)
 
Joined: Nov 2013
Posts: 1,134
Likes: 206
From: Canton GA
Originally Posted by idonaldson
On the VE correction table what is the top axis? It says fuel load in your screenshot but when I look at setting up the axis, fuel load has a max value of 145psi, there's no way to get 201.3 or 301.3.
Nice catch there, I got ahead of myself and apparently didn't change my units back from KPA to psi/inHg. Changing the units back will get you to this table:




Originally Posted by idonaldson
The other question I have is about the Injector Dynamics injector values. I pulled my values from this spreadsheet supplied by Injector Dynamics specifically for the Haltech and ID 2000, Haltech : Injector Dynamics Support. The values differ from the universal slope/offset data points that are in that table. I'm leaning more towards using the specific data supplied for the Haltech, but if you have a reason to use the universal data set, I'm open to hearing about it.

Ian
I have a friend who used to work in engineering for bosch and I had asked him before about how ID and other aftermarket suppliers of modified bosch injectors came up with the dead times. According to him, the dead times are subjective to the ecu and how precise the measuring equipment is that is used to record the data on the bench. He said that the way ID does it is they use a motec ECU on a bench flow machine they custom built to develop the values that you see in the universal slope/offset data tables. I didn't know they had run them on a haltech elite and had haltech specific values, so this is news to me. I've always used the universal ones without any issue and I wouldn't go changing them in a tune that has already been AFR tuned, however I don't see any issue with using the 'haltech' values you have when starting with a new base map.

I made a quick comparison spreadsheet to compare the universal values to the 'haltech' values for the ID2000s and interpolated the intermediate points for 400 and 500 kPa. You can see they're all extremely close, so I don't think you'll have an issue either way you set it up.




I don't have the time to go through the rest of the file yet, but will do so when I can and get back with you on here.

Skeese
Reply
Old Jul 21, 2020 | 02:29 PM
  #7  
Jspaid142's Avatar
Full Member
Tenured Member 05 Years
iTrader: (3)
 
Joined: May 2016
Posts: 122
Likes: 3
From: Olney, MD
Excellent information! Just reading along here and trying to learn. I noticed you're using the angel motorsports style "linear" timing map.

What are the thoughts on a timing map like that? I've actually seen quite a few people use that setup. Seems like it leaves a lot on the table for cruising areas but perhaps not? Makes me curious to try it and see.
Reply
Old Jul 21, 2020 | 11:08 PM
  #8  
idonaldson's Avatar
Thread Starter
Full Member
Tenured Member: 10 Years
iTrader: (2)
 
Joined: Apr 2012
Posts: 103
Likes: 2
From: Austin, TX
I only went with the linear map as a base to start off with. The way Mike Vargas explained it in the video he posted made sense to me as a way to not over complicate things when starting off, not necessarily just a set it and forget it thing. I'm sure the map will change as I drive the car and feel out how it performs. I've also seen the linear map on hpacademy but I can't remember which video it was in.
Reply
Old Jul 22, 2020 | 11:06 AM
  #9  
Skeese's Avatar
Rocket Appliances
Tenured Member 05 Years
iTrader: (11)
 
Joined: Nov 2013
Posts: 1,134
Likes: 206
From: Canton GA
Eh, I wouldn't use that timing map. I'm not against using something smooth and scaled, but I think starting with a pure linear flat interpolated sheet isn't ideal. I saw that when I was looking through the file but never made it to the timing section on here. And as a side note, you want to be careful referencing those guys' tuning in general...I've had some interesting experiences with them.

I'd start with something more like this. Being around 12 degrees leading at ~15 PSI at peak torque between 6000 and 6500 is a pretty safe place for regular 93 octane. The way I most always start is with a 12-14 PSI wastegate spring loaded and tune the car on 93 alone up to spring pressure with the base fuel and ignition tables appropriate for the regular pump gas to that level. From there, I'll turn on the flex fuel function and let the ECU start working the increase from the base tables using the pre-set scalar. I then add an axis for fuel composition to the wastegate output table and leave the duty cycle output below 50% ethanol at 0, that way if the tank ever has less than 50% ethanol tank, boost will be capped at the same 14-15 PSI spring pressure the car was tuned safely for on 93. You'd the want to add a fuel composition lambda correction table to lean up the target AFR based on the sensed ethanol content.

From there, I'd fill up on E and just do quick once over on the vacuum to spring pressure cells start adding duty to the wastegate duty cycle table for ethanol content above 50% to bring the boost pressure up to the next row of cells past the 14.5 PSI column and start tuning those to hold target always leaving the next higher column full of fuel to ensure that if you have an overshoot it is met with a rich condition. I wouldn't add a fuel composition to the timing until after you have fully sorted the AFR up to your top target boost level on the base timing for 93.




I've been super slammed with work and haven't had much time to go through the rest in detail, but will try to when time allows.

Skeese
Reply
Old Jul 23, 2020 | 07:04 AM
  #10  
Uncle Hungry's Avatar
Talk to me....
Tenured Member 15 Years
iTrader: (2)
 
Joined: Sep 2007
Posts: 1,057
Likes: 51
From: 600' up
This is great info. Awesome job guys, this should be stickied.
Reply
Old Aug 14, 2020 | 04:00 PM
  #11  
idonaldson's Avatar
Thread Starter
Full Member
Tenured Member: 10 Years
iTrader: (2)
 
Joined: Apr 2012
Posts: 103
Likes: 2
From: Austin, TX
Alright, all of your suggested changes so far have been updated into this map file.
Still need to wrap up my fuel system and ignition kit before I can try this map out. I'm waiting on a CJ Motorsports fuel rail and IR Performance IGN-1A kit to arrive. Once those get here, we gave give it a try.

@Skeese thank you for all your help so far!
Attached Files
File Type: zip
rx7-skeese-changes.zip (52.4 KB, 43 views)
Reply
Old Aug 17, 2020 | 12:25 PM
  #12  
Skeese's Avatar
Rocket Appliances
Tenured Member 05 Years
iTrader: (11)
 
Joined: Nov 2013
Posts: 1,134
Likes: 206
From: Canton GA
Hey! This file is starting to look like a solid base map!

Sticking with the common theme of the basemap being bare bones and then adding features as needed, I’d turn off target lambda fuel composition correction table (just uncheck the fuel composition correction box in the “fuel” tab under the main settings menu) as well as the fuel correction table by gear (uncheck gear correction box in fuel tables list in the “fuel” tab under the main settings menu). These things would get turned back on later when you add the flex fuel sensor or log data shows a need for these functions to be added.

The base ignition map looks good, but I’d update the split timing table to look something more like this:



Once you get fired up and idling, you'll have to play with the leading time and split at idle to find out what the car like best. I've found that for large streetport or bridge port engines, that 15L with a 10 degree split is a pretty good starting point. You’ll also want to updating the cranking timing table to just be a flat 8 degrees across the full temperature range. This is what comes in the factory base file from haltech and I’ve never had to modify it to achieve consistent cranking. I’d start there, then modify later if needed.

I usually always recommend starting with everything in open loop so its easier to sort out the true baseline, but in the case of drive by wire idle control I’ve found the function works so well with the haltech that its actually beneficial to start with closed loop idle control enabled. You'll want to go into the idle control function and change it from open to closed loop in the drop down. Of all the base settings, the only ones I'd update would be the DBW max position and PID scalar values highlighted below. The max DBW position is what the ECU references as 100% duty for idle control. On mine, I've run 25% and found this acceptable to cover the required range of control but my car is a semi port and requires a good bit more idle air than a half bridge will so by going with the 20% it will be slightly more precise and should still cover the range you need.



Once you get up and running, you’ll have to play with it to see where it idles best but for starting purposes on a half bridge, I’d target about a 1250 rpm idle so I’d setup the DBW idle control target rpm table as shown below.



You'll want to ensure the long term idle trim is enabled in the idle control menu, then I'd setup the idle control base output and long term trim table to be close to what I'm showing below.





Hope this helps.

Skeese

Reply
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
Hybrid G
Haltech Forum
30
Jul 27, 2010 08:24 PM
chris1966
Haltech Forum
8
Apr 4, 2007 01:00 PM
mikerx784
Haltech Forum
3
Jan 9, 2006 05:51 PM
BLUE TII
Haltech Forum
19
Jul 25, 2002 07:52 PM
0piston
Haltech Forum
6
Feb 14, 2002 12:06 PM




All times are GMT -5. The time now is 11:43 PM.