Toyota GR86, 86, FR-S and Subaru BRZ Forum & Owners Community - FT86CLUB

Toyota GR86, 86, FR-S and Subaru BRZ Forum & Owners Community - FT86CLUB (https://www.ft86club.com/forums/index.php)
-   Software Tuning (https://www.ft86club.com/forums/forumdisplay.php?f=88)
-   -   To run 2020 V00C USDM on pre-2020 US, patch CAN id 0x3D7 to 0x3D1 (https://www.ft86club.com/forums/showthread.php?t=155456)

callisto 07-08-2025 05:34 PM

To run 2020 V00C USDM on pre-2020 US, patch CAN id 0x3D7 to 0x3D1
 
For the past couple years I've been trying to get the stock 2020 USDM ecu to work on the 2019 USDM, as it contains a variety of tuning changes that Subaru made in the car's final year (that I suspect result from side-by-side bench tests of the FA20 while finalizing and tuning the FA24) and shipped in both U00B/U01A and V00C/V01D. I finally pinned down the last obstacle today: it turns out that canbus CAN id 0x3D1 changed to 0x3D7, so patching @cd10- 00 00 03 D7 FF F8 to ... D1 ... resolves the persistent limp-mode CEL U0155 that's been my obstacle for the past three years.

I looked through the history and 0x3D1 was introduced for the 2015 model year, and seems to have been used consistently from D0xx through U0xx. Prior to that, it looks like it was 0x111. And when I looked at the code changes, I think it'll be fine for whatever's parsing it on the other end: approximately, before it sent xx yy zz 00 00 ..., now it sends xx yy zz ww 00 ..., and the way it calculates the existing values is unchanged.

But.. what is this CAN id? I haven't been able to identify anything that explains what cares about it. The 3D1 code sends along the Ambient Sensor Temperature, but I don't know which module in the car is consuming it. I suspect it's the instrument cluster, but there aren't any documented changes in 2020 MY for that I can find. Perhaps something changed in the HVAC system.

Anyways, with that and the usual ECU ID hacks, I think I've finally successfully backported 2020 to my 2019 (and imported the much-improved DI/PI tuning from S20G, too). It's been doing fine in drive tests with U0155 disabled and now that I don't need that override, I'm finally able to move forward from U01A (JP) to V00C (US) - and since only that single byte change was required, it should work on a much wider range of our cars than "just 2020" now.

I'd still like to understand CAN 0x111 / 0x3D1 / 0x3D7, but duly noted for anyone else who's interested in such things. The same exact patch should work on both V00C (US MT) and V01D (US AT); for folks outside of evap regions, U01A (JP MT) and U00B (JP AT) use 0x3D1 and no patch is required; they're all in the stock ROMs thread. (Yes, I could just calid hack K00G; instead, I'm learning how the autotune systems works, how to inspect the LTFT / FLKC learning progress with the car parked, etc.)

ps. V00C = ZA1JV00C = ZA1JV00C00G, I have no idea why their naming scheme changed.

EDIT: Changed "pre-2020" to "pre-2020 US" in title. If you're trying to run V00C00G, you're in the US, or else you don't need the US-specific smog code and so you should use U01A which doesn't have this problem anyways. This should only affect those trying to upgrade MY17/18/19 US vehicles to MY20 US software.

EDIT: RomRaider XML def to create a GUI on/off switch for this:

Code:

<table type="Switch" name="U0155 fix for 2017-2019 USDM" category="Model Year Selection - Prevents U0155" sizey="2" storageaddress="cd12">
<description>In V00C00G 2020 USDM, the instrument cluster and HVAC cluster expect ambient temperature to be sent on CAN id 0x3D7; in prior model years, this data was sent on 0x3D1. Enabling this override changes this 2020 USDM ECU to interact with 0x3D1 rather than 0x3D7; without it, pre-2020 gen1 Kouki facelift cars will code CEL U0155. (Regardless, this ECU is not compatible with gen1 pre-facelift Zenki.)</description>
<state name="Override CAN id for pre-2020 gen1 Kouki facelift (0x3D1)" data="03 d1" /><!-- V00C -->
<state name="Use unmodified OEM CAN id for MY20 USDM (0x3D7)" data="03 d7" /><!-- V00C -->
</table>


Compelica 07-10-2025 10:53 PM

Interesting - does that mean that V00C is not directly compatible with older models? Apart from not being able to flash prefacelift to facelift and vice versa, that calibration is not compatible with the models in the same group?

callisto 07-12-2025 05:11 PM

That single CAN id creates the incompatibility, yes; without this change, it codes U0155 because of the mismatch. Unmodified, 2020 US V* calibrations won’t run on any prior MY. All functionality including ECU, A/C, and cluster continue to function correctly so I would have to insert inline CAN logging in various places to find out what’s interacting on that id with the ECU, and I don’t have the gear to do so.

I suspect that pre-V flashes are not necessarily fully compatible with MY20 US because of this as well, since the mismatch would be true in reverse too; I don’t have one to test with but I’d love to know what it does!

I also now have a full set of green checkmarks for smog readiness with V00C on MY19 so that’s my six year project successful :) I’m aware there’s more to it than that, but it’s a milestone all the same: this should make both U01A (no smog, one byte change for MY20 US) and V00C (yes smog, one byte change except for MY20 US) fully accessible for tuning, once I finish and post their XML. So much to do, so little time :)

