fenugrec / nisprog

nisprog Nissan ECU reflashing tool
GNU General Public License v3.0
77 stars 17 forks source link

Improving Fast Dump Speeds (Non-Kernel) #21

Open Pytrex opened 1 year ago

Pytrex commented 1 year ago

Fast dumping (non-kernel) can be improved by utilizing the extended DLIDs with $AC. If I'm understanding correctly, $AC is used for fast dumping without the kernel running.

Typical Fast Dump (non-kernel) Procedure: $AC (12 bytes) $21 $AC (12 bytes) $21 $AC (12 bytes) $21 $AC (12 bytes) $21 $AC (12 bytes) $21 Total: 60 Bytes of Address Data in 10 Messages

Refined Fast Dump (non-kernel) Procedure: $AC 81 (12 Bytes) $AC 82 (11 Bytes) $AC 83 (11 Bytes) $AC 84 (11 Bytes) $AC 85 (11 Bytes) $AC 86 (4 or 5 Bytes) $21 Total: 60 or 61 Bytes of Address Data in 6 Messages (not sure if 61 bytes will throw errors)

What this is doing is utilizing extended DLIDs for $AC. So instead of immediately requesting the 12 bytes, you fill up the DLIDs and then request the bulk in one command. The one problem with this is that I don't know if the TCM or ABS module supported extended DLIDs. Consult files would suggest that the TCM supports DLIDs 81->83, but I haven't personally verified this. Either way, this shouldn't matter too much, but maybe adding a failsafe to ensure it'll just revert to the old $AC, $21, $AC, $21 method if the new one is unsupported.

Resources: Example Showing Step by Step Process of Extended DLIDs $AC Formatting

fenugrec commented 1 year ago

cool, but low priority unless you want to do it