ARC-TUNING
Powered by Scarecrow
CONNECTING…
Initializing the Professor — checking KB and proxy availability.
DASHBOARD
PE VE SPARK MAF IFR IDLE DFCO/LC LIMITER FI DRIVABILITY WOT
— / 12 sections complete
'99 C5 · LS2 6.0L · 0411 PCM · T56 · catless · 93 oct

Spark Advance — High & Low Octane

Walk timing in to where the engine wants it. Add a safety margin. Verify with knock-retard data, not a number on a forum post.
Tables in this section: 3
Pro-mode tables: 2
⚠ Build flag: Catless LT headers — KS desensitization required first

Scarecrow Briefing — Spark Advance for your build

Same '99 C5 build, third section. Spark is where the engine actually tells you what it wants — but only if the knock sensor is reading the truth. The methodology, not target numbers, is what gets this right. Five build-driven calls shape Section 3:

(1) The KS gets calibrated FIRST. Catless long-tube headers raise the engine's mechanical noise floor. If you walk timing in against the stock GM noise threshold, you'll see false KR before you reach knock-limited cells, abort the walk early, and leave power on the table. Section 3.3 walks the documented baseline-calibration procedure: pull spark back to conservative cal, sweep RPM/load, log peak KS noise, lift the threshold above that baseline, restore spark, verify with a knock-ear. (2) Hi/Lo dual-table architecture. The 0411 has two main spark tables. Hi Octane is the primary; Lo Octane is the safety net the PCM blends toward when KR fires. Tune Hi for 93 oct optimum, set Lo as a safety net (~6° below Hi at WOT), and verify Lo rarely sees use after KS calibration is right. (3) Walk timing in. Don't follow recipe numbers. Section 3.1 SUGGESTS a conservative starting baseline (-2° from stock at WOT). From there: 1–2° per iteration, cruise cells first, then high-RPM low-load, then high-RPM high-load. Stop at the first sustained 0.5–1° KR blip. Back off 2–3° for margin. That's the answer. (4) PCM thinks 5.7L; engine is 6.0L. Same swap-mismatch story as VE. The 6.0L runs slightly higher cylinder pressure at same MAP — stock spark map is slightly over-advanced for actual physics. Marginal effect, but it stacks with #3 — start more conservative, walk in cleanly. (5) Texas race-car heat-soak. IAT spark retard race-bias (Section 3.4) starts retard earlier and pulls more aggressively above 100°F intake. Same posture as VE 2.4.

Most numerical claims in this section are MEDIUM confidence. The methodology is HIGH confidence. Verify on dyno + KR datalog before locking any cell.

