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

Open Source S1 RX-8 ECU Reverse Engineering, Data Logging, and Tuning - User's Guide

Thread Tools
 
Rating: Thread Rating: 3 votes, 5.00 average.
 
Old Jul 29, 2025 | 08:59 PM
  #76  
equinox92's Avatar
Thread Starter
Registered
 
Joined: Nov 2019
Posts: 345
Likes: 213
From: Detroit, MI
I can update the defs for 60E0FC00, I honestly thought they were already in there... look for an update on github at some point shortly.

If you are using a different ROM, you may need to do some extra work.
Reply
Old Jul 29, 2025 | 09:31 PM
  #77  
equinox92's Avatar
Thread Starter
Registered
 
Joined: Nov 2019
Posts: 345
Likes: 213
From: Detroit, MI


Added fan control defs for 60E0FC00 and G-ROM FlexFuel. Also updated my Ghidra environment with some more REing.. but will update the archive later since it's a pain in the ***. Guess it's also good to know the fans will turn on for a PCM temperature over a threshold hah!
Reply
Old Jul 29, 2025 | 11:32 PM
  #78  
2rotorphil's Avatar
Registered
 
Joined: Jun 2015
Posts: 20
Likes: 2
From: Laval, Québec
My winols stuff isn't as up to date as my xdf, those fan parameter names should be disable for the temp hysteresis. You will see that the temp value is fan on but it won't go off until the temp drops under the temp - hysteresis.
Reply
Old Jul 30, 2025 | 08:14 AM
  #79  
equinox92's Avatar
Thread Starter
Registered
 
Joined: Nov 2019
Posts: 345
Likes: 213
From: Detroit, MI
whoops, copy and paste fingers got me again. Can update
Reply
Old Aug 9, 2025 | 05:07 PM
  #80  
naepsae's Avatar
Registered
 
Joined: Jul 2025
Posts: 13
Likes: 0
Not at all familiar how Chidra really works, but got these addresses for my N3ZHEC (EU 6-port 2004)(I get the stock set values). Hopefully these are correct.

<table name="Radiator Fan1 Enable (ECT)" storageaddress="0x07793c" />
<table name="Radiator Fan1 Hysteresis (ECT)" storageaddress="0x077940" />
<table name="Radiator Fan2 Enable (ECT)" storageaddress="0x077944" />
<table name="Radiator Fan2 Hysteresis (ECT)" storageaddress="0x077948" />
<table name="Radiator Fan High Speed Enable (ECT)" storageaddress="0x07794c" />
<table name="Radiator Fan High Speed Hysteresis (ECT)" storageaddress="0x077950" />
<table name="Radiator Fan Disable (Vehicle Speed)" storageaddress="0x077988" />
<table name="Radiator Fan Disable Hysteresis (Vehicle Speed)" storageaddress="0x07798c" />
Attached Files

Last edited by naepsae; Aug 10, 2025 at 02:33 AM.
Reply
Old Aug 10, 2025 | 10:27 AM
  #81  
equinox92's Avatar
Thread Starter
Registered
 
Joined: Nov 2019
Posts: 345
Likes: 213
From: Detroit, MI
Looks right on my end, adding to main defs.. should see a git commit along with some name changes for clarity.
Reply
Old Aug 13, 2025 | 12:03 AM
  #82  
equinox92's Avatar
Thread Starter
Registered
 
Joined: Nov 2019
Posts: 345
Likes: 213
From: Detroit, MI
Figured I'd post this up here because I blasted out a script I think that works tonight:

Added a RomRaider definition creator for any S1 ROM to give you the option to do an immobilizer disable either WITH or WITHOUT the RKE still installed. Just run the .exe with your ROM in the same folder and it's name as an argument, or run it from the source python doing the same.

I'll run this on all known ROMs I have and update the main defs, but if anyone is REALLY HANKERING for an immo delete, this script will create the defs, and you can put them in your local copy to create your ROM.

https://github.com/equinox311/Mazda_...ster/Utilities

NOTE: I have tested this on a few ROMs and it works perfectly.. but please use at your own discretion. This also is NOT a patch tool. Just running this tool on your ROM will not add an immo disable, it simply creates the definitions for your to toggle it on/off in RomRaider. You will still need to do that in order to disable the immo.

