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

MAF Calibration (Hz → g/s Transfer Curve)

Mass Air Flow sensor scaling — the primary airmass source on this build per VE 2.2's strategy decision.
Tables in this section: 2
Pro-mode tables: 1
⚠ Build flag: MAF is authoritative — wrong curve corrupts everything downstream

Scarecrow Briefing — MAF Calibration for your build

Same '99 C5 LS2-on-0411 build context, different table family. MAF is the primary airmass source on this build per the strategy decision in VE 2.2 — which means a wrong MAF curve corrupts every downstream fueling decision. PE's WOT enrichment, VE's backup math, IFR's pulse-width math: all of it rides on the MAF reading the right airmass. Five build-driven decisions shape Section 4:

(1) Stock '99 LS1 MAF curve is calibrated for the stock airbox + factory MAF location. If you're running stock intake hardware (confirmed in build profile), no MAF curve change is recommended at start — verify on a cruise log before touching cells. (2) The MAF table doesn't need displacement rescaling for the LS2-on-LS1-OS swap. MAF reads actual mass airflow (g/s), independent of cylinder volume. The displacement correction lives only in VE — section 4.1 stays untouched by it. (3) Methodology is histogram-driven, not target-numbers. Cruise-log with wideband, compute LTFT trim per Hz cell, multiply g/s value by (1 + trim%/100), iterate 2-3 passes until trims settle < 2%. (4) Sensor model verification gates this section (4.4 PRO). Wrong MAF model in the cal = every Hz reading interpreted at wrong scale. Halt-card if mismatched. (5) Verification (4.5) is a MAF-vs-SD airmass cross-check. Once VE Section 2 is applied, SD math is correct — so any consistent divergence between MAF airmass and SD airmass per cell flags either a wrong MAF curve or a wrong VE table. Refuses to apply MAF changes if VE state is not 'complete'.

Honest-AI rule: if symptoms point at intake leak, MAF placement / clocking, contaminated MAF element, or MAF saturation at high flow, Scarecrow refuses to fake-fix with curve changes. Different problems, different fixes.

4.1 MAF Hz → g/s Transfer Curve 📍 LOCATE
HPTEngine → Air Intake → MAF → MAF Frequency vs Air Flow
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
✓ No change recommended at start
The primary MAF table. 1D lookup mapping MAF frequency (Hz) → mass airflow (g/s). Stock LS1 cal calibrated for stock airbox + intake — aftermarket intakes (CAI, lid mods, even just a different filter) shift the curve and require histogram-driven correction. Stock-airbox build = no change at start. Methodology: cruise-log with wideband, compute LTFT trim per Hz cell, apply (1 + trim%) multiplier, iterate 2-3 passes until trims settle < 2%. The grid below shows ~24 breakpoints from idle (1000 Hz, ~2 g/s) through saturation territory (14000 Hz, ~350 g/s).
The MAF table is the between the sensor's electrical signal (in Hz) and how much air is actually flowing into the engine (in g/s). The PCM looks at this table thousands of times per second to decide how much fuel to inject. Your stock '99 setup uses the factory and , so the stock curve should be close to right. We don't change it until a cruise log says we need to.
Log axis check — Scarecrow's grid uses the stock 0411 Hz breakpoints
If your tuning software has modified the OS, the actual MAF table breakpoints in your tune may differ from what's rendered below. Drop a log into 4.5 first — Scarecrow will reconcile axes against your actual data before applying any cell-level changes.
CURRENT Stock LS1 cal
Hz100015002000250030003500400045005000550060007000800090001000011000120001300014000
g/s2.04.07.511.517.022.531.042.055.068.082.0110.0140.0170.0200.0235.0270.0310.0350.0
Stock LS1 cal — calibrated for stock airbox + factory MAF location + OEM filter. Assumes clean, undisturbed flow upstream of the MAF element.
✦ SCARECROW SUGGESTS No change (stock-airbox build)
Hz100015002000250030003500400045005000550060007000800090001000011000120001300014000
g/s2.04.07.511.517.022.531.042.055.068.082.0110.0140.0170.0200.0235.0270.0310.0350.0
Stock-intake build → curve stays as-is at start. Histogram-driven correction arrives via 4.5 verification once cruise log lands. If you swap to CAI / lid mod / non-OEM filter later, every cell needs re-scaling.
Δ DIFF Current → Scarecrow
Hz100015002000250030003500400045005000550060007000800090001000011000120001300014000
Δ g/s0000000000000000000
Zero changes baseline. Histogram-driven trim populates this column after 4.5 verification log lands.
MAF g/s heat scale 5 idle 25 cruise 90 mid-load 200 WOT-mid 350+ saturation Sequential ramp — MAF reads actual mass-flow, no good/bad implication
✦ SCARECROW REASONING CONFIDENCE: MEDIUM
Headline call: no MAF curve change at start. Reasoning:
  • Stock airbox build means the OEM curve is calibrated for exactly the flow conditions your sensor sees. No upstream geometry change → no curve shift expected. Confidence MEDIUM not HIGH because the assumption is "factory parts stayed factory" — verify in build profile before locking.
  • No displacement correction needed. MAF reads g/s directly (mass-flow sensor). Cylinder volume, RPM, MAP — none of those change what mass of air per second is flowing past the hot wire. The 5.7→6.0 displacement correction lives only in VE (Section 2). Section 4.1 stays untouched.
  • Histogram correction is the right tool when correction is needed. Drive a cruise log with wideband, look at error per Hz cell, multiply each Hz cell's g/s value by (1 + trim%/100). Iterate 2-3 passes. Stops when trims settle < 2%. Small steps — going more than 5% per iteration risks oscillation.
