Notices
Series I Engine Tuning Forum EMS (Flash Tuning, Interceptor, Piggy Back, Stand Alone)

Basic tuning guide with MazdaEdit

Thread Tools
 
Rate Thread
 
Old Nov 4, 2024 | 04:03 PM
  #1  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
Post Basic tuning guide with MazdaEdit

This thread is meant to give a helping hand in remapping the stock ecu by gathering all the known shady information on the logic behind it, what map does what, when, and how.
This thread also exists to spite those who gatekeep information - see the topic of "maximum calculated load" which dragged on for lots of pages and years with no clear cut answer.

The guide is not meant to teach you how to tune, how to show everyone you're an idiot make a pop and bang tune, it means to teach you how to apply what you already know about tuning on this specific ECU. I presume you already know all the buzzwords(such as MAF, KR, IPW, LTFT, STFT, IAT, ECT, EGT, AFR), and know some fairly advanced physics. I don’t have time to spoon feed anyone, but I would want more people to know that the OEM ecu is reasonably capable for any build and purpose; and that tuning is not some black magic.

Note that ideally you'd have someone with a master in computer science decompile the ROM and figure out everything without a doubt - but sadly this did not happen yet for RX8s. Unlike MX5 NCs - similar age, mostly the same ECU, yet that was mapped out entirely but the RX8 one was left short handed. The info in this thread is mostly obtained by trial and error, and experience of other tuners of this ECU and may be incomplete or a "half truth".

Thus, I invite anyone willing to contribute with knowledge to send a PM and I'll add the info here once confirm it personally.
Post will be updated as often as new knowledge is obtained/tested out.

Map names will be as they are shown in MazdaEdit(ME) to keep things clear across calibrations(of which there are many). Support for Versatune is not planned(they name things differently and sometimes replace units shown). Throughout the guide, all measurement units will be in degrees Celsius, AFR will be considered as 14.7:1 for stoichiometric ratio. There is a lot to learn about this ECU by reading the Mazda “Service Highlights 2004”. I don’t want to get sued so google it yourself to give it a good read. As a general word: all OEM ECUs do a lot of stuff we don’t care about, or we should not touch that. For this you will notice that you’ll be touching about 20-30-50 maps, while the ECU has about 700 of them. A 2020 modern ECU has about 20000 maps in it.No tuning solution to this day has defined all maps, not even those that might be of interest. Do not touch any low temperature compensation table. Mazda knows best!



Ch1: ECU inputs

The ecu inputs are numerous and most of them won’t need adjustment. The only one that might ever need rescaling is the MAF. The car already has a wideband O2 sensor and a narrowband O2. The wideband can read as rich as 11, and as lean as 27. The narrowband is still uncharted land as of now – but we do know it is used to provide a precise reference for what really is AFR 14.7 (besides emissions stuff). The ECU has as notable digital inputs(i.e. they come via CAN bus from other modules in the car) the fuel level, wheel speeds, torque down requests from TCM or DSC. A notable case has to be made for EGT: the car doesn’t have a true EGT sensor and whatever it reports is an integral of load/rpm over time. So, EGT is actually computed. By 2024 I hope that everyone knows that the oil pressure sensor is in fact just a switch and that the ECU doesn’t know true oil pressure, nor does it do anything if it feels it has no oil pressure. Same for overheating or lack of coolant/oil - there is no known protection that shuts down the engine or pops a check engine light.

Ch2: ECU outputs

Again lots of outputs but you won’t have to mind most of them. The notable ones that might need adjustment are the fuel injectors(scaling/dead time), divided into 3 stages; then the SSV/VDI solenoids(on/off control), APV motor(brushed DC motor driven forwards/backwards), OMP stepper motor(DC stepper motor driven forwards/backwards), DBW throttle body.
Cooling fans are controlled by the ECU, and those should always be made to start sooner.
Ignition coil dwell time should be adjusted for the coils at hand. Note that the factory coils can take 20% more dwell and produce a fatter spark for boosted cars – NA ones don’t need this.

Ch2: Ignition timing

The ECU splits timing into numerous use cases – and it does so with fueling as well.

For once you have base timing – for idle and for regular driving. Then there are numerous corrections for all sorts of use cases. In general you do not touch ignition timing on an NA car – won’t net you any power. In turbo builds you rescale the main “Leading Timing” (A)(B) and “Trailing Timing” (A)(B) ones to go from 10% load to 200% load in 10% increments. You generally add timing with RPM and subtract it with boost. Do not touch the OEM (<100% load) areas.

Top tip – if you’re experiencing idle problems like the engine stalling out during coasting, or it needing constant throttle pedal input to stay alive, you may add 5 degrees of leading/trailing timing in the 2D idle maps around 750-1000 rpm areas. More timing means more torque (to an extent). More on this in the idle chapter.

Do not expect your logs to show you exactly what you type into the large 20x20 timing maps; as said there are a gazillion corrections running in there that are not documented and probably never will be. More on this in the knock chapter.

There is a table that is not included in MazdaEdit(ME) and which specifies a minimum timing split of -5deg under ~ 70% load and -15 deg above that. This serves as some basic protection against people messing up their trailing timing tables under boost. There are numerous tables used by the DSC(and TCM...) during torque down requests. There is a special running mode during catalyst warm-up; timing is retarded to -25 deg and kept there for a time period while the catalyst is forced to warm up quick. You may notice that the engine has a deep nasty tone while doing so. This mode can be disabled but sadly ME does not feature the map for this. The “Timing Unknown?” table is indeed unknown what/when/how it is used.