ps. I got +2mpg on a recurring long-distance trip I take today, and I no longer feel the torque dip when accelerating flat out uphill, so I’m quite satisfied with V00C+S20G dipi ratios. No need to get a custom tune anymore =)

gpvecchi 07-13-2025 03:10 AM

I have the 2020 JDM calibration on my EU model G and I have no issues...

geraldjust 07-13-2025 05:41 PM

that ID is sent out by the cluster, its sent out at once a second. its the settings of the "market / measurement units". when this is sent out, and the AC unit shows temp in F or C. Why they changed it i have no idea.

callisto 07-14-2025 04:30 AM

Quote:

Originally Posted by gpvecchi (Post 3615117)
I have the 2020 JDM calibration on my EU model G and I have no issues...

Is that JDM calibration ZA1JU01A? If so, that's still using the D..U era 0x3D1, which is widely compatible for any car that shipped with calibration D..U, at least. What model year is your car and what calibration did it have from factory? (Ah: 2020 EU still uses the D..U era part number; see below.)

callisto 07-14-2025 06:21 AM

Quote:

Originally Posted by geraldjust (Post 3615127)
that ID is sent out by the cluster, its sent out at once a second. its the settings of the "market / measurement units". when this is sent out, and the AC unit shows temp in F or C. Why they changed it i have no idea.

Thanks! That is helpful. It looks like 72311CA110 (17..19) was updated to 72311CA130 in the US model year 2020, but EU 2020 (ZC6-LM8) still uses CA110. Huh. Well, certainly, no one outside USDM should use V00C anyways - it looks to just be U01A + US evap/smog, though I'm not at all certain of that yet - but it is still super weird that they updated it for precisely one year in one market only. I suppose if I wanted to run stock ECU without the one byte patch, I could swap out my cluster *and* heater control assembly, but like a thousand dollars versus five seconds in a hex editor. Good to know though!

geraldjust 07-14-2025 07:28 PM

Quote:

Originally Posted by callisto (Post 3615132)
Thanks! That is helpful. It looks like 72311CA110 (17..19) was updated to 72311CA130 in the US model year 2020, but EU 2020 (ZC6-LM8) still uses CA110. Huh. Well, certainly, no one outside USDM should use V00C anyways - it looks to just be U01A + US evap/smog, though I'm not at all certain of that yet - but it is still super weird that they updated it for precisely one year in one market only. I suppose if I wanted to run stock ECU without the one byte patch, I could swap out my cluster *and* heater control assembly, but like a thousand dollars versus five seconds in a hex editor. Good to know though!

well mainly the cluster and not the AC unit. But their is one issue, editing the hex, it can mess with the CVN number. unless its auto correcting for that change. but just as easily make a tiny board that just reads all three locations, and if one shows up. retransmit the same can message on the others. makes everything universal.

callisto 07-16-2025 11:22 AM

Well, I don’t think Subaru certified the 2020 calibration for use on my vehicle, so whether or not it matches the stock CVN, I expect it would be rejected without the EO process.

gpvecchi 07-16-2025 03:49 PM

Quote:

Originally Posted by callisto (Post 3615132)
Thanks! That is helpful. It looks like 72311CA110 (17..19) was updated to 72311CA130 in the US model year 2020, but EU 2020 (ZC6-LM8) still uses CA110. Huh. Well, certainly, no one outside USDM should use V00C anyways - it looks to just be U01A + US evap/smog, though I'm not at all certain of that yet - but it is still super weird that they updated it for precisely one year in one market only. I suppose if I wanted to run stock ECU without the one byte patch, I could swap out my cluster *and* heater control assembly, but like a thousand dollars versus five seconds in a hex editor. Good to know though!

The US heater control has the same part numer of the EU one.

callisto 07-18-2025 11:46 PM

Quote:

Originally Posted by gpvecchi (Post 3615174)
The US heater control has the same part numer of the EU one.

Ugh, so much for my third-party parts website lookup. Since I'm not going to be creating a hardware solution for this no matter what I find, I'm going to cease my research into it and move on to outcomes. Thanks for the tips! If there's more y'all would like to share about this, I'd love to listen further.

tomm.brz 07-23-2025 12:23 AM

with non-updated Proecu, and nevc command, you can run it on any post facelift car in the world without problems same as gpvecchi is using
as per the utility, is questionable as those roms aren't really well defined in romraider or ecutek, to tune them is better to use more stable and defined roms

callisto 07-23-2025 05:44 PM

Quote:

Originally Posted by tomm.brz (Post 3615252)
as per the utility, is questionable as those roms aren't really well defined in romraider or ecutek, to tune them is better to use more stable and defined roms

Ah, I definitely understand and acknowledge that none of this work I’m putting in will make tuners more likely to work with the post-facelift ECUs; that’s already been made clear repeatedly and I intended no argument against that. Apologies for being unclear!

tomm.brz 07-24-2025 12:20 AM

Actually i do apologize very to you, it wasn't my intention to diminish your great work and effort you're putting in it
Just wanted to point out that for tuning purpose it' s better to avoid those latest revision of oem calibration
But you did a great great job.
Even if with ecutek you can easily see all these tables and differences you found, and also try modyfing them to see what they act to, ecutek it's still expensive and closed source
it is always great to have smart people like you address all this effort for the sake of open source freedom
Thanks!


All times are GMT -4. The time now is 04:45 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
User Alert System provided by Advanced User Tagging v3.3.0 (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.


Garage vBulletin Plugins by Drive Thru Online, Inc.