Our VIP Package gets you every single course at 80% off the individual price. For a limited time, save an additional $100 with coupon code 100VIP. Learn more

Practical Standalone Tuning: Step 1: ECU Configuration and Testing

Watch This Course

$229 USD

Or 8 weekly payments of only $28.63 Instant access. Easy checkout. No fees. Learn more
Course Access for Life
60 day money back guarantee

Step 1: ECU Configuration and Testing


00:00 - The first step of our 10 step process is to configure the EMtron ECU and this essentially consists of making sure that all of the inputs to the ECU are wired to the correct location, correctly allocated in the EMtune software, correctly calibrated and therefore giving us sensible and accurate readings.
00:19 At the same time we also need to configure our outputs, making sure that any auxiliary outputs that we have wired to the ECU are also correctly wired and calibrated, configured correctly and then test these to make sure they work.
00:34 We've also got some setup configuration to do with our fuel and our ignition outpus as well so that everything is set up ready to drive the system configured for the RB26 engine.
00:47 Alright let's dive into our EMtune software and at the moment we've got the software open, we want to start by using the open ECU icon over here on the left hand side and that will get us online with the ECU.
01:00 Now once we're online we can see that by default it opens up here showing us the volumetric efficiency table under the tuning tab but we're getting a little bit ahead of ourselves here so what we want to do is just move across for a start here to the config tab, we'll click on that.
01:16 Now we've got a range of options or sub tabs here and generally as a workflow I'm going to move here from left to right so we'll start by clicking on our engine setup.
01:26 We've got a number of parameters or options under the engine setup and again we're going to move in order here so we'll move down and we'll start by clicking on engine main.
01:38 Some pretty self explanatory setups here, for a start we have the number of cylinders and our engine capacity.
01:45 Given that we are running a volumetric efficiency fuel model, the engine capacity in particular is really important.
01:52 It should go without saying however we can find that the engines will be fitted with oversize pistons or even stroker kits that can affect the actual engine displacement so we want to be very careful that we do have this correct.
02:08 Now if we move down the next option we have is our engine type.
02:11 This is simply whether it's a 2 stroke or a 4 stroke engine.
02:14 Again pretty self explanatory here and most of the time we will be dealing with 4 stroke engines.
02:20 Now we have some settings here which you are most likely going to be able to leave pretty close to stock.
02:26 We start with our crank RPM exit.
02:29 So this is essentially used to determine the engine speed considered to be running.
02:35 So above this the ECU will consider the engine to be running.
02:39 So we really want to choose this that it is a little bit higher than our normal cranking RPM.
02:43 So generally somewhere in the region of about 400 RPM is going to be suitable for that particular parameter.
02:51 We've got our crank RPM entry so this is the RPM above which the ECU considers the engine to be cranking so again we can see that the typical RPM there is 150.
03:02 We've got a default value there or a base value there of 90 RPM.
03:06 Essentially what we want there is a value that is below normal cranking or continuous cranking RPM so of course we can always check this as well, want to make sure that when the engine is cranking, even with a slightly low battery, we are above this threshold.
03:21 We've also got our engine speed valid and our engine speed invalid so our engine speed valid, as we can see from the help file this is just saying that this is the engine speed which the ECU considers not stopped so in other words the engine is running.
03:33 Default value there, 60 so we'll just change that across and the engine speed invalid, so this is where the ECU considers the engine to be stopped and again we'll just change that to our default value.
03:45 So some pretty basic setup functions there.
03:48 Now when we are navigating the options here in terms of the taskbar, the tabs, we can use our mouse and left click on them however once we are within the tabs we can also use the esc key and use our up and down arrow keys and this comes down to a personal preference, I generally like to use the mouse as little as possible because once the car is up and running it becomes very difficult to be accurate so using the esc key and our arrow keys I find a little bit easier.
04:19 Our next option down is our engine firing order so we can click on that.
04:23 Pretty self explanatory here, we've got the firing order for our 6 cylinder engine here And we can see the base angles for each of the cylinders so obviously 720°, in an engine cycle there and we have 120° between our adjacent cylinders.
04:43 So not particularly difficult to set that up there.
04:47 We can click OK and exit out of that.
04:49 The next option if we press escape again, we have our bank cylinder setup.
04:52 So in this case an inline 6 cylinder we've got all 6 cylinders allocated to bank 1.
05:00 On the other hand if you've got a V configuration engine you can define which cylinders are considered to be on which bank and this can be helpful for a number of aspects with the tuning, in particular if you are running individual lambda inputs per bank, that's going to define which bank the lambda sensor is set up on.
05:20 In our case we've got nothing to do here so again we'll click on OK.
05:25 We'll come down to our engine decode setup, I'm not going to go over this at the moment, this is essentially EMtron's way of defining the trigger inputs so we're going to cover that in a separate module along with our crank index offset setup, our crank index setup and our sync sensor setup.
05:42 The remaining inputs here are for our TPS open and closed and our pedal position or PPS open and closed so if we are running drive by wire, in this case we are running a cable throttle so we only have our TPS to worry about.
05:56 This is a pretty simple process here going to completely closed throttle and completely open throttle and calibrating the inputs but we actually want to move out of order a little bit here and see where we can define that particular input so what we're going to do, if we press esc here and we'll come over to channels and we'll click on input setup.
06:16 There are a number of inputs that we can set up here, we can see across the top in particular we've got a range of different tabs so this breaks everything down quite nice and easy into different categories.
06:29 In this case we are looking at our engine input tab though so we're already on that one and we can see the one that's highlighted at the moment is our manifold pressure, we'll come back and look at that in a moment.
06:40 But if we come down here our throttle position 1, we can see that that is actually set up at the moment on analog voltage input 1.
06:47 If we want to reallocate that we can double click on that, left click on that and we can then come down to our input source so again at the moment we can see that that is defined as AN volt 1, if we click over here on the right hand side we can select any of our input channels there as required.
07:06 So once we have allocated that we'll now come back to our engine setup and we'll come back to our TPS closed calibrate.
07:15 We want to make sure of course that the throttle we are completely off at this point, we'll click OK and we can then do exactly the same for our TPS open calibrate.
07:25 Of course we want to make sure that before we do that we are in fact at wide open throttle, making sure we're applying a decent amount of pressure to the throttle pedal, press enter, tells us the calibration is correct.
07:36 Now what we can do as well is just actually make sure that our throttle position is spanning correctly and at the bottom of the screen here we can see we have a little bar graph showing our throttle position.
07:47 At the moment of course showing zero so what we want to do is just smoothly increase our throttle position on the pedal.
07:54 It's not enough just to make sure that we're getting 0-100%, we want to actually make sure that we're getting a smooth transition between 0 and 100% there as well.
08:03 So we are, everything's looking good there so no real issues.
08:08 Seeing as we have just brought up our input setup, I'm going to move a little bit out of order here and we'll just address some of the other inputs that we're likely to be using.
08:18 And let's just start with our manifold absolute pressure sensor input.
08:22 So we'll double click on that to bring it up and we can see that this has been wired here to analogue voltage 13.
08:30 We can also set here a filter and this will just filter what can be quite a noisy signal.
08:37 With all filtering we want to use as little as possible and in this case, this is the default value for that particular channel.
08:45 Also important to mention here, we've got the ability to set the sensor voltage reference and this is something that a lot of ECUs don't have.
08:53 In an ECU that has multiple 5 volt regulated outputs for the sensors as well as sensor 0 volts, we want to basically spread the load for our analog voltage sensors amongst the 5 volt and 0 volt channels and in the case of the EMtron we've got a sensor reference 1 and sensor reference 2.
09:17 So we can see that if we look at that, we've got the ability to choose between these.
09:21 So basically what we want to do is choose these relevant to what sensor 5 volt and 0 volt we have used and this is going to give us the most accurate way of getting a correct reading from that particular sensor.
09:33 Coming down here we've got the ability to select our calibration type.
09:38 So in this case it is pre defined, if we click on the little drop down menu here we can also use a custom calibration if there isn't a pre defined calibration.
09:48 In this case the pre defined calibration we can see there is the EMtron 4 bar.
09:51 And there is a reasonably extensive list of pre defined sensors there so most of the common sensors you'll come across will be on that list.
10:01 We also have our fault settings here so in this case we've got a high voltage fault setting and a low voltage fault setting so basically if the voltage from that sensor goes above or below those bounds, it's going to go into fault.
10:16 There is also a timeframe that it must be above or below the fault value as well so that just allows us to basically ensure that we are getting a valid signal into the ECU.
10:29 We'll click on OK there and what we can do now is actually make sure that our manifold pressure is reading so if we come over to our main dash up on the right hand side, we can see that our manifold pressure is currently reading 98.4, 98.5 kPa.
10:44 And given our altitude here that seems pretty much on the money, what I'd expect there.
10:50 We've already dealt with our throttle position so we won't dwell on that any more, we'll come down to our engine temperature sensor input, so we'll double click on that.
10:59 Now with our engine temperature sensor we can see that this has been wired up here to analog voltage 7.
11:07 Again, we get to choose from our drop down menu there.
11:11 Important to mention with a temperature sensor because it is a 2 wire thermistor, we do need a pull up enabled so that's why we've got the little pull up box ticked there.
11:23 For our engine coolant temperature we can see the filter this time has been set to a value of 50 so much higher than what we'd used for a faster moving signal such as our MAP signal.
11:34 We've got our input units here, we can see we can choose between voltage and resistance just depending on how we are calibrating this.
11:40 Again we're using a predefined sensor here and this is the standard Bosch NTC sensor so again a fairly extensive list from that drop down menu there.
11:51 The same ability there to set our fault settings just in case something goes wrong with that settings.
11:57 We'll close that down, the exact same parameters exist for our inlet air temperature which is our next option down.
12:04 And once we've got that configured it's always a good idea just to go through and actually make sure that the numbers we're seeing are making sense so if we go again across to our dash on the right hand side, we can see we've got our engine temperature and our coolant temperature one above the other.
12:20 Both sitting essentially right on 23°C and given that it's a relatively warm day here, we haven't had the engine running, we would expect to see these two basically give us realistic numbers and if the engine hasn't been running, they should be essentially identical so that's exactly what we've got there so everything's looking good at this point.
12:40 So that's some of our input setup and testing those inputs to make sure that they do in fact make sense.
12:47 Let's move back across in order now, we'll go across to our fuel tab and we'll click on fuel main.
12:54 There's a few key parameters that we need to select here.
12:57 For a start, our injection mode which we've got at the moment, we have set to sequential.
13:01 Typically this'd be what we would want to be choosing.
13:05 We've also got the ability to select our injection timing, whether this is going to be end of injection or start of injection.
13:13 Really personal preference, with port injected engines it's typical for this to be end of injection, just need to understand this because it will affect the relevance of the numbers in your injection timing table.
13:27 Coming down to our next parameter here we have our stoichiometric air/fuel ratio setup so for pump fuel by default, this will be 14.7:1 so we need to be careful and make sure that we actually have this set up correctly, it will affect our fuel parameters which will in turn affect also our VE table.
13:46 The next parameter down we have is our injector nozzle reference pressure which might sound a little bit confusing, essentially this is used as part of the differential fuel pressure calculation or calculating the fuel pressure across the injector.
13:58 On one side of this we have the fuel pressure and on the other side of this we have the pressure that's going to be dependent on where abouts the injectors are fitted.
14:07 In most instances, with a port injected engine we're going to end up with this being set to manifold pressure because the injectors will be fitted after the throttle body and they will be subjected to vacuum and boost on a turbocharged engine.
14:23 On the other hand in some instances if the injectors are mounted outside of the throttle plates on a naturally aspirated engine, we may need to use the option there, number 7 which is our barometric pressure.
14:35 There are a few other options in between just depending on specifically what your engine setup is.
14:41 Our next setup we've got here is for our fuel injector data.
14:46 So again as I mentioned in the introduction we don't have really good solid data on our injectors here unfortunately which is a shame however we do know that they are 800 cc per minute injectors and we also know that they have a reference static fuel pressure at 300 kPa so 43.5 psi, this is what the injectors are flow rated to.
15:08 We've also got the ability to set a maximum injector duty cycle clamp, so in this case the ECU won't output anything over 98%.
15:16 You might want to pull that down a little bit, ideally I wouldn't like to see injector duty cycles exceeding much more than perhaps about 88 to maybe 90% on any modern EV14 based injector.
15:28 Another parameter that hopefully we'll be able to get from our injector characterisation data from our manufacturer supplier is the minium effective pulse width so basically the minimum pulse where we can get a reliably metered amount of fuel so at the moment we've got this set to 0.2 milliseconds.
15:46 Moving down, we now have our fuel model setup so this is how the fuel model is going to be configured.
15:55 Again we've got options over here on the right hand side showing how many options we do have, how we can set this up.
16:03 In most instances here we are going to use setting zero which is speed density.
16:09 There are a few other options there for more advanced configurations but in this case we're going to keep things nice and simple, we're going to be using speed density.
16:20 Our next parameter down we have our fuel model charge temperature.
16:24 So if this is set to on, what it's going to mean is that the charge temperature or the air temperature estimate is going to be taken straight into the main fuel model so basically this means that the changes in air temperature are going to be accounted for directly in the fuel model, this means that we don't need a separate air temperature correction table, it's really important to understand this because if we have this set to off, then that won't happen, hence we do need an air temperature correction table and that would be where we would be making our own changes in terms of the fuelling requirements, around about 2.5-3% per 10°C.
17:01 So we're going to leave that charge temperature turned on.
17:03 Charge temperature also incorporates the separate table which we'll look at which looks at the biasing between the engine coolant temperature and the air temperature sensor based on load and RPM.
17:17 Next we have our fuel model, fuel pressure correction.
17:22 We can see that this is turned off here because we don't have a fuel pressure sensor.
17:25 In the perfect world we would have a fuel pressure sensor fitted in which case we would select mode 1 which is on and what this will then do is allow the ECU to directly measure fuel pressure and use this as part of the differential fuel pressure modelling so this is going to give us more accurate control over the fuel delivery as well.
17:47 So we don't have the sensor so we can't fit that.
17:49 The other option there is option two which we can see up the top here is if we have static fuel pressure with no sensor.
17:56 So this would be for a returnless style fuel system in which case our static fuel pressure needs to be set correctly and the ECU again will calculate the changing differential fuel pressure as the manifold pressure changes.
18:11 The next option we've got down here is our fuel model expansion ratio and this is an advanced option that we're not going to use, just briefly can read the little help file about this here but it allows the use of a EMAP over IMAP combined with a static compression ratio to correct the volumetric efficiency of the engine at different loads so it's an advanced mode and not something that we'd typically be using so we're going to leave that as it is.
18:36 The greyed out option below for compression ratio, this goes hand in hand with that expansion ratio.
18:43 So at this point we've covered our fuel main setup, we press esc again to get to our fuel menu and the next option we've got here is our injector channel setup.
18:51 We'll press enter and this simply defines which injector channel is assigned to which cylinder, in this case you can see it is in cylinder number, injector channel 1 to cylinder 1 etc.
19:02 We'll close that down, go back to our fuel settings and we can come down to our fuel density table.
19:09 So here we can define the fuel density and how that will change with temperature.
19:15 So we've got default values in here at the moment for our pump gasoline.
19:20 Pressing back to esc we'll come down to our injector deadtime table and press enter here and this is a little difficult for us because again as I mentioned we don't have solid data here on these injectors.
19:34 We've got a 3D table here which for our purposes isn't strictly necessary.
19:38 First of all we don't have a fuel pressure sensor so we're not going to strictly be able to accurately measure the differential fuel pressure and we're always working on the assumption without that fuel pressure sensor that our differential fuel pressure is going to remain the same.
19:52 So in this case what we can do is we can press the A key, that'll bring up our axis setup.
19:58 Now we do want to keep the X axis which is our ECU supply voltage but in this case the Y axis here, differential fuel pressure, we're just going to unclick the enable axis and click on OK so that brings us down to a 2D table.
20:14 We can choose to have the ECU interpolate or not, in this case I'm not too concerned.
20:18 The only data point we have for these Sard injectors is at 14 volts.
20:24 So we've entered that value of 1.1 milliseconds at 14 volts.
20:28 Now how do we go about this, we're obviously still going to see our injector dead time vary with our battery voltage.
20:37 For the moment all I've done is I have trimmed the entire table up or down to keep a generic shape to it and arrive at 1.1 milliseconds at 14 volts.
20:49 There are some more advanced tests, once we're actually up at running where we can vary the charging voltage at idle and then for example fill in more accurately the 12 and 10 volt cells of this table but this is going to be enough to get us up and running and of course once we are running, as long as our alternator is charging, we should pretty accurately be able to maintain our 14 volts where we know that the injector dead time should be accurate to the manufacturer's specifications.
21:18 Let's press esc again and we'll come up to our injector linearisation table.
21:21 Now again this is an area where we've got absolutely no data, this just is a way of linearising the output of the injector in the short pulse width region where the injector output can be quite non linear.
21:35 Now we can see we've got some numbers in here at the moment but because we don't have data here, we really can't do anything in this table so just going to set the entire table here to a value of zero so this basically eliminates the characterisation table, linearisation table.
21:53 Moving down we've got our injector drive setup as well so the EMtron can support peak and hold or saturated drive injectors.
22:01 And an interesting aspect here, these Sard 800 cc injectors are actually a peak and hold injector.
22:09 So are the stock injectors for the RB26 but they are run using a saturated drive from the ECU.
22:17 And the way this is managed is that there is a ballast resistor pack in the engine bay.
22:21 So if you're going to retain that ballast resistor pack then they do want to be set up as a saturated drive.
22:28 If you're running a common EV14 style injector which is high impedance then that ballast resistor pack actually needs to be eliminated.
22:35 Alternatively you can run them as a true peak and hold injector by setting the option here, peak and hold and you can also set the peak and hold current.
22:45 You've got the ability to do this for channel 1-8 as well as 9-16 so if you're running staged injection with different characteristic injectors in the primary and secondary location you can handle that.
22:58 So in this case, we are leaving that set to saturated, we can click OK and we'll come back up to our fuel menu.
23:05 What we're going to now do is come down to our injector test.
23:08 So this allows us to go through and test each of the injector outputs.
23:13 We can first of all define the injector test pulse width so in this case 2 milliseconds, it's a good idea when we're doing this to make sure that we don't have the fuel pump running, we don't have residual fuel pressure in the system.
23:25 So we can come down to our fuel channel test 1 and we can simply change that from 0 to 1 and we will be able to hear the injector actually ticking, I can hear it even from the driver's seat ticking in the engine bay.
23:38 The key with this is we want to go through and test first of all, all 6 injectors are actually operating, you can audibly hear them clicking and we also want to make sure that they are allocated to the correct position so that's really important there, making sure that we haven't got a wiring issue and we're functioning the wrong injector on the wrong cylinder.
23:57 So at this point we've got our main fuel setup configured.
24:01 We're now going to go through essentially the same process only on our ignition setup so we'll go over to our ignition main and press enter.
24:09 For a start we've got our ignition mode so we can select there from the options we see on the right hand side and in this case of course we are direct fire.
24:19 Moving down we have our firing edge or trigger edge for our ignition system.
24:25 In most instances this is going to be falling with very few exceptions however you do want to be mindful of this because if you do select the wrong edge you can end up burning out your ignition drive, your ignition coils I should say so want to be mindful of that.
24:43 Our next setting here is our ignition current source and we have the option of our normal 35 mA or high current 70 mA, typically, understandably you're going to be using the normal selection, the high current is commonly used for pairing outputs for waste spark.
25:00 Next we have the ability to clamp our ignition advance, basically meaning that we can limit the maximum amount of advance that will be delivered, irrespective of table numbers, in this case 50° before top dead centre.
25:13 And likewise we can clamp the maximum amount of retard so in this case we've got -20° entered in there.
25:21 So that sets up our basic ignition main, let's press esc again and we'll come to our ignition channel setup.
25:28 This is essentially a mirror image of what we already looked at for our fuel system.
25:32 So we're just defining which ignition drive is connected to which cylinder.
25:39 In this case again, 1 to 1, 2 to 2 etc, we'll click OK and close that down, press esc and we'll come up to our dwell setup.
25:47 So here this defines which of the two available dwell tables will be used for each cylinder and again normally we would be defining a single table there, table 1 so that's what we can see there on all 6 cylinders, we'll press escape and we'll come down to dwell table 1 and this is a 3D table relative to our engine RPM and to our battery voltage.
26:10 So generally the numbers here are going to be somewhere between maybe 2.5 and 3.5 milliseconds at 14 volts which is our normal operating voltage.
26:21 You can see we've got 2.5 milliseconds in there.
26:24 As the voltage drops we can see that the dwell time increases.
26:27 It's important to get this right because if we don't have it right we can either underdwell the coil which means we won't get maximum spark energy.
26:34 Or if we overdwell the coil it's not going to give us any more spark energy and we risk damaging the coil.
26:41 This is very dependent on the specific coil so you can discuss this with EMtron if you've got something unusual and you want to know what numbers would be suitable for your particular application.
26:52 We also have the ability to have a dwell offset table here.
26:56 So in this case, 3D versus manifold absolute pressure and RPM.
27:01 You can see there is no dwell offset there.
27:04 This can be used in some applications for the example the IGN1A coils, it's possible to bump up the dwell time to get additional spark energy at high boost.
27:14 However we don't necessarily want to run the coils at that high a dwell setting all of the time due to the amount of heat so you could use that dwell offset table for that function.
27:25 In this case we're not doing that obviously.
27:28 Finally we'll come down to our ignition test and just like our injector test, this allows us to first of all confirm that we're getting spark on all cylinders and making sure that the spark is occurring on the correct cylinder.
27:40 Alright so that deals with our main setup there for our fuel and our ignition.
27:46 Let's have a look at some of the other aspects we need to consider here.
27:48 Let's move over to our functions and function output setup and just like our input setup, we've got a range of tabs up the top here that allow us to access different functionalities on our output.
28:01 We start with our engine functions and this is a little bit higher level than what we're really looking at during our configuration but for example we can select our idle speed control output, double click on this, we can see that we have got a 2 wire solenoid selected as the type of idle speed control.
28:18 We can see that that is output on auxiliary channel 4 and then we can also test that output.
28:27 So in this case we can see it's pulse width modulated and it will be pulsing at 200 Hz and we can click on test output and we will be able to make sure that that output is operating.
28:38 We'll be able to hear it physically operating.
28:40 We'll close that particular output down.
28:43 We also have our boost control solenoid.
28:46 In this case as I've mentioned we're not using the EMtron for boost control but this is where we could set that up.
28:52 We've also got the ability in here to set up how our RPM and map limiters will function.
28:59 In this case we can see, we've got that set up as a fuel cut.
29:01 If we look at our options here we can have fuel cut, ignition cut and a range of other options.
29:08 I am going to keep that as fuel cut there because it is nice and gentle on the engine.
29:12 We'll come over to our vehicle functions 1 here and this is some of the key functions for the vehicle itself.
29:21 For example we've got our fuel pump 1, double click on that, we can see that that's set up on auxiliary channel 5.
29:27 And again makes it really easy here to test the output, we can click on test output and we can turn that on and again audibly I can hear that fuel pump running straight away so we can turn that back off so we know that our fuel pump's operating, if we've got a fuel pressure gauge we'll be able to see that fuel pressure come up so really easy to test and set up all of those functions there.
29:51 So at this point we've got the main configuration for our EMtron complete.