There are special ignition timing corrections for cat warmup and cold operation. Excepting the cat warmup mode, do not touch the rest.


Ch3: Fueling

The ECU operates both under open loop and closed loop control. Modern ECUs only do closed loop – this one does closed loop under certain conditions that boil down to limited load and limited RPM.

Under closed loop(CL) the ECU will target an AFR of 14.7 (lambda 1). There are 2 tables which can alter this; their range of adjustment is limited to +- 0.03 lambda(by default, this can be changed but ME won’t show the maps for it). There are numerous CL to OL transition thresholds; most notably by RPM vs Load, RPM vs TPS, ECT, RPM, timers. Top tip: the “Closed Loop Unk” table refers to RPM vs absolute load. The other “Closed Loop Max Load” table(s) also refer to engine load, but inside the ECU it is defined in a different fashion. The logic as to when/why each table is used is still unknown.

Under open loop(OL) fueling the ECU will NOT be using the wideband O2 to keep the desired RPM, set by the “Open Loop Fuel” tables. By the way – these tables are completely mis-named; they do NOT go by gear but by something else – more details under the knock chapter. Boosted builds should rescale the X axis to go from 10% to 200%. NA cars can benefit a little bit from leaning out the AFRs to the 13.5-13-12.5 realm, depending on the cars use case(and if it no longer has a catalyst). The fuel enrich tables(again mis-named; they are not by gear) will specify that AFR if the main/base table is leaner than what the enrich table specifies. The overrun fuel restore will cut fuel above that RPM if the engine is under deceleration. This is the table which holds the most potential to ruin an engine quick – so you want to end it, mess with this one. Open loop will be used also in case of faulty front O2 sensor.

Here is where injector scaling and dead times come into play – one should never toy with those unless you’re really running another set of injectors. Entering a larger injector scaling will lean out the mixture (because the ECU will see that the injectors are large, and WON’T open them for a long time to inject X grams of fuel). Reducing the scaling will enrich the mixture (because the ECU sees that it has small injectors which need to be open a long time to inject X grams of fuel).

