Open TunerPro XDF for the H3 P12, OS 12627884
2006 Hummer H3, 3.5L I5 (L52), 4L60-E. Nobody had published an open definition for this OS, so I built one. Every table here was traced out of the PCM's own code, not guessed from hex. Version 3.13, released 2026-10-02.
- P12_12627884_experimental_v3.13.zipSHA-256 c40d5878a904722eb55716a2070d9171ca151c110dcda6cb9659deaa5c044902
- P12_12627884_experimental_v3.13.xdf (XDF only)SHA-256 47a59c4fd18da4bfca975491ca254684cdb839ac4316c1c7c9a5c5421ce094a0
- README · Every item, listed · License (GPLv3)
- Previous: v3.12 (1923 items) or v3.11 (1220 items) if you need to match an older tune.
Read this before you load it
- Your OS ID has to be 12627884. P12 addresses don't carry between operating systems. Load it on another OS and you get garbage. Flash edits made that way and you can brick the PCM. Never change the OS ID. How to check it.
- No checksum in the XDF, on purpose. TunerPro can't express the P12 scheme. Repair checksums before you flash (P12 Suite
p12 repair, or UniversalPatcher). Bad checksums, no boot. - Keep an untouched stock read and know how you'll recover the PCM before you flash anything.
- Changed tires or axle gears? Change four values, not two. Final Drive Ratio and VSS Tire Revs set the speedometer, OBD speed and speed limiter. The transmission's own pair, Final Drive Ratio - Transmission Speed and Tire Revs per Distance - Transmission Speed, sets shift points and converter lockup. Put the same numbers in both pairs. The transmission pair is proven in code, not yet on a drive: log a few shifts after.
- 49 of 1932 items are confirmed on a running truck. The rest are proven in the PCM's code and in an emulator, not on the road yet. Small steps. Log everything.
What you need to read, flash and log a P12
Not sure what to buy? This is the short list.
- VXDIAG VCX Nano (GM) · the J2534 pass-thru interface we use
As an Amazon Associate I earn from qualifying purchases. That costs you nothing extra, and the XDF stays free either way.
Keep it free
The XDF is free and stays free. If it saved you time, a tip covers the hosting and the hours of tracing.
Tip the projectCheck your OS ID first
Don't go by year and model. GM service reflashes and other H3 years can run a different OS, and the XDF only fits 12627884. Check the read you're going to edit:
- Your read tool. Most P12 read tools show the OS ID when they pull the bin. With P12 Suite,
python h3suite/run.py flash propsreads it from the PCM (a safe read), andpython h3suite/run.py p12 osmatch your.bin 12627884checks a saved bin. - A hex viewer. In a 1 MB 12627884 read, the four bytes at offset
0x8004are00 C0 AF AC, which is 12627884 in hex. Anything else, stop. - TunerPro. Load it and look at Main Spark Advance - High Octane (see Loading it in TunerPro). Garbage there means the wrong OS or the wrong file.
What's in it
| Category | Items |
|---|---|
| Diagnostics | 880 |
| Transmission | 277 |
| Fuel | 199 |
| Spark | 115 |
| Airflow | 114 |
| Idle | 111 |
| Torque | 92 |
| Limits | 65 |
| Engine | 51 |
| Sensors | 20 |
| Speedometer | 8 |
Cross-checked in TunerPro 5.00 on 2026-10-02: TunerPro loaded v3.13 on a stock read and exported every item, and 1932 of 1932 matched our independent decoder with zero failures (v3.12: 1923 of 1923, v3.11: 1220 of 1220, v3.10: 1202 of 1202).
How it's proven
Nothing goes in because a number looks right in a hex dump. Every finding gets a numbered entry in an evidence ledger, and a script re-proves each entry from the stock read. The ledger is past 1080 entries.
- Traced in the code. Each item is found by following the PCM's own code to the instruction that reads it. The address, size, units and axes come from how the code uses the value, not from what the bytes look like.
- Run in an emulator. The PCM's whole operating system runs in an emulator at its real task rates, and logs from my truck are replayed through it. At warm idle it lands on the truck's logged spark within 0.33 degrees on average. Replaying a full drive, it tracks the truck's own logged values: desired throttle at 0.99 correlation, engine load and cylinder airflow at 0.98, delivered torque at 0.95, rpm exact, desired idle within 12 rpm. Cruise spark lands within 1 degree on 16 of 18 steady 4th-gear rows. Its airflow model agrees with the MAF within 3 %.
- Cross-checked in TunerPro. Every release is loaded in TunerPro on a stock read and every item is compared against the independent decoder (above).
- Confirmed on the truck. 49 items are confirmed on a running truck with a log to show it. That number only moves when a drive proves something.
Mapping progress
How much of the calibration (131,068 bytes, 0x20000 to 0x3FFFB) is accounted for, as of 2026-10-02. Counted in bytes, so one big table weighs more than a single setting. Refreshed every few batches while the mapping work runs.
- 57% in the v3.13 download (v3.12 was 57%)
- 1% proven since v3.13, waiting for the next release
- 21% defined but held back: reference-only, do-not-edit blocks, inactive features, or waiting on more evidence (79% defined in total)
- 6% tables located, not yet identified
- 2% single values the code reads, not yet named
- 9% segment headers and unused padding
- 4% not yet located
Proven, but held back from v3.13
- 4-Lo. The 4-Lo shift and converter schedules and the 4-Lo full-throttle shift rule are in v3.7, proven in code and in the emulator, not yet on a drive. In 4-Lo the transmission's speed reading is 4.03 times road speed, so its speed tables act at about a quarter of their listed speed. A 4-Lo drive log would confirm them. 4-Lo can't be detected in 1st gear.
- Features switched off on the stock tune. Items whose feature is off in the stock calibration now ship, marked (inactive). Editing them does nothing until the feature is switched on.
The gauge cluster gets vehicle speed over the Class 2 bus, as the same number OBD reports, so there is no separate speedometer calibration to find on this truck.
New source of names: the E40
The P12 is built from the same Delphi code library as the E40 PCM (2005-06 GTO, LS2). Using the open E40 definition shared on pcmhacking.net, the two operating systems were matched routine by routine with every address masked out: 964 routines line up, 813 of them exactly. Wherever the E40 code reads a named setting, the P12 reads its counterpart at the same point, so the name carries over.
Checked against 37 settings already proven here, it agreed on 35, and every exact match agreed. It points at about 130 more settings, among them cranking spark, coolant and catalyst over-temperature limits, open-loop fuel, fuel-trim limits and launch spark.
Nothing ships on the E40's word. Each lead is traced in the P12's own code (units, axes, what it does) before it goes in the XDF. The E40 match seeded many of the early fuel and start-up items (most of v3.1's additions came this way), and it still points at leads. Every one was re-traced in the P12's own code before it shipped.
Changelog
v3.13 · 2026-10-02 · 1932 items (+9)
- Read this first: these nine are items we used to hold back by choice. Each was already proven in the code. They are published so the controller can be read and understood in full. On a road vehicle, switching off a monitor or a fault reaction may break emissions law where you live, and a transmission that no longer protects itself can be damaged.
- Transmission fault reactions (2 tables). For each of the 115 transmission fault code slots, whether that code drives its fault reactions, the limp mode gear and pressure strategies, while it is failing, or from its first failure until the codes are cleared. Every column is labelled with its trouble code. On a stock calibration P0218, P0711, P0719 and P0724 react only while the fault is present; 31 other codes keep their reaction until the codes are cleared with a scan tool or age out. Setting a slot to zero removes a transmission protection.
- Engine-off timer check (P2610) enable. Zero switches the check off. Stock is on.
- Secondary air (4). System enable, channel count, and the channel on and off delays. Secondary air injection is switched off on the stock H3, so these do nothing unless the hardware is fitted and the system is enabled.
- Diagnostic model input ceilings (2). The engine speed and airflow ceilings of a model read only by the misfire monitor enable conditions, a diagnostic timer and the secondary air routine. They do not limit torque, spark, fuel or throttle; changing them moves when the misfire monitor runs.
- No v3.12 item moved, was removed, rescaled or retitled. Still left out: the switch that forces readiness and the catalyst over-temperature confirm switch. TunerPro cross-check: 1932 of 1932, zero failures.
Older releases: v3.12 back to v2.94
v3.12 · 2026-10-01 · 1923 items (+703)
- Correction, read this if you looked at the air conditioning cut-out values. The four items v3.11 called A/C Disable and Re-Enable TPS and RPM belong to the wide open throttle air conditioning cut, and the rpm pair is an upper limit on that cut: the flag is set while engine speed is below the value, not above it. They are renamed A/C WOT Cut. Addresses, scaling and values are unchanged. On this calibration that cut never runs at all, because its maximum time is zero, so these four change nothing on a stock truck whatever you set them to.
- Correction, read this if you used the oxygen sensor response curves. Twenty response test curves in v3.11 label their airflow axis 0, 10, 20, 30 and so on. The real spacing is half that: 0, 5, 10, 15 grams per second, across 0 to 100. The values in the tables were always correct and nothing behaved differently; only the axis labels were wrong, so a point you read as 40 grams per second is really 20.
- Correction, eight items were named for the wrong monitor. Six items named Misfire Diagnostic Enable or Hold Time, plus Fault Confirmation Elapsed Seconds Ceiling and Pass Counter Threshold, belong to the catalyst monitor, not the misfire diagnostic. Addresses, scaling and values are unchanged, so nothing you read was wrong, but what you thought they controlled was.
- Correction, six items belong to one specific test. The items named Diagnostic Monitor Precondition are the enable window for the downstream oxygen sensor test, and are renamed accordingly. Addresses and scaling are unchanged.
- Correction, eight limits are times rather than sample counts. Eight diagnostic limits counted in samples in v3.11 and are really times in seconds, with the titles changed to say Time: the P0621 and P0622 generator field checks, P250A, P0068, P0520, P0336 and P0462. If you changed any of them, read them again: a number you entered as a count now shows as the time it actually sets. A ninth item that counted samples keeps its count and was only renamed.
- Correction, evaporative tank pressure values are now in inches of water. Eight leak test values shipped as raw counts and now read in inches of water on the controller's own scale, positive meaning vacuum: the engine off test reference pressures and tank vacuum jump windows, the tank vacuum jump limits, and the vacuum decay limits, which are a rate in inches of water per second. Addresses and stored values are unchanged. Two were also named for the wrong system and are renamed to the leak test.
- Correction, five fuel trim monitor limits are times rather than counts. Five filter and idle limits in the fuel trim monitor counted in samples and are really times in seconds. Addresses and stored values are unchanged; only the displayed unit changed, so a limit you read as 30 is three seconds.
- Correction, the two misfire detection threshold tables are now in microseconds. They shipped as raw counts and are really crankshaft timing thresholds in microseconds. Addresses and stored values are unchanged, and the tables moved into the diagnostics group where they belong.
- Fifty items were renamed. Most are clearer names for diagnostic items; the ones that change what you thought an item did are called out in the corrections above. Addresses, scaling and stored values are unchanged by a rename.
- 703 new items, bringing the file to 1923. Nearly every monitor the controller runs is now readable: the complete oxygen sensor family covering response, voltage, activity, heater control and cold start heater learning upstream and downstream; the catalyst monitor end to end with its result scoring and over temperature protection; both evaporative leak tests, engine running and engine off, including phases, decisions and disturbance handling; misfire detection rules, window decisions and catalyst damage limits; the fuel trim monitors and their purge off test; airflow rationality; crankshaft variation learning; the coolant and intake air sensor circuit checks with both sensor resistance tables; mass airflow circuit checks; reference voltage checks; starter control; and the transmission monitors.
- Transmission. Shift speed corrections for the range limited to third gear, the adaptive shift pressure step against shift time error, line pressure gain and base pressure for each gear with the converter clutch released and applied plus reverse, both two to one downshift fixed pressures, maximum line pressure, and the throttle curve that every shift table is indexed by.
- Cruise control and limits. Cruise voltage, engine speed, run time, engage and cancel speeds, the tap step and switch timing, the air conditioning cut-outs, and the over rpm status flag threshold, which lights a status flag only and cuts no fuel, spark or torque.
- Fuel, airflow, idle and engine. Oxygen sensor ready logic, the fuel level sender and its filters, the crank to run fuel blend, transient fuel hot restart carry over, long term fuel trim follow rate, the oxygen switch point adder axis, cranking and start detection, cam phasing enable, the catalyst temperature model rates, the air conditioning idle air ramp, and engine oil life.
v3.11 · 2026-09-30 · 1220 items (+18)
- Correction, read this if you entered large or negative values in any of 23 tables. 23 tables were declared with the wrong sign: the PCM reads each table through its own lookup code, which treats the numbers as signed or unsigned, and earlier releases used the other kind for these 23. Every stock value displayed exactly right; what was wrong was the range you could enter. For the tables the PCM reads as signed (among them the torque-reduction and burst-knock retard curves, the idle underspeed spark curves, the idle airflow alternator-load and post-start tables, the closed-loop proportional factors, the misfire event times, the engine torque estimate and the injector short pulse width correction) a large enough entry turned negative inside the PCM. The Garage Shift Pressure Adders (Into Drive / Into Reverse) turned an entry above about 147 kPa into a negative adder. Engine friction vs RPM, which the PCM reads as unsigned, turned a negative entry into a very large value. If you entered values well outside the stock range in these tables, check them against a stock read. Addresses, scaling and stock values are unchanged. Every table's sign setting is now checked automatically against the code that reads it; the README lists all 23.
- Diagnostics (15). The EVAP leak tests. The vacuum-hold decay limit (rows labelled in fuel level) and settle time, the engine-off small leak test (P0442) reference by ambient temperature and fuel level, the fuel level and tank vacuum jump limits that pause or restart the test, the fuel level filter start delay, and the full / empty tank vapour references the tests are looked up by. Most are shown raw (DO NOT EDIT): their function is proven in the code but the tank pressure sensor's pressure per count is not, so no pressure unit is claimed. Changing them can hide or cause leak codes.
- Airflow (2). Spark Reference for Cam Target Reduction and its Shortfall Confirm Time: when delivered spark stays below the reference, the PCM steps the load-based cam target down. The stock floor holds the factor at 1.0, so on the stock calibration they change nothing.
- Limits (1). Cruise Control Demand Target vs MAP x Speed: the demand the cruise controller moves toward while it holds speed; the demand becomes a throttle request that replaces the pedal. Shown raw (DO NOT EDIT).
- No v3.10 item was removed, rescaled or retitled; the 23 tables above changed their sign setting only. Still nothing that forces readiness or switches off a monitor. TunerPro cross-check: 1220 of 1220, zero failures.
v3.10 · 2026-09-30 · 1202 items (+4)
- Correction, read this if you edited the cam phaser gain tables or the MAF/VE start value table. Eight tables had their rows and columns swapped in v3.9 and earlier: the right numbers were shown in the wrong cells, with each axis's labels on the other side. v3.10 lays them out the way the PCM reads them. Cam Phaser Proportional Gain (both tables): coolant -40 to 152 C down the side, 800 to 4000 rpm across the top. MAF/VE Ratio Start Value: 7 coolant rows (-20 to 101 C) by 5 baro columns. MAP Plausibility High / Low Limit (inactive on stock): 11 throttle area rows (0 to 100 %) by 7 rpm columns. The open-loop fuel gain vs airflow and temperature pair and the idle closed-loop mode 2 MAP target hold one value everywhere, so only their labels were wrong. Edits made to the cam phaser gains or the MAF/VE start value in an earlier release landed in different cells than intended: check them against a stock read. Addresses and values in the bin are unchanged. Every table's layout is now checked automatically against the PCM's own lookup code.
- Fuel (1). Open Loop Hot-Restart Gain: extra open-loop fuel after a hot restart, by coolant (56 to 152 C) and the fuel injected since the engine started (0 to 175 g). Stock 1.25 at the start with coolant at 110 C or hotter, back to 1.00 after about 44 g of fuel.
- Torque (1). Engine Torque Estimate vs Throttle x RPM: the gross torque the PCM predicts from throttle area and engine speed. A model: do not edit it to change power.
- Diagnostics (2). EVAP Purge Flow Model 1 / 2: the flow the PCM expects through the purge valve by engine vacuum and commanded purge, which the EVAP leak test adds up during its test phases. Shown raw, reference only (DO NOT EDIT): changing them can hide or cause leak codes. Still nothing that forces readiness or switches off a monitor.
- No v3.9 item was removed, rescaled or retitled; the 8 tables above changed layout only. TunerPro cross-check: 1202 of 1202, zero failures.
v3.9 · 2026-09-29 · 1198 items (+31)
- Torque (20). The closed-loop correction on the electronic throttle's torque limit: while a torque limit is active (traction control, for example), a proportional plus integral term on the gap between the limit and the engine's net torque trims the throttle limit. Its error windows, deadband (5 Nm), gains, integral limits and step timing, total correction limits (plus or minus 65 Nm), and the update band that decides when a new throttle limit is taken at once. Also the traction control torque request default (350 Nm) and its floor vs rpm.
- Traction control gear request (3 items, marked (inactive)). The torque limit thresholds at which traction control asks for a gear change. The stock calibration never applies that request to the shift schedule, so editing them changes nothing on a stock tune.
- Diagnostics (10). The P0741 (converter clutch stuck off) arming windows on the transmission input / output speed ratio: the test only arms in 2nd or 3rd gear. The P0742 (converter clutch stuck on) run window on the same ratio, and the 2 to 12 g/s airflow window in which the misfire-type diagnostic arms. Still nothing that forces readiness or switches off a monitor.
- Idle (1). The idle airflow control's throttle area cap: 2.82 % of full throttle area.
- No v3.8 item moved, was removed, rescaled or retitled. TunerPro cross-check: 1198 of 1198, zero failures.
v3.8 · 2026-09-28 · 1167 items (+95)
- Correction, read this if you edited these in v3.7. "P0116 Test - Run Condition, Startup Coolant Maximum" had its direction backwards: at or below it the P0116 test passes straight away and skips its warm-up checks. It is now "P0116 Test - Startup Coolant Pass Limit". The "P0741 / P1887" net engine torque item switches off the P0742 test (converter clutch stuck on) above 525 Nm and does not gate P0741 or P1887; it is now titled for P0742. "P0742 Test - Run Condition, TCC Slip Minimum" is the low end of the P0742 fail window (slip from -1000 to 135 rpm counts toward a fail) and is now "P0742 Fail - TCC Slip Window Low Bound". Values and addresses unchanged.
- Diagnostics (69). The P0711 transmission fluid temperature checks (cold start and hot start); the neutral safety switch test (P1817 / P1818) gear ratio windows and reverse window; the P0742 fail slip window high end and engine speed run condition; fail and pass sample counts for P0014, P0068, P0112 / P1112, P0141, P0326, P0336, P0453, P0462, P0520, P0563, P0621, P0622 (engine stopped and engine running) and P250A. Still nothing that forces readiness or switches off a monitor.
- Features switched off on the stock tune (47 items, marked (inactive)). Converter clutch tip-in release, shift mode switches, the P0894 3rd-gear window, the lean-side closed-loop tables, second-sensor O2 response limits, MAP plausibility and the idle airflow correction term. Editing them does nothing until the feature is switched on, and a few can't be reached on this truck at all (4L60-E shift modes 0-1, speeds above 255 km/h).
- No v3.7 item moved, was removed or rescaled; 3 were retitled (above). TunerPro cross-check: 1167 of 1167, zero failures.
v3.7 · 2026-09-27 · 1072 items (+327)
- Correction, read this if you use the "Performance" tables. They are the 4-Lo tables: this calibration has no performance mode, and the PCM uses those shift and converter clutch schedules whenever the transfer case is in 4-Lo. Retitled 4-Lo; values and addresses unchanged. In 4-Lo the transmission's speed reading is 4.03 times road speed, so those tables act at about a quarter of their listed speed on the road.
- Correction: "LTFT Cell - Gain Set Index" and "Learn Gain A" are fuel trim monitor (P0171 / P0172) weights, not long-term fuel trim learning. Retitled; values unchanged.
- Retitled: ten "Gear Ratio Check" items are the shift solenoid test (P0751 / P0752 / P0756 / P0757) conditions; seven airflow and fuel items got clearer names.
- Diagnostics (159). Shift solenoid tests; the P0894 transmission slipping test; MAP sensor circuit tests (P0107 / P1107 / P0108 / P1106); the fuel trim monitor (P0171 / P0172); the O2 sensor response test (P1133 / P0133 / P1134); run conditions and pass / fail sample counts for about 30 more tests (knock sensor, coolant and intake air sensor, EVAP, system voltage, torque converter, P2610). Still nothing that forces readiness or switches off a monitor.
- Airflow (49), Spark (37), Fuel (33). Cam phaser and load-based cam phasing, the charge temperature model, airmass predictor and VE transient mode; burst knock, knock learning and knock axis limits (the knock airmass axis is the one load axis you can widen for boost), spark mode ramps and the cam-phase spark factor; closed-loop fuel control (O2 switch delays, gains, trim jumps, slow-sensor alternates), the hot-restart fuel gate and the over-temperature enrichment gates (reference only).
- Transmission (25), Torque (19), Idle (4), Speedometer (1). The 4-Lo full-throttle shift rule, WOT schedule pedal points, converter clutch slip control while applied and the highest gear per selector position; tip-in torque management; the idle kick on shifts into gear and Park / Neutral.
- Boost notes. Commanded mixture under boost follows rpm and coolant, not boost level: set power enrichment for the highest boost you'll run. Main spark and VE stop at fixed load limits in the code (1.36 g/cyl, 105 kPa).
- Three reference items show raw values (their unit isn't proven): the engine inertia torque factor, the airmass predictor region map and the speed sensor timer prescaler. Don't edit them.
- No v3.6.1 item moved, was removed or rescaled; 25 were retitled. TunerPro cross-check: 1072 of 1072, zero failures.
v3.6.1 · 2026-09-25 · 745 items (correction)
- Correction to v3.6, read this if you have it. v3.6 accidentally included the catalyst over-temperature confirm switch, one of the two controls this XDF leaves out on purpose. v3.6.1 is v3.6 without that one item; nothing else changed. If you changed that setting, put it back to stock (1, enabled). The build now refuses both monitor-defeat controls automatically.
v3.6 · 2026-09-25 · 746 items (+109)
- Tires and gears, finally. The transmission's own final drive ratio and tire revs are in, so a tire or gear change can move the shift points and converter lockup too, not just the speedo. Also the 4-Lo ratio and detection band and the output-speed chain. Released on code and emulator evidence, not yet confirmed on a drive. See the tire and gear recipe below.
- Transmission. Gear-ratio, TCC and slip monitor thresholds (in seconds and Nm), limp-mode shift rules, the fluid temperature substitute during a sensor fault, the TAP learn torque window, the pressure control solenoid voltage recovery delay, the TCC adapt slip-error limit and the cold shift coolant threshold.
- Idle and limits. The idle throttle follower (8 items; in the emulator it eases the throttle closed after you lift) and the rev limiter hysteresis (6).
- Diagnostics (56 more). Cam desired-position checks, the crank watchdog, charging, alternator, TPS and MAF diagnostics and the engine-run-time monitor enable. Nothing that forces readiness or switches off a monitor.
- Fuel and spark. Open-loop mixture multipliers, the VE maximum limit multiplier and the knock retard step limit.
- No v3.5 item moved, was removed, rescaled or retitled. TunerPro cross-check: 746 of 746, zero failures.
v3.5 · 2026-09-25 · 637 items (+72)
- Correction, read this if you edited fuel trim boundaries. The two tables v3.4.1 called "Long Term Fuel Trim RPM Boundaries" and "Long Term Fuel Trim Throttle Boundaries (per rpm band)" are really the exhaust cam's region boundaries. The only code that reads them is the cam region selector. They're now Cam Phasing Region - RPM Boundaries and Cam Phasing Region - Throttle Boundaries per RPM Band. Same addresses, same scaling. If you edited them for fuel trim, you moved where the cam switches regions instead: put them back to stock.
- Fuel (22). Injector short pulse width correction: below about 3.0 ms the PCM adds a correction curve to each cylinder's pulse width and never lets it drop below about 0.66 ms while running. The curve, threshold, floor and guard. Plus the EVAP purge ramp (fallback duty, deadband, rise and fall rates, speed split, minimum by voltage), transient fuel evaporation gain by rpm and the port temperature model rate. COT enrichment thresholds are reference only: don't tune them.
- Airflow (21). Cam phasing: the enable gate (coolant, rpm, throttle, speed and MAP conditions), the 18-region selector and its hysteresis, and the region base target, baro factor and gear factor.
- Idle (14). The shift idle-air kick timers and hold factors by trans temperature, and the idle airflow follower: throttle floor, offset, slew limit, throttle buckets and baro factor.
- Transmission (8), Spark (3), Torque (3), Sensors (2), Diagnostics (1). The trans fluid temperature substitute values the PCM uses when the sensor fails; burst knock retard vs coolant and its startup decay; the calculated load (PID 04) reference airflow and IAT factor; the misfire rpm breakpoints.
- No v3.4.1 item moved, was removed or rescaled; the two above were renamed. TunerPro cross-check: 637 of 637, zero failures.
v3.4.1 · 2026-09-25 · 565 items (text fix)
- Correction to v3.4, read this if you edited a VE bank. The item text said a 9 to 11 degree desired cam under load blends toward VE banks 2 and 3. By the code it's banks 4 and 5: the PCM halves its actual cam reading before comparing it with desired cam. Text only, no values changed. If you already have v3.4, the data is the same; only the descriptions of the 5 VE banks, the VE cam axis and the load-based cam target were wrong.
v3.4 · 2026-09-25 · 565 items (+206)
- Plain English, and nothing guessed. Every description is rewritten in plain English, and items whose own purpose isn't proven yet were held back instead of shipping with a guessed name. (v3.3 was built but never published; everything in it is here.)
- Heads-up: five released tables are all zero on the H3. DFCO entry spark, the fuel cutoff rpm reduction, the 3-4 upshift pressure temperature modifier, the LTFT learn minimum MAP and the knock transient threshold adder. Their code is proven, but on this truck they add or scale by zero, so the feature is off. A non-zero edit switches it on rather than adjusting it.
- Transmission (84). More shift and TCC schedules (Mode 0 and Mode 1 shift speeds, 1st-gear hold, 2nd and 3rd range limits, cruise-mode WOT sets, TCC apply and release for Hot, Normal, Cruise and Performance); cold-engine forced upshift and downshift-inhibit speeds below about 32 C; TCC slip targets and the P0741 pass-window slip limits; the line pressure force motor current pair, boost gain and offset; garage engagement pressure in psi, into Drive and Reverse; the TAP adaptive learning limits, temperature window and max learning speed; shift pressure phase ratios, torque-reduction timing and the 2-1 downshift pressure tables; the transmission's own torque model and road-load curve.
- Spark (23). The hot high-load spark ceiling: after about 18 s above 85 C coolant, 3200 rpm and 0.67 g/cyl, the ceiling drops from 60 degrees to an 18-24 degree table. Plus the spark floor vs rpm (default and two alternate modes) and the knock detection threshold gains.
- Fuel (24), Airflow (23). Stoichiometric AFR, the power-enrichment delay countdown, the open-loop fuel gain vs airflow and temperature (1.0 everywhere on stock) and the commanded mixture lean offsets; cam phasing logic (load-based target and its temperature and run-time terms, region-based delays, baro bands, MAP enables) and the learned MAF/VE ratio. The protection enrichment and catalyst over-temperature items are reference only: don't tune them.
- Idle (14), Torque (16), Limits (4), Speedometer (2), Sensors (2), Engine (2). The idle rpm-control mode entry, idle acquire logic and the timed idle rpm adder (checked on the truck); ETC torque request multipliers and reference-only torque and throttle models; the speed limiter ramp timer; the baro estimate MAP-drop table; the oil life overheat zeroing (disabled on the H3).
- Diagnostics (11). The per-code DTC status table: one byte per trouble code (276 codes, labelled by P-code). Setting a code's low two bits to 0 stops the PCM reporting that code; 1 to 3 set the report type. Write down the stock value before you change one. Plus the misfire monitor windows, fault confirmation counters and catalyst hot-confirm settings. On a road vehicle, turning off emissions-related codes may break emissions law where you live. The switch that forces the monitors to report ready, and the one that turns off the catalyst over-temperature confirm logic, are left out on purpose.
- No v3.2 item moved, was removed, rescaled or retitled. TunerPro cross-check: 565 of 565, zero failures.
v3.2 · 2026-09-24 · 359 items (+116)
- Correction: VE banks 2-5 aren't simply dormant. Earlier notes said the cam never phases on a stock calibration, so only bank 1 is live. Further tracing found two desired-cam paths: a load-based one (about 9-11 degrees above about 2000 rpm) and a region-based one (7-22 degrees in most driving regions once MAP is above about 34 kPa). At idle and light load only bank 1 is live; under load the cam very likely phases and the PCM blends the higher banks. Traced in code, not yet confirmed on a drive.
- Transmission (52). The P0741 converter clutch monitor (enable conditions, fail time, failures to set, pass time); TCC pressure at full command and the TCC adaptive-learn windows; hot mode and the converter-heat trigger; the pressure-control supply-voltage limits (pressure control stops below 10.5-12.5 V by fluid temp or above 18 V); line-pressure direction hysteresis; 2-1 downshift pressure, garage-shift base pressures, shift torque-reduction phase points and the torque-based upshift inhibit; the fluid temp sensor table and the range-switch debounce.
- Idle (29). Idle airflow learning, idle speed control airflow limits in gear and in P/N, the A/C airflow ramp, first idle after start, start-up flare cancel conditions and the altitude / cold idle-up.
- Torque (17). Tip-in torque management and the pedal throttle-area rise and fall rate limits.
- Limits (8), catalyst model (7), sensors (3). The rpm limiter engage / release points including the catalyst-hot cut, the catalyst temperature model and over-temp ramp, and the ambient temperature and baro estimates.
- No v3.1 item moved, was removed, rescaled or retitled. TunerPro cross-check: 359 of 359, zero failures.
v3.1 · 2026-09-24 · 243 items (+56)
- Correction, read this if you changed tires or gears. Earlier notes said Final Drive Ratio and Tire Revs fix the speedo "and every speed-based table". They fix the speedometer, OBD speed and the speed limiter. Shift points and converter lockup follow a separate transmission copy of the axle ratio and tire size, held back from this release until it's confirmed on a drive. Until then a tire or gear change moves your shift points slightly, even with the speedo right.
- Output-shaft sensor pulses per rev (1) and gear ratios (1). Stock 40 pulses; 3.06 / 1.63 / 1.00 / 0.70. Both checked on a drive log. Pulses per rev describes the sensor: use axle ratio and tire revs for the speedo.
- Long-term fuel trim (11). Learned-correction limits (+25 % / -40 %), the rpm and MAP cell boundaries and hysteresis, the idle cell window, learn deadband and minimum MAP.
- Transient fuel (8). The wall-film model: deposit and evaporation vs MAP and temperature, airflow and tip-in multipliers, MAP filter and tip-in triggers.
- Power enrichment delay (5). Coolant window, throttle-rise and low-speed bypasses, and the 14.0 s delay cap.
- Closed-loop idle mode (4), DFCO exit (2), coolant over-temp flags (4).
- Start-up (7). Cranking spark vs rpm and coolant, cranking dwell vs voltage with its max/min, clear-flood throttle on/off, fuel pump prime (2.0 s).
- Idle airflow (13). Post-start airflow and its time limits, the gear-engagement kicks with their trans-temp factors, the start-up rpm flare tables, and the light-off and alternator-load adders.
- No v3.0 item moved, was removed, rescaled or retitled.
v3.0 · 2026-09-23 · 187 items (+21)
- Correction, read this if you edited idle spark. v2.99 said the Park/Neutral idle over/underspeed spark tables were used in every gear. Wrong. The PCM switches to the In Gear pair whenever the trans is in gear. Both pairs are in now and both are live. If you changed only the P/N pair expecting it to work in Drive, make the same change to the In Gear pair.
- Idle spark gains (2). Coolant-based multipliers on the underspeed and overspeed idle spark tables. Stock 1.0.
- Idle airflow limits (5). Max and min idle airflow as % of throttle area, normal and sensor-fault versions, plus the fault default. Stock normal max 3.33 %.
- Idle airflow feed-forward (7). The fixed parts of the idle air request, in g/s: base vs rpm, coolant adder (+2.4 g/s at -40 C, zero once warm), baro adder, air for idle-up requests like A/C, air for the post-start flare, and extra air when rpm sags below desired. In Gear and P/N rows.
- Idle airflow closed loop (4). Step table, error gain and learn limits. On a stock cal the step table is all zero, so the airflow integral is off. Stock idle is held by a slow airflow learn, the rpm-sag table and idle spark. Filling the step table turns the integral on. Start very small and log.
- O2 switch point (2). The base switch-point curve now has a real airflow axis (0 to 76 g/s), plus the map that places its columns.
v2.99 · 166 items (+13)
- O2 switch point (10). What moves the rich/lean switch point in closed loop: limits (300 to 675 mV), a cold-start adder (-150 mV for the first 160 s below 65 C) with its limits, an adder vs filtered O2 voltage, and four phase-in curves vs coolant at start-up.
- MAP sensor conversion (3). Gain, offset and filtered-path gain. Change all three together for a different MAP sensor.
v2.97 · 153 items (+10)
- Catalyst light-off spark retard (7). The timing pulled for about two minutes after a cold start to heat the cats: three retard tables plus time, coolant and throttle scalers. Seen on a logged 24 C cold start.
- IAT spark coolant scaler, base fuel multiplier vs rpm, TAP adapt gain vs shift torque.
- Clarified: WOT shift tables only read their 100 column; the shift/TCC "TPS" axis is driver throttle demand above idle; 5th/6th cells in the by-gear arrays are unused on the 4L60-E.
v2.94 · 143 items
- Final Drive Ratio and VSS Tire Revs per Distance. The pair that sets the speedometer after a tire or gear change, checked on the road to within 1.0%. Corrected 2026-09-24: shift points and converter lockup use a separate transmission copy of these two values (see v3.1). Download v2.94 if you need to match an older tune.
Loading it in TunerPro
- File > Open Bin: your own 1 MB P12 read.
- XDF > Select XDF: the
.xdf.
Every table full of random numbers? You opened the XDF as the bin. Quick sanity check on a stock read: in Main Spark Advance - High Octane, the 0.08 g/cyl row starts at 27.0 and peaks at 41.0 around 3600 to 4400 rpm.
Common edits
The three changes most people come for, using released items only. One change per flash, repair checksums, and log before and after.
New tire size or axle gears (speedometer and shift points)
- VSS Tire Revs per Distance (Speedometer): revs per mile = 20,168 ÷ tire diameter in inches. Stock 627.6, about a 32.1 in tire. Taller tire, lower number. Use the measured tire height, not the sidewall size.
- Final Drive Ratio (Speedometer): only if you changed gears. Stock 4.56.
- Check the result against GPS. Both items are confirmed on the truck, but that proves the decode, not your tire size.
- Then the transmission pair (Transmission): Final Drive Ratio - Transmission Speed and Tire Revs per Distance - Transmission Speed, same numbers. That's what shift points and converter lockup use. Stock they're 4.556 and 639 revs per mile, which is why the trans reads about 1.8 % below the dash on a stock truck. New in v3.6, proven in code, not yet on a drive.
Idle speed
- Desired idle vs coolant temp (Idle) comes in two curves, IN GEAR and PARK/NEUTRAL. They're identical above 44 C, so for a warm idle change edit the warm cells in both. Both are confirmed on the truck and used in a flashed tune.
- A/C-on idle target (stock 675 rpm) only matters when it's above the coolant curve. Raise it too if A/C idle drops below your new target.
- Log desired idle (PID 11C9) and rpm through a warm-up to see the new target.
Shift points
- Shift Speed vs TPS - Normal (Transmission) is the speed each shift happens at vs throttle, confirmed on the truck. The throttle axis is driver demand above idle, close to throttle % above idle.
- Keep each downshift below its upshift, or it will hunt between gears. Cells reading 311 mph mean that shift is blocked at that throttle; leave them.
- Full throttle uses WOT Shift RPM - Normal and WOT Shift Speed - Normal. The PCM reads only their 100 column, so edits to the 0 column do nothing.
- The 4-Lo and Hot schedules are separate tables and aren't confirmed on the truck yet. There's no performance mode on this calibration: the tables once labelled Performance are the 4-Lo ones.
Left out on purpose
- Cooling fan: nothing to tune here. GM's owner and service manuals describe the stock H3 fan as belt-driven with a temperature-sensing clutch, so fan engagement isn't set by a PCM table. If your truck has been converted to an electric fan, that's controlled outside this PCM.
- Reference-only, don't tune: the torque model, ETC throttle-area model and monitor, reduced-power pedal curve, line-pressure force-motor gains, COT and over-temp enrichment, cat-protection EQ, MAF-fault fallbacks, Brake Torque Limit and TCS fuel cut. Touch these and you break torque-based control or the safety fallbacks.
- Held for more evidence: injection timing, injector offset and maximum line pressure.
- Readiness and protection overrides: the switch that forces the emissions monitors to report ready and the one that turns off the catalyst over-temperature confirm logic are left out on purpose. The engine-off timer monitor (P2610) enable, four secondary air settings and the transmission fault reaction enables are in from v3.13, released by the maintainer's decision. The per-code DTC status table is in (see v3.4); disabling emissions-related codes on a road vehicle may break emissions law where you live.
This isn't the whole calibration. There are several hundred more tables in the cal region nobody has identified yet. These 1932 are what's been proven.
Got a 12627884 truck?
Send your OS ID, what you changed (old and new values), and a log. CSV is fine. Corrections help as much as confirmations. Post it in the group or message the page.