Open source GM OBD2 flash tool using a ELM327 device

They go by many names, P01, P59, VPW, '0411 etc. Also covering E38 and newer here.
Locked
160plus
Posts: 90
Joined: Thu Sep 21, 2017 3:00 pm

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by 160plus »

Tazzi wrote:
160plus wrote:The STN chips only emulate the Elm for simplicity of commands...they have a hole different set of commands you can also use that go way beyond what the Elms use. Here's a breakdown of the stn chip from product literature I received from them.

https://imgur.com/a/LIikU
Iv been through their documentation. I used their OBDLink for a while until I got sick of the limitation. My previous comment about the single frame receive still applies. :thumbup:
Non-CAN protocols (see ATSP, protocols 1 through 5) do not use flow control filters (refer to Figure 2). When a message comes from the OBD bus, it is compared to the pass filters. If the message does not match one of the filters, it is discarded. Otherwise, the message is compared to the block filters. If there is a match, the message is discarded. Finally, if the message goes through both the pass and block filters, it is transmitted on the UART.
In automatic filtering mode, pass filters are automatically set based on the currently set message header. Table below lists the filters set up from the default headers: Protocol(s) Filter (pattern, mask) J1850 PWM J1850 VPW 006B00,14FF00 ISO 9141-2 pass all ISO 14230-4 80F100,C0FF00 While in the automatic filtering mode, anytime the message header is changed, either by the user (ATSH command) or because of a protocol change, the pass
filter gets updated. As soon as the user clears the pass filters, or adds a pass filter, automatic filtering mode is switched off. Issue ATAR to clear all custom filters, set up default filters, and turn on the automatic filtering mode.
Some commands temporarily alter the contents of the pass filters. For example, while the ATMA or STMA commands are active, they temporarily disable any previously added pass or block filters, and set up one “pass all”
filter. Upon termination of the command, the “pass all” filter is removed, and the old pass/block filters are restored. Figure 2 – Message Filtering: Non-CAN Protocols Message from OBD Bus Pass Filters added using STFPA
Block Filters added using STFBA Transmit Message on UART no match no match match match discard STN1100 Family 38 of 55 www.obdsol.com STN1100FRPMB ATMR and ATMT commands behave the same way, except that instead of setting a “pass all” filter, they set up a filter to accept messages based on the address of the receive (or transmit) node passed as the parameter. STM command uses all filters “as-set”: it does not modify them in any way. ATSR turns off the automatic filtering mode, and sets up a pass filter to accept messages sent to the receive address provided as the parameter to ATSR. In order to directly manipulate the filters, use the filtering ST commands described in Section 8.8 “Filtering ST Commands”.
It's very confusing to me but I was able to figure it out and have been able to receive multi line messages and receive multiple messages from multiple headers at once while not in ST MA. The passage is from the "Non Distributed" copy of the stn documentation. It's not publicly posted but they were giving links out to those that request it a while ago. As it says..... use at your own risk https://www.scantool.net/scantool/downl ... minary.pdf
160plus
Posts: 90
Joined: Thu Sep 21, 2017 3:00 pm

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by 160plus »

Tazzi wrote:Right, so Im seeing your confusion. Most of it is coming from you not understanding the language (The VPW protocol.. or what each mode does.. ect)

All tuning applications will read the same binary file out (tune) on the SAME ecu.

After all.. its the same ecu.. so the same tune is going to be pulled out everytime. It wouldnt make sense if a different tune was pulled out every time?
When you make a change.. that change is SAVED to the ECU. So reading it out with another tuning platform will see that change also.
Changing the 'chunk' size.. still means the same file comes out.. its just read out in smaller chunks.

Again, like said before, some ECUs require a custom bootloader, others do not.

For example:
On ALL Holden LS1 V8's (0411), these require a bootloader sent first. There is no 'magical' command you can send which suddenly gives you the tune and writes the tune. Making this bootloader is the hard part.. what Antus posted was the 'magic' that makes it all work.
When doing a factory update using GMs online system, it sends a custom bootloader FIRST.. and then sends the update file. Its easy to copy this bootloader.. but you are copying their intellectual property. Lots of small companies do it for private use, but no commercial company is stupid enough to do that.

Whereas, on a Holden VZ V6 ECU, these have a bootloader built into them. There IS a magical command which lets you read and write to the ECU without any work. It could be done with a ELM327, although its not advised due to my previous indication of its limitation, which is next to impossible to deal with or get passed. If you do not understand the protocol, or what each 'mode' and response actually means, then its kinda hard for you to probably understand what Im taking about :thumbup:


So.. your ECU may not require a bootloader. We wouldnt know more unless you gave details about what ecu your connected to.
If the ECU has its own inbuilt bootloader.. then yeah it really is that easy. Anyone with a bit of time can get reading/writing done on that.
If you need to create your own bootloader.. then you would need to do what Antus did (The one that apparently doesnt speak American English.. but does speaks fluent Australian and M68 for LS1's...)
Here's a calibration write at 1x recorded on an obdlinkMX on a 0411 pcm with a non commercially branded program

PCM flash 512KB
Operating System 12212156


E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
6C FE F0 28 00 10
6C F0 10 68 00 9F
6C 10 F0 27 01 B0
6C F0 10 67 01 60 CB E2
6C 10 F0 27 02 C7 ED D3
6C F0 10 67 02 34 4B
8C FE F0 3F 2C
6C 10 F0 34 00 0F 42 FF 81 EE 54
6C F0 10 74 00 44 1E
8C FE F0 3F 2C
00 00 21 CD B0 16 42 B8 B0 12 4D 19 65
6D F0 10 76 00 73 42
8C FE F0 3F 2C
00 FF 82 4C F2 0A 31 F9 00 FF 82 4E F2 0C 31 F9 00 FF 82 50 F2 0E 31 FC 00 06 F2 30 42 78 F2 10 4E 75 08 F8 00 05 F2 0C 70 6A 4E B9 00 FF 82 6A 08 38 00 07 F2 10 66 04 42 40 60 0A 08 B8 00 07 F2 10 30 38 F2 B0 4E 75 4E 56 00 00 E3 40 F0
8C FE F0 3F 2C
6D 10 F0 36 80 00 00 FF 81 EE 02 EE 6E
6D F0 10 76 00 73 42
8C FE F0 3F 2C
28 05 3C 1A 00 43 05 9C 0B 03 43 C4 27
6C F0 10 76 00 73 04
8C FE F0 3F 2C
14 00 14 00 14 00 14 00 14 00 B8 56 B2
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 33 CE CC 5F
6C F0 10 76 00 73 04
8C FE F0 3F 2C
0B 24 0A B3 0A 47 09 E0 09 7C 62 17 3D
6C F0 10 76 00 73 04
8C FE F0 3F 2C
1F 48 21 66 23 5C 25 00 26 33 98 1B 46
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FA 04 FC 00 FD 00 03 78 06 60 C7 9A 89
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 D4 00 90 05 D7 05 93 05 4E 9F B8 0E
6C F0 10 76 00 73 04
8C FE F0 3F 2C
12 00 04 98 04 98 04 98 04 98 4D 91 E7
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 6E A5 79
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 74 00 74 00 74 00 53 00 53 C0 57 30
6C F0 10 76 00 73 04
8C FE F0 3F 2C
06 66 03 04 07 0D 12 15 18 1A C5 D6 AD
6C F0 10 76 00 73 04
8C FE F0 3F 2C
01 36 01 36 01 36 04 00 03 20 16 3E 4D
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 B7 75 E5
6C F0 10 76 00 73 04
8C FE F0 3F 2C
06 7D 06 AB 06 AB 06 AB 06 AB 56 C0 B7
6C F0 10 76 00 73 04
8C FE F0 3F 2C
06 D1 06 D1 06 D1 06 D1 03 33 39 A6 9C
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 5B 00 72 00 9F 00 CD 00 FA 56 1D BC
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FE C1 FE 94 FE 66 FE 39 FE 0B DE DB BF
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FF 1C FF 1C FF 1C FE EF FE EF 7F 94 BB
6C F0 10 76 00 73 04
8C FE F0 3F 2C
10 00 10 00 10 00 10 00 10 00 8C 38 7F
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 2E 00 2E 06 40 06 40 06 40 83 FB 94
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 24 CF DC
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 63 00 63 00 91 00 7A 00 69 B3 79 52
6C F0 10 76 00 73 04
8C FE F0 3F 2C
01 5E 01 69 01 66 01 66 01 76 E5 1D B9
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FF FF FF FF FF FF FF FF FF FF 34 0D D8
6C F0 10 76 00 73 04
8C FE F0 3F 2C
0D 0D FF FF FF FF FF FF FF FF 70 7D 3D
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 C0 DB A0
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 17 00 1B 00 20 00 24 00 28 8C 72 34
6C F0 10 76 00 73 04
8C FE F0 3F 2C
02 A6 02 A6 02 A6 02 A6 02 AE A0 DC 69
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FD 1B FD 1B FD 1B FD 1B FD 1B 5A 40 81
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 22 35 17
6C F0 10 76 00 73 04
8C FE F0 3F 2C
80 00 80 00 80 00 80 00 80 00 EB 51 84
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 FF 00 00 85 62 8D
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 FF 00 00 00 00 00 00 DF 53 C3
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 06 40 01 40 CB D4 5A
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 64 56 1F
6C F0 10 76 00 73 04
8C FE F0 3F 2C
7F FF 00 00 00 00 00 00 01 40 FA F6 5D
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 18 00 00 00 00 00 00 2E B8 F6 10 8C
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 CB 00 F6 01 0E 01 1A 01 25 10 8B 81
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FF FF FF FF FF FF FF FF FF FF EA DE 6E
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FF FF FF FF FF FF FF FF FF FF F9 A7 9C
6C F0 10 76 00 73 04
8C FE F0 3F 2C
03 20 D1 20 0C CD 0C CD 0C CD 98 9F 1C
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 33 9C 17
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 27 05 3E
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FF FF FF FF FF FF FF FF FF FF 3C 11 C4
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FF FF FF FF FF FF FF FF FF FF F9 A7 9C
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 1C 87 48
6C F0 10 76 00 73 04
8C FE F0 3F 2C
FF FF FF FF FF FF FF FF FF FF 26 26 27
6C F0 10 76 00 73 04
8C FE F0 3F 2C
00 00 00 00 00 00 00 00 00 00 80 27 03
6C F0 10 76 00 73 04
8C FE F0 3F 2C
4A FC 4A FC 4A FC 4A FC 4A FC 43 3E 3A
6C F0 10 76 00 86 12
68 13 10 11 00 46
68 3B 10 A0 A6
68 49 10 10 01 1D
68 EA 10 0A 01 AE
88 1B 10 10 00 00 46
88 29 10 01 00 5B
88 3B 10 03 80 E7
88 3B 10 3D 5F 00 CF
88 53 10 04 C4
88 83 10 0A 00 00 EB
8A EA 10 20 76 BA
8A EA 10 20 82 00 4A
68 3B 10 A0 A6
68 EA 10 0A 01 AE
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 20 8E 00 3D
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 20 76 BA
A8 0B 10 20 01 D3
A8 83 10 12 00 3E
A8 83 10 13 00 00 58
A8 FB 10 02 47 43 45 4B 3F
A8 FB 10 03 31 39 54 37 BD
8A EA 10 20 82 00 4A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 20 8E 00 3D
8A EA 10 20 9C 00 11
A8 FB 10 04 58 31 31 33 EF
A8 FB 10 05 31 38 31 37 AD
8A EA 10 20 E4 00 60
8A EA 10 A0 8E 00 FD
C8 3B 10 10 28 51
C8 3B 10 3C 04 48
C8 4B 10 14 00 E8
C8 53 10 22 82 39
E8 FF 10 03 B3
A9 24 10 03 82
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
A9 24 10 03 82
C9 3A 10 05 03
C8 83 10 16 26 48 92
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 EA 10 0A 01 AE
C8 3B 10 10 02 04
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
88 59 10 30 F5
A8 B3 10 30 20
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 EA 10 0A 01 AE
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
E8 FF 10 03 B3
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 EA 10 0A 01 AE
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 EA 10 0A 01 AE
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
E8 FF 10 03 B3
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 EA 10 0A 01 AE
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 3B 10 20 80
68 EA 10 0A 00 B3
88 3B 10 03 04 B5
68 3B 10 60 93
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 60 93
68 EA 10 0A 00 B3
88 3B 10 03 04 B5
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
E8 FF 10 03 B3
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
E8 FF 10 03 B3
E8 FF 10 03 B3
(flash Cal same pcm and file) - Low speed mode from a commercially avaible programmer

E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
6C FE F0 2A 00 88
6C F0 10 6A 00 07
6C FE F0 2A 00 88
6C F0 10 6A 00 07
6C FE F0 2A 00 88
6C F0 10 6A 00 07
68 6A F0 01 00 98
48 6B 10 41 00 BF BF B9 94 2B
6C FE F0 2A 00 88
6C F0 10 6A 00 07
6C 10 F0 27 02 00 00 3A
6C F0 10 7F 27 02 00 00 22 AA
6C FE F0 2A 00 88
6C F0 10 6A 00 07
6C 10 F0 2A 00 96
6C F0 10 6A 00 07
6C FE F0 2A 00 88
6C F0 10 6A 00 07
6C 10 F0 3C 22 2A
6C F0 10 7F 3C 22 12 89
E8 FF 10 03 B3
6C 10 F0 3C 01 8A
6C F0 10 7C 01 00 32 47 43 45 4B 02
8A EA 10 B1 01 10 11 14 02 00 89
8A EB 10 B2 01 11 20 45 46 49 4C CE
8A EB 10 32 01 11 49 56 45 20 46 79
8A EB 10 B2 01 11 4C 41 53 48 53 B7
8A EB 10 32 01 11 43 41 4E 20 04 A2
8A EA 10 B1 01 10 12 14 02 00 33
8A EB 10 B2 01 12 20 46 4C 41 53 9D
8A EB 10 32 01 12 48 20 49 4E 20 EB
8A EB 10 B2 01 12 50 52 4F 47 52 62
8A EB 10 32 01 12 45 53 53 20 04 96
8A EA 10 B1 01 10 13 14 02 00 AE
8A EB 10 B2 01 13 20 20 77 77 77 43
8A EB 10 32 01 13 2E 65 66 69 6C 60
8A EB 10 B2 01 13 69 76 65 2E 63 F3
8A EB 10 32 01 13 6F 6D 20 20 04 EC
6C 10 F0 27 01 B0
6C F0 10 67 01 60 CB E2
6C 10 F0 27 02 C7 ED D3
6C F0 10 67 02 34 4B
6C FE F0 28 00 10
6C F0 10 68 00 9F
6C FE F0 3F C7
8C FE F0 3F 2C
6C FE F0 28 00 10
6C F0 10 68 00 9F
6C FE F0 3F C7
8C FE F0 3F 2C
6C 10 F0 34 00 08 DC FF 82 00 7A
6C F0 10 74 00 44 1E
6D 10 F0 36 00 00 DC FF 8A 00 0C 01 00 01 66 F2 11 FC 00 0C F6 0C 10 11 61 08 4E 75 11 FC 00 04 F6 0C 11 C0 F6 0D 3A 3C 10 00 61 00 00 8A 04 45 00 01 4A 45 67 12 42 80 10 38 F6 0E 02 00 00 03 0C 00 00 03 67 E4 4E 75 4E F9 00 FF 82 46 42 80 61 64 52 00 0C 00 00 03 66 F6 4E 75 42 81 20 7C 00 09 C0 00 22 7C 00 0B 00 00 4A 01 66 02 61 46 06 01 00 01 20 18 0C 80 57 30 35 50 67 16 0C 80 57 30 36 50 67 0E 0C 80 57 30 37 50 67 06 B3 C8 66 D8 60 10 20 10 0C 80 48 54 20 20 66 CC 11 FC 00 AA 81 FB 4E 75 20 28 63 29 32 30 30 35 20 45 46 49 4C 49 56 45 08 78 00 07 D0 06 11 FC 00 55 FA 27 11 FC 00 AA FA 27 4E 75 3A 3C B0 00 61 E6 06 45 00 01 0C 45 FF FF 66 F4 4E 75 4C 53 31 42 5F 76 31 2E 37 43 42 BF 42
6C FE F0 3F C7
8C FE F0 3F 2C
81 D0 10 19 61 16 04 01 00 01 94 DB 76
6D F0 10 76 00 73 42
6C FE F0 3F C7
8C FE F0 3F 2C
AA AA 3A BC 55 55 38 BC A0 A0 96 88 C9
6D F0 10 76 00 73 42
6C FE F0 3F C7
8C FE F0 3F 2C
66 00 03 04 20 7C 00 00 80 00 93 C3 1D
6D F0 10 76 00 73 42
6C FE F0 3F C7
8C FE F0 3F 2C
06 CE 61 00 05 88 60 00 FE 66 9D 3B 44
6D F0 10 76 00 73 42
6C FE F0 3F C7
8C FE F0 3F 2C
6C 10 F0 3C 0A 45
6C F0 10 7C 0A 00 BA 57 BC 23
6C 10 F0 3C 0A 45
6C F0 10 7C 0A 00 BA 57 BC 23
6C FE F0 3F C7
8C FE F0 3F 2C
6C 10 F0 3C 05 FE
6C F0 10 7C 05 31 44 47 30 22
6C 10 F0 3C 06 D9
6C F0 10 7C 06 32 46 42 55 B9
6C 10 F0 3C 07 C4
6C F0 10 7C 07 38 32 39 32 44
6C 10 F0 3C 05 FE
6C F0 10 7C 05 31 44 47 30 22
6C 10 F0 3C 06 D9
6C F0 10 7C 06 32 46 42 55 B9
6C 10 F0 3C 07 C4
6C F0 10 7C 07 38 32 39 32 44
6C FE F0 3F C7
8C FE F0 3F 2C
6C FE F0 3F C7
8C FE F0 3F 2C
6C 10 F0 36 EE 41
8C FE F0 3F 2C
6C FE F1 3F 8B
6C F0 10 76 00 EE 6E
6C FE F0 3F C7
8C FE F0 3F 2C
0D 33 0D 66 0D 9A 0D 9A 0D 9A 73 55 97
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
1E 00 1E 00 1E 00 1E 00 1E 00 7C CD 69
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
2A CF 2A 0A 28 85 26 61 26 61 A0 E7 9E
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
28 05 3C 1A 00 43 05 9C 0B 03 B3 28 8A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 5B B9 7E
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
63 80 64 80 65 80 66 80 3B 00 8D 34 9B
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
3F 5C 00 0F 00 0A 00 FF 00 90 80 D9 43
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
14 00 14 00 14 00 14 00 14 00 4F 1D 19
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 06 38 40 03 20 78 00 01 E0 64 24 1C
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 29 1D C9
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 00 96 A9
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 33 41 A2 17
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 03 8E 06 39 3F 8E B3
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 02 CD 02 D2 02 FC 03 1A 61 21 31
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
05 9A 06 00 06 33 06 80 06 B6 54 57 88
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
0B 24 0A B3 0A 47 09 E0 09 7C 6D DE B8
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
08 00 08 00 08 00 08 00 08 00 4D 7D 21
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 87 02 11 02 C3 03 9A 04 8F 6A 55 F9
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 0E 00 20 00 42 00 62 00 84 6F 63 A3
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
1F 48 21 66 23 5C 25 00 26 33 71 D3 88
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
0B 34 0E 00 11 48 15 0A 19 1E 70 CE 58
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 60 01 DA 02 5A 03 0E 04 22 6D 6B B5
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4E 90 50 00 00 00 00 1C 00 40 6C 36 45
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FA 04 FC 00 FD 00 03 78 06 60 7E 38 48
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
07 FB 07 FB 01 A1 01 A1 01 A1 90 33 C1
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 17 00 FF 14 00 13 CD 28 01 2A 39 BB
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
64 00 64 00 64 00 64 00 64 00 60 17 E9
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 D4 00 90 05 D7 05 93 05 4E 86 62 D3
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
08 00 08 00 08 00 08 00 07 9A 38 9E F7
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
02 76 02 76 02 76 3E 00 3E 00 54 24 0A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
09 00 07 33 04 00 03 BD 03 67 5C 99 84
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
12 00 04 98 04 98 04 98 04 98 65 83 ED
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
04 27 04 0A 04 00 04 00 04 00 2E 59 81
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
06 00 06 00 06 00 06 00 06 00 3F 86 DA
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 01 6B 25
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 00 C8 19
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 04 65 3A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
10 00 10 00 10 00 10 00 10 00 07 FC 1A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 A0 00 A0 00 A0 00 A0 00 A0 59 DE EA
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 74 00 74 00 74 00 53 00 53 5B A5 5C
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 10 00 10 00 0E 00 0E 00 0E 26 FC 18
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
1C 00 2C 00 06 9A 0B 00 0F 66 15 37 BD
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 47 3E E3
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
06 66 03 04 07 0D 12 15 18 1A 44 12 23
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 35 85 8D
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 12 00 12 00 12 00 0C 00 0C 49 3D 99
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 20 01 40 01 40 01 40 01 40 50 76 18
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 36 01 36 01 36 04 00 03 20 48 D3 45
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
12 00 12 00 12 00 12 00 11 00 26 27 5B
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 FF 00 00 00 FF 00 00 00 00 89 AD 8B
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 00 E6 9C
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 08 A8 9F
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 00 EA 0F
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 C7 01 C7 01 C7 00 00 00 00 33 0B F6
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FD DE FD DE FD F5 FE 17 FE 39 0E 30 D3
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
06 7D 06 AB 06 AB 06 AB 06 AB 16 A8 78
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
06 DF 07 88 08 12 08 7E 08 CF 7C C4 B6
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
04 2F 04 65 04 AA 04 C1 04 B5 84 C5 09
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
02 FA 02 CC 02 7A 02 7A 02 7A A3 15 59
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
06 D1 06 D1 06 D1 06 D1 03 33 97 35 70
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF 41 FF EE 00 8A 01 14 01 8E 90 80 F9
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 2D 00 8C 00 E1 01 6E 01 D3 D9 E8 B9
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 9C EE CE
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 5B 00 72 00 9F 00 CD 00 FA 51 14 CF
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 11 CA 44
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 03 E6 40
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF 1C FF 0C FE FA FE E4 FE C1 E1 BD 14
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FE C1 FE 94 FE 66 FE 39 FE 0B E5 DF FF
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 01 66 02 A4 03 94 04 3F 3F EE BE
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
06 0E 05 DA 05 A7 03 33 03 33 65 61 82
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 BA 02 47 02 AC 02 EB 03 05 6D B6 8A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF 1C FF 1C FF 1C FE EF FE EF 6B 20 60
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FE EF FE EF FE EF FE EF FE EF 3F 4B 16
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF 77 FF 77 FF 4A FE EF FE EF 75 5A 3A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 FF D2 FF 77 FF 77 76 00 40
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
10 00 10 00 10 00 10 00 10 00 60 44 80
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 04 00 05 D3 9F
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
0C 00 0C 00 0C 00 0C 00 0C 00 08 A9 E8
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
08 00 08 00 08 00 08 00 08 00 39 58 55
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 2E 00 2E 06 40 06 40 06 40 3A F8 59
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 E3 01 DA 01 C9 01 B3 01 9F 7E 94 0D
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 E3 00 E3 00 E1 00 DD 00 D6 AB 7A 3F
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
0C 7B 0B D7 0B D7 0B D7 0B D7 A4 30 D7
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 55 82 03
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 00 2B 8A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
10 00 10 00 10 00 10 00 10 00 2B 58 F4
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 4F 00 4F 00 48 00 42 00 42 2A 13 D1
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 63 00 63 00 91 00 7A 00 69 5C F4 95
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 12 89 99
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
10 00 10 00 10 00 10 00 10 00 26 ED 6B
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
06 40 00 9A 14 00 00 FF 0F 00 39 74 8A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 5E 01 69 01 66 01 66 01 76 71 64 28
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
0E 66 0E 66 0E 66 0E 66 0E 66 7E CE 5A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
7F FF 7F FF 7F FF 7F FF 7F FF 34 A4 8C
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF FF FF FF FF FF FF FF FF FF 81 AB EA
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
05 DE 06 1C 06 9A 06 F7 07 36 1C 96 47
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
03 E8 00 37 03 E8 00 2D 00 32 5E A4 1D
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
2C 00 2C 00 54 00 4D 9A 45 48 87 8A CD
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
0D 0D FF FF FF FF FF FF FF FF 6D 2A 79
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
03 03 04 01 17 0A 17 0A 47 FF 6E 29 1A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 01 01 01 01 01 01 FF FF A0 81 A7 A4
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 7D 1C 97
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 53 80 2B
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
20 2E 3B 46 50 59 60 67 6D 72 98 0F FC
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
43 3B 4F 3B 31 31 31 FF AA AA C5 56 D1
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
0B B8 0D 48 10 04 11 30 13 24 91 16 8B
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 17 00 1B 00 20 00 24 00 28 9D A8 C0
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
7F FF 7F FF 7F FF 7F FF 7F FF 21 EB 9E
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
7F FF 7F FF 7F FF 7F FF 7F FF 7E 5D 24
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 42 00 45 00 49 00 4E 00 58 EF 52 27
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
02 A6 02 A6 02 A6 02 A6 02 AE 11 13 41
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
03 03 03 03 03 03 03 03 03 03 33 8C 11
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
02 6F 02 6F 02 6F F8 E3 F8 E3 43 23 D8
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 85 01 E8 01 E8 03 14 03 DF B3 02 5E
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FD 1B FD 1B FD 1B FD 1B FD 1B 30 80 6E
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
1F 87 1E D8 20 35 20 35 D4 5C 8F 44 03
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
26 70 02 D0 01 E0 03 90 05 38 A4 68 48
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF FF FF FF FF FF FF FF FF FF EE 29 E3
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
15 22 15 66 15 AB 15 EF 16 34 5B EB BE
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 0E F4 82
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 63 A0 37
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
80 00 80 00 80 00 80 00 80 00 1C FB 26
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 A0 00 F0 00 F0 00 F0 00 A0 84 F9 59
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
22 00 26 80 2C 80 34 80 3E 00 4D 29 0C
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
03 80 00 00 00 00 00 00 00 00 42 53 70
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 FF 00 00 71 36 8B
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
1A 80 21 00 21 00 ED 00 ED 00 C6 7C D6
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
27 80 2C 00 30 00 34 80 3A 00 59 DB 53
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
39 00 39 00 39 00 46 00 46 00 8C 54 0E
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 FF 00 00 00 00 00 00 33 11 33
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
7F FF 7F FF 7F FF 7F FF 7F FF DD 00 EC
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 FF FF DA 80 4D 4E 21
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 FF 00 00 00 00 7C 81 67
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 06 40 01 40 25 8E 07
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 0A 92 41
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 FF 00 00 07 B6 6F
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
03 40 03 40 03 40 06 40 06 40 43 50 F4
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 0F 67 F0
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 47 87 FA
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 33 7F 29
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
20 CD 21 9A 21 9A 14 CD 14 CD 28 6C 46
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
7F FF 00 00 00 00 00 00 01 40 58 4D CB
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 01 E0 01 90 03 33 01 EC 7E 95 1B
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
0C CD 0C CD 0C CD 0C CD 0C CD A6 A6 15
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
07 80 07 80 07 80 07 80 07 80 87 D2 84
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 18 00 00 00 00 00 00 2E B8 49 EC E9
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
07 F7 07 B8 07 7A 0E C8 0E C8 72 95 42
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 05 FF 03 20 00 28 00 25 81 FF 36
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 2D 41 40 00 4E 62 5A 82 BE 72 D9
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 CB 00 F6 01 0E 01 1A 01 25 5E 8E 2D
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
05 F0 05 F0 05 F0 00 00 00 30 47 5E 0A
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF FF FF FF FF FF FF FF FF FF A7 3D 64
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 06 FC 42
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 00 DB 19
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
32 FF 00 50 2B 32 2B 2B 32 2B 09 04 6E
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
03 20 D1 20 0C CD 0C CD 0C CD 89 2D ED
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF FF FF FF FF FF FF FF FF FF 32 BE 01
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 58 DF 05
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
07 00 05 00 00 00 04 80 00 4D 37 C1 93
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 47 00 47 00 47 00 47 00 47 94 ED FB
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 03 09 54
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 00 00 00 00 00 00 00 00 00 58 5D F7
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
01 79 01 79 01 79 01 79 01 79 0A 5F A0
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF FF FF FF FF FF FF FF FF FF DC 2D F4
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
00 A0 00 A0 00 A0 00 A0 00 A0 39 B9 4D
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
EF 80 F1 60 1A 2D 56 33 1A D4 5B B6 90
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
FF FF FF FF FF FF FF FF FF FF 93 CB 79
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 4A FC AA 08 4F
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 4A FC 46 F3 86
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 4A FC 46 F5 44
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 4A FC 46 F7 F7
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 4A FC 46 F9 DD
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 4A FC 46 FB 64
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 4A FC 46 FD A6
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 4A FC 46 FF 15
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
4A FC 4A FC 4A FC 4A FC 46 B8 18
6D F0 10 76 00 73 42
8C FE F0 3F 2C
6C FE F1 3F 8B
6C 10 F0 36 FF 91
6C F0 10 76 00 86 12
6C 10 F0 3C 55 20
68 13 10 11 00 46
68 3B 10 A0 A6
68 49 10 10 01 1D
68 EA 10 0A 01 AE
88 1B 10 10 00 00 46
88 29 10 01 00 5B
88 3B 10 03 80 E7
88 3B 10 3D 5F 00 CF
88 53 10 04 C4
88 83 10 0A 00 00 EB
8A EA 10 20 76 BA
8A EA 10 20 82 00 4A
68 3B 10 A0 A6
68 EA 10 0A 01 AE
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 20 8E 00 3D
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 20 76 BA
A8 0B 10 20 01 D3
A8 83 10 12 00 3E
A8 83 10 13 00 00 58
A8 FB 10 02 47 43 45 4B 3F
A8 FB 10 03 31 39 54 37 BD
8A EA 10 20 82 00 4A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 20 8E 00 3D
8A EA 10 20 9C 00 11
A8 FB 10 04 58 31 31 33 EF
A8 FB 10 05 31 38 31 37 AD
8A EA 10 20 E4 00 60
8A EA 10 A0 8E 00 FD
C8 3B 10 10 28 51
C8 3B 10 3C 04 48
C8 4B 10 14 00 E8
C8 53 10 22 82 39
E8 FF 10 03 B3
A9 24 10 03 82
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
A9 24 10 03 82
C9 3A 10 05 03
C8 83 10 16 26 48 92
6C 10 F0 27 01 B0
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
6C F0 10 67 01 37 B8
68 3B 10 A0 A6
68 EA 10 0A 01 AE
C8 3B 10 10 02 04
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
88 59 10 30 F5
A8 B3 10 30 20
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 EA 10 0A 01 AE
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
68 6A F0 04 D2
48 6B 10 44 52
6C FE F0 14 8F
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
E8 FF 10 03 B3
6C F0 10 54 C3
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
8A EA 10 B1 01 10 11 14 02 00 89
68 3B 10 A0 A6
68 EA 10 0A 01 AE
88 3B 10 03 80 E7
8A EB 10 B2 01 11 20 45 46 49 4C CE
88 53 10 04 C4
8A EA 10 A0 76 73
8A EB 10 32 01 11 69 76 65 20 46 C2
8A EB 10 B2 01 11 49 4E 49 53 48 2F
8A EB 10 32 01 11 45 44 20 20 04 49
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 EA 10 0A 01 AE
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
E8 FF 10 03 B3
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 EA 10 0A 01 AE
88 3B 10 03 80 E7
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 A0 A6
68 3B 10 20 80
68 EA 10 0A 00 B3
88 3B 10 03 04 B5
68 3B 10 60 93
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
68 3B 10 60 93
68 EA 10 0A 00 B3
88 3B 10 03 04 B5
88 53 10 04 C4
8A EA 10 A0 76 73
8A EA 10 A0 82 00 8A
8A EA 10 20 84 00 FF
8A EA 10 20 89 00 C4
8A EA 10 20 8C 00 A5
8A EA 10 A0 8E 00 FD
8A EA 10 20 9C 00 11
E8 FF 10 03 B3
8A EA 10 20 E4 00 60
A9 24 10 03 82
C9 3A 10 05 03
C9 3B 10 22 58
C9 3B 10 30 AF
C9 58 10 3C EF
C9 58 10 0B F6
E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3
E8 FF 10 03 B3


>
The files are not written in the same block sizes but I don't know exactly what the size difference was. This was done a while ago.
User avatar
antus
Site Admin
Posts: 8250
Joined: Sat Feb 28, 2009 8:34 pm
cars: TX Gemini 2L Twincam
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Contact:

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by antus »

We should also add that in tuneing land people call the flash kernel the "bootloader". It absolutely is not a boot loader. Ive tried to clear this up before, but everyone calls it a boot loader (except dimented 24x7 who correctly calls it the flash kernel)... so I gave up on that. Everytime you read "bootloader" in this context, consider they mean "flash kernel".

Just to add to the confusion the pcm does have an actual bootloader in the lowest block and it does implement a recovery mode triggered by the calibration missing, and the intel flash chip does protect the boot sector... but thats another tangent that isnt relevant here.

As for ascii vs hex vs binary vs octal vs whatever... there is no confusion there. Do you know what an opcode is? Do you know what a compiler or assembler does? You dont seem to understand what the data your playing with is and are just treating it like a black box.
Have you read the FAQ? For lots of information and links to significant threads see here: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
160plus
Posts: 90
Joined: Thu Sep 21, 2017 3:00 pm

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by 160plus »

antus wrote:We should also add that in tuneing land people call the flash kernel the "bootloader". It absolutely is not a boot loader. Ive tried to clear this up before, but everyone calls it a boot loader (except dimented 24x7 who correctly calls it the flash kernel)... so I gave up on that. Everytime you read "bootloader" in this context, consider they mean "flash kernel".

Just to add to the confusion the pcm does have an actual bootloader in the lowest block and it does implement a recovery mode triggered by the calibration missing, and the intel flash chip does protect the boot sector... but thats another tangent that isnt relevant here.

As for ascii vs hex vs binary vs octal vs whatever... there is no confusion there. Do you know what an opcode is? Do you know what a compiler or assembler does? You dont seem to understand what the data your playing with is and are just treating it like a black box.
I KNOW WHAT A COMPILER IS......and I have actually used one before. But seriously I know just enough about programming to get into trouble but not enough to be of any real use to any one. And your exactly right.....I do treat it like a black box but at least i'm being honest about that. Until i permanently brick a pcm with what I've been doing it's just harmless tinkering. But I have fumbled my way though enough of it so far to get a lot further with out any damage then I ever expected. For example I can change the vin or serial number in a pcm no problem, type the number you want in a text box and it converts the ASCII into hex then runs the commands through.....but I can't get the vin number to display even close to being correct when I request it. I get parts of it in ASCII, some header information in various formats and some of the vin is still in hex code all mixed together.

I'm getting to the point about all I'd have left to try is hard coding calibration data into the app and seeing what happens when i start a flash. Once again my lack of skill limits what I can do and I don't even have the faintest clue how to parse an external file though Android for something like this.....but I can write 100 or so lines of calibration data into the app and do the same thing.


Since this is a contribution thread here's something useful
https://imgur.com/a/8whIW

This is the main data needed to change the vin. The text being segmented is from a "text input box" you input the desired vin number into, gets converted into hex and then sent to the pcm over bluetooth. The clock timer being used it triggered by the pcm's expected response code if the line that was sent is received correctly. If I ever get the read vin figured out I'll post a copy of the app since there aren't many programs I have seen that can change a serial number in the flash chip with out pulling it off the board.
160plus
Posts: 90
Joined: Thu Sep 21, 2017 3:00 pm

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by 160plus »

https://youtu.be/EUBo8kB-0wA

I am now able to write the vin number AND serial number on the 0896 and 0411 Pcm's with the OBDLink MX and an Android App. I have changed the method I was using to send commands from a timer that would send the commands with a carriage return every 500ms to now being transmitted based on the pcm's response to each command that was sent. For example if I send the line: "6C 10 F0 34 00 00 0C FF 80 00" the program looks for a response of "6C F0 10 74 00" before advancing to the next line. If it doesn't see the response within 1.5 seconds of being sent it considers the command as failed and exits the algorithm with a message that the command failed. The app's not looking for the entire response on each line the pcm sends back, it only needs to see enough of the response to know that the line was accepted.

There are two things I am still missing in the App before I would consider it "releasable" . I need to figure out how to find the key based off the seed using ascii commands or find a table with the know seed/key combinations I write into the program and then just read the seed and reference the correct key. I can read the seed easy enough so that method wouldn't be that hard to add in. I also need to work on the hex to ascii conversion for reading the serial number and the Vin number from the pcm. I'm having a lot more of an issue with that part of it than I was expecting to due to the multiple line breaks. It's made it hard to segment and parse the lines I need out of the response messages. This part isn't critical to the app working but it would be nice to be able to see the numbers before and after they are changed.

The breakdown for the serial number change:
SEND: 6C FE F0 28 00
READ: 6C F0 10 68 00
SEND: 6C 10 F0 27 01
READ: 6C F0 10 67 01 77 EC
SEND: 6C 10 F0 27 02 A6 D6
READ: 6C F0 10 67 02 34
SEND: 6C 10 F0 34 00 00 0C FF 80 00
READ: 6C F0 10 74 00 44
SEND: 8C FE F0 3F 00 04 8C FE F0 3F 2C
SEND: 6C 10 F0 36 00 00 0C FF 80 08 [31 44 47 30 32 46 42 55 30 30 30 31] The part in brackets is the serial number is hex format, these are the numbers you change ***See note
READ: 6C F0 10 76 00 73
** This line is odd, I have to send a carriage return after this line or the Pcm hangs here for a while even if you power it off and back on but it still changes the serial number despite hanging. The work around I figured out was sending a carriage return in hex ( 04 ) to keep it from hanging there. I don't like it though because it sends the same line a second time, it seems strange to send the serial number twice but it does work and the pcm gives the expected reply this way.



Now trying this on the 03-07 1mb pcm's does not work and I have yet to find a program that can write the serial number on these pcm's. After spending some time on this I'm thinking perhaps I should try and write the serial number on these pcm's the same manner I'm writing the vin number, in several blocks rather then a full line. Here's a section where the serial number is being requested with another program.
6C FE F0 3F C7
8C FE F0 3F 2C
6C 10 F0 3C 05 FE
6C F0 10 7C 05 30 4B 41 30 8C
6C 10 F0 3C 06 D9
6C F0 10 7C 06 32 44 5A 54 49
6C 10 F0 3C 07 C4
6C F0 10 7C 07 33 32 33 37 C9
6C 10 F0 3C 05 FE
6C F0 10 7C 05 30 4B 41 30 8C
6C 10 F0 3C 06 D9
6C F0 10 7C 06 32 44 5A 54 49
6C 10 F0 3C 07 C4
6C F0 10 7C 07 33 32 33 37 C9
6C FE F0 3F C7
8C FE F0 3F 2C
Do you think these blocks can be written to rather then being read? If so any suggestions for commands to send to write these?
User avatar
antus
Site Admin
Posts: 8250
Joined: Sat Feb 28, 2009 8:34 pm
cars: TX Gemini 2L Twincam
TX Gemini SR20 18psi
Datsun 1200 Ute
Subaru Blitzen '06 EZ30 4th gen, 3.0R Spec B
Contact:

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by antus »

They can not be written. You'll need to go deep in to the PCM now and sus out the memory addressing and adapt the VPW commands to suit the addressing of the larger platform.
Have you read the FAQ? For lots of information and links to significant threads see here: http://pcmhacking.net/forums/viewtopic.php?f=7&t=1396
160plus
Posts: 90
Joined: Thu Sep 21, 2017 3:00 pm

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by 160plus »

Suggestions on what I should be writing to in order to make this work

I can write to this section just fine to change the serial number in the 512K pcm
https://imgur.com/a/mhFTM

But it fails here, the serial number location is off by 1 digit looking in the far right column in the 1024mb pcm.
https://imgur.com/a/Z2iRj

To write a 512K serial I'm sending
6C 10 F0 36 00 00 0C FF 80 08 (12 digits in hex for the serial) 28
Any suggestions on how to restructure this to write offset by 1? In the 512K I count 9 digits on the line and in the 1mb I count 8 digits
160plus
Posts: 90
Joined: Thu Sep 21, 2017 3:00 pm

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by 160plus »

So I rewrote most of my app and have revamped the layout into something more professional and user friendly. I have also added a number of fail safes in the event the app were to hang any any point allowing the app to reboot the Elm device and the pcm. All writing is now done on a send receive basis with a generous time out for each command. The timing space between lines is enough that a command 28 00 will almost expire between lines if the app is slow reading or writing any given command. I'm sure I can speed it up considerably but right now I'm looking for stability and not just speed.

Added the ability to manually enter a Key combination or let the app automatically unlock the pcm. HUGE thanks to Antus who was gracious enough to provide me with his seed and key formal used in his LS1 flash program to make the unlock process automatic.

Currently working on adding in the ability to read the serial number and display it in the same manner I do with the vin so you can decide if you want to change it or not. After that's it's condensing the current code and removing unused blocks before moving into the more complex goals of this app.

A couple of member's here have already messaged me asking for copies of the last version I posted a video of. I have no problem sharing it but you must under stand.....this is FAR from even being an Alpha quality app at this point and there is no guarantee that it's 100% safe to use. It has also only been tested on a limited number of devices and there may be display compatibly issues given the differences in phones from one company to another.

And here's an updated video of the newest version. I gave up using the 512K pcm's, I know it works on those it was the 1mb version that is the real challenge given the speed they run at. I'm using the pcm out of an 07 3/4 ton van that was the final revision to the 3rd gen pcm family. The pcm bus is fast in these pcm's, fast enough even the PcmHacking LS1 flash with the AVT 852 interface gets an error from time to time just trying to read the vin and OS id from the pcm. Getting the app to work on this pcm means any thing slower is a piece of cake. The app can chew threw the 512K pcm's as fast as any PC based tool I own :thumbup:

Spoiler alert, you'll be able see how I'm creating the app. Lets just say I haven't actually written a single line of code.....and I was really good with lego's as a child :wtf:

https://youtu.be/b1Uze6TTuqc
kojab
Posts: 440
Joined: Sun Mar 22, 2009 11:52 am
cars: VT V6 supercharged in a corolla
Location: Sydney
Contact:

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by kojab »

You are doing a great job. Keep at it. Enjoyed the video too.
User avatar
jenko
Posts: 450
Joined: Wed Jan 29, 2014 3:43 pm
cars: hilux v6
jaguar v12
mitsubishi lancer
fj cruiser
sv 21 camry wagon
Location: Pine mountain .vic
Contact:

Re: Open source GM OBD2 flash tool using a ELM327 device

Post by jenko »

great work :)
Locked