3.1 High Octane Spark Advance vs RPM × MAP 📍 LOCATE
HPTEngine → Spark → Advance → High Octane
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
⚠ Walk-in starting baseline
The primary spark advance table. Maps RPM × MAP (kPa) to commanded spark advance in degrees BTDC. The PCM blends between this Hi Octane table and the Lo Octane table (3.2) based on KR-driven Octane Adjust scalar (3.5). The SUGGESTS column is a conservative starting baseline (-2° from stock at WOT), not a peak-MBT target. Walk timing in from here per the procedure in the reasoning block.
This is the main . SCARECROW's suggested numbers are a safe starting point, not a peak-power target. Apply these, then walk timing in 1-2 degrees at a time while watching . Stop when knock starts, back off 2-3 degrees. That's how you find for your specific motor.
Log axis check — Scarecrow's grid uses the stock 0411 breakpoints
If your tuning software has modified the OS, the actual spark table in your tune may have different RPM/MAP breakpoints than what's rendered below. Drop a log into 3.7 first — Scarecrow will reconcile axes against your actual data before applying any cell-level changes.
CURRENT Stock LS1 cal
kPa\RPM1000150020002500300035004000500060006500
10022232426272626252322
9025262729302928272524
8028293032333231302827
7030323436363534333130
6032343638383736353332
4034373940403938373534
2036384042424140383634
Stock LS1 Hi Oct cal — calibrated for 5.7L on stock cats / stock manifolds / stock cam. Mountain shape, peak ~33° at 2500–3000 × 80 kPa.
✦ SCARECROW SUGGESTS Conservative walk-in baseline
kPa\RPM1000150020002500300035004000500060006500
10020212224252424232120
9023242527282726252322
8026272830313029282625
7029313334343332312928
6031333536363534333130
4033353738383736353332
2034363839393837363433
Conservative starting baseline — stock minus ~2° at WOT, minus ~2° at cruise, biased a little more aggressive at light load. Walk timing in from here per the procedure in the reasoning. Don't lock these as final.
Δ DIFF Current → Scarecrow
kPa\RPM1000150020002500300035004000500060006500
100-2-2-2-2-2-2-2-2-2-2
90-2-2-2-2-2-2-2-2-2-2
80-2-2-2-2-2-2-2-2-2-2
70-1-1-1-2-2-2-2-2-2-2
60-1-1-1-2-2-2-2-2-2-2
40-1-2-2-2-2-2-2-2-2-2
20-2-2-2-3-3-3-3-2-2-1
Roughly -2° everywhere — slightly more pull at light-load high-advance cells where over-advance lugging knock can hide. The pull-back is to give walk-in headroom.
Spark advance heat scale (degrees BTDC) 12 boost retard 22 WOT typical 30 mid-load 36 cruise 42 light-load MBT Sequential ramp — high-advance cells require fuel quality + cool charge to be safe
✦ SCARECROW REASONING — WALK-IN PROCEDURE CONFIDENCE: MEDIUM (numbers) · HIGH (procedure)
The SUGGESTS column is a starting baseline, not a target. The actual right answer for your specific build comes from walking timing in. Procedure (after applying the conservative baseline AND completing 3.3 KS desensitization):
  • Order: cruise cells first (50–70 kPa, 1500–3000 RPM — most-driven zone). Then high-RPM light load (50 kPa × 4500–6000). Then high-RPM high load (80–100 kPa × 4500–6000) last.
  • Increment: 1–2° per iteration, single cell or 3×3 block.
  • Stop trigger: first sustained 0.5–1° KR blip on a clean wideband / clean IAT log. (Not a one-off blip in noisy data — sustained means repeatable.)
  • Back off: 2–3° from the cell where KR appeared. That's your knock-limited margin.
  • Past MBT: if engine torque flattens or falls with more advance and KR stays at 0, you're past MBT — back off, more advance won't help here.
  • Per-cylinder: if KR shows on one cylinder only — that's mechanical (carbon, plug heat range, injector, localized heat), not a global timing issue. Don't pull the whole table; investigate that cylinder.
What this section CAN'T do for you: tell you the right peak BTDC for your motor. That comes from your dyno + your KR log + your knock-ear.
SCARECROW's numbers are a starting line, not a finish line. After you apply them, the engine has to tell you what it actually wants. Steps:
  1. Make sure section 3.3 (knock sensor calibration) is done first — otherwise you'll get false alarms
  2. Drive the cruise loop. Watch . If it stays at 0, add 1-2° in the cruise zone. Drive again.
  3. Repeat for high-RPM zones — light-load before heavy-load
  4. Stop the moment you see real, repeatable KR. Back off 2-3°. That's where the engine wants the timing.
  5. If KR shows on just one cylinder, fix that cylinder — don't change the table