Injector scaling A refers to the primary injectors(which are the red ones in stock form), B is for the secondary ones (the large fuel rail; in 4 port engines these are blue; in 6 port engines these are the outer 2 injectors at the front and rear of the engine. C is for the primary 2 injectors – 4 port engines don’t have them; in 6 port engines these sit on top of the middle iron ports and inject fuel in them.

For logging purposes only the primary 1 injectors are available. The other 2 sets are not accessible at all. The secondary injectors come online at the same time as the SSV opens though.

Generally while in CL you’ll never worry about anything – the ECU takes care that fueling is on point... UP to a point! If your injectors are leaking or stuck, nothing can fix that. A minor vacuum leak, the ECU handles that. All (crappy) aftermarket intakes, even those can be compensated for to some degree.

In OL you’ll be on your own – the ECU computes what it can and then fires away the injectors. If the AFR is no where near the specified one... well, that’s that. That’s what OL means – you don’t take any feedback and do things your way. Obtaining the desired open loop AFR can be done by altering the VE (actually engine load compensation) table. Adding in the VE table adds fuel; same for subtracting. More details in airflow chapter. Another method is to bash the open loop tables – say you specify an AFR of 11.8 and obtain 13.8; some tuners will then target 9.8 and probably obtain 11.8. This is a terrible approach but it works – so long as you don’t mind making your desired AFR table completely unreadable – you’ll never know what the car will be trying to get because you’ve scaled that table to not mean anything close to reality anymore.

There are a few special fueling modes: while cranking, after starting, during catalyst warm-up, cut-off, restoring fueling, catalyst overheat protection fueling, and others.

Cranking fueling is dependant on ECT, BARO, TPS, cranking time. The table in ME about cranking fuel is completely wrong - it has NO business with cranking fuel. That table sets a time interval after engine startup, where the wideband o2 sensor readings are to be ignored while the sensor heats up. It also delays the triggering of closed loop fueling for the same reason.

Catalyst warm-up fueling is used to go extremely rich during cold startup – unburnt fuel burns in the manifold with the help of the secondary air injection pump. It is triggered on ECT/IAT/load thresholds. In conjunction with retarded ignition timing and very poor compression/ignition system this leads to flooded engines when moving the car for very short distances when cold – that’s why people keep saying “to let them warm up before shutting them down” and proceed to burn half a fuel tank while idling every time they start the car. Catalyst warm-up takes no more than 30 seconds to a minute! You can hear the change in exhaust note when it is over. I strongly suggest deleting this "feature" entirely.

Fuel injection cut-off is used by RPM(as rev limiter) and as a deflood procedure. By interpolating TPS @ 0% = full cranking injection and TPS @ 100% = no injection you probably figured out that more TPS = less cranking injection.

Catalyst overheat protection fueling is known to exist but the specifics are not known. Presumably, once EGT is above 1000C degrees, fueling is enriched further using something I call, for the moment, safemode. It changes the fueling/timing path but as far as I can see, it fuels and ignites all the same.


Decel fuel cut is extremely complex and I do not suggest editing anything - except there is a one rotor fuel cut mode that I believe is detrimental to engine lifespan. Especially on the rear rotor which seems to be most often the first one to fail.


Chapter 4: Load

Load is a computed parameter; based on displacement RPM, MAF, BARO, IAT, VE, some other 1% variables. Load represents how much air the engine is taking in, as a percentage where at 100% you’d be taking the whole swept displacement of both rotors. Load should generally follow the torque curve the engine makes – and follow it across any BARO/IAT changes. More BARO = more load; more IAT = less load; load varies naturally with the engine not being able to fill its rotor chambers with air at any RPM. That’s why there is a VE table.

Load should be scaled, ideally, so that it is at 100% at 25C ambient temp while taking into account the natural torque curve of the engine(mostly flat, pointy at 5500 RPM, falling down towards redline and idle).

For NA cars, load indicates if the MAF is dirty or otherwise reading a high/ low load. During engine braking, load should be 10% or so. An idle load would be 25-30%, cruising would be 30-35-40-50%, and WOT would be anything over 90% with a peak of 105-110% around 5500 RPM.

For boosted builds, on top of what NA cars do, load should match ambient pressure + UIM boost; this helps with scaling fueling and timing tables.

Load is scaled by scaling the MAF; the more g/s you specify for a given voltage, the higher the load will go. For NA cars the MAF curve should NOT need more than a few % of tweaking – save for (crappy) aftermarket intakes that skew things up terribly. For boosted builds – well, a good intake setup won’t again need much adjustment but it will need it regardless – at least in the 360g/s area. Extend the table to read as high as 460g/s because if you do hit 360g/s of flow, you will stop injecting more fuel than that! About that...

Load is capped – meaning that the ECU doesn’t believe a stock engine can hit a load of 140%. It can’t possibly make power as if its displacement increased by 40%. However, boosted cars can and do hit loads as high as 220%. More information on this in the limiters chapter – this is extremely important for boosted builds.

When rescaling the MAF table, keep in mind that it has 4 important areas.

0 to 5g/s is the cranking area – this is used to determine(partially) the cranking fuel.

5-10g/s is the idling area.

10-20g/s is very light driving at slow speeds

20-70g/s is cruising area – from barely moving to highway high speed driving

Above that... the rest. The 20-70 range is most important because whatever fuel trims are built there will be applied across the rev range at WOT.

Chapter 5: Knock

This is a dark area. Information about renesis knock control is pretty much non existent – most tuners simply disable this function. The ECU will pull timing as it feels it needs to – without ever telling us because KR logging DOES NOT WORK(despite it having a CAN PID and reporting “0” on it all the time). There are 2 tables that define knock thresholds vs load/rpm, there are IAT/BARO compensation tables; KR increment/decrement tables, base KR, a few thresholds for enabling/disabling knock control.

Once the ECU decides someone’s knocking at heaven’s door, it will pull timing. It will keep pulling it for a time period and increase the magnitude as it desires. You can notice this on your logs as some missing timing in the 2000-5000 area where the factory setup is most active. DO NOT rely on this system to guard your engine against knock/preignition. On an NA car I doubt it can even knock so bad as to shatter an apex seal – but when boosted all bets are off. However the S2 RX8 has 2 knock sensors, while S1 only has one. You know what OEMs hate? Wasting money on hardware. Another sensor + wiring + connector + assembly time + software support. The 20B had 3 knock sensors – that was in 1992 even. So, on the S1 RX8 in between “the system does nothing” and “they added another KS in the S2”... the truth must be in the middle! To this day, this system is not well enough understood to provide tangible protection – however I am against disabling it entirely. Adjust it just so that it does not get in the way.
Note that the knock increment/decrement tables are named the other way around. Same for Open Loop Fuelling - instead of gear 1-2, 3-4. 5-6 and timing - those are in reality used depending on knock level. No knock/knock/failsafe(preignition or something) - this is extrapolated from the MX5 NC ECU.

Last edited by ciprianrx8; Oct 13, 2025 at 04:14 AM.
Reply
Old Nov 4, 2024 | 04:04 PM
  #2  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
Chapter 6: Airflow/torque control

Airflow is a direct requirement for torque (when, and how much of it). Airflow is maximised at any RPM based on the VDAIS – Variable Dynamic Air Intake System. Lots of words for essentially keeping air velocity high at any air mass. That’s why the car has a SSV, VFAD, APV, VDI. 4 rotary VTECs. In NA cars you don’t touch these – Mazda spent a lot more time figuring this out than any of us would ever do. Don’t believe your bridgeport will make more power if you open these earlier – if anything, open them later. Don't open them all from idle, you won't make more power. Don't unplug them, Mazda didn't pay for them because their engineers were dumb.

The SSV is driven by an extremely complex logic because it opens/closes at the same time as the secondary injectors. Because of this,the SSV opens more like when the engine needs more fuel than what the primary injectors can deliver, rather than by a certain point.
There are 3 tables that are used in calculating when the engine needs to fire the secondary injectors:
  1. A factor that varies in between 1.04 (when the manifold pressure is much higher than ambient pressure) and 0.87 (when the manifold pressure is much, much less than the ambient pressure, near absolute vacuum)
  2. A factor that is mostly 1 all the time, except when there's extremely warm air in the intake and the engine is at very low load.
  3. Maximum primary injector duty cycle vs RPM <---- this is the most important one that you might find yourself in need to adjust
There are some more background things done:
  1. When TPS is above a certain level (nearly WOT) there is a BARO compensation in place, this seems to reduce the threshold before the secondary injectors/SSV comes on due to thinner air - the SSV can increase airflow sooner when the outside air is thinner.
  2. When the engine is cold, some other unimportant business is going on(a hysterezis used when comparing the requested fuel injection amount with the threshold before the SSV/sec injectors come on)
There are 2 global limiters in place:
  1. When the engine is cold, the SSV can't open any sooner than 3000 RPM (the usual table everyone has in ME/VT) - minimum RPM to open SSV
  2. When RPM is above 6250 RPM, the SSV is opened regardless of anything else - maximum RPM above which SSV opening is forced.
That being said, if you want to move the SSV opening point up or down, edit the 2D RPM table for maximum injector duty cycle on primary injectors. Keep in mind that the SSV and sec injectors come online at the same time, by the same logic!

Once the secondary injectors are on, and the SSV is active, fuel qty is split as a % between the 2 injector pairs. The % is set as a 2D table vs RPM. As the quantity of fuel needed increases with load or rpm, the primary injectors find themselves no longer able to inject enough fuel to follow the required split of fuel between the primary and the secondary injector pairs. At this point, the primary2 injectors come around and fill the gap.

Put otherwise, the ECU will set a % of fuel to go through the primary ports and the secondary ports. The primary port is fed by the primary 1 and primary 2 injector pairs. When P1 can't deliver enough fuel, due to the maximum duty cycle table saying so, the secondaries come on - and the total fuel qty that can be delivered is increased. As the qty keeps on increasing, the % of fuel going through the secondary and primary ports must be followed as described by the 2D primary/secondary % table, and for this, the primary 2 injector pair is used.




The VFAD is a simple RPM threshold. Go above/beyond and it changes state. Same for VDI and APV; in some tunes there are multiple thresholds, or the tables go by ECT vs RPM. The APV can be disabled by too low of an ECT or not enough MAF, but the MAF threshold is 0 so basically in the stock tune the MAF has to be above 0 for the APV to open(if not limited by sth else).

SSV, VDI, APV desired positions can be logged using ME – this helps in validating tunes. When these open, there is a momentary torque dip visible on a dyno or in airflow readings.

The VE table acts as a scalar for the injected fuel quantity. Firstly the engine uses a mathematical formula to obtain a load figure, based on RPM, ECT, engine displacement, BARO, some other factors. Then this basic "cylinder fill" number is multiplied by the value in the VE table. This table is there for the purpose of dealing with varying engine loads for the same airflow. Leaving the nerdy stuff to the side, the VE table can be used as a simple fuel injection scalar. You've scaled the MAF right or there abouts, the injectors are there too, and you've specified an AFR of 13 but you're not really getting it, more like 12.5. The VE table under that area is what I adjust to get it right. Don't change your AFR target until you get what you want - set one target and then adjust what makes most sense to get that target!
The stock VE table is also a good indicator of the native charging efficiency - note how values raise a lot just as soon as an intake valve opens, just to drop off again very soon. Keep this in mind when dealing with lean spikes when these valves open under boost!


As for torque control: the ECU provides an early form of drive by wire throttle body; meaning that the pedal is for the most part directly linked to the throttle body and in a 1:1 manner. In more modern ECUs, the pedal actually represents a % of torque demanded by the driver. In RX8s we happen to have 2 useless tables called desired engine torque and calculated engine torque. To the best of my knowledge these are not used in manual gearbox cars. They might be ref. for the slushboxes to command a TPS closure as part of torque reduction needed when changing gears. At any rate, don't bother (with) them.

Then, there are 4 DBW tables where the inputs are RPM and APP, the output being TPS(where 84 = 100% throttle body opening). There are 4 because the first 3 are for gears 1-2, 3-4, 5-6 and the last is for neutral. These tables generally don’t need touching unless you want to make your pedal a true % of torque request. In the factory tune you would notice that the last half of accelerator pedal is useless – the engine is already at 90% torque with just 50% of pedal travel. The last 10% of torque is spread over 50% of the pedal. Generally you would turn the x=y chart into an exponential curve; where a lot of APP equals less TPS; a lot less than 1:1.

It can help idle and starting to add more TPS in the respective areas. As far as I know, those 4 tables are always used (except for failsafe modes where the ECU detects a fault in the DBW system). If a car is constantly undershooting its idle RPM, adding more air(more TPS) can help. Too much air and the ECU will pull timing back, undershooting and overshooting all the time. Balance air with timing so that the ECU has a decent torque reserve to add just from timing. Adding TPS during cranking reduces fuel injection – so here is the place to add it.

Idle maps set the target idle across varying driving conditions such as driving, standstill, coasting, heavy electrical loads, in gear/neutral etc. I usually set them all to the same RPM vs ECT.

Chapter 7: Oil injection

There are 3 paths that the ECU can take when deciding what amount of oil to inject. It can regulate this by the stepper motor on the OMP – it can go from 0 to 60 steps. 0 meaning no oil, 60 meaning full OMP flow. Do not enter more than 60 in any OMP table, it won't do anything past 60.

There are 2 tables that ME brings you: RPM vs load, and RPM vs TPS. The TPS one forms a minimum value, meaning that at the specific RPM/TPS combo the OMP shall be set to no less than the specified value. Like it there are many other minimum position tables:


On top of that, there are a few other tables that can add oil based on IAT, barometric pressure, and there's an ECT multiplier for the largest RPM/LOAD table.
There are special cases such as the engine just starting, temporary boost to injected quantity and so on. Terribly complicated if you ask me.

Chapter 8: Limiters

“Imma raise that rev limiter to 10000 rpm hehe”. Nah you shouldn’t, you won’t be making more power at 10000 than you’re doing at 7000 rpm and you’ll be wearing your engine down a lot. The rev limiter on all OEM ECUs is a fuel cut – meaning that for some time you’ll be running lean while the limiter is triggering. Avoid hitting any rev limiter.

Same can be told for flat foot shift – a stupid thing to do – which basically sets a fuel cut at whichever RPM you were at already.

The most important limiter on this ECU is the load limiter. In ME you have 3 tables for it: Calc load max, Calc load IAT comp, Calc load BARO comp. The load limiter is a separate value from the actual load the engine is at any time.

To understand the load limiter:
0) (zero because computers count from 0 ) There is only 1 kind of load. That is what the ECU uses in all its tables. Say any engine rpm vs engine load table, well that's the load I mean. I shall call it from now on, simply, LOAD.
1) What ME logs as Calculated load... under OBD2 pid at 0X04 is a percentage of the load in respect to the load limiter. If load = 90% and the load limiter is at 124% then "calculated load" is 72.58%.
2) What ME logs as Absolute load... under OBD2 pid at 0x43 is the full engine load you see in the tables.
3) Both "calculated load" and "absolute load" are calculated from the same variable the ECU works with(remember, the one above ! ^^^^^^). Absolute load is the entire variable and the only one used in the ECU tables. Calculated load is a good tool to see how close you are to your load limiter. It should never exceed 90%.
4) "True" load is really how much load there is, with no one limiting it. If you'd run 5 times the athmospheric pressure and in an ideal fashion, then load would be 500%.