What I'm NOT certain about: the upper-end cells (12000+ Hz / 270+ g/s). At sustained WOT on the 6.0L LS2 you're potentially pushing the stock LS1 MAF toward saturation. If the sensor saturates, the curve doesn't extrapolate — it just reads the same maxed-out value regardless of actual flow. That's a sensor problem, not a cal problem. Watch for "MAF reading flat-lines while RPM still rising" in WOT logs.
The headline answer: don't touch the MAF curve yet. Three reasons:
  • Your stock airbox is what the curve was designed for. If you haven't changed the intake hardware, the curve is probably right.
  • The 5.7→6.0 engine size mismatch doesn't affect this table. The MAF reads how much air is flowing, not how big the engine is. The size correction lives in the VE table only.
  • If the curve does need adjustment after we look at a cruise log, we use a — small percentage adjustments per Hz value, drive again, repeat until trims stop drifting.
0 cells changed — histogram correction gated on 4.5 cruise-log result
4.2 MAF Failure Defaults 📍 LOCATE
HPTEngine → Air Intake → MAF → Failure · Engine → DTCs → P0102/P0103
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
✓ Keep stock failure logic
What the PCM does when MAF reading is invalid (sensor unplugged, frequency out of range, voltage fault). Failure threshold scalars define the low-flow cutout (Hz below which the signal is treated as failed), high-flow cutout (Hz above which saturation is suspected), and error-count threshold before the failure latches. Failure mode behavior on this OS: drop to SD math, command default airmass model, set CEL. For this race-car build with VE 2 tuned correctly: keep failure mode AS-IS. SD fallback works because Section 2 made it work.
What happens if the MAF sensor unplugs, fails, or reads garbage. Stock behavior: PCM falls back to (uses the VE table to estimate airflow), commands a default fueling, and turns on the check-engine light. Because we already tuned VE in Section 2, the fallback works correctly. Keep this as-is. Don't disable failure detection — that's a real safety net.
MAF Low-Flow Cutout
~600 Hz → 600 Hz
no change
Stock cutout below idle — engine never reads this low in normal operation.
MAF High-Flow Cutout
~14500 Hz → 14500 Hz
no change
Above peak WOT — exceeding suggests sensor saturation or fault.
MAF Error Count Threshold
5 samples → 5
no change
Five consecutive bad samples to latch failure — debounces transient glitches.
Failure Mode Behavior
Drop to SD → Drop to SD
no change
✓ Correct fallback — VE Section 2 makes SD math accurate.
✦ SCARECROW REASONING CONFIDENCE: HIGH
The temptation on a race build is to disable MAF failure detection so a sensor glitch doesn't abort a session. Don't. Two reasons:
  • The fallback works on this build. Section 2 corrected the VE table for the LS2 displacement and header reshape. SD fallback math is accurate. A failed MAF won't strand you in the pits — engine stays running on SD, you finish the session, you fix the sensor.
  • A truly failed MAF reading is dangerous. If the sensor shorts low or floats, the PCM thinks airflow is near-zero, commands minimum fuel, and the engine goes lean at WOT. Fuel cut would be safer than no fuel cut. Failure detection is the safety net that triggers SD fallback.
