RomRaider Logo

RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

It is currently Sat Feb 21, 2026 10:15 pm

All times are UTC




Post new topic Reply to topic  [ 107 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
Author Message
 Post subject: Re: Honda Development
PostPosted: Wed May 30, 2018 3:02 pm 
Offline
Newbie

Joined: Mon Aug 28, 2017 5:27 am
Posts: 21
There are J2534 flashing procedures for both CAN and K-Line but it looks like tools like PCMFlash and MMC Flasher only support read for CAN Bus. I've started some cursory investigation of a K-Line sh7058 ROM (37805-PRB-A080) and it looks like it shares some CAN init stuff with the PZX but I haven't looked for reflash code yet.


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Wed May 30, 2018 6:10 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 11:04 pm
Posts: 2661
Location: RIP
DN1GH wrote:
There are J2534 flashing procedures for both CAN and K-Line but it looks like tools like PCMFlash and MMC Flasher only support read for CAN Bus. I've started some cursory investigation of a K-Line sh7058 ROM (37805-PRB-A080) and it looks like it shares some CAN init stuff with the PZX but I haven't looked for reflash code yet.

Did you mean to say PCMFlash only supports 'write' for 'K-Line'? Because that's what the PCMFlash website says.

Quote:
Module 12 - $ 198
Honda/Acura CAN-bus

Honda: Honda PGM-FI Generic Read-Only
Honda: Honda AT/CVT/DCT Generic Read-Only

PGM-FI (Keihin TC1782/2.5MB)
Honda: PGM-FI (Keihin SH7058/1MB)
Honda: PGM-FI (Keihin SH72543/2MB)
Honda: PGM-FI (Keihin MPC5566/3MB)
Honda: AT/CVT/DCT (Keihin 512KB)
Honda: AT/CVT/DCT (Keihin 1MB)

Honda: PGM-FI (s*** SH7058/1MB)
Honda: PGM-FI (s*** SH72543/2MB)
Honda: PGM-FI 2013+ (s*** SH72543/2MB)
Honda: AT/CVT/DCT (s*** 512KB)

Honda: PGM-FI (Continental MPC5554/2MB)

Honda: PGM-FI (Hitachi SH7058/1MB)
Honda: PGM-FI (Hitachi SH7059/1.5MB)
Honda: PGM-FI (Hitachi SH72543/2MB)
Honda: PGM-FI (Hitachi MPC5554/2MB)
PGM-FI (Keihin SH72546/3.75MB)

Reading, writing, checksum correction.



Module 13 - $ 132
Honda/Acura K-Line

Honda: Accord 7 2003-2005 (s*** RBA/RBB SH7055/512KB)
Honda: Accord 7 2006-2007/TSX 2004-2005 (s*** RBA/RBB SH7055/512KB)
Acura: TSX 2006 (s*** RBB A56-A62 SH7058/1MB)
Honda: Accord 7 2005-2007 (Keihin RAD SH7058/1MB)
Honda: Legend 2005-2007 (Keihin RJA SH7058/1MB)
Honda: CR-V 2002/2005-2007 (Keihin PPA/PNL SH7058/1MB)

Honda: Fit/Jazz/Airwave 2001-2007 (Keihin OKI L66Q592/256KB)
Acura: MDX 2003-2007 (Motorola RDJ SH7055/512KB)

Only writing, checksum correction. Serial files database included!


I am not skilled enough to code a reflashing utility by examining the ECU binary in IDA. Not sure if that is what you're planning to do at some point. I don't know if it's needed at this point if PCMFlash works as is.

Getting a file that can be interactively disassembled would be cool. I know you posted about some of this stuff (memory layout, register names, etc.) a couple pages back but I haven't yet had a chance to play with it.

I'm tuning my S2000 with Flashpro currently but it has very limited maps available. They try to keep it a 'walled garden' as much as possible and either don't want to or don't have the time to define the interelated maps for a given function. Once I get a file to disassemble semi-elegantly in IDA I will be able find the other associated maps like we've done with BMW MS41. I've even written custom code for it after many years of working on the project.

But anyway, I'd love to be able to read my stock ECU and then lay it out in IDA and start defining subroutines and variables. I can also write RomRaider ECU Definition files as I go.


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Wed May 30, 2018 7:46 pm 
Offline
Newbie

Joined: Mon Aug 28, 2017 5:27 am
Posts: 21
Yeah, that's the way I meant it. I haven't seen K-line read advertised yet for a Renesas based Honda ECU, but I haven't looked too hard. I'd have to go back and look to see if Piasini had something K-line for the Oki ecus.

As for flashing, I've got the procedure down except for the SID27 auth, but that's only a matter of time.

For a little more complete disassembly of calibration files (0x8000-0xFFFFF) that I don't have full dumps of I mocked up a kernel (0x0-0x7FFF) in a separate file where the Reset Vector points to the entry point of the calibration (0x8008) and copied the IVT that starts at the address stored at 0x8004. It doesn't disassemble quite the same, but looks like more is automatically linked than not having the mock kernel.

*EDIT
The addresses above are for a sh7058 full dump. If looking at just the calibration, Entry=0x08, and IVT2=@0x04 for sh7058 and sh7254 and probably sh7059


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Thu May 31, 2018 10:13 pm 
Offline
RomRaider Developer

Joined: Thu May 21, 2009 1:49 am
Posts: 7323
Location: Canada eh!
mrf582 wrote:
I thought anything flashable using the J2534 protocol was CAN Bus? Please correct me if I'm wrong.
Sure... J2534 is an API that defines a common set of functions to interface with a J2534 compliant cable. The cable supports various protocols vehicle and physical interfaces to communicate with ECUs.


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Sun Jun 17, 2018 6:08 am 
Offline
Newbie

Joined: Sun Mar 11, 2018 11:39 pm
Posts: 11
I wrote rwd-xray to try to extract the firmware for the bosch radar in a 2017 Honda CR-V. The goal was to make it a general purpose rwd firmware extractor (and eventually generator), and it definitely still needs some work!

I recently updated it to brute force the simple substitution cipher by searching for the part number in the decrypted firmware. There are situations where multiple ciphers exist that result in the part number showing up in the firmware, but it is pretty good now. I know I should be validating checksums; should there be a way to identify and validate firmware checksums in a generic way?

Also, for what you guys refer to as the k-line file format (first byte 0x31) I currently output a single file, and if there are address jumps I insert 0x00 to fill all gaps. It sounds like I shouldn't do that; what is a better format to output the decrypted firmware?

I also recently figured out the last 4 bytes in the file is the sum of all the bytes in the file (except the last 4) little endian.


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Tue Jun 19, 2018 4:46 pm 
Offline
Newbie

Joined: Mon Jun 18, 2018 2:30 pm
Posts: 1
Good day to all.
Who learned how to read the checksum for sh7058 or sh7055?
Can you share the algorithm?


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Mon Jul 09, 2018 5:47 am 
Offline
Newbie

Joined: Fri Jun 29, 2018 12:38 am
Posts: 5
Hey, folks

Did anyone try to reflash any modules in Honda/Acura?
I managed to extract a firmware from .rwd (honda calibration file) and modify it. However, I'm having hard time trying to reflash modules.
First things first, I'm trying to obtain information about ECMs: their addresses and current firmware versions. In order to do that, I launch the latest Honda j2534 pass thru software using a Tactrix device. I'm sniffing CAN bus while the tool checks if any ECMs require updates. I expect to see at least a dozen ECMs on board, but there are only five ECMs (PGM, MICU, ACC, SRS, meter) that report their firmware versions. The Honda tool doesn't seem to bother checking ECMs like EPS and ABS. I'm sure those ECMs can be updated since there are calibration files corresponding to them. The j2534 communication sequence looks quite standard:
The ECMs are asked one by one with a specific command (below is a request to PGM MCU):
18DA0EF1 8 03 22 F1 90 00 00 00 00
then, the PGM replies with multiple messages that represent its firmware version:
18DAF10E 8 21 30 35 2D 52 34 48 2D ...

Does anyone have a clue why the Honda tool checks only certain ECMs?


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Tue Jul 10, 2018 5:15 am 
Offline
Newbie

Joined: Sun Mar 11, 2018 11:39 pm
Posts: 11
I have not actually reflashed anything yet, but I have noticed there is a database that can be opened with ms access which seems to have something to do with keeping track of which modules have firmware updates. If you are starting the j2534 rewrite tool and it is not checking the version of all the modules you expect, is there something other than j2534 that honda may use to perform some firmware updates? Also, make sure the firmware update part numbers match your vehicle because I believe things like country come into play.


Last edited by gregjhogan on Tue Jul 10, 2018 1:31 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Tue Jul 10, 2018 12:43 pm 
Offline
RomRaider Developer

Joined: Thu May 21, 2009 1:49 am
Posts: 7323
Location: Canada eh!
FYI, J2534 is not a communications protocol, it's an API. You might be better off looking at the vehicle communications protocol formats for ISO9141, IOS14320, J1850VPW/PWM, CAN etc.
vadbut wrote:
The ECMs are asked one by one with a specific command (below is a request to PGM MCU):
18DA0EF1 8 03 22 F1 90 00 00 00 00
then, the PGM replies with multiple messages that represent its firmware version:
18DAF10E 8 21 30 35 2D 52 34 48 2D ...
In this sequence it appears to me as if 18DA is a header of some sort. 0EF1 (F10E) may be the addresses of the ECM and tester and visa versa in the reply. The reset most likely are length and command codes/ACK. But all is most likely manufacturer specific. It's not generic ISO9141, IOS14320 format.


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Tue Jul 10, 2018 1:35 pm 
Offline
Newbie

Joined: Sun Mar 11, 2018 11:39 pm
Posts: 11
dschultz wrote:
it appears to me as if 18DA is a header of some sort. 0EF1 (F10E) may be the addresses of the ECM and tester and visa versa in the reply.

18DA0EF1 is a 29 bit CAN address


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Tue Jul 10, 2018 2:30 pm 
Offline
Newbie

Joined: Fri Jun 29, 2018 12:38 am
Posts: 5
gregjhogan wrote:
I have not actually reflashed anything yet, but I have noticed there is a database that can be opened with ms access which seems to have something to do with keeping track of which modules have firmware updates. If you are starting the j2534 rewrite tool and it is not checking the version of all the modules you expect, is there something other than j2534 that honda may use to perform some firmware updates? Also, make sure the firmware update part numbers match your vehicle because I believe things like country come into play.

To give you some context: I work on Acura ILX 2017 (USA) EPS module.
I explored the database back and forth trying to trick Honda Pass Thru to think there is a new callibration file. No luck. I also dissassembled the software to see where the version checks are. I was able to see that the tool compares versions only for the following modules:
37805-r4h-a120 pgm-fi
38808-tx6-a020 micu
36161-tv9-a140 acc/cmbs
77959-tx6-a230 srs
78109-tv9-a110 meter

I expect '39990-TV9-A910' (btw, your repository helped a lot. Thanks!) to show up for the EPS, but it never pops up anywhere in the Honda J2534 Pass Thru when it scans the car. Btw, I use a Tactrix device. Maybe I'm using a wrong tool or/and a device?

dschultz wrote:
FYI, J2534 is not a communications protocol, it's an API. You might be better off looking at the vehicle communications protocol formats for ISO9141, IOS14320, J1850VPW/PWM, CAN etc.
vadbut wrote:
The ECMs are asked one by one with a specific command (below is a request to PGM MCU):
18DA0EF1 8 03 22 F1 90 00 00 00 00
then, the PGM replies with multiple messages that represent its firmware version:
18DAF10E 8 21 30 35 2D 52 34 48 2D ...
In this sequence it appears to me as if 18DA is a header of some sort. 0EF1 (F10E) may be the addresses of the ECM and tester and visa versa in the reply. The reset most likely are length and command codes/ACK. But all is most likely manufacturer specific. It's not generic ISO9141, IOS14320 format.

It doesn't matter how you call it - the bottom line: the tool communicates to the modules via CAN bus (correct me if I'm wrong). It is manufacturer specific but I can clearly see firmware versions. Chec this out:
107677 64168.208 18DAB0F1 8 03 22 F1 81 00 00 00 00  " ñ 
107681 64170.939 18DAF1B0 8 10 13 62 F1 81 33 36 31   b ñ  3 6 1
107682 64171.259 18DAB0F1 8 30 00 00 00 00 00 00 00 0
107693 64174.378 18DAF1B0 8 21 36 31 2D 54 56 39 2D ! 6 1 - T V 9 -
107696 64175.161 18DAF1B0 8 22 41 31 34 30 00 00 55 " A 1 4 0 U
107698 64176.095 18DAB0F1 8 03 22 E6 01 00 00 00 00  " æ 
107704 64180.937 18DAF1B0 8 03 7F 22 31 55 55 55 55   " 1 U U U U