If "true" load is under the load limit...then true load = load and is used properly by the ecu. You always wanna be in this area!

How load is computed... the ecu does some math based on maf, rpm, VE, etc etc. It comes up with a percentage. Like 154% for example.
Then these 3 tables come into play. These 3 tables form a load limiter. Multiply the numbers in the 3 tables and you'll get a result like, say, 98.6%. This is our load limiter.
Oops, our load is higher than the load limiter ? Then, our load is the load limit itself!This means that the load the ecu needs to use in an engine load-based table, it will use this capped value of load. Load = load limiter.
When the ecu uses the load limiter and not "true" load:
  1. Less fuel will be injected(because, say you have 154% worth of air in the engine, but inject only 98.6% instead of 154% worth of fuel).
  2. Ignition timing won't be adjusted properly for the "true load" we're getting. You may have set a timing for, say, 154% which is retarded compared to say, 98.6% which is much higher.
  3. Any and all load-related tables will be capped at the load limiter.
Thus the question is... what does it mean when you see Calculated Load flatline at 100% on your logs? It means that the ecu has computed a load which is above its maximum load limiter, so you are now riding the load limiter instead of your actual load.

What to do when chasing more power?
  1. Max out the "calc load max" table... the name is wrong. It should be "Load limiter base value". Set it to 200 % in the areas where you expect to hit more load than stock.
  2. Set IAT and BARO tables to 1.1 for starters. This will allow you to go to 200 * 1.1 * 1.1 = 242%(THIS is your load limiter) which should be plenty for what this engine can take.
  3. Do your tuning and observe load, under the parameter "Absolute engine load". It should never reach 242%. Say, it reaches 170-180%. Then set the limiter to 200% by using the BARO comp table and that's it.
  4. You now have the ecu never reach the load limiter under normal conditons, but if your MAF acts up or anything else implausible happens, then the ECU won't go crazy with it.
