427 | Introduction to FuelTech:
Summary
In this webinar we’ll take an introductory look at the FuelTech ECU and the tuning interface. We’ll look at how to configure a base map, learn about FuelTech's ICF’s and how to add/remove them. We’ll also learn how to navigate the software and get the most out of it.
| 00:00 | Hey team, Andre here from High Performance Academy, welcome along to another one of our gold member webinars. |
| 00:05 | Today we're going to be having an introductory look at the FuelTech ECU, specifically, the FT600, although this will still be relevant to the 450, 550 and 550 lite. |
| 00:17 | The newer FT700 uses a different software for calibration, so not quite as useful for the newer range, but for the older range or existing range, this will be helpful to give you some introduction to how everything works and the tuning workflow that we're going to go through. |
| 00:36 | The car that we've got this installed in is our 2000 model C5 Corvette running a completely stock standard LS1. |
| 00:44 | Convenient aspect with the FT600 is that it also can control the 4L60E transaxle that's fitted to this, so it does have automatic transmission control functionality. |
| 00:54 | Giving it just a little bit more control than just the engine itself. |
| 01:00 | As usual we will have Q&A at the end of today's lesson, so if there's anything that I talk about you want me to expand on, please ask those in the chat and we'll get into those at the end. |
| 01:09 | I just do need to talk a little bit about the way we've got this ECU installed because it's not very typical. |
| 01:16 | We have got this installed in essentially a piggyback format, we've still got the stock ECU, basically keeping a lot of the vehicle electronics happy. |
| 01:26 | Traditionally, this probably isn't a conventional installation, I probably wouldn't go out of my way to go to this much trouble to get a FuelTech installed in this car, but we're just using this as a test bench here and we've got the ability to run multiple standalone ECUs which is why we've gone down this path. |
| 01:42 | I just wanted to cover that because getting a FT600 to run this vehicle and keep everything else happy is not exactly a straightforward option. |
| 01:52 | Alright, so there's a lot to cover here, let's just jump across to my laptop screen at the moment and we'll just sort of have a quick cursory introductory glance through the layout of the software. |
| 02:03 | So, at the moment we are on our fuel table here which is, we've got a single fuel table because we've got one set of injectors, we don't have stage injectors here. |
| 02:12 | This is set up at the moment with MAP versus RPM and we can see while I'm sitting here talking, the engine's idling at 750 RPM, we've got a blue crosshairs that shows where abouts we are accessing. |
| 02:24 | We've also got a graphical representation of the map out here on the right hand side and we can sort of move that around to align it to whatever we want to actually look at. |
| 02:33 | Always nice to just have something like this graphically, so we can just see if there's any glaring problems in our map. |
| 02:41 | One aspect that's really important to talk about with the FuelTech ECU is that it is not a volumetric efficiency based fuel model. |
| 02:50 | This is quite uncommon these days, maybe I'd say 10 years ago the injection time based ECUs were more common, these days everyone seems to have switched to volumetric efficiency. |
| 03:02 | Now, there are pros and cons, there's nothing necessary right or wrong with either option. |
| 03:08 | What we do find though is that a volumetric efficiency based fuel model does make a little bit more sense if we are going to be running flex fuel. |
| 03:17 | The reason for this is we can essentially work from one table because our engine's volumetric efficiency doesn't really change dramatically with ethanol content. |
| 03:26 | And this simplifies matters as our ethanol content varies. |
| 03:30 | In the case of an injection time based ECU, we physically need to tell the injectors how long to open at each combination of load and RPM. |
| 03:37 | Now, while I've been talking about this, you will probably see that the top of the fuel table here, it does actually say %VE and these numbers in here do look like they are volumetric efficiency numbers although I'd like to think that our stock LS1's probably still a little bit better than 79% peak volumetric efficiency. |
| 03:58 | The reason for this is there's multiple ways of viewing this table, so we can cycle through these by pressing the F6 key, so now we're looking at injector duty cycle percentage. |
| 04:06 | It is nice to get a bit of a sanity check on what our maximum duty cycle is going to be and we can see we're only sitting at 70% here. |
| 04:15 | If we press F6 again, this will now switch to fuel flow in pounds per hour. |
| 04:20 | And then if we press it again, this is really the crux of our tuning process here, we're now looking at injection time in milliseconds. |
| 04:28 | Now, there's a couple of different ways that manufacturers go about injection time based fuel models. |
| 04:34 | This as we can see here is directly requesting an injection opening time in milliseconds. |
| 04:40 | Another way that's really common, the way that Link used to do it, or still do it actually, as well as the older Motec 100 series is that they would have a master pulse width value. |
| 04:51 | And you could kind of set this to adjust the resolution of your table and then the actual fuel table itself was not injection time, it was a percentage of that master pulse width at 100 kPa, there's also a background manifold pressure compensation. |
| 05:07 | So, we would basically have numbers in the table that would be 0-100% but it's all based on that master pulse width value. |
| 05:14 | Here as I've mentioned, we're directly entering the injection time. |
| 05:18 | This can be a little tricky for people who are relatively new to tuning. |
| 05:25 | The reason for this is if we're talking about a VE based fuel model, the way that I demonstrate inside of our Practical Standalone Tuning course is to set up our base map and we can just start by chucking a value of let's say 50% everywhere in that VE table. |
| 05:41 | That's not to say that that's going to be right, but it's probably going to be close enough that we can get the engine physically up and running. |
| 05:47 | The problem with injection time based ECUs is that really the numbers that we need in the table to get the engine running are, so dependent on our engine capacity and efficiency, but also the size of the injectors. |
| 05:59 | So, if we go from let's say a 350cc injector to a 1000cc injector, we're essentially tripling the fuel supply, not quite, but you can do the math, and therefore we need to change the numbers dramatically in the map basically to get everything running. |
| 06:15 | If we did that we'd need to manipulate the numbers by, we'd reduce them by 2 thirds. |
| 06:21 | So, the numbers in this table is really important to get us into the ballpark. |
| 06:26 | So, how do we kind of know what we need? So, at the moment we can see that at the area that we're idling here, we're sort of running at about 2.6 milliseconds of injector pulse width. |
| 06:38 | The FuelTech does have a sort of a setup wizard that will create a base map. |
| 06:45 | And we can do that by going up to our file here, well when we open the software it'll give us the option, but seeing as I'm already running here, if we go to new, actually, before we do that, we'll see that there are sample maps for some engines, pretty limited, but under LS here, we've got a few options here. |
| 07:03 | Unfortunately, all of these are set up with massive injectors. |
| 07:07 | In stock form our LS1 is running 27 pound per hour injectors. |
| 07:13 | We can manipulate these based on the fact that this map will be 80 pound per hour but nothing that's really going to be helpful for us with a completely stock engine. |
| 07:21 | So, let's go new and we'll go through and sort of get an idea of how the setup wizard works. |
| 07:28 | So, for a start we can choose the ECU that we're setting this up for. |
| 07:32 | It's reverted to the FT600 because it knows that's what we're connected to. |
| 07:37 | Interestingly, we can select our vehicle mode between combustion, electric and hybrid. |
| 07:42 | Haven't dealt with hybrid or electric with a FuelTech, so we'll leave that alone. |
| 07:46 | And we can come through and set up what tables and functions we want available. |
| 07:51 | So, in our case we might want to add O2 closed loop control. |
| 07:55 | Don't really need anything else here. |
| 07:57 | Drag race features, I guess FuelTech is probably best known for success on the drag strips. |
| 08:02 | So, they do have a lot of very specific and very well thought out drag racing functions. |
| 08:08 | These are all available in this section here. |
| 08:11 | In our case this isn't a drag car, I don't need any of those. |
| 08:15 | Other functions, we can set up our internal data logger, in this case D cell fuel cutoff, our rev limiter, in our case we'd want two thermofans, maybe air conditioning if we are running that. |
| 08:26 | We can see there's a range of options here depending on exactly what you are wiring this up to. |
| 08:33 | In our case we'd want automatic transmission control as well. |
| 08:37 | And then we've got some other functions over here for our engine settings, sensors and calibration which I'm not going to touch on here. |
| 08:43 | We can click on next and it'll take us through to the engine setup, further into the engine setup. |
| 08:50 | So, we can choose between piston and rotary for our engine type. |
| 08:53 | Our main fuel map here, we can choose whether we're going to run alpha N with throttle position for our load axis or manifold absolute pressure. |
| 09:00 | And then we can set our maximum boost pressure, in this case obviously a naturally aspirated engine, so we'll set that to 100 kPa. |
| 09:07 | This is just to basically set up the base map. |
| 09:11 | Doesn't mean that you're locked into this, you can come back and manipulate any of these features at a later point. |
| 09:17 | Acceleration enrichment by TPS or map, we'll leave that alone. |
| 09:20 | Maximum engine speed, so again this is just for the sake of our map scaling. |
| 09:26 | And then our number of injectors and what we see is as we change the number of injectors down here, our predefined firing order options change as well. |
| 09:34 | So, we'll come through to 8, not 10, we'll come to 8. |
| 09:37 | And we can see we've got our predefined option there for a Chevrolet LS, otherwise, you can create a custom firing order as well. |
| 09:47 | So, you've got quite a lot of flexibility there. |
| 09:50 | Next we come through to setting up what sort of signal we're going to get from our RPM or engine speed crank sensor, sensor edge and then also our cam sync sensor as well. |
| 10:02 | In this case we're going to go with hall. |
| 10:04 | We can obviously choose between a range of trigger patterns here, quite a wide selection of trigger patterns. |
| 10:12 | In this case we'll leave that set to our 58X. |
| 10:15 | And we'll go to next. |
| 10:16 | So, our ignition here, we're going to go to sequential for our example. |
| 10:21 | We do need to be careful with our ignition output edge here. |
| 10:25 | This is the same for all ECUs. |
| 10:27 | In the majority, almost all cases, this will want to be or need to be a falling edge. |
| 10:33 | There are a couple of options between Honda and MSD where they work the other way. |
| 10:38 | And that needs to be a rising edge. |
| 10:40 | Now, if you get this wrong, what that's going to mean is that if you've set it wrong, it's going to be dwelling the coil while the coil shouldn't be doing anything. |
| 10:48 | So, if you're sitting here just keyed on, it'll actually be supplying energy, electrical energy to the coil and this is going to quickly destroy your coil. |
| 10:56 | So, a really good thing to keep in the back of your mind when you're setting up absolutely any ECU for the first time, I always start with the ignition coils disconnected until I know that I've got this ignition set up correct. |
| 11:09 | Move on to the next page now which is our fuel injection. |
| 11:12 | We can have multipoint, semi sequential or sequential. |
| 11:16 | Wherever possible we're obviously going to want to run full sequential. |
| 11:20 | And then we need to enter our primary bank fuel flow. |
| 11:24 | So, this is as it says just below, a sum of all of the injectors. |
| 11:28 | Now, I think we ended up at about 216 pounds per hour. |
| 11:33 | Next we've got our primary injector dead time and FuelTech do this in quite a unique way. |
| 11:40 | We can enter just a single value which is considered to be at 14 volts. |
| 11:45 | Most ECUs, and FuelTech do give you the option here, most ECUs will have a dead time table because our battery voltage will vary, even when we're just sitting here at idle, as our electrical accessories switch on and off. |
| 11:57 | So, we probably always, where possible, want to use an actual two dimensional table. |
| 12:04 | In our case, and this is something that FuelTech do not offer which is a bit problematic, in our case we actually want a three dimensional table. |
| 12:12 | And the reason for this is that the injector dead time is going to vary depending on our differential fuel pressure as well as our battery voltage. |
| 12:19 | And with the C5 Corvette here and with pretty much most late model vehicles, the fuel pressure will be fixed, it's a dead head or returnless system. |
| 12:31 | So, this runs a 4 bar, 58 psi constant fuel pressure. |
| 12:35 | And what this means is that we've got a constant 4 bar of fuel pressure on the top of the injector, but on the bottom of the injector it's exposed to manifold pressure. |
| 12:45 | So, this means that as we move the throttle and our manifold pressure changes, the differential pressure, which is simply the difference between the fuel pressure and the manifold pressure, is constantly changing. |
| 12:54 | So, to properly calibrate or characterise these injectors, we really need to be able to add differential pressure to the dead time table and we don't have that ability. |
| 13:04 | Anyway long winded way of getting back to this value, so if you want to use the dead time table, we want to actually set that to zero. |
| 13:11 | So, this is the only ECU I've actually come across that has this sort of functionality. |
| 13:16 | Not to say it's sort of right or wrong, but it is just a little different and we need to know how to deal with that. |
| 13:22 | We'll click on next and we can then come through to our throttle pedal actuator setup. |
| 13:27 | In our case we've got one electronic throttle body. |
| 13:30 | And here they've got quite a wide list, a long list of different models and I think from memory that was the one we had here and you can see it gives a description, 90 mL LS. |
| 13:42 | So, this is to pre configure the PID control algorithm for that electronic throttle body so, we get good control. |
| 13:51 | And I believe that there is also the option of sending your throttle body into FuelTech to have it characterised if it doesn't appear in that drop down list. |
| 14:02 | Idle actuator as well, so how our idle is controlled and as usual with drive by wire, we're using electronic control there, so nothing particularly unique there. |
| 14:12 | Then this is to generate the base map here, so some fairly basic questions here. |
| 14:20 | Compression ratio, low, medium or high? Not overly intuitive. |
| 14:26 | In our case we'll go with medium compression because it's neither of the other two I guess. |
| 14:31 | This is stock, 10.5 to 1 or thereabouts. |
| 14:34 | Fuel type, so this is really important because the stoic air fuel ratio of the fuel is going to have a big impact on the required injector pulse width to get us running. |
| 14:43 | So, we're on a normal pump gas. |
| 14:45 | And then camshaft profile as well. |
| 14:47 | So, low profile or high profile, again not maybe that intuitive or granular, I'm going to leave that at low profile because it is a stock cam. |
| 14:58 | So, the idea behind this I'm guessing is to create a base fuel and ignition map that's going to be suitable. |
| 15:04 | Click generate and it's going to do exactly that. |
| 15:07 | I'm not going to just generate that map though because we've obviously got a map here that's already developed and works. |
| 15:16 | What I wanted to talk about though is the map that it generated. |
| 15:20 | And it wasn't particularly great if I'm honest. |
| 15:24 | So, if we just take a quick look here in that idle area, again I've already mentioned, we're sitting at about 2.6 ms pulse width. |
| 15:31 | What I'll do is I will just open the map that it created. |
| 15:37 | So, we can actually sort of have a look at what that came out with. |
| 15:40 | So, yeah we do want to proceed here. |
| 15:44 | So, kind of maybe triple what we really need, at least double. |
| 15:48 | So, in that same area we've now got values of 6.3 ms. |
| 15:52 | The other thing is that this flat area that we've got at the base of this map, visually I mean you can sort of take a pretty educated guess that it's just not going to be realistic. |
| 16:04 | As we reduce our manifold pressure, we're going to need to reduce our fuel delivery. |
| 16:09 | So, straight off the bat I sort of looked at this map and thought well yeah it's possibly going to get the engine running, but I could be pretty confident that it was going to be pig rich and it's going to need a huge amount of work. |
| 16:20 | Numbers in the top end here, 19 ms and I think we ended up around about 13. |
| 16:27 | In saying that though, I'm always going to want to start from a place where we are conservatively rich and conservatively retarded with our timing. |
| 16:36 | We'll have a look at what our ignition table looks like as well. |
| 16:40 | And this one I don't really quite know how we got here. |
| 16:45 | We've got values at 400 RPM of 25 to 29°. |
| 16:52 | There's a big hole that sort of happens at low load at 4000 to 5000 RPM and it's just, I could take one look at this and also know that that's not very realistic. |
| 17:02 | So, let's just read back out of our ECU, so we can see where we actually ended up. |
| 17:08 | And get a better idea of what things actually look like once I got dialled in. |
| 17:12 | So, this is the ignition map once I've finished with it. |
| 17:15 | And we can see no big hole here at 4500, 5000 RPM and we've got numbers that are a little bit more sensible. |
| 17:24 | That being said, I'm not sure if the increase in ignition timing at 400 RPM is some semblance of idle ignition control, but it also has idle ignition control anyway. |
| 17:36 | For those who aren't sure what I'm talking about here, idle ignition control is where the ECU uses the ignition timing at idle, by advancing and retarding that, within bounds it can add or subtract engine torque and basically control our idle speed. |
| 17:52 | So, it's like a fast quick way of making an adjustment to our idle speed, it's still got the drive by wire working there in the background. |
| 17:58 | So, a little odd there, I mean it did get the engine up and running, but yeah, we were pig rich as I'd expected. |
| 18:06 | Now, there we see we've got 14 to 15 milliseconds at wide open throttle. |
| 18:11 | So, yeah it's quite a long way out of the ballpark from where we ended up. |
| 18:17 | But I mean in saying that, it's definitely not targeted as a system that's going to give you a finish map that you can go straight to the racetrack with, it is just a base map generator, it's just that I don't think it probably got as close as I would have liked to have expected. |
| 18:34 | Now, once we've built our base map using that wizard, you did notice at the start we could turn some options on and off. |
| 18:42 | And don't think that you have to make those decisions and stick to them forever. |
| 18:46 | If you want to change that later on, we can see we've got our map options here, we'll open that up and this is exactly the same page that we looked at right at the start. |
| 18:55 | So, we can always come back and review this and alter it at a later point. |
| 19:00 | Let's come back into our fuel map here and we'll just sort of have a look at some of the ways we can make changes to our values. |
| 19:07 | You can right click here and this will show you all of the options. |
| 19:11 | So, we've got increment fast and increment slow. |
| 19:15 | So, plus minus, control plus minus and shift plus minus, those are the main ways we're going to be making changes here, so we can just come to this cell here and watch what's happening here, so 4.115 milliseconds, if I press the plus key, that adds .01 milliseconds, obviously minus key removes .10 milliseconds, the control and plus adds .1, so a bit of a coarser change if you're sort of a fair weight off the ballpark and obviously control minus removes that and then shift and plus and minus will add .001 or remove .001. |
| 19:50 | So, a few options there to make our changes. |
| 19:54 | The other way that I like to make changes when I'm on the dyno though is using the multiplication or making a percentage change. |
| 20:02 | So, if we just come here at the moment we can see in our data down the bottom here we've got our O2 closed loop control, so our wideband input I should say, we've got our O2 target, so we're sitting at a .95 target, we're right on our target here, but you can see at the bottom there that that is due to the O2 correction or closed loop short term fuel trim adding 5%. |
| 20:23 | So, what we could do here, we are sort of interpolating a little bit between 35 and 40 kPa here. |
| 20:30 | What we can do is highlight both of those cells and by pressing the M key, what we can do is add 1.05, we'll see if that gives us our result, we can see, yeah I mean it's still a little bit of work to do, but that's dropped from 5.5% to about 1%. |
| 20:45 | So, that's a really quick and easy way, particularly if we're doing a ramp run on the dyno and we're looking at an area that's maybe 5% rich or lean, we can use that multiplication function. |
| 20:55 | The other way we can make our tuning changes is by pressing the A key and that'll allow us to add or subtract directly. |
| 21:01 | So, a lot of flexibility there. |
| 21:03 | We can also make block changes by holding down the shift key and using our arrow keys we can highlight an entire block of cells to make changes to. |
| 21:11 | We can see that until we commit those changes, these changes do take place but we can see that those cells that I've just made changes to there, have this sort of black square around them showing that they aren't currently committed, so we can click either confirm or undo buttons, and in this case I'm just going to undo those changes because I don't want them there. |
| 21:32 | The other aspect you're probably going to want to make changes to is the map breakpoint, so we can do that by clicking on the edit axes tool here. |
| 21:43 | So, we can add or subtract from our axes here, we can directly enter or we can use the insert or remove column, likewise for our row axes. |
| 21:54 | A nice feature with this, no different to the majority of ECUs, but it will interpolate. |
| 22:00 | So, for example when I was on the dyno tuning this for a worked example, I found that there was a gap, there's an area between 4000 and 4500 where the engine was, I can't remember, a little lean or a little rich. |
| 22:14 | And at 4000 and at 4500 it was spot on. |
| 22:17 | So, just came in here, entered a new column here, a new column at 4250 RPM. |
| 22:23 | So, that gave me finer control. |
| 22:26 | The other aspect actually with the base map that was generated is the breakpoints were a little bit hectic, so let's just open our wizard base file again. |
| 22:36 | So, we can just see that, should have pointed that out. |
| 22:38 | So, yeah you can see the breakpoints here, it sort of looks like it's come from the opinion that more is better when it comes to breakpoints. |
| 22:47 | Absolutely no need to have breakpoints every 200 RPM which we've got all the way up to 3000. |
| 22:53 | Then it gets a little bit more realistic with breakpoints every 500 RPM. |
| 22:57 | That's just giving us a massive amount of work to do that's unnecessary. |
| 23:01 | Likewise if we look at our load axis, every 10 kPa. |
| 23:05 | So, generally I like to have my breakpoints for RPM about every 500 RPM. |
| 23:10 | I will generally put some finer breakpoints in around the idle area and that transition off idle just, so I've got a little bit more control. |
| 23:19 | And then at a later point if I find there's an area like I've just discussed at 4250 where I want to add a little bit more control to my fuelling, I can simply go ahead and add that in. |
| 23:29 | With our load, I've actually left this around about 10 kPa for our worked example and I've actually added one in here at 35 kPa because while we are sitting here at idle, generally if I've got the radiator fans and the aircon off, it will actually sit right smack in the middle of that 35 kPa row, so it just gave me a little bit more control over that. |
| 23:53 | Other functions here, if we go to the right, sorry right click, actually let's try highlighting something for a start. |
| 24:01 | So, if we highlight a section there of cells, we then have the option for interpolate vertical, obviously if I'm horizontal we can interpolate horizontal and we also have a smooth function. |
| 24:12 | So, if you wanted to smooth this map, which may or may not be beneficial, we can highlight the entire map and then click on S for smooth, I'm not going to do that, again this is essentially a tuned map. |
| 24:26 | Another feature while I'm on the fuel map, this obviously works on the ignition map as well, is if we press the G key, that will jump to the current active cell which is super handy while we're on the dyno as we're steady state tuning, we can move up in the load, just press the G key rather than have to actually chase the individual cell. |
| 24:43 | Now, as an interesting fault I think I'd call it, if we go to a new map like our ignition map and I haven't clicked into that at the moment, press the G, it doesn't do that, it takes us instead to our timing shift compensation which is not overly useful, so we need to remember if we do that for our fuel link, it's going to do exactly the same thing, we need to remember if we want to use that function, we have to click into it first as well. |
| 25:12 | Alright, so I think that covers our fuel link. |
| 25:15 | So, just if we press F6 again, come back through our %VE, this is not how we're going to be tuning the ECU. |
| 25:24 | It's sort of a guesstimate, an approximation of our VE, but again it's not true VE. |
| 25:30 | It is nice to be able to check as I mentioned our injector duty cycle, but most of our tuning we are going to be, for the majority of our tuning I would suggest you're on the injection time mode of display. |
| 25:43 | One of the aspects that we do need to be mindful of, particularly if you're used to tuning volumetric efficiency based fuel models is that when you're on an injection time based fuel model, if we want to make a change to our air fuel ratio target, we actually need to do that within this table. |
| 26:00 | VE on the other hand, once we have tuned the VE table, so that the ECU is hitting the target air fuel ratio, after that if we want to make a change to the air fuel ratio, we do that within the target table and the ECU will adapt the injection time to suit. |
| 26:17 | That assumes that we've correctly entered our injector characterisation data, it assumes correct engine capacity and it also assumes that we have got our engine capacity fuelling and fuel type and injector characterisation is what is required. |
| 26:36 | If we come to our quick access panel on the left hand side and we will look at that O2 closed loop target table. |
| 26:44 | So, this looks just like it would in a VE based fuel model, but this is for the closed loop control only. |
| 26:51 | So, it will affect our final air fuel ratio, but only because it'll have the O2 correction doing much more work. |
| 27:00 | So, the workflow here for injection time based is we're going to set our target lambda table, target air fuel ratio table to our desired air fuel ratio or lambda values, then we're going to tune the injection time based map until we get there, but then if we want to make a further change to our air fuel ratio target, see if the engine perhaps responds to more or less fuel, we need to update both our O2 target table, lambda target table as well as our main injection time table to get there. |
| 27:32 | So, there's a little bit of workflow difference to a VE based fuel model. |
| 27:37 | Under our O2 closed loop control, if we come to that here, we've got a bunch of control around this. |
| 27:43 | So, we can set a minimum engine temperature if we want. |
| 27:47 | I usually allow it to work while the engine is warming up, I see no reason not to. |
| 27:52 | One problem, problem I guess is maybe a little bit excessive, but one aspect that I've noticed here is that they've tried to keep things reasonably straightforward and simple here and we don't have a delay table versus RPM. |
| 28:08 | So, we've got smoothing for low load which is a number that basically reduces the speed of the O2 control. |
| 28:16 | And the idea behind this is that at idle we do have a transport delay. |
| 28:20 | So, it takes time after the O2 correction has made a change for that change to actually make its way through the engine, out through the exhaust system and then be finally measured at the O2 sensor. |
| 28:32 | So, if essentially the smoothing is too low here, this is going to end up with the O2 control hunting. |
| 28:42 | So, I found that to start with, I think this number by default was maybe somewhere around about six. |
| 28:47 | And I found that essentially the O2 control was hunting, it was going plus and minus and we were slowly seeing the actual air fuel ratio move rich and lean of its target. |
| 28:58 | So, I ended up going out to about 20, 25 on this, but then I found that when I was actually, trying to tune the engine at 2500, 3000 RPM under steady state, the O2 control was too slow. |
| 29:09 | So, it's a bit of a compromise there. |
| 29:11 | I would personally like a little bit more granularity around that. |
| 29:15 | Bunch of other controls here that we can enable and control how this all works. |
| 29:22 | I don't really think I need to go into too much detail there. |
| 29:25 | Now, we've got our control limits. |
| 29:27 | So, you can control the upper and lower trim, so basically the authority that that O2 control has to make changes based on our load. |
| 29:38 | So, generally what I'd probably do once you've got everything tuned here is I'd probably be setting our upper bounds here at wide open throttle to sort of in the region of plus or minus 5%. |
| 29:50 | If we've done our job properly then that should be more than enough control there. |
| 29:57 | Down at idle particularly, I'd like this table to also have RPM as an axis option as well. |
| 30:03 | But down at idle I generally would like to have a little bit more control because that's where the engine is going to be prone to heat soak. |
| 30:09 | You can see as I've been talking, that O2 control, so sitting around about 6% there. |
| 30:15 | Though I did undo that initial change that we made, so that didn't take effect. |
| 30:20 | I'd probably like 15-20% control there and generally sort of smooth between those bounds. |
| 30:25 | But this is all sort of personal preference there. |
| 30:28 | You can set your wide open throttle limits to zero to essentially disable close loop control if you want. |
| 30:34 | Moving down, we'd look at our battery voltage compensation. |
| 30:39 | So, this is the dead time table, if you're not using that single value. |
| 30:44 | Otherwise, by default this table will be set to zero. |
| 30:47 | So, you've got two ways of addressing that. |
| 30:49 | As discussed I would always suggest using the full 2D dead time table if possible. |
| 30:54 | But as already discussed, this really for our application should be a 3D dead time table. |
| 31:00 | That actually raises the question of how do we set this? Generally, the dead time is going to have a higher effect on your fuelling at low load and idle, so I would be using values that make sense for your particular injector with the differential pressure that you're actually going to be seeing in the idle area. |
| 31:20 | And know that you're going to essentially be baking in some errors elsewhere. |
| 31:25 | Coming down, well the ignition timing, I don't think there's really anything particularly more that we need to deal with here. |
| 31:31 | Axis setup is exactly the same. |
| 31:33 | We can make all of our tuning changes in the same way. |
| 31:37 | We've got an overall ignition trim, so it's always important to make sure that our trims aren't doing anything weird. |
| 31:44 | Actually, let's just come back up for a moment as well. |
| 31:46 | A really good trick is always just to make sure that, a trap to avoid I should say, is to always make sure that there are no trims occurring in the area that you're expecting the engine to normally operate. |
| 31:59 | So, what we can see here is our engine temperature compensation table. |
| 32:04 | Between 50°C and 100°C, we've got 0% trim in there. |
| 32:09 | I have been caught out a few times where there might be a trim at maybe 60°C or 70°C let's say and it's in an area that we sort of may end up coming back into and you'll get inconsistent fuelling which can be really frustrating. |
| 32:24 | We've got our intake air temperature compensation table as well. |
| 32:27 | I found the default values in that base map that was generated by the wizard also probably a little bit questionable. |
| 32:35 | We know from the way the air density changes in relation to air temperature, typically, we're expecting the fuelling to need to change by about 2-2.5% per 10°C and I can't remember what those base numbers were, but they definitely weren't that. |
| 32:50 | So, I've adjusted that there, set our zero point at 20°C and then as we move down or as our temperature gets colder, our air is getting denser, so we need to add more fuel to maintain a consistent air fuel ratio. |
| 33:04 | Of course, as the air temperature increases, it's less dense, so the opposite occurs. |
| 33:09 | Now, this is just a starting point, always helpful to just monitor what's actually happening as our air temperature changes. |
| 33:16 | Obviously, sitting here at idle with the bonnet closed at the moment, we're sitting quite high at 57° but it can be beneficial to purposely do some runs with vastly different air temperatures, so you can actually just see how that compensation is working and whether it needs any tweaking. |
| 33:35 | That 2-2.5% is theoretical, but depending on where your sensor is fitted, it can also be affected by heat soak as well. |
| 33:43 | So, what we really want to know for the values for this table, for the axis value for this table is the charge temperature as the air goes past the intake valve and makes its way into the combustion chamber and we can't easily measure exactly that, so we're sort of inferring that from the air temp sensor and there is the potential for some air to creep in there. |
| 34:08 | Right, let's move down here, we've got our other functions here, so we can set up our datalogger, our idle speed control, actually what I want to do is just come down to our advanced map options for a start, so under engine settings. |
| 34:22 | So, this gives us the ability to control what, adjust I suppose I should say, what controls are available. |
| 34:30 | And this allows you to, for example for our O2 closed loop control mode here, I've got it in default, but if we go to custom, that enables us to change the PID values of the O2 closed loop. |
| 34:42 | So, it says not recommended, basically trying to make it as easy to use as possible for those who are just getting into EFI tuning. |
| 34:51 | And then as you get a little bit more confident, you can start making some of these advanced changes, so you've got a little bit more control. |
| 35:01 | For example, here for our ignition maps and our fuel maps, we've got the option of table which is how I prefer to tune or we can go to a single line which is a 2D ignition map with up to 32 map or TPS cells. |
| 35:16 | Not sure why we would want that for ignition or for our fuel, but it is an option there. |
| 35:24 | We can also control our pin assignments as well, we've got this set to automatic at the moment, but you can control that manually. |
| 35:31 | I think that probably covers, actually no I wanted to talk about the idle speed control here, so this is one that I have changed. |
| 35:36 | So, I'm on custom here which again gives us our PID control changes, so we'll come back up to our other functions and our idle speed control. |
| 35:46 | Putting that to custom, it brings in these advanced options here, so we can control our proportional, integral and derivative gain. |
| 35:54 | I've actually found here, so far with my testing, and I'm relatively fresh to this, that our idle ignition control is pretty slow to make any moves. |
| 36:03 | We are sitting right on my target at the moment of 750 RPM though. |
| 36:08 | We've got this dead band that we can adjust. |
| 36:10 | So, basically how this works is that if we're within plus or minus 25 RPM of 750 or whatever our target is, the ECU considers us to be on target, so it's not going to actually, try and drive any changes there. |
| 36:24 | Idle speed control settings as well for the closed loop are quite basic. |
| 36:30 | We've got our idle speed control and our reaction level. |
| 36:34 | Gives us some suggestions over here on the right hand side as to what to set those to, so we've got control that sets the speed at which the idle control will allow the engine RPM to approach the established target and then the idle reaction level which basically controls how aggressively it will chase. |
| 36:54 | So, it's kind of setting our PID for our actual drive by wire opening. |
| 37:01 | Interestingly, position on idle as well, automatic or fixed, so basically whether we're open loop or closed loop, I actually recommend setting this to fixed which I'd really prefer to have some closed loop control of this and I've found that I've got reasonably good control with our reaction level set to two here. |
| 37:22 | Initially I was having some trouble with that automatic mode where it was hunting a little bit, but by reducing the reaction level, I got a result that worked, but yeah, it is an interesting idle control setup, it's quite basic and doesn't really give the user a lot of levers to pull if you've got problems with that idle speed control. |
| 37:46 | We've got also our hot and our cold idle position reference for startup as well. |
| 37:52 | And I think that's probably all we really need to discuss in there. |
| 37:58 | Not a lot else that I really want to go over here, so this is probably a good time, if you've got any questions to start asking those, I do want to show you through the datalogger as well because that is quite helpful. |
| 38:10 | Before we do, so I'll just cover quickly off the engine settings that we've got down the bottom here and I'll go through sensor calibration as well. |
| 38:17 | What you can do with this quick access panel is anything that you're not wanting to view, we can just click on the left hand side and that'll close it down, just makes it a little bit quicker and easier to navigate things. |
| 38:30 | So, with our engine setup, this basically covers off all of those options we had in the wizard that generated the map, so we can come back here and make any adjustments as required, so again we're not locked into anything that we've made when we're using that map wizard to generate our map in the first place. |
| 38:51 | So, we'll go over our sensor calibration, sensors and calibration. |
| 38:55 | We've got our inputs here which define all of our white wire inputs here, we can adjust those by clicking on them. |
| 39:03 | We've got our map sensor here and that can, there is an onboard map sensor, so we need to select the signal source, in this case obviously we're using one of the external wires, so we'll go back to our inputs and that's our map sensor here. |
| 39:16 | And then we can use this drop down menu here to choose the sensor we're using. |
| 39:22 | And this is another area where this can be quite limiting with the FuelTech, they don't necessarily have a lot of predefined options. |
| 39:30 | For our map sensor, in our case we are running the GM1 bar, so that one was nice and easy, however particularly for I think the oil pressure sensor, yeah I had to go to custom on this and we're using a 896 kPa sensor, can't quite do the math in my head of what that works out to be, I think that might be 130 psi, this is a unique GM sensor. |
| 39:57 | So, we don't have one from the drop down menu, but when we get to engine temperature and air temperature, this is where things get a little bit weird because if we go to our drop down menu, we have literally four options. |
| 40:10 | In our case fortunately there is a predefined setup for the GM temperature sensor. |
| 40:15 | But if you don't have one of these very limited range, then you're going to need to set up a custom sensor. |
| 40:22 | We can do that here, enables the interpolation table, we've got the pull up, so, for a temp sensor we will want that pull up enabled. |
| 40:31 | But the problem is if you've got an NTC temperature sensor, the calibration data is always going to be temperature versus resistance because the voltage is going to depend on what the pull up resistor inside the ECU is. |
| 40:46 | So, what this means is it just makes it a little bit more difficult for most people to figure out what the voltage is going to be based on the internal pull up on the FuelTech, I think it's a one kilo ohm pull up from memory. |
| 41:02 | But it just makes it a little bit more difficult, it's just a voltage divider bridge ultimately, so we are actually adding a little quick spreadsheet tool into our worked example on the FuelTech FT600 that's going into our practical standalone tuning course worked example library within the next few weeks. |
| 41:20 | That'll make it easier for people to just take the data from that calibration table and then convert that straight into a voltage. |
| 41:27 | So, I think this is an area where it would be nice to have a little bit more control, sorry a little bit wider range of predefined sensors. |
| 41:37 | For our fuel pressure, again that was a custom, that's a 0-150 psi sensor. |
| 41:42 | So, we can just enter those values there as required. |
| 41:45 | Much easier on a pressure sensor because we only really need two points for those. |
| 41:52 | Got our pedal position here and our throttle position. |
| 41:55 | So, obviously with drive by wire we have two pedal position sensors and two throttle position sensors. |
| 42:01 | There is a specific calibration process that we need to go through for that which we can find up here. |
| 42:06 | We can click on that, I'm not going to go through this now. |
| 42:09 | But there is one oddity here that we need to make sure that we follow. |
| 42:14 | This is documented in the manual, but I know people, including myself sometimes, don't read the manual. |
| 42:20 | Once you've gone through the calibration process, I'll just click cancel out of that, you need to actually then write to the ECU and then read back from it. |
| 42:28 | And if you don't do that then you'll find that basically when you power everything down and restart it, that it's lost that calibration for the pedal and drive by wire position, not quite sure why they do it in that way, but there's obviously a reason for it. |
| 42:46 | OK, one of the nice functions with the FuelTech is the data logger and the ability to use the O2 correction overlay. |
| 42:54 | So, we'll click on the data logger to open that up and then we can click download, I'll just download the last log file that I think was a ramp run on this particular car as part of the worked example that I was filming. |
| 43:06 | So, that'll download the log file and then open it. |
| 43:09 | It's a fairly intuitive, easy to use logger. |
| 43:12 | We can see, if we come back to our actual FuelTech here, we can control our data logger here, start the log, stop the log and then clear our logging memory. |
| 43:22 | Go back over to our data logger. |
| 43:24 | So, we've got in a group one at the moment which has automatically opened here, we've got the parameters that are visible, we can see a timeline down the bottom, we can sort of drag ourselves to the area that we're actually interested in. |
| 43:37 | So, in our case we want RPM, let's get rid of TPS. |
| 43:41 | I don't really care about manifold pressure because I was at wide open throttle. |
| 43:45 | We want our O2 target which, and then we want our O2 close loop and then we want our O2 correction. |
| 43:52 | And that gives us an idea of what was happening. |
| 43:54 | So, if we look at these lines here, we can see that our air fuel ratio being measured, always pretty much right on our target which is ideal. |
| 44:03 | But we want to see what the O2 control, the short term fuel churns were doing. |
| 44:07 | So, we can see that value here at the cursor position, minus .7%. |
| 44:12 | The other aspect here, if we click on follow cursor, then it'll do what it says on the label, as I drag the mouse across here, what it's going to do is just give us the values from wherever we were accessing. |
| 44:25 | So, we can see as I sort of drag through here, the maximum trim we're seeing was about negative 1%. |
| 44:30 | So, this is right at the end of tuning, I was pretty happy with that. |
| 44:34 | If I'm within plus or minus 1%, I'm always going to be pretty comfortable with that. |
| 44:39 | And of course I'm leaving that O2 close loop control functioning as well. |
| 44:44 | So, it's there to pick up the pieces if we see some day to day variations, that's why we have O2 control. |
| 44:50 | What we can do though is come up to the toolbar here and we've got this O2 correction overlay. |
| 44:55 | So, what that will do essentially is give us an overlay of the trims that were being applied during the ramp run and we can see here from 2500 to 6000 RPM, we can see we started at 100 kPa and then just restriction with our intake, we've dropped down a little bit here. |
| 45:14 | But we can see again those trims are always pretty close to zero. |
| 45:18 | And what we can do is we can send those changes to the FT Manager by clicking this button here and it'll automatically update the map, the fuel map, or we can uncheck all and maybe we just want to be very selective of what we're actually, going to send through. |
| 45:33 | This isn't probably a way that I would usually tune when I'm doing a ramp run. |
| 45:39 | The reason for this is, as you can sort of see, we're taking a bit of a line through this table, sort of something like this. |
| 45:46 | We can see it over here exactly where we were accessing. |
| 45:50 | And if I'm going to be interpolating, I want to make a change to the surrounding cells as well, so what I'm meaning by this is if I was going to be making changes to our 100 kPa row at 2500 to 3000 RPM of minus .7%, I would also probably be wanting to do that to the 90 kPa row. |
| 46:08 | Likewise in this area, I'd probably be wanting to extrapolate those changes up to the 100 kPa row as well. |
| 46:15 | So, this will only make changes to the specific cells that we were accessing. |
| 46:20 | Is however more useful in my opinion, if you are going to go and gather a lot of data out on the road, maybe drive the car around using a good combination of varying the load and RPM, then you're going to have a lot more data in this table and then you can apply those changes. |
| 46:38 | But it's personal preference whether you send straight to the FT Manager or you basically look at the trends you're seeing and then manually apply those trends either will work. |
| 46:50 | In this case it's easy to take that data straight from a ramp run datalog here but when you've got maybe 20 minutes of driving data and you're varying the throttle position and the RPM, it's very difficult to use the XY plot like this to actually make those changes. |
| 47:08 | Alright, I think that'll cover us for our introduction, we will be having further webinars coming up on some of the more specific functionality such as cold start enrichment, acceleration enrichment and all of the other functionality that goes along with this. |
| 47:24 | This was just designed to give you a bit of a snapshot of the FuelTech system, how it works and some of the functionality in it. |
| 47:31 | So, for now we'll head across and see if we've got any questions. |
| 47:35 | If you do have more, please let them come, keep coming. |
| 47:38 | Looks like I've got one at the moment from CL Audio Tuning. |
| 47:42 | Derivative is really high now, the idle PID I've got on the screen, it's at 24. |
| 47:48 | OK, the answer there is it depends. |
| 47:51 | I absolutely understand what you're talking about, normally a lot of ECUs, these derivative PID gains, proportional, integral and derivative gains will be in the range of maybe .1, maybe .05 or something of that nature. |
| 48:06 | I have found a few ECUs, Haltech's another example where it's sort of a just a number that is not necessarily related directly to what the proportional gain actually is, so you could end up with numbers in the 10s or even the 100s. |
| 48:22 | So, yeah that's actually the default value, I think I've probably raised it slightly there. |
| 48:28 | Actually, no I haven't changed the derivative at all, so that's the default value when I change it to custom, so yeah this is just the sort of relationship of these numbers of how FuelTech have dealt with them. |
| 48:39 | What I always do, so that it sort of takes the effect of this out of the equation, so, if you come from MoTeC or maybe a link where those values would be less than one, you come into this where you've got a number of 24 which seems nonsensical, if you're trying to tune your PID gains, what I always do is start by making a big change, let's start by doubling or halving the value. |
| 49:04 | Straight away that's going to give you a really good understanding of the power of that value and it'll help you quickly creep up into the range, into the ballpark of where you need those gains to be set to get good control. |
| 49:16 | If you start making small changes, we start from 24 there and we go to 23, it's probably not enough of a change to really know what that's done and it can take a very long time to sort of find your way into the ballpark range if you go down that path, so yeah I totally get what you're saying, but some ECUs treat this as sort of not a true PID gain I would say. |
| 49:43 | Alright, looks like that's all, so we will leave it there, remember if you've got further questions after this webinar has made it into the archive, you can ask those questions in the forum and I'll be happy to answer them there. |
| 49:57 | Thanks for watching and we'll see you next time. |
00:00 - Introduction to FuelTech ECU
00:36 - FuelTech FT600 Overview & C5 Corvette Example
01:48 - Piggyback ECU Installation Strategy
02:08 - Software Interface & Fuel Table Layout
02:28 - MAP vs RPM Configuration
02:47 - Injection Time vs Volumetric Efficiency Fuel Models
04:00 - VE-based Model Advantages for Flex Fuel
05:18 - Injection Time Direct Entry Method
07:00 - FuelTech Setup Wizard Overview
07:48 - Sample Maps Library & Limitations
08:48 - ECU Selection & Vehicle Mode Configuration
09:58 - Engine Setup: Load Axis & Boost Pressure
10:59 - Injector Configuration & Firing Order
11:57 - RPM Sensor Setup & Trigger Patterns
13:28 - Ignition Configuration & Output Edge
14:52 - Fuel Injection Sequencing Mode
16:08 - Primary Injector Dead Time Setup
18:04 - Returnless Fuel System & Differential Pressure
19:47 - Electronic Throttle Body Setup
21:00 - Base Map Generation Questions
22:20 - Base Map Analysis & Evaluation
24:02 - Fine-tuned Ignition Map Comparison
25:40 - Map Options & Feature Management
27:00 - Fuel Map Cell Editing Methods
29:00 - Multiplication & Percentage Changes for Tuning
30:36 - Block Changes & Shift+Arrow Selection
31:40 - Map Breakpoint Editing & Interpolation
33:00 - RPM Breakpoint Strategy (500 RPM intervals)
34:30 - Load Axis Breakpoints & Idle Control
36:00 - Alternative Display Modes (VE & Duty Cycle)
38:45 - Injection Time-based Fuel Model Workflow
41:30 - O2 Closed Loop Control Setup
43:07 - Transport Delay & Control Smoothing
47:00 - O2 Control Hunt Prevention
48:58 - Control Limits & Authority (Trim Bounds)
51:00 - Battery Voltage Compensation & Dead Time Table
53:00 - Ignition Timing Controls
54:00 - Trim Avoidance Strategy (Engine Temperature)
57:00 - Intake Air Temperature Compensation
59:40 - Charge Temperature vs Sensor Temperature
65:00 - Advanced Map Options & PID Control
67:00 - Idle Speed Control (Custom Mode)
70:00 - PID Gains (Proportional, Integral, Derivative)
72:05 - Idle Ignition Control Speed
73:40 - Dead Band & Target RPM Control
76:00 - Idle Speed Closed Loop Settings
78:21 - Throttle Position Mode (Fixed vs Automatic)
83:00 - Data Logger & Sensor Calibration
85:48 - Sensor Configuration (Inputs & MAP)
89:22 - Custom Oil Pressure Sensor Setup
92:20 - Temperature Sensor Options & Limitations
95:14 - NTC Sensor Calibration & Voltage Divider
98:34 - Fuel Pressure Sensor Calibration