Last edited by equinox92; Aug 13, 2025 at 12:12 AM.
Reply
Old Aug 18, 2025 | 01:52 AM
  #83  
naepsae's Avatar
Registered
 
Joined: Jul 2025
Posts: 13
Likes: 0
Question1:
Any chance to describe how can idle AFR fixed value 1:15 be changed to richer value in S1 early model?
My idle runs 950rpm target and closed loop should be on. Commanded value is 1:15 when idling.

Question2:
Have I understood correctly, AFR in open loop target map can only be 1:14,7 with value 0 and only richer(fuel map describe 1:256 uint8 steps map rich-value compared to lambda)?

Question3:
In closed loop steady load, is the system always targeting 1:14.7 AFR when the secondary-check-Lambda-sensor value oscillation is seen active?

Reply
Old Aug 18, 2025 | 02:53 AM
  #84  
MilosB's Avatar
Registered
 
Joined: Aug 2018
Posts: 238
Likes: 27
#2 - closed loop fuel additive allows you to reduce fuel down to 15.5:1 (but will not go higher ratio than that)

#3 - in principle yes, close to 14.7.. look at Ciprians mega closed loop afr mod
Reply
Old Aug 22, 2025 | 02:11 AM
  #85  
ciprianrx8's Avatar
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
Originally Posted by naepsae
Question1:
Any chance to describe how can idle AFR fixed value 1:15 be changed to richer value in S1 early model?
My idle runs 950rpm target and closed loop should be on. Commanded value is 1:15 when idling.
Question2:
Have I understood correctly, AFR in open loop target map can only be 1:14,7 with value 0 and only richer(fuel map describe 1:256 uint8 steps map rich-value compared to lambda)?
Question3:
In closed loop steady load, is the system always targeting 1:14.7 AFR when the secondary-check-Lambda-sensor value oscillation is seen active?
​​​​​​
1. CL lambda trim by RPM/load tables, but no need to idle any richer or leaner than 14.7

2. Yes. In OL you can't target any leaner than 14.7 and honestly no need to ever be.

3. Somewhat yes, the stock CL target is essentially 14.7 +- 0.2 something. By default you can't target any leaner than 15.2 and richer than 12.5.
Reply
Old Aug 22, 2025 | 02:36 AM
  #86  
MilosB's Avatar
Registered
 
Joined: Aug 2018
Posts: 238
Likes: 27
there are many reasons why you would run leaner then 14.7 in OL... its not all about max power.. you can run 16.5 in low load 30-60% for example and have significantly reduced fuel consumption for everyday driving. You cant target it obviously, you need to use "VE" table to trick it to go that lean, and it was limited due to catalytic converters, but that is something that is much better for the engine than 14.7 at same load, naturally reduces CO emissions ect...
Reply
Old Aug 22, 2025 | 04:22 AM
  #87  
naepsae's Avatar
Registered
 
Joined: Jul 2025
Posts: 13
Likes: 0
1) I must highlight the commanded and realized AFR value when idle is active: Commanded and realized AFR is fixed to a value 15:1. This is not OpenLoop target table value. My specific question would be: Where is this fixed target idle AFR value described in ROM. To me it seems the OL map is not the source for the idle AFR when idle-control-mode is active.
My goal would be to increase change idle AFR a bit close to stoich for better idling.

There seems to be a step change in AFR command if idling or gas pedal is in use. That is why I expect there to be a specific different values for AFRs in idle and in OL-map *based control modes.

Last edited by naepsae; Aug 27, 2025 at 01:19 PM.
Reply
Old Aug 22, 2025 | 09:48 AM
  #88  
ciprianrx8's Avatar
Registered
 
Joined: Apr 2020
Posts: 366
Likes: 180
From: Romania, Europe
Originally Posted by MilosB
there are many reasons why you would run leaner then 14.7 in OL... its not all about max power.. you can run 16.5 in low load 30-60% for example and have significantly reduced fuel consumption for everyday driving..
You think I haven't tried it? Spoiler alert: you use _more_ fuel going leaner. You actually use less when going a tad rich - 14.5, 14.6 for highway driving. Mazda or whoever made the stock tune figured that out. There isn't a single thing that can be done to improve fuel economy. Actually I lied. Put the car on a flatbed and tow it, and it will get better fuel economy that way.