Why not set the load limiter to 42342% if we can?
It is a load limiter in the sense that it caps fuel injection and timing and so on(recall, every table where engine load is used). If you let it go crazy the ECU can max out the injectors at any time the MAF tells it to... such as a break in the wiring, bad MAF, crazy scaling etc.

Chapter 9: DTCs

ME offers 3 sets of DTC tables: these set if a DTC can be active(be read with a scanner), and if it can light up the check engine light because of it. When disabling a DTC you’d set it to 0 on all 3 maps. Note that some DTCs will still do their thing even if masked in ME – such as OMP limp mode will still take place even if you mask all OMP codes. Like it are a few other cases.

Chapter 10: Security

ME and quite literally any other tuning out there will change the access key to your ECU. What’s that? Well, in a few words, it is a password to the memory of the ECU where the tune is stored. I’d rather not publish them here... because they are security stuff after all. ME will also encrypt the .hex files it touches. You won’t be able to read or write a ME tune with other software – with one exception. Meet RX8Man: https://github.com/Rx8Man who was kind enough to make a tool for reading/writing to the ECU even if it was flashed with ME. This allows you to obtain a clean .hex file into or out of the ECU. Thanks to him, this guide is richer in information, and possibly even better in the future. Browse his github for some more maps that are not in ME. In ME pro (possibly personal too?) you can define your own maps(so add the ones from Rx8Man's github to ME)
There are a lot - A L O T - of ECU firmwares out there. Manual. Auto. USDM. AUDM. UKDM. EUDM. JDM. 4 port. 6 port. Early 2003-2004; 2004 late; 2005 early; 2006 and up. Generally you should never upload a file that didn't originate from what you already had in the ECU. There are some exceptions: the same family of tunes can be upgraded; e.g. N3ZHE0 is the earliest form for EUDM; followed by N3ZHEB, and lastly N3ZHEC. There is N3J1E too, found in 2006 and later EUDM cars but who knows why it exists or what it does different, or if older cars can be upgraded to it. Such experiments are best left not attempted.

Chapter 11: Table logic

The tables axis are always in an ascending order(e.g. 500 750 1000 1500 RPM). If you edit the table header or Y axis, be sure not to mess up! Don’t do 7500 1500 2000 3000 5000 10000 9000 RPM – the last column of 9000 won’t ever be used! This is even more important when rescaling the whole axis for boosted cars. There are lots of tables to rescale in such cases.

