|
|
|
|
|
|
BMW Garage | BMW Meets | Register | Today's Posts | Search |
|
BMW 3-Series (E90 E92) Forum
>
Transmission remap - Let's do it ourselves
|
|
12-22-2015, 07:34 AM | #529 | |
Lieutenant
152
Rep 452
Posts |
Quote:
A note - they only read out the flash - not the data in the processor. It is _not_ a complete readout, and it is not enough to make a proper remap. The data stored in the processor itself is still needed, that code will not be able to recover a faulty write to the processor. |
|
Appreciate
0
|
12-23-2015, 12:36 PM | #530 | ||
715
Rep 755
Posts |
Quote:
|
||
Appreciate
0
|
12-23-2015, 08:45 PM | #531 |
Banned
799
Rep 1,630
Posts |
There is calibration data and software. The size of the file they were flashing appeared to be too small to be both. I believe they were flashing and recovering calibration data. Either that or an EDC15 doesn't control much.
|
Appreciate
0
|
12-25-2015, 08:15 AM | #532 | |
Lieutenant
152
Rep 452
Posts |
Quote:
A full EDC16 readout is 2MB. |
|
Appreciate
0
|
12-27-2015, 06:42 AM | #533 |
715
Rep 755
Posts |
In the meantime I did check the OLS816 and sadly our TCU is not supported. Even more sad: EVC meant, that these files are RSA signed and they don't see any way to work on that from their point.
Has anyone made contact to the guys from defcon so far? |
Appreciate
0
|
12-27-2015, 08:51 AM | #534 |
Banned
799
Rep 1,630
Posts |
|
Appreciate
0
|
12-27-2015, 09:30 AM | #535 |
715
Rep 755
Posts |
|
Appreciate
0
|
12-27-2015, 04:02 PM | #536 | |
715
Rep 755
Posts |
Quote:
Starting from version 6.13 they included a function "PruefeSignatur" (CheckSignature). So it looks like at that time the signature fun started (~ Summer 2005). But again, the function just references an API call where the "magic" happens. I included one version, which i think links to the DME. Change the file extension to rar, pw is "e90post". Last edited by RBT-Tuning; 12-27-2015 at 04:20 PM.. |
|
Appreciate
3
|
12-27-2015, 07:26 PM | #537 | |
Ballin' out of control.
525
Rep 1,289
Posts |
Quote:
Code:
<JOB> <JOBNAME>SPEICHER_SCHREIBEN</JOBNAME> <JOBCOMMENT>Beschreiben des Steuergeraete-Speichers</JOBCOMMENT> <JOBCOMMENT>Als Argumente werden uebergeben:</JOBCOMMENT> <JOBCOMMENT>Speichersegment, Start-Adresse, Anzahl der Datenbytes</JOBCOMMENT> <JOBCOMMENT>und Datenbytes (Datenbytes durch Komma getrennt)</JOBCOMMENT> <JOBCOMMENT>KWP2000: $3D WriteMemoryByAddress</JOBCOMMENT> <JOBCOMMENT>Modus : Default</JOBCOMMENT> <ARG> <ARGNAME>SEGMENT</ARGNAME> <ARGTYPE>string</ARGTYPE> <ARGCOMMENT> "LAR" "linearAdressRange"</ARGCOMMENT> <ARGCOMMENT> "ROMI" "ROM / EPROM, internal"</ARGCOMMENT> <ARGCOMMENT> "ROMX" "ROM / EPROM, external"</ARGCOMMENT> <ARGCOMMENT> "NVRAM" "NV-RAM (characteristic zones, DTC memory"</ARGCOMMENT> <ARGCOMMENT> "RAMIS" "RAM, internal (short MOV)"</ARGCOMMENT> <ARGCOMMENT> "RAMXX" "RAM, external (x data MOV)"</ARGCOMMENT> <ARGCOMMENT> "FLASH" "Flash EPROM, internal"</ARGCOMMENT> <ARGCOMMENT> "UIFM" "User Info Field Memory"</ARGCOMMENT> <ARGCOMMENT> "VODM" "Vehicle Order Data Memory"</ARGCOMMENT> <ARGCOMMENT> "FLASHX" "Flash EPROM, external"</ARGCOMMENT> <ARGCOMMENT> "RAMIL" "RAM, internal (long MOV / Register)"</ARGCOMMENT> <ARGCOMMENT> "???" "unbekanntes Speichersegment"</ARGCOMMENT> </ARG> <ARG> <ARGNAME>ADRESSE</ARGNAME> <ARGTYPE>long</ARGTYPE> <ARGCOMMENT>0x000000 - 0xFFFFFF</ARGCOMMENT> </ARG> <ARG> <ARGNAME>ANZAHL</ARGNAME> <ARGTYPE>int</ARGTYPE> <ARGCOMMENT>1 - n ( max. 249 )</ARGCOMMENT> </ARG> <ARG> <ARGNAME>DATEN</ARGNAME> <ARGTYPE>string</ARGTYPE> <ARGCOMMENT>zu schreibende Daten (Anzahl siehe oben)</ARGCOMMENT> <ARGCOMMENT>z.B. 1,2,03,0x04,0x05...</ARGCOMMENT> </ARG> <RESULT> <RESULTNAME>JOB_STATUS</RESULTNAME> <RESULTTYPE>string</RESULTTYPE> <RESULTCOMMENT>OKAY, wenn fehlerfrei</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_GENERAL_REJECT"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_SERVICE_NOT_SUPPORTED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_SUBFUNCTION_NOT_SUPPORTED__INVALID_FORMAT"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_BUSY_REPEAT_REQUEST"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_CONDITIONS_NOT_CORRECT_OR_REQUEST_SEQUENCE_ERROR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_ROUTINE_NOT_COMPLETE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_REQUEST_OUT_OF_RANGE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_SECURITY_ACCESS_DENIED__SECURITY_ACCESS_REQUESTED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_EXCEED_NUMBER_OF_ATTEMPTS"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_REQUIRED_TIME_DELAY_NOT_EXPIRED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_DOWNLOAD_NOT_ACCEPTED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_IMPROPER_DOWNLOAD_TYPE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_CANNOT_DOWNLOAD_TO_SPECIFIED_ADDRESS"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_CANNOT_DOWNLOAD_NUMBER_OF_BYTES_REQUESTED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_UPLOAD_NOT_ACCEPTED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_IMPROPER_UPLOAD_TYPE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_CANNOT_UPLOAD_FROM_SPECIFIED_ADDRESS"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_CANNOT_UPLOAD_NUMBER_OF_BYTES_REQUESTED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_TRANSFER_SUSPENDED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_TRANSFER_ABORTED"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_ILLEGAL_ADDRESS_IN_BLOCK_TRANSFER"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_ILLEGAL_BYTE_COUNT_IN_BLOCK_TRANSFER"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_ILLEGAL_BLOCK_TRANSFER_TYPE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_BLOCKTRANSFER_DATA_CHECKSUM_ERROR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_REQUEST_CORRECTLY_RECEIVED__RESPONSE_PENDING"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_INCORRECT_BYTE_COUNT_DURING_BLOCK_TRANSFER"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_SERVICE_NOT_SUPPORTED_IN_ACTIVE_DIAGNOSTIC_MODE"</RESULTCOMMENT> <RESULTCOMMENT> "OKAY"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_INCORRECT_RESPONSE_ID"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_INCORRECT_LEN"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_INCORRECT_LIN_RESPONSE_ID"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_INCORRECT_LIN_LEN"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_F_CODE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_TABLE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_INTERPRETATION"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_F_POS"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_SEGMENT"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ADDRESS"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NUMBER"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_DATA"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_MODE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_BAUDRATE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_BYTE1"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_BYTE2"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_BYTE3"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_DATA_OUT_OF_RANGE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NUMBER_ARGUMENT"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_RANGE_ARGUMENT"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_VERIFY"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NO_BIN_BUFFER"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_BIN_BUFFER"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_DATA_TYPE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECKSUM"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_FLASH_SIGNATURE_CHECK"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_VEHICLE_IDENTIFICATION_NR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_PROGRAMMING_DATE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ASSEMBLY_NR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CALIBRATION_DATASET_NR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_EXHAUST_REGULATION_OR_TYPE_APPROVAL_NR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_REPAIR_SHOP_NR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_TESTER_SERIAL_NR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_MILAGE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_PROGRAMMING_REFERENCE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NO_FREE_UIF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_MAX_UIF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_SIZE_UIF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_LEVEL"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_KEY"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_AUTHENTICATION"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NO_DREF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_PECUHN"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_PRGREF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_AIF_NR"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_DREF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_HWREF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_HWREF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_PRGREFB"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_VMECUH*NB"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_PRGREFB"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_CHECK_VMECUH*N"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_MOST_CAN_GATEWAY_DISABLE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NO_P2MIN"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NO_P2MAX"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NO_P3MIN"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NO_P3MAX"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_NO_P4MIN"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_DIAG_PROT"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_SG_ADRESSE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_SG_MAXANZAHL_AIF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_SG_GROESSE_AIF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_SG_ENDEKENNUNG_AIF"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_SG_AUTHENTISIERUNG"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_TELEGRAM_LEN_OUT_OFF_RANGE"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ARGUMENT"</RESULTCOMMENT> <RESULTCOMMENT> "ERROR_ECU_UNKNOWN_NEGATIVE_RESPONSE"</RESULTCOMMENT> </RESULT> <RESULT> <RESULTNAME>_TEL_AUFTRAG</RESULTNAME> <RESULTTYPE>binary</RESULTTYPE> <RESULTCOMMENT>Hex-Auftrag an SG</RESULTCOMMENT> </RESULT> <RESULT> <RESULTNAME>_TEL_ANTWORT</RESULTNAME> <RESULTTYPE>binary</RESULTTYPE> <RESULTCOMMENT>Hex-Antwort von SG</RESULTCOMMENT> </RESULT> </JOB> Code:
C:\EDIABAS\Bin>xtract -X c:\ediabas\ecu\gs19d.prg XTRACT Version 7.3.0, EDIABAS Version 7.3.0 Copyright BMW AG, created by Softing AG C:\EDIABAS\ECU\GS19D.PRG -> .\GS19D.XML Press any key to exit...
__________________
Alpina B3 Flash/BMS OCC/ER CP/ETS 5/HKS BOV/M3 Control Arms
|
|
Appreciate
1
CarAbuser487.00 |
01-07-2016, 02:35 PM | #538 | |
Ballin' out of control.
525
Rep 1,289
Posts |
Apologies for the double post, but this thread has gone silent...
Quote:
On my E92 (6HP21), the EGS has a setting for the electronic shift interlock: Code:
EL_INTERLOCK aktiv
__________________
Alpina B3 Flash/BMS OCC/ER CP/ETS 5/HKS BOV/M3 Control Arms
|
|
Appreciate
1
|
01-07-2016, 05:40 PM | #539 |
Banned
799
Rep 1,630
Posts |
I maybe running down dead end streets.
Knew SCT support was not held in high regard. Sent a message to their support team asking if we could get their ZF6HP tuning ported to BMWs. Also asked them to forward the message to the President, as he and I shared some tuning experiences a lifetime ago, before SCT even existed. Well, that was 2 weeks ago with not even an acknowledgement. Sent TCU calibration files to HP tuners, per their request. Have not heard back, dispite a recent follow-up. Perhaps, they are working on it. Finally, doing some investigation on a CAN massage "translator". Not our best option, but it maybe possible to use a Ford TCU with translation of CAN messages between a FORD TCU and BMW ECU. That technology could also be used as an interceptor between BMW TCU and ECU to trick the tranny, piggyback style. |
Appreciate
1
|
01-10-2016, 09:00 AM | #540 | |
Major
808
Rep 1,192
Posts |
Quote:
|
|
Appreciate
0
|
01-10-2016, 09:06 AM | #541 | |
Major
808
Rep 1,192
Posts |
Quote:
If so, what is the best way to contact them? |
|
Appreciate
0
|
01-10-2016, 12:33 PM | #542 | |||||
Ballin' out of control.
525
Rep 1,289
Posts |
Quote:
Quote:
Quote:
Quote:
Quote:
No, I don't have a 6HP26 to test the hypothesis...
__________________
Alpina B3 Flash/BMS OCC/ER CP/ETS 5/HKS BOV/M3 Control Arms
|
|||||
Appreciate
0
|
01-10-2016, 04:15 PM | #544 | |
715
Rep 755
Posts |
Quote:
Nevertheless I worked a lot on the ips/prg/Winkfp files the last 2 weeks, but there were no major breakthroughs to report so I kept silent. What I can confirm 100% by now, is that's it's not possible to let the ECU "skip" the signature check from outside, or set it to a running state without the check whithin the scope of the ips/prg files. Unfortunately there's no useful information retrievable from these files. I also started to decompile WinkFP.exe and already found the part where the signature check is handled. I don't have a thorough understanding of the procedure at the moment but honestly I don't expect to find any useful information in there either. As far as I made an understanding the TCU does the check fully on it's own and just returns OK or NOK. So no way to interfere from outside. After completing the flash procedure the TCU switches to state "0x05" (Program) or "0x06" (Data) which means that they are fully flashed, but not yet checked. The sig check then has to be called from outside and afterwards the TCU switches to state 0x01 (running), which WinkFP readsout and confirms a successful flash. I also found the signature block on both the *.opa and the *.oda files. It's a 128 byte block each (=1024 Bit). The oda starts right with the signature, the opa ends with the signature. As the opa file is much bigger, than the readout with BMW Scanner i guess there's a good chance the signature routine is included in the code of the opa file. But I'm not aware of any available program, which disassembles the Motorola code.....? (IDA does, but costs a fortune) That's my state at the moment.... |
|
Appreciate
4
|
01-10-2016, 05:19 PM | #545 |
Colonel
1002
Rep 2,287
Posts |
Great work.
This is really tough work When you consider the lack publicly available information. If the TCU is checking the program and calibration file by itself, what are the authorization files in the daten folders for? On another note, I think I've managed to get my DME to ignore the toque reduction requests from the TCU. It's a single byte in the calibration tables and so far it has not thrown a code. I'd rather have a quick shifting box but removing the power reduction feels awesome. I'm going to log the behavior before pushing it too hard. I'm not keen on on the idea of burned clutches or a broken torque converter. |
Appreciate
0
|
01-11-2016, 03:23 AM | #547 | |
Lieutenant
152
Rep 452
Posts |
Quote:
|
|
Appreciate
0
|
01-11-2016, 03:34 AM | #548 | |
Banned
799
Rep 1,630
Posts |
Quote:
Yes, let it adapt. I'm sure you cleared adaptions, but just mentioning it. |
|
Appreciate
0
|
01-11-2016, 03:51 AM | #549 |
Banned
799
Rep 1,630
Posts |
A couple of thoughts came together today. The Defcon21 guys were able to recover a faulty flash on a EDC16. The folks at JR tuning say they are not remapping but changing some pointers in memory. They do it from the OBD port and in a very short time. Wondering if there "configuration" switches in the flashable memory? Still more questions than answers.
|
Appreciate
0
|
01-11-2016, 09:25 AM | #550 | |
Lieutenant
152
Rep 452
Posts |
Quote:
We have the full readout - there are not double sections.. I call bollocks.. |
|
Appreciate
0
|
Bookmarks |
|
|