Live Control: Custom Code Settings

Live Control: Custom Code Settings

ℹ️ Live Control lets you adjust Custom Code features in real time while connected to your car—no reflashing required. Changes take effect immediately on the DME.

App version: 483 or later
Requires: Custom Code v6.9.x or later installed on the car

What It Does

Live Control provides a dedicated page for toggling and configuring Custom Code on-the-fly (OTF) features. Instead of reflashing every time you want to switch a map slot or turn a feature on/off, Live Control reads the current state directly from the ECU and lets you change it instantly.

The page automatically polls the DME to keep values in sync; if you change the settings via CCM (steering wheel controls), you’ll see it update.


How to Access

  1. Connect to your car via ENET using the MG Flasher app (v483 or later).

  2. Navigate to My Car.

  3. Tap the Live Control tab.

If the car has a compatible Custom Code version installed, you'll see the feature list. Otherwise, you'll see a message explaining why Live Control is unavailable.

6b19631f-34f5-4a99-8aaf-a3b15ef6239d.png
image-20260413-220211.png

Available Features

The features shown depend on which Custom Code version is installed on the car. Features are progressively unlocked as the CC version increases:

Custom Code v6.x and newer

Feature

Control Type

Description

Feature

Control Type

Description

📈 Switchable Maps

Slot 0–4

Switch between map slots in real time. Individual slots may be greyed out if they are disabled in the tune or contain invalid data.

🔥 Burbles

Slot 0–5

Select the active burble profile slot. Slots with invalid data are greyed out.

❄️ Max Cooling

Toggle (ON / OFF)

Enable or disable maximum cooling mode (fans at full speed).

Custom Code v7.x and newer

Feature

Control Type

Description

Feature

Control Type

Description

Antilag RPM

Slider (1,500–6,000 RPM)

Set the standing antilag RPM setpoint. Adjustable in 100 RPM increments. The current value is displayed next to the feature name.

Custom Code v7.1 and newer

Feature

Control Type

Description

Feature

Control Type

Description

Ethanol Override

Toggle + Picker (0%–100%)

Enable/disable the ethanol content override flag, and select the override percentage in 5% increments. The percentage picker is only active when the toggle is ON.

💨 Exhaust Flap

OEM / Closed / Open

Override the exhaust flap position.

🌡️ Radiator Flap

OEM / Closed / Open

Override the radiator flap position. Only available on Gxx vehicles.

🔒 Valet Mode

Toggle (ON / OFF)

Enable or disable Valet Mode, which restricts engine performance.


Understanding the UI

Feature Cards

Each feature is displayed as a card with the following elements:

  • Left accent bar — colour-coded status indicator:

    • Green: Feature loaded successfully and ready to use

    • Yellow: Feature is loading

    • Grey: Feature is disabled in Custom Code

    • Red: An error occurred reading or setting this feature

  • Icon + Name — identifies the feature (e.g. 🔥 Burbles)

  • Inline status — shows the current value at a glance (e.g. "ON", "Slot 2", "3200 RPM")

  • Control — the interactive element (toggle, segmented buttons, slider, or picker)

image-20260413-222448.png
Pending status