Originally Posted by naepsae
1) My specific question would be: Where is this fixed target idle AFR value described in ROM.
CL lambda trim by RPM and load. 2 tables. Those + a whole bag of other nitty gritty trims for god knows what reason.

Originally Posted by naepsae
1)My goal would be to increase idle AFR a bit close to stoich for better idling.
Stock idle AFR is 15 or so. It idles just as good on 15.5 down to 14. No need to touch it.


Originally Posted by naepsae
There seems to be a step change in AFR command if idling or gas pedal is in use.
Not by gas pedal direcly. TPS, load, rpm, ECT....

Originally Posted by naepsae
That is why I expect there to be a specific different values for AFRs in idle and in OL-map control modes.
No. You can be in idle and OL, or driving and OL, or idle and CL, or driving and CL. There is no specific table for "idle fueling". It's covered by OL enrichment tables or by CL target trim by rpm/load/ect and many others.
Reply
Old Aug 26, 2025 | 09:34 AM
  #89  
naepsae's Avatar
Registered
 
Joined: Jul 2025
Posts: 13
Likes: 0
1) Update: Changed open loop target table value but no effect to Commanded idle AFR, still steady 15:1. Seems in my case idle control mode is there with fixed value, idle set to 950rpm. Off-throttle commanded AFR value 15:1. This is closed loop measured value aswell. I am using the Romraider definition provided by this Thread with only one available Open loop target fuel table.

Blip the throttle and AFR command reacts, returning off throttle to steady target 15:1
Blip the throttle and AFR command reacts, returning off-throttle to steady target 15:1


Last edited by naepsae; Aug 26, 2025 at 09:37 AM.
Reply
Old Aug 26, 2025 | 03:08 PM
  #90  
2rotorphil's Avatar
Registered
 
Joined: Jun 2015
Posts: 20
Likes: 2
From: Laval, Québec
These are the main fuel target correction tables, base fuel target is the base correction scaled to reflect the corrected afr target so I don't have to always add 1+- table value. The other tables are corrections of that base value, ECT corrections are + enriches the target and - leans the target. WOT correction is the same.


Reply
Old Aug 28, 2025 | 10:38 AM
  #91  
naepsae's Avatar
Registered
 
Joined: Jul 2025
Posts: 13
Likes: 0
1) Updated solution: A work around to the Commanded 15:1 idle value is found. I modified RomRaider definition to include an existing limiting parameter 'Closed Loop Lean Limit'(there is also CL rich limit stock value 0.85, type float).
I changed CL Lean Limit from Stock 1.05 to 1.01. This resulted in commanded value change from 15:1 to 14.78:1. This value seems to have the opportunity to perform catalyst 02-sensor oscillation. I also tried value CL Lean Limit 1.00 which resulted commanded value gapping to 14.6:1 or so(less than stoich I recall).

<table name="Lambda Rich Limit" storageaddress="0x07016C" />
<table name="Lambda Lean Limit" storageaddress="0x070170" />

-- and as was mentioned, the car will idle just as 'fine' with this AFR, did not gain noticeable change

Update:
Managed to identify those Close Loop correction Tables A & B (RPMvsLOAD) and Three ECTvsLOAD correction, which in this Thread given RomRaider definition matches the Undefined Tables:
Table 3D - 26 = CL Fuel correction ECTvsLOAD
Table 3D - 29 = CL Fuel correction Table A
Table 3D - 30 = CL Fuel correction Table B
Tables 3D -27 & 28 ECTvsLOAD = CL Fuel correction

<table name="Table 3D - 26 CL Fuel correction LOADvsECT" storageaddress="0x070B9C">
<table type="X Axis" storageaddress="0x070B58" />
<table type="Y Axis" storageaddress="0x070B78" />
</table>
<table name="Table 3D - 29 CL Fuel correction Table A" storageaddress="0x070E44">
<table type="X Axis" storageaddress="0x070DD4" />
<table type="Y Axis" storageaddress="0x070E04" />
</table>
<table name="Table 3D - 30 CL Fuel correction Table B" storageaddress="0x071034">
<table type="X Axis" storageaddress="0x070FC4" />
<table type="Y Axis" storageaddress="0x070FF4" />
</table>