18DAB0F1 8 03 22 F1 81 00 00 00 00 - is a request from Honda's Pass thru tool. I interpret the '..B0F1' address part as 'module F1 to B0'. Then the B0 module replies (hence, the address is '...F1B0') with its firmware version: 3 6 1 6 1 - T V 9 - A 1 4 0. If you are curious I attached the whole CAN bus dialog with corresponding ASCII interpretation. It is the same situation as with the Honda Pass Thru software sniffing: I can only see five modules report their firmware versions over the CAN bus.

There is a bunch of unanswered request and it might be the case that some of the modules don't bother to respond (but why?). I also checked Honda Civic 2017 with the same Tactrix and Honda Pass Thru and I got the same result: only four modules report their versions, but this time, only one message didn't have a follow-up reply (logs are also attached). Which means the tool doesn't even bother to check all the modules! Maybe I'm really using a wrong set of tools?

Any thoughts?


You do not have the required permissions to view the files attached to this post.


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Thu Jul 12, 2018 1:59 pm 
Offline
RomRaider Developer

Joined: Thu May 21, 2009 1:49 am
Posts: 7323
Location: Canada eh!
Okay, so the comms is via CAN.

Here's the addressing breakdown:
18 DB xx F1 - 29 bit CAN identifier for functionally address request messages sent by external test equipment to ECU #xx
18 DA xx F1 - 29 bit Physical request CAN identifier from external test equipment to ECU #xx
18 DA F1 xx - 29 bit Physical response CAN identifier from ECU #xx to external test equipment