Control Types

  • Toggle — A simple ON/OFF switch. Used for Max Cooling, Valet Mode, and the primary Ethanol Override control.

  • Segmented Buttons — A row of tappable buttons where exactly one is selected (highlighted in the app's primary colour). Used for Switchable Maps, Burbles, Exhaust Flap, and Radiator Flap. Disabled/invalid slots appear dimmed with a status label ("Disabled" or "Invalid").

  • Slider — A draggable slider for continuous-range values. Used for Antilag RPM. The current value is shown as a label (e.g. "3200 RPM"). Values snap to the configured step size (100 RPM).

  • Toggle + Picker — A compound control combining a toggle with a secondary dropdown picker. Used for Ethanol Override. The picker only becomes active when the toggle is ON; when OFF it appears dimmed.

Segmented Buttons — A row of tappable buttons where exactly one is selected (highlighted in the app's primary colour). Used for Switchable Maps, Burbles, Exhaust Flap, and Radiator Flap. Disabled/invalid slots appear dimmed with a status label ("Disabled" or "Invalid").

image-20260413-220343.png
Segmented buttons with some slots disabled or marked as invalid

Slider — A draggable slider for continuous-range values. Used for Antilag RPM. The current value is shown as a label (e.g. "3200 RPM"). Values snap to the configured step size (100 RPM).

Toggle + Picker — A compound control combining a toggle with a secondary dropdown picker. Used for Ethanol Override. The picker only becomes active when the toggle is ON; when OFF it appears dimmed.


Feature Gating

Codeword Gating (Feature-Level)

Each feature checks whether it is enabled in the Custom Code configuration via its codeword parameter. If a feature's codeword indicates it is not enabled, the entire card is dimmed (reduced opacity) and its controls are disabled. A message appears: "Not enabled in Custom Code".

This means: the Custom Code file installed on the car does not have this feature turned on. You would need to update your Custom Code configuration and reflash to enable it.

Slot Validity Gating (Slot-Level)

For features with multiple slots (Switchable Maps and Burbles), each individual slot is checked for validity:

  • Disabled — The slot's codeword is turned off in the Custom Code configuration.

  • Invalid — The slot exists but contains invalid data (e.g. missing pump fuel data, incomplete flex fuel blending data).

Disabled or invalid slots show a status label beneath the slot name and cannot be selected.

Switchable Map slots use the same logic as the Map Validity Check Tool (In‑App):

  1. Slot 0 is always valid (it's the base map).

  2. For Slots 1–4, the map switch core codeword and the slot-specific codeword must both be enabled, otherwise the slot is Disabled.

  3. Pump Fuel data must be valid, otherwise the slot is Invalid.

  4. If Flex Fuel blending is enabled for the slot, the Flex Fuel 1 data (and Flex Fuel 2 if the blending factor contains FF2 values) must also be valid.


States & Error Handling

Loading State

When you first navigate to Live Control, the page shows a loading spinner with "Connecting to car..." while it:

  1. Detects the connected car

  2. Resolves Custom Code parameter locators

  3. Checks codeword and validity gating

  4. Reads the current value of each feature from the ECU

Unavailable States

If Live Control cannot be used, a warning message is shown with an explanation:

Scenario

Title

Subtitle

Scenario

Title

Subtitle

No compatible CC exists for this car

"No compatible Custom Code available"

Explains that CC v6.x+ is needed and none is available

Car requires Wave3 dealer unlock

"Dealer unlock required"

ECU needs to be unlocked before CC features can be used

CC version too old

"Update required"

Current CC version doesn't support Live Control; update to v6.x+

Per-Feature Errors

Individual features can encounter errors without affecting the entire page:

  • Read failed — Couldn't read the current value from the ECU

  • Set failed — The value change was rejected by the ECU; the control reverts to its previous value

  • Timed out — The operation took longer than 10 seconds; the control reverts

When an error occurs, the feature card's left accent bar turns orange and a status message appears for 5 seconds, then the error clears on the next successful poll.


Real-Time Polling

Live Control automatically polls the ECU every 3 seconds to keep values synchronized. Polling:

  • Pauses for 2 seconds after any user interaction (toggle, slot select, slider change) to avoid reading back a stale value while the ECU processes the change.

  • Skips if any feature is currently in a loading/setting state or if a slider is being dragged.

  • Uses batch reads when possible for efficiency, falling back to individual feature reads if the batch fails.

💡 Tip: If you're making rapid changes, the polling cooldown ensures the displayed values don't "bounce" between old and new states. Wait a moment after your last change and the display will settle to the current ECU state.


Custom Code Version Display

The page header shows the Custom Code version currently installed on the connected car (e.g. "Custom Code 7.3.2"). This helps you quickly identify which features should be available.


Troubleshooting

Issue

Possible Cause

Solution

Issue

Possible Cause

Solution

"Connecting to car..." spinner doesn't stop

ENET connection issue or car not responding

Check cable, restart the app, ensure ignition is on

A feature shows "Not enabled in Custom Code"

Feature's codeword is off in the CC config

Update your CC configuration to enable the feature, then reflash

Slots show "Invalid"

Map data is missing or incomplete for that slot

Use the Map Validity Check tool to diagnose which data is missing

Slider doesn't respond

Antilag codeword not enabled

Check that Antilag is enabled in your CC config

Values keep reverting after changes

ECU is rejecting the value

Ensure the car is in a state where OTF changes are accepted (ignition on, engine may need to be running for some features)

Page shows "No features available"

Locator resolution failed

Restart the app and reconnect; ensure CC version is supported


FAQ

Q: Do changes made via Live Control persist after turning off the car?
A: Yes — OTF changes are written to the ECU's RAM and persist across ignition cycles (until the next reflash or CC update).

Q: Can I use Live Control while driving?
A: The app does not prevent it, but we strongly recommend making changes only while stationary. Some features (like Antilag RPM or Map Slot switching) can affect engine behaviour immediately.

Q: Why don't I see the Radiator Flap feature?
A: Radiator Flap control is only available on Aurix-based ECUs. If your car uses a different ECU type, this feature won't appear.

Q: What happens if I disconnect mid-change?
A: If the set command was already sent and acknowledged by the ECU, the change will have taken effect. If the connection dropped before acknowledgement, the previous value remains.

MG Flasher @ 2025