Up to 30% below retail · Crypto-only checkout · Instant license delivery
Step-by-step guide

How to flash your BMW.

From cart to first Stage 1 map in under 30 minutes — no shop visit, no soldering, no risk. Same flow for MHD ECU and xHP TCU. Read this once, save it for later.

Before you start

A 5-minute checklist that prevents 99% of problems.

  1. Battery & charger

    Plug a smart battery charger / maintainer to the under-hood positive terminal. The flash takes 7–10 minutes — voltage drops below ~12V mid-flash can brick the ECU. Even a "fresh" battery in a cold garage can sag.

    Tip: CTEK MXS 5.0 or any 5A+ smart charger works. Don't use a jump pack.
  2. Buy the OBD adapter

    License is software — you still need a hardware bridge to the OBD-II port. Recommended:

    • MHD WiFi Adapter — works for MHD Flasher and most other apps. iOS + Android.
    • xA Ultra WiFi Adapter — works for xHP Flashtool. iOS + Android + Windows.
    • Both publishers also support certain third-party adapters — check their compatibility lists.
  3. Install the official apps

    Free downloads:

    • MHD Flasher — App Store / Google Play (search "MHD Flasher" + your engine series)
    • xHP Flashtool — App Store / Google Play
    Note: MHD has separate apps per engine (e.g. "MHD F-Series N55", "MHD S58"). Pick the one for your car.
  4. Pick a stage that matches your hardware

    Don't run Stage 2 on stock catted downpipes — you'll throw codes and pull timing. Match the map to your octane and bolt-ons:

    • Stock car, premium fuel — Stage 1 (91 or 93 oct variant)
    • FMIC installed — Stage 1+
    • Catless / catted downpipes — Stage 2
    • DPs + FMIC — Stage 2+
    • Ethanol-safe fuel system — E30 / E85 map for max power

Flash the engine ECU (MHD)

Total time: ~10 minutes the first time, ~60 seconds for subsequent map switches.

  1. Plug in the adapter

    Connect the MHD WiFi Adapter to the OBD-II port (under the steering column on most BMWs). Turn the ignition on but engine off (press Start without your foot on the brake on Comfort Access cars).

  2. Connect your phone

    Open WiFi settings, join the network broadcast by the adapter (looks like OBDII or BMW-WIFI). Then open the MHD Flasher app and tap "Connect".

    Don't see WiFi? Adapter LED blinking blue = ready. Solid = already paired. Cycle ignition if it doesn't broadcast.
  3. Activate your license

    In the app's License section, paste the activation code we emailed you. The license validates against the official MHD server and locks to your VIN.

  4. Read your stock ECU

    First flash only: tap "Read" so MHD records your factory calibration. Takes ~5 minutes. Do not interrupt — leave the phone, don't touch the car.

  5. Flash the OTS map

    Go to "Tune" → pick your stage → tap Flash. Takes ~5 minutes. The dash will show various warnings (transmission failsafe, ABS error, etc.) — this is normal during a flash.

    When done: the app says "Flash complete". Cycle ignition off → on → start. Drive 10 minutes for the ECU to relearn.
  6. Optional: enable flash options

    In the Tune tab → Flash Options, you can turn on burble, kickdown delete, top speed unlock, cold start delete, and more. Each toggle requires a 60-second re-flash.

Flash the gearbox (xHP)

Same workflow as MHD, just on the transmission control unit instead of the engine.

  1. Plug in the xA Ultra adapter

    OBD-II port, ignition on / engine off. The xA Ultra works on iOS, Android and Windows.

  2. Connect via WiFi (or Bluetooth on Windows)

    Open the xHP Flashtool app → Connect. Pair the adapter network from your device's WiFi list first if asked.

  3. Activate license

    Paste the activation code from your email. License is VIN-locked through the official xHP server.

  4. Read TCU + read engine ECU

    xHP requires reading both TCU and ECU on first connect (it confirms compatibility). Takes ~3 minutes total.

  5. Flash a stage

    Pick Stage 1, 2 or 3 → Flash. Stage 1 simply removes torque limiters; Stage 2 is the full remap; Stage 3 is the race-ready calibration. Total flash time ~6–8 minutes.

    Custom shifting: after flashing, open the Customize tab to tune each map (shiftpoints, launch control, valet mode, true manual). Settings are pushed to the gearbox in seconds without a full re-flash.
  6. Reset adaptations

    After the first flash, drive for 50–100 km in mixed conditions so the gearbox relearns clutch pressures. Shifts smooth out within the first day of driving.

Troubleshooting

The most common issues we see and how to fix them yourself.

App can't connect to the adapter

Cycle ignition off → wait 30 seconds → ignition on. Forget the OBD WiFi network on your phone, then re-join. If the adapter doesn't broadcast at all, the OBD port may not be powering it — check the cabin fuse for OBD (usually a 5A fuse near the steering column).

Flash failed mid-process

Don't panic. Both apps include automatic recovery flows. Stay connected and re-run the flash — they'll resume or roll back. Always have a battery charger plugged in. If recovery fails, contact MHD or xHP support directly with your VIN — they handle 99% of cases for free.

Engine pulls timing / runs poorly after flash

Almost always a fuel quality issue. Run the octane the map calls for. Check ignition correction on the Monitor (positive = good, −3° or worse = knock). If you have logs, send them to MHD's free log analysis service.

Transmission shifts feel rough after xHP flash

Expected for the first 50–100 km. The TCU re-learns clutch pressures during normal driving. Mix highway and stop-go traffic. If still rough after 200 km, reset adaptations from the Customize tab.

I want to revert to stock for a dealer visit

Both apps have a "Revert to OEM" button. MHD: Tune → Stock. xHP: Stage → Reset. Both flashes take a few minutes. After reverting, no diagnostic tool can detect the previous tune.

Still stuck?

We're online 24/7 — most replies are under 15 minutes during the day. Send us your VIN, current stage, octane and the exact app message. Contact support →