It seems that comms starts off with a query to see which modules are on the bus and gather there addresses for subsequent queries.
Code:
4555 2714.920 18DBEFF1 8 02 3E 00 00 00 00 00 00  >           
4556 2715.201 18DAF10E 8 02 7E 00 55 55 55 55 55  ~   U U U U U
4561 2718.523 18DAF1B0 8 02 7E 00 55 55 55 55 55  ~   U U U U U
4564 2719.389 18DAF126 8 02 7E 00 55 55 55 55 55  ~   U U U U U
4570 2722.163 18DAF153 8 02 7E 00 55 55 55 55 55  ~   U U U U U
4589 2734.284 18DAF160 8 02 7E 00 55 55 55 55 55  ~   U U U U U
Subsequent query/replies follow ISO 15765-2 format.

Code:
107698 64176.095 18DAB0F1 8 03 22 E6 01 00 00 00 00  " æ 
107704 64180.937 18DAF1B0 8 03 7F 22 31 55 55 55 55   " 1 U U U U
In this sequence it appears the '22 E6 01' command (SID:readDataByCommonIdentifier) is not supported, hence the response of 7F 22 reason 31 (requestOutOfRange).

Maybe those other modules don't speak CAN or respond to the initial broadcast query. But if that's the case then the Honda software (I presume it's genuine) you are using should know that and attempt comms with other modules using other medium/protocols.


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Wed Jul 25, 2018 1:56 am 
Offline
Newbie

Joined: Fri Jun 29, 2018 12:38 am
Posts: 5
It turned out that the device I used (Tactrix OpenPort 2.0) is not friendly with Honda's K-Line (an EPS unit I was looking for was on the K-Line).
I got another device which was able to communicate to the EPS and I was able to reflash it with a custom firmware.


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Wed Jul 25, 2018 6:48 am 
Offline
Newbie
User avatar

Joined: Thu Dec 15, 2016 7:18 am
Posts: 9
I'm just curious - what was the reason of yours EPS reflash and firmware mod? Did you encountered some software bug, or simply for training?


Top
 Profile  
 
 Post subject: Re: Honda Development
PostPosted: Wed Jul 25, 2018 9:40 pm 
Offline
Newbie

Joined: Fri Jun 29, 2018 12:38 am
Posts: 5
I'm using my car as a hobby project for self-driving systems and I need an ability to be able to control steering with CAN bus commands.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 107 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subsilver by phpBBservice.nl