Tables A&B and ECTvsLOAD for Close Loop AFR correction. Two extra undefined Table 3D 27&28 could have the same function.

Last edited by naepsae; Aug 30, 2025 at 05:15 AM.
Reply
Old Sep 26, 2025 | 12:24 PM
  #92  
timwick's Avatar
Registered
 
Joined: Sep 2025
Posts: 4
Likes: 1
Hello,

I have a unique one I thought I would throw in. It's a US 2004 GT Automatic 4 port that I have converted to a 6 speed manual. Still 4 port engine.

I was able to read the ecu using RX8Man and RomRaider to up my RPM from 7500 to 9000 successfully.

Here is the stock export.

I am using a Temu purchased Tactrix 2.0 for 20 dollars and a Microsoft Surface using Windows 10
Attached Files

Last edited by timwick; Sep 26, 2025 at 12:26 PM.
Reply
Old Sep 26, 2025 | 12:26 PM
  #93  
MilosB's Avatar
Registered
 
Joined: Aug 2018
Posts: 238
Likes: 27
Do NOT rev a 4 port above the oem rev limit.. the stationary gears are NOT reinforced, and will shatter!
Reply
Old Sep 26, 2025 | 12:37 PM
  #94  
timwick's Avatar
Registered
 
Joined: Sep 2025
Posts: 4
Likes: 1
Originally Posted by MilosB
Do NOT rev a 4 port above the oem rev limit.. the stationary gears are NOT reinforced, and will shatter!
Thanks for the info i'll turn it back down before driving further.
Reply
Old Sep 26, 2025 | 12:40 PM
  #95  
MilosB's Avatar
Registered
 
Joined: Aug 2018
Posts: 238
Likes: 27
You can get the 6 port ones that are reinforced, and swap, even while the engine is in the car. But its again a gearbox off task.
Reply
Old Sep 27, 2025 | 12:23 AM
  #96  
Punisher1199's Avatar
Registered
 
Joined: Sep 2025
Posts: 5
Likes: 0
Has anyone found the map for the cold start fueling?Having the car run pig rich until 35ECT without a cat does more harm than good
Reply
Old Sep 27, 2025 | 08:08 AM
  #97  
equinox92's Avatar
Thread Starter
Registered
 
Joined: Nov 2019
Posts: 345
Likes: 213
From: Detroit, MI


These tables can be used to set OL warmup fueling... not 100% sure the units are right, but basically it's fuel bucks and multipliers.
Reply
Old Sep 27, 2025 | 12:40 PM
  #98  
Punisher1199's Avatar
Registered
 
Joined: Sep 2025
Posts: 5
Likes: 0
Originally Posted by equinox92


These tables can be used to set OL warmup fueling... not 100% sure the units are right, but basically it's fuel bucks and multipliers.
I’ve seen these maps but can’t figure out the units sadly.This and launch control/flat shift is one of the big mysteries for me with this ecu.I can’t figure out how they work
Reply
Old Sep 28, 2025 | 10:03 AM
  #99  
equinox92's Avatar
Thread Starter
Registered
 
Joined: Nov 2019
Posts: 345
Likes: 213
From: Detroit, MI
Here is some of the ECU logic.. it's a bit out of context, but I think it'll help explain.



In red: There is the Warmup Fueling table output that is multiplied by Warmup Fueling - Load Based Multiplier to get a value
In blue: There is the Warmup Fueling - Engine Speed Based table output (there is another table for these based on some fault conditionals.. but I am only showing the 1 table during normal operation in my screenshot in the post above)

Red and blue are added together to get warmup_ol_lambda.

warmup_ol_lambda is then added to the OL_target_final_lambda to (in a bit of a convoluted way) create the output lambda for fuel volume math.




The units of the tables can be considered additional "lambda points" to enrich the fuel mixture. Kind of shitty, but I think seeing the logic makes it easier to understand. higher value = more fuel.

Last edited by equinox92; Sep 28, 2025 at 10:06 AM.
Reply
Old Sep 28, 2025 | 10:07 AM
  #100  
Punisher1199's Avatar
Registered
 
Joined: Sep 2025
Posts: 5
Likes: 0
I will give it a try.Thanks a lot for the explanation
Reply


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


All times are GMT -5. The time now is 10:00 PM.