The right number is the one your engine tells you. SCARECROW just gets you to the starting line safely.
70 cells · avg -2° from stock · walk-in starting point
3.2 Low Octane Spark Advance vs RPM × MAP 📍 LOCATE
HPTEngine → Spark → Advance → Low Octane
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
Safety net — 6° below Hi at WOT
The fallback table the PCM blends toward when KR fires. Same axes as Hi Oct (3.1). The Octane Adjust scalar (3.5) controls the blend ratio — 1.0 = full Hi, 0.0 = full Lo. PCM ratchets Octane Adjust down on knock events and walks it back up when clean. Set Lo as a safety net (~6° below Hi at WOT, narrower delta at light load), not as a usable second tune. If your KS is calibrated right, Lo should rarely see significant blend weight.
This is the . The PCM fades toward this one when it hears . Set it lower than the main table so it actually pulls timing back when needed — but if you've calibrated the knock sensor right (3.3) and the engine isn't actually knocking, the PCM should rarely use this map.
CURRENT Stock LS1 cal
kPa\RPM1000150020002500300035004000500060006500
10016171820212020191716
9019202123242322211918
8022232426272625242221
7025272930302928272524
6027293132323130292726
4029313334343332312928
2032343637373635343230
Stock Lo Oct — about 6° below Hi at WOT, narrower delta at light load. Safety net design.
✦ SCARECROW SUGGESTS Lo = Hi minus 6° at WOT
kPa\RPM1000150020002500300035004000500060006500
10014151618191818171514
9017181921222120191716
8020212224252423222019
7023252728282726252322
6025272930302928272524
4027293132323130292726
2030323435353433323028
Lo = Hi (after walk-in) minus 6° at WOT, minus 4° at mid-load, minus 2° at light load. Adjusts as you walk Hi in — keep Lo proportional.
Δ DIFF Current → Scarecrow
kPa\RPM1000150020002500300035004000500060006500
100-2-2-2-2-2-2-2-2-2-2
90-2-2-2-2-2-2-2-2-2-2
80-2-2-2-2-2-2-2-2-2-2
70-2-2-2-2-2-2-2-2-2-2
60-2-2-2-2-2-2-2-2-2-2
40-2-2-2-2-2-2-2-2-2-2
20-2-2-2-2-2-2-2-2-2-2
Lo follows Hi proportionally — both pulled back -2° to start. Re-adjust Lo as you walk Hi in.
✦ SCARECROW REASONING CONFIDENCE: MEDIUM
The 6° WOT delta is industry-typical for Gen III LS1 OS but not specifically KB-grounded for the 12200411 — flag MEDIUM. The light-load delta narrows because high-advance light-load cells are knock-sensitive to fuel quality variance, and you want the Lo table to be a meaningful safety net there too without being uselessly retarded. Critical: Lo is not a "second tune" for low-octane fuel — it's a fallback the PCM blends toward on KR. Once you walk Hi in, walk Lo down by the same amount so the proportional safety margin is preserved.
The 6-degree gap at WOT is what most LS guys use. It's enough that the PCM actually pulls timing when you knock, but not so much that one false-knock event makes the engine feel asthmatic. Whenever you raise the main map (3.1), drop this one by the same amount.
70 cells · proportional safety net · adjusts with Hi Oct walk-in
3.3 Knock Sensor Desensitization Workflow 📍 LOCATE
HPTEngine → Spark → Knock Sensors → Knock Level vs RPM (and Multiplier 0–16)
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
⚠ DO THIS FIRST — gates all spark work
Catless long-tube headers raise the engine's mechanical/exhaust noise floor. Stock GM knock sensor calibration was built for a stock-cat / stock-manifold engine. If you walk timing in (3.1) against the stock noise threshold, the PCM will see false KR before any real combustion knock and abort the walk-in. Fix is the documented baseline-calibration procedure: pull spark cal back to conservative, sweep RPM/load, log peak KS noise, lift the threshold above that baseline, restore spark, verify on a knock-ear that real knock still triggers KR. Six-step procedure below.
Your make extra mechanical noise the mistakes for engine knock. The PCM thinks you're knocking when you're not, and pulls timing for nothing. Cost: real horsepower. Fix: do this 6-step calibration first, before doing anything else with spark. Otherwise the timing walk-in (3.1) won't work — every false-knock event will abort the process.
KS BASELINE CALIBRATION — 6-STEP PROCEDURE
STEP 1 Pull spark cal back to a conservative baseline. Apply 3.1's SUGGESTS column AND temporarily reduce it another ~5° globally for this calibration log only. Goal: minimize combustion-induced noise so what the KS picks up is mechanical/exhaust only.
STEP 2 Run an RPM/load sweep. Drive through cruise and hard throttle from 1500 to 6500 RPM, light load to WOT, varied IAT. 15–20 minutes.
STEP 3 Log the KS signal level vs RPM. Standard PIDs: Knock Sensor Level (or per-sensor amplitude), Engine Speed, MAP, IAT. Find the peak observed level at each RPM.
STEP 4 Lift the Knock Level threshold above peak baseline. Add ~10–20% margin above the highest observed clean-noise level at each RPM. On HPT: edit Knock Sensor Level vs RPM table directly OR raise the Knock Sensor Multiplier (0–16 scale). Small steps — too aggressive and real knock stops being detected.
STEP 5 Restore the spark cal to 3.1's SUGGESTS (the conservative baseline, not the temporarily-pulled value from step 1).
STEP 6 Verify on a knock-ear. Run a clean WOT pull. KR should be 0 at known-safe operating conditions. Then deliberately induce a real knock event (low-octane fuel slug, or a temporary timing pull-up of +4–5°) and confirm KR triggers. If real knock no longer triggers retard, reduce the threshold lift in step 4 and re-verify.
Documented baseline-calibration procedure. Audio knock-ear is required — without it you can't distinguish "no false KR" from "no real-knock detection." A knock-ear costs ~$50.
Knock Sensor Multiplier (starting lift)
8 → 12
+4 (out of 0-16 range)
Conservative starting lift — typical for catless LT builds. If steps 3-6 show false KR persists, raise to 13-14. If real knock no longer triggers, drop back to 10. Verify with knock-ear.
Knock Window Start (BTDC)
10 → 10
no change
Default window timing is correct for stock-cam Gen III. Don't move unless forensic evidence says otherwise.
Knock Retard Recovery Rate
0.1 °/s → 0.1 °/s
no change
Stock recovery rate is fine. Faster recovery (0.2-0.5) only useful on heads/cam builds with intermittent legitimate KR.
✦ SCARECROW REASONING CONFIDENCE: HIGH (procedure)
The procedure is well-grounded — pull timing, log baseline, lift threshold, restore timing, verify with knock-ear. The starting Multiplier value (8 → 12) is practitioner consensus for catless LT builds, flagged as a starting point not a final answer. Honest-AI failure modes:
  • Wrong fix: if KR scales with MAP/RPM and disappears on race fuel — that's REAL knock, not header noise. KS desensitization will mask it. Investigate fuel quality, IAT, AFR, mechanical condition first.
  • Wrong fix: if KR shows on one cylinder only — that's mechanical (carbon, plug heat range, injector). KS recal won't fix it.
  • Wrong fix: if KR disappears once oil temp passes 200°F — that's valvetrain noise, the same family of false-KR but the fix is sometimes a thicker oil rather than a threshold lift. Verify with knock-ear.