The tables interpolate inside them – so if you have 1500-2000 RPM and your RPM is 1750 then the ecu will see what’s the middle value in the cells for that RPM area.

The tables DO NOT EXTRAPOLATE. For example – if your MAF table doesn’t go higher than 360g/s but your turbo would take you there, the MAF won’t read any higher than 360g/s even if in reality it should/can read 440g/s. Same for all tables – like the VE one ending at 8500 RPM. When you hit 9000 RPM, the last column for 8500 is still in use.

Just because you can enter an AFR of 8.23 doesn’t mean you should run that. Just because you can set a timing of -43 degrees or 67 doesn’t mean you should run that. Neither ME nor the ECU cares if the values you enter are sane.

Last edited by ciprianrx8; Jan 3, 2026 at 11:49 AM.
Reply
Old Nov 4, 2024 | 04:05 PM
  #3  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
Chapter 12: Cooling/radiator fans.


Picture says it all. You've got 2 cooling fans that can either run in series, at half power, or in parallel, at full power.

Chapter 13: Target idle speed.
This one is a genuine can of worms and I couldn't be bothered to figure out all the clutch in/out AC compressor in/out conditions as the general use case is to raise idle speed above 900 rpm at any time, so those conditions no longer do anything. There are also a lot of tables for the slushboxes which again I gave a hard pass.


Final words

This ECU is as simple as they get while still doing all the house chores. Fuel injection, timing, DBW, all the comfort and performance features. It is a good base to learn tuning on; however NOT on a boosted car since it lacks protections. When tuning do not go down the rabbit hole by make a VE table 56% richer in some area because the car keeps getting lean there – think logically.

WHY would it be lean there? I shouldn’t need more than 10% at worst – perhaps I’m losing fuel pressure up top when I need more fuel flow. Or a silicone coupler is leaking vacuum.

Did I mis-type something? Did I type an idle RPM of 100 instead of 1000 and now my car just dies when it warms up?

Did I mess up my maf scaling so bad that not even CL can drive my car? Or should I just throw that junk intake away instead of messing for ages with the tune? You can spend a day fixing a poor maf setup, or 30 fuel tanks and 2 years trimming the VE and MAF scaling... your choice. The MAF is the most commonly messed up sensor in modified cars.

Did you forget that there is virtually NO POWER to be found anywhere in the tune? Making 5hp more on a 230 hp engine is hardly 2% more which might as well be lost if you come measure it another day.
If you understood this guide well, imagine what would happen with the stock ECU if faced with 50kpa of boost on the stock tune.... and if the answer isn't "leaning out + knocking itself apart on the first spool" then read the guide again.
Lastly, if I've missed something important that I happen to know I shall add the answer to that question to this topic.

Last edited by ciprianrx8; Jan 3, 2026 at 11:49 AM.
Reply
Old Nov 4, 2024 | 04:05 PM
  #4  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
/reserved for future use
Reply
Old Nov 5, 2024 | 07:45 AM
  #5  
MincVinyl's Avatar
CEO of Morons Inc.
 
Joined: Jun 2017
Posts: 614
Likes: 209
From: New England
Sort of a clarification, but for the load limiters of 200%*1.1*1.1 section. For me atleast I found I cannot actually enter 200 as a value and need to enter 199.99 instead. If I enter 200 it will say I entered 0 or 1 on the map. Which others from the load limit thread appear to have not mentioned that, so maybe it is only an issue on my end. USDM 2004 6P 6MT
-----------------------------
Also in fueling you say "Adding in the VE table adds fuel; same for subtracting. More details in airflow chapter." Do you mean Increasing VE adds fuel and decreasing VE removes fuel? I do not see a clarification in the airflow chapter. I will have to double check as I have been playing around with VE recently. I had thought increasing VE causes a lean out and decreasing VE made my car go rich. By no means take my word as law, I am still learning.

Base tune = trim of -2.29%
Add VE = trim of -4.86 (adding ve added fuel thinking more air was entering the engine..... thus the trims reflect having to remove that fuel)
Sub VE = trim of 3.8 (subtracting ve removed fuel thinking less air was entering the engine...... thus the trims reflect having to add fuel)

Last edited by MincVinyl; Nov 11, 2024 at 08:29 PM.
Reply
Old Nov 5, 2024 | 08:21 AM
  #6  
spectre6000's Avatar
Registered
 
Joined: Feb 2019
Posts: 326
Likes: 69
I'm curious what Mazda's logic is behind keeping the fuel on under zero throttle, high rpm conditions (coasting down in gear). Would it be safe to turn the injectors off? I'm sure it's still injecting oil to keep the rotors happy, and I suspect oiling has something to do with it. Just curious.
Reply
Old Nov 5, 2024 | 10:36 AM
  #7  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
Originally Posted by spectre6000
I'm curious what Mazda's logic is behind keeping the fuel on under zero throttle, high rpm conditions (coasting down in gear). Would it be safe to turn the injectors off? I'm sure it's still injecting oil to keep the rotors happy, and I suspect oiling has something to do with it. Just curious.
This is highly unlikely to be default behaviour. Injecting fuel without burning it would destroy the catalytic converter fast. Caveat for cold start catalyst warmup where some combustion occurs at the top of the exhaust port - but that's some very low load and rpm. Coasting down in gear will always be with a fuel cut-off, as long as RPM is above the overrun fuel restore table value.