All three threshold scalars stay at GM-stock. Don't widen them to mask a flaky sensor — that just delays fault detection. Fix the sensor.
The race-car instinct is to disable safety nets so they don't interrupt sessions. With MAF failure detection, the safety net is actually doing useful work — it makes the PCM fall back to a math model that we already tuned correctly. Keep it on. Fix flaky sensors at the source, not in the cal.
4 scalars · all at GM-stock (no changes)
4.3 IAT-based MAF Correction Curve PRO 📍 LOCATE
HPTEngine → Air Intake → MAF → MAF IAT Correction
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
✦ Minor adjustments only
Air density compensation downstream of MAF reading. Stock GM curve corrects MAF g/s reading by an IAT density factor. Race-car bias here mirrors VE 2.4's pattern but lighter touch — MAF reads actual mass airflow (not volumetric), so density correction is small and well-behaved. The race car wants slightly less aggressive correction at high IAT to preserve thermal margin during sustained WOT. 7-cell table (IAT °F vs correction multiplier).
Hot air vs cold air correction, applied after the MAF reads. Because the MAF measures mass directly, the correction needed here is small — much smaller than the IAT correction in the VE section. Same race-car bias though: at high intake temperatures we relax the correction slightly so the engine gets a bit more fuel for cooling.
CURRENT Stock GM curve
IAT °F4070100130160180200
MAF mult1.0121.0000.9880.9740.9580.9480.938
Standard MAF density correction. Trim is gentler than the VE-side IAT correction because MAF reads mass directly.
✦ SCARECROW SUGGESTS Race-car protection bias
IAT °F4070100130160180200
MAF mult1.0121.0000.9920.9820.9720.9650.958
Cool-side curve untouched. Slightly less aggressive lean-out at high IAT — preserves margin during sustained-WOT heat-soak.
Δ DIFF Current → Scarecrow
IAT °F4070100130160180200
Δ mult00+.004+.008+.014+.017+.020
Smaller deltas than VE 2.4 — MAF correction is layered on top of VE correction, not a replacement.
✦ SCARECROW REASONING CONFIDENCE: MEDIUM
Posture-twin of VE 2.4 with a smaller magnitude. MAF reads actual mass flow, so the correction here is a fine-tune of the density relationship — not a wholesale shift. Stock GM curve assumes a street car that backs off when intake is hot. Race car can't and won't, so the high-IAT cells get a small richening bias to preserve margin during sustained WOT.
  • Cool-side (40-70°F) untouched — the engine is running stoich-clean down there and we don't want to bias starting / cold-running fueling.
  • 100-130°F: +0.004 to +0.008 mult — minor, reflects normal cruise heat.
  • 160-200°F: +0.014 to +0.020 mult — meaningful but small. Stacks with VE 2.4's correction; net at 200°F IAT the engine sees ~0.3-0.4 AFR richer than fully-stock.