The verification step (STEP 6) is non-optional. Without confirming real knock still triggers retard, you've created a tune that can destroy a piston without warning.
The procedure works. The numbers (Multiplier 12 starting lift) are common-practice for builds like yours. Three things this is NOT a fix for:
  • Knock that gets worse on bad gas — that's REAL knock, fix the fuel
  • Knock on just one cylinder — that's a hardware problem, not a sensor problem
  • Knock that goes away when oil gets hot — that's , similar fix but verify with a knock-ear
Step 6 is non-negotiable. Without it, you might think you fixed the problem when you've actually just turned off the engine's pain receptors.
3 scalars · 1 starting-lift change, 2 confirmed-as-stock
3.4 IAT Spark Retard (Race-Car Bias) 📍 LOCATE
HPTEngine → Spark → IAT Compensation → Retard vs IAT
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
⚠ Race-car heat-soak bias
Hot intake charge raises combustion start temperature, shrinking knock margin. Stock GM IAT spark retard curve is calibrated for a street car that throttles back when the underhood gets hot. A Texas race car at sustained WOT on a 90°F+ track day will see IAT climbing 20–40°F over a single session. Race-car bias starts the retard earlier and pulls more aggressively above 100°F intake — the cool-side curve stays untouched.
Hot air = hotter combustion = closer to . Stock GM logic assumes you'll back off the throttle when intake gets hot. You won't. So we make the PCM pull more when intake temps climb — protects the engine without you having to lift.
CURRENT Stock GM curve
IAT °F4070100130160180200
Retard °00-1-2-4-6-8
Stock GM retard curve. Minimal pull below ~100°F, gradual ramp to -8° at 200°F. Calibrated for street use.
✦ SCARECROW SUGGESTS Race-car heat-soak bias
IAT °F4070100130160180200
Retard °00-2-4-7-9-12
Earlier retard onset, more aggressive past 130°F. Cool-side untouched. Designed for sustained-WOT track operation in Texas heat.
Δ DIFF Current → Scarecrow
IAT °F4070100130160180200
Δ retard00-1-2-3-3-4
No change at normal/cool IAT. Progressively more retard than stock as IAT climbs into heat-soak territory.
✦ SCARECROW REASONING CONFIDENCE: HIGH (posture) · MEDIUM (specific values)
Posture-twin of VE 2.4 IAT density correction — same logic, different table. KB-grounded relationship: hot intake = closer to knock limit. Specific cell values (-7°@160F, -12°@200F) are practitioner-consensus for race builds, not KB-grounded — verify on knock-ear during a hot lap. The race-car-bias philosophy is HIGH confidence; the specific magnitudes need empirical confirmation under your hood layout (heat shielding, intake routing, ambient airflow).
Same idea as the VE section's IAT correction. Stock map assumes "if it's hot, lift" — you can't lift on a track. So pull more timing when intake gets hot. The exact numbers should be verified during a hot session — if knock retard shows up at 170°F, pull more retard at 160°F.
5 cells modified (IAT 100–200°F band) · cool-side untouched
3.5 Octane Adjust + Update Rate PRO 📍 LOCATE
HPTEngine → Spark → Octane Adjust (initial value, update rate, max/min)
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
✦ Tune-stable — usually leave
Octane Adjust is the 0–1 scalar that drives the Hi↔Lo blend. 1.0 = full Hi Oct table. 0.0 = full Lo Oct. PCM ratchets it down on KR events and walks it back up when clean. Update Rate controls how fast the PCM moves in each direction. Default GM behavior is fine for most builds — only touch if you see Octane Adjust hovering at 0.3–0.5 (should be near 1.0 if KS is right) or if it never recovers after a single KR event.
This controls how fast the PCM fades between the main map and the backup map. Default GM behavior is good — only touch this if your knock retard log shows the PCM "stuck" in the backup map even after the engine stops knocking.
Octane Adjust Initial Value
1.00 → 1.00
no change
Boots into full Hi Oct authority. Correct default — adjust only if logs show persistent low values.
Octane Update Rate (decay on KR)
0.05 /event → 0.05 /event
no change
Each KR event drops Adjust by 0.05. Stock rate is fine.
Octane Update Rate (recovery clean)
0.01 /s → 0.01 /s
no change
After a KR event, recovery is slow by design — gives PCM time to confirm clean operation. Don't speed up unless logs show it never recovers.
✦ SCARECROW REASONING CONFIDENCE: MEDIUM
Specific scalar names and default values are not KB-grounded for the 12200411 OS — flag MEDIUM. The default values shown match practitioner consensus for Gen III LS1 OS. The blend formula is `commanded = Hi × OctaneAdjust + Lo × (1 − OctaneAdjust)`. Critical: this is a stable system that works correctly when KS is calibrated right (3.3). If Octane Adjust is hovering low in your logs after 3.3 is done, the cause is usually persistent false KR (3.3 didn't go far enough) — fix the KS, don't fix Octane Adjust.
Don't touch this unless logs show a problem. The fix for "Octane Adjust stays low" is almost always the knock sensor calibration in 3.3, not changing this number.
3 scalars (PRO) · all confirmed-as-stock
3.6 ECT Spark Retard (over-temp protection) PRO 📍 LOCATE
HPTEngine → Spark → ECT Compensation → Retard vs ECT (high-temp protection)
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
✦ Sustained-heat protection
ECT-driven spark retard kicks in when coolant is high enough to threaten the cylinder. Stock curve is conservative for street; on a Texas race car at sustained WOT, a more graduated retard schedule starts pulling earlier and protects against detonation as cylinder-wall temps climb without forcing a "limp" cliff at one specific ECT.
When coolant gets really hot, the cylinder walls get hot too — knock margin shrinks. Stock GM has a safety map that pulls timing when coolant goes above a threshold. Race-car version starts pulling a little earlier and ramps more smoothly so you don't hit a sudden power loss mid-corner.
CURRENTStock GM
ECT °F180200220235245255
Retard °00-1-3-6-10
Stock GM ECT retard. Doesn't engage meaningfully until 220°F, hits hard at 245°F+ as a "step protection" fallback.
✦ SCARECROW SUGGESTSGraduated race retard
ECT °F180200220235245255
Retard °00-2-4-7-10
Earlier engagement at 220°F, smoother ramp through 235–245°F. Same end-stop. Reduces step-feel and starts protecting earlier in a heat-soak event.
Δ DIFFCurrent → Scarecrow
ECT °F180200220235245255
Δ retard00-1-1-10
Modest extra retard in 220–245°F band. Same maximum at 255°F.
✦ SCARECROW REASONING CONFIDENCE: MEDIUM
KB doesn't ground the specific stock 0411 ECT retard curve values — these are practitioner-consensus and flagged MEDIUM. The shape change (graduated vs step) is HIGH-confidence as a posture, low-confidence as specific cell values until verified on a hot lap. If you see ECT spending significant time in the 230–245°F band during sessions, this curve helps. If your cooling system keeps ECT below 220°F always, this subsection is academic for your build.
Race-car version of the over-temp protection. Doesn't matter if your cooling is good enough that you never see 220°F+. Matters a lot if you do.
3 cells modified (220–245°F band)
3.7 Verification Loop (KR datalog) ✓ Drop log when ready
Drop a wideband + KR datalog from a varied-load drive (after 3.3 KS calibration is done). Scarecrow renders per-RPM-cell peak KR + average KR, separates false-KR signatures (KR present at all loads regardless of fuel quality, MAP-independent, doesn't scale with IAT) from real-KR signatures (KR scales with MAP/RPM, gets worse with hot IAT, tracks fuel quality). Honest split: false-KR cells suggest the 3.3 calibration didn't go far enough; real-KR cells need timing pulled at those load points.
Drop your here. Scarecrow looks at every cell and tells you which knock events are real (pull timing) vs which are false (calibrate the sensor more). It refuses to suggest pulling timing on false-KR cells — that's how good tunes go bad.
📊
Drop a KR datalog here (.hpl or .csv)
Or click to load a sample log — Scarecrow will compute per-cell peak/avg KR, classify false-vs-real KR signatures, and suggest the next round of corrections honestly:
3.3 threshold lift if false-KR persists, vs. 3.1 timing pull at the affected load points if real-KR appears.
Pending changes: 3 tables · 6 scalars · 148 cells modified