Originally Posted by MincVinyl
Sort of a clarification, but for the load limiters of 200%*1.1*1.1 section. For me atleast I found I cannot actually enter 200 as a value and need to enter 199.99 instead. If I enter 200 it will say I entered 0 or 1 on the map. Which others from the load limit thread appear to have not mentioned that, so maybe it is only an issue on my end. USDM 2004 6P 6MT
-----------------------------
Also in fueling you say "Adding in the VE table adds fuel; same for subtracting. More details in airflow chapter." Do you mean Increasing VE adds fuel and decreasing VE removes fuel? I do not see a clarification in the airflow chapter. I will have to double check as I have been playing around with VE recently. I had thought increasing VE causes a lean out and decreasing VE made my car go rich. By no means take my word as law, I am still learning.
On the load limiter base table("calc load max") you can't enter 200% exactly - this is a ME editor thing. Some precision gets lost in translating a % like 193.55% to a number in the 0-65535 realm. I copy the value from another table or another tune that already has it. But 199.99% is just as fine.
Increasing a cell in the VE table adds fuel there. Decreasing a cell there subtracts fuel there.

Last edited by ciprianrx8; Nov 6, 2024 at 10:04 AM.
Reply
Old Nov 6, 2024 | 08:22 AM
  #8  
spectre6000's Avatar
Registered
 
Joined: Feb 2019
Posts: 326
Likes: 69
Originally Posted by ciprianrx8
This is highly unlikely to be default behaviour. Injecting fuel without burning it would destroy the catalytic converter fast. Caveat for cold start catalyst warmup where some combustion occurs at the top of the exhaust port - but that's some very low load and rpm. Coasting down in gear will always be with a fuel cut-off, as long as RPM is above the table value.
I've got instrumentation and long downhill stretches galore. Comparing MPG in gear vs. out, neutral gets better fuel economy. From casual memory having not paid super close attention, it's about double the fuel consumption in vs. out. Only thing I can figure is that the fuel isn't being cut off, and the difference is fuel with zero load RPM. The previous owner was a middle aged housewife who didn't know about the redline buzzer, so I feel pretty confident she wasn't messing around in the ECU. Mine's a Series II fwiw, but I doubt that makes a difference in this aspect.
Reply
Old Nov 6, 2024 | 10:17 AM
  #9  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
The S2 does not fall within the scope of this tutorial(this is the S1 forum).
I do not claim to have the foggiest clue of the S2 ECU inner workings; however I still doubt that you get fuel injected during engine braking on the stock tune. Ok, let's presume you do, under engine braking at 6000 RPM you get about twice the airflow you get at idle. So, at worst you would have a fuel burn of 4 liters per hour. Engine braking however is a significant energy waster especially in the lower gears - you use up the kinetic energy of the car to create a strong vacuum after the throttle body. Modern automatic cars will even disengage the gearbox in such cases to squeeze some more fuel economy at the expense of brake wear.
Reply
Old Jan 28, 2025 | 10:03 AM
  #10  
MilosB's Avatar
Registered
 
Joined: Aug 2018
Posts: 238
Likes: 27
Can confirm the decel cut is at 1400 rpm stock... same as S1
Reply
Old Mar 5, 2025 | 02:36 PM
  #11  
MilosB's Avatar
Registered
 
Joined: Aug 2018
Posts: 238
Likes: 27
@ciprianrx8 Couldn't we create our own ignition cut rev limiter ?
a manual way to do it on some cars was to adjust RPM table in ignition timing where lets say 9000 rpm has normal timing, and than 9050 rpm has a very big retard (in effect not igniting the mixture). the lcoser these two are, the more agressiv the limit will be.
I will definitely try this out (on low rpm first)
Reply
Old May 20, 2025 | 11:52 AM
  #12  
MincVinyl's Avatar
CEO of Morons Inc.
 
Joined: Jun 2017
Posts: 614
Likes: 209
From: New England
1. What issues have you seen with the overrun fuel cut table, you just say to not touch it? To my understanding it is typical for rotaries to need fuel on decel for lubrication so many set the table to 9999rpm. I remember reading about people blowing rx7s on the dyno simply because of decel, granted they probably had no omp. What particular reason should the rx8 keep the stock fuel cut?

2. Back when I was NA I had learned from Kane's method to leave the VE map stock and just scale the MAF.(assumes mazda thought out the VE table for the stock intake) Which seemed to work great for me. Now I have a greddy kit modified with the AEM intake filter and MAF tube. My original MAF that was NA scaled just **** the bed so now I am stuck with a new MAF sensor and a blank slate VE table........ Do you know if there are conditions where the ECU favors the MAF vs VE so you can isolate the MAF for scaling? Or do you just scale the MAF if you see trims applied across your whole table?

3. I am working through finding better ways to log and apply changes besides doing the math one cell at a time. What is your current method for tuning the VE map? I have been testing using the "apply from map" tool to apply the ltft and stft in closed loop and then using the fuel map vs afr % difference to apply to the VE map. Currently ironing out the expressions for these in my tuning thread.
Reply
Old May 20, 2025 | 12:07 PM
  #13  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