Confidence MEDIUM because: (a) the magnitudes are inferred from physical-law constraints + race-car bias consensus, not directly empirically grounded for this MAF model, and (b) it stacks with VE 2.4 — the combined correction needs a cruise log to verify.
Same idea as the VE-side IAT correction in Section 2.4, but a much smaller adjustment because the MAF already does most of the air-density work for us. We just relax the high-temperature correction slightly so the engine has a bit more fuel margin when intake gets hot at the track.
5 cells modified (IAT 100-200°F band) · cool-side untouched
4.4 MAF Sensor Model Verification PRO 📍 LOCATE
HPTEngine → Air Intake → MAF → Sensor Type · Engine → Specs → MAF Model ID
EFILivetool path TBD
TunerPro XDFtool path TBD
LS1 Edittool path TBD
✦ Halt-gate before MAF curve work
Sanity-check that the cal references the correct GM 1-bar MAF sensor model with the right transfer-function basis. Wrong sensor model = every Hz reading interpreted at wrong scale → entire 4.1 curve operates on bad inputs. Confirms the cal's MAF sensor type matches the physical sensor on the car (LS1 stock 3.0" MAF on the 0411). Halt-card if mismatched. Posture-twin of VE 2.6.
Same idea as the sensor sanity gate in VE 2.6, but for the MAF specifically. The cal needs to know what kind of MAF sensor it's reading from — different MAF housings and elements have different signal-to-airflow relationships. If the cal expects one and the physical sensor is another, every reading is wrong by a fixed scale factor and no amount of curve tuning fixes it.
MAF Sensor Model
GM 1-bar 3.0"
expected for stock '99 LS1 MAF
✓ MATCHES — proceed to MAF curve work
Transfer-function basis
Frequency (Hz)
expected
✓ MATCHES — Hz-based curve in 4.1 applies
MAF Housing Diameter
3.0" (75mm)
expected
✓ MATCHES — stock airbox geometry
SCARECROW HALTS HERE IF…
MODEL MISMATCH If the cal references a non-GM-1-bar MAF (LS2 MAF, LS3 4.0" MAF, aftermarket Granatelli / Lingenfelter / SLP-tuned MAF, etc.) and the physical sensor is the stock '99 LS1 unit (or vice versa), every Hz reading is interpreted at wrong scale. Refuses to apply 4.1 corrections until reconciled. Symptom: a swap-time tune carryover or wrong-tune-loaded scenario.
VOLTAGE-BASED CAL If the cal expects a voltage-based MAF (rare on '99 LS1 but exists on some swaps) and the sensor is the standard frequency-output unit, the entire 4.1 transfer curve is wrong. Refuses to proceed.
HOUSING DIAMETER MISMATCH Different housing diameter changes the velocity-vs-flow relationship at the hot-wire element. A 3.0" stock cal applied to a 4.0" aftermarket housing reads ~30% high at any given flow. Refuses to proceed.
The MAF Hz signal is meaningless without knowing what sensor produced it. This subsection is the gate that ensures the curve in 4.1 is interpreting the right physical signal.
3 sensor-identity checks · all pass for stock '99 LS1 MAF
4.5 Verification Loop (MAF-vs-SD airmass cross-check) ✓ Drop log when ready
MAF airmass vs SD-derived airmass cross-check. Drop a cruise log; Scarecrow computes MAF-reported g/s per RPM cell (median across TPS variation), computes SD-derived g/s using the calibrated VE table from Section 2 (VE × cyl_vol × MAP × density / R / IAT), and compares. Honest split: consistent monotonic divergence across the operating range = MAF curve is wrong; cell-to-cell varied divergence = VE table is wrong. Refuses to apply MAF curve changes if VE Section 2 isn't applied (gates on scarecrow_section_state.ve.aggregate === 'complete').
Drop your here. Scarecrow compares two ways of figuring out airflow — what the MAF says vs what the math says using the VE table — and looks for where they disagree. Consistent disagreement = MAF curve probably needs trimming. Spotty disagreement = your VE table is the problem (back to Section 2). Won't try to fix the MAF curve until VE Section 2 is committed, because if VE is wrong the comparison is meaningless.
📊
Drop a cruise datalog here (.hpl or .csv)
Or click to load a sample log — Scarecrow compares MAF g/s vs SD-derived g/s per RPM cell and splits corrections honestly:
MAF curve fix Scarecrow can apply, vs. VE-table revisit, vs. mechanical issues (intake leak, MAF clocking, contamination, saturation) the user has to investigate.
Pending changes: 2 tables · 7 scalars · 5 cells modified