1) After seeing how much BS is in the "commercial" map names I now doubt every single map name in ME/VT. So what it says on the box... might not be what it does. Hence -> don't touch that map. Even if it does what it says on the box I see no reason to keep dumping fuel during decel. You want lubrication you have an OMP for that, which works at any rpm or load except engine off. But idiots being idiots will remove that, induce problems then try to patch them in some nefarious way which includes dumping fuel all over the place, which causes extreme heat in the exhaust which will eventually find its way back into the engine. For every single cell you touch in a tune you better have a very good reason to do that, and you better know 100% how/WHEN that specific map works. Heavy accent on WHEN - because the same thing is done by 10 maps at 10 different conditions. You see map A B I can bet there are also C and D which aren't shown but exist and do stuff no one knows how, why or WHEN.

2) Say you have to get an answer of 50. You can do 5x10, 10x5, 5x4 + 3x10 and a bunch of other ways. Same end result, but once you get out of the area where you hardcoded your answer, surprise - it doesn't work anymore. On a stock NA engine you don't change the VE table - nothing changed in the porting to allow for more(but 99% of the time - less) air.
Swapping individual MAFs should not induce a more than 1-2% variance between them - they are expensive and extremely important when chasing emmisions standards. Not a part they cheaped out on.
What people get wrong 90% of the time is the MAF enclosure - where it literally sits, and how air passes in that tube section. When in doubt or trouble - do as OEMs do - straight pipe before and after it, as long and straight as possible + air meshes. And for the love of god stop putting MAFs in smaller diameter tubes than stock. Equal to, or 10-15% larger than stock(at best if you're doing over 400whp).

3) I do full time closed loop, log STFT, average out over 5 iterations, call it a day. I then leave FTCL on and guard that it doesn't spike past +-10% temporarily or +- 3% for LTFT. Otherwise I'd grow old tuning each cell in the VE table by comparing target vs actual AFR.
Reply
Old May 20, 2025 | 06:10 PM
  #14  
MincVinyl's Avatar
CEO of Morons Inc.
 
Joined: Jun 2017
Posts: 614
Likes: 209
From: New England
Originally Posted by ciprianrx8
3) I do full time closed loop, log STFT, average out over 5 iterations, call it a day. I then leave FTCL on and guard that it doesn't spike past +-10% temporarily or +- 3% for LTFT. Otherwise I'd grow old tuning each cell in the VE table by comparing target vs actual AFR.
After playing with the adaptronic I think I just got spoiled with ease of tuning. Like it is hard to justify spending 500$ for mazdaedit and the tactrix dongle when people sell adaptronics for 700-1000. Then if you do mazdaedit half the tables are nonsense or non existent from car to car.

For instance just did a test and set my target to 14afr to see if my map application expressions would work then took an idle log. For some reason it is like the fuel trims are not trying to hit the target. Half the time I have to question if mazdaedit is just messing with me, missing a map, or if I am just an idiot.


Reply
Old May 21, 2025 | 04:54 AM
  #15  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
Originally Posted by ciprianrx8
For every single cell you touch in a tune you better have a very good reason to do that, and you better know 100% how/WHEN that specific map works. Heavy accent on WHEN - because the same thing is done by 10 maps at 10 different conditions. You see map A B I can bet there are also C and D which aren't shown but exist and do stuff no one knows how, why or WHEN.
Without trying to sound smart. The open loop fueling you edited is _not_ active when, surprise, closed loop is active. How I know that? You have a non-zero fuel trim, for lack of a specific log to indicate fueling status exactly.
As for standalones you'll be emptying your pockets once, then spend the rest of your days trying to do what the stock ecu already does out of the box, only to discover you'll never get to the same driveability of the stock ecu. You can hardcode it to work in a few situations, probably suited for a track car. To each his own.

Last edited by ciprianrx8; May 21, 2025 at 04:59 AM.
Reply
Old May 21, 2025 | 07:59 AM
  #16  
MincVinyl's Avatar
CEO of Morons Inc.
 
Joined: Jun 2017
Posts: 614
Likes: 209
From: New England
Originally Posted by ciprianrx8
Without trying to sound smart. The open loop fueling you edited is _not_ active when, surprise, closed loop is active. How I know that? You have a non-zero fuel trim, for lack of a specific log to indicate fueling status exactly.
As for standalones you'll be emptying your pockets once, then spend the rest of your days trying to do what the stock ecu already does out of the box, only to discover you'll never get to the same driveability of the stock ecu. You can hardcode it to work in a few situations, probably suited for a track car. To each his own.
Right before I had only done open loop on the NA to great success, because there was really no point with messing around with the closed loop areas. I had done this test as a check to see if the "open loop" map was actually just open loop or if the mazdaedit name was off. In this case it is correct, which after just reading your CL thread again makes sense that you found another slew of tables for closed loop. I had assumed this was the case after seeing it idle at 14.7afr still.
Reply
Old May 22, 2025 | 06:55 AM
  #17  
ciprianrx8's Avatar
Thread Starter
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
As to which map does what you have to either blindly trust whatever someone else says, pull up ghidra, or do the tests yourself but better be sure you aren't changing more than 1 thing at a time - this is very easily overlooked and often impossible.
Reply
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
Left4Dead
Series I Tech Garage
78
Jul 2, 2023 07:12 AM
badinfluence
Series II Engine Tuning
44
Nov 4, 2021 10:52 AM
Brandonien
Series I Engine Tuning Forum
180
Aug 23, 2013 08:51 PM
bxb40
Series I Tech Garage
6
Nov 10, 2004 01:28 PM
Tigger
Series I Engine Tuning Forum
14
Mar 18, 2004 04:36 PM



You have already rated this thread Rating: Thread Rating: 1 votes, 5.00 average.


All times are GMT -5. The time now is 08:11 AM.