R53 Logger - Flasher

Log an R53, see where the tune misses on 3D and cell maps, and flash the fix from your phone. MINI's own JCW and GP1 calibrations are now the Stage 1 flash on early and late ECUs, and sign-up is open.

Android · MINI R53 Cooper S · EMS2000

R53 Logger - Flasher

Log the car, see exactly where the tune misses, and flash the fix from the same phone. Or skip all of that and flash MINI's own Stage 1.

This week: six tablet dashboards with R53-style lights, a big logger and flash update, the JCW and GP1 calibrations are now the Stage 1 flash on early and late cars, and the test group is open. Anyone can join and install it.
~8/stime-aligned rows
512 KBfull ECU backup
12flash options
3ways to connect
0laptops

Stage 1 flash

Years ago MINI was nice enough to give S owners a Stage 1 flash from the factory. It shipped as the JCW kit. The app puts it on your car.

Flash screen with the Stage 1 flash section: JCW and GP1 buttons, and Back to stock
JCW and GP1 are the Stage 1 flash. US S sits underneath to put the car back to stock.

The JCW and GP1 calibrations are MINI's own tunes for an R53 with a smaller pulley, 380 cc injectors and a freer exhaust. That's how most of these cars end up by the time anyone wants a tune.

If your car has a pulley, 380 cc injectors and an exhaust or header, it'll flow close enough to pair well. You don't really need the JCW head. A header and exhaust, or a mild cam, make up for it.

Stage 1 works on early and late cars. The app reads your ECU's software version and loads the calibration made for it: the facelift 740P10, the early 740J10, and EU S and JCW images for EU cars.

JCW calibration loaded, tune check OK, software 740P10
JCW loaded and checked against the ECU's software before anything is written.

If your ECU version isn't mapped yet, the app says so and offers a Send button. That sends me your backup and the flash log, and I work on porting the JCW and GP1 tables to your ECU version.

Where it sits. For the vast majority of lightly modded R53s this works well enough. A custom tune makes more power, with raised torque and air tables and more ignition advance. This is factory calibration, and it's well proven.

  • OEM software. MINI's calibration as the factory wrote it, not a third-party map.
  • Needs the 380 cc JCW / GP injectors. Stock 330s can't supply the fuel it asks for. Bigger than 380? Set the injector option to match.
  • Flash options still apply on top: pops, redline, pedal map, fans and the rest.

Log it

Plug in, connect, and the car streams fast enough to catch what happens mid-pull, time-aligned so RPM, load and knock line up.

Channels and poll rate, Fast aligned mode
Fast aligned mode: eight channels in one snapshot, and everything else still logs.

Fast aligned mode is the default. The ECU hands over RPM, air mass, boost, blower inlet, intake temp, throttle, coolant and knock retard in one snapshot, up to about eight rows a second. Every channel in a row comes from the same instant, so a knock reading sits on the RPM and load it happened at.

Everything else still logs: spark per cylinder, knock level and energy, trims, injector time and duty. Set each block Fast, Slow or Off and spend the K-line on what you're tuning.

A wideband joins over the ESP32 bridge and lands in the same CSV. Logs share as plain CSV or straight to Datazap.

Autolog settings
Set it once. Every WOT pull saves as its own file.

Autolog records the pulls for you. It arms when throttle crosses your threshold, and a pre-trigger buffer keeps the seconds before it, so the launch is never clipped.

A lift between gears doesn't end the run. It trails a few seconds after the last lift, then saves the pull as its own file. Drive the car, and every pull is waiting when you stop.

Graph replaying a pull on a tablet
A pull replayed on a tablet: 7,097 rpm, 99.6% throttle, 31.1° spark, AFR 11.75 at the point tapped.

The graph is a playback deck. Replay any log at 1× to 4×, pinch to zoom time, tap to read every value at that instant, drop marks, and toggle channels. It works live too, with a stale-data banner the moment the ECU stops answering.

On a tablet in landscape it goes two columns, chart on the left and controls on the right.

Dashboards

Put a tablet on the dash and the same live data drives six full-screen dashboards. Tap to change the face. Hold for the lights.

The R53 centre speedometer dashboard with its lights on: dark dial, orange print
The R53's own centre speedo with the lights on. The dial goes dark, the print glows R53 orange, and the needles keep their color.
R53 centre speedometer dashboard
R53. The centre speedo, measured off the real one. Its LCD shows rpm and boost, and the two small gauges are coolant and fuel.
Chrono Pack rev counter and speedometer dashboard
Chrono Pack. The column pods. Boost and AFR in the rev counter's LCD, coolant and fuel in the speedo's.
1971 Cooper S nacelle dashboard
1971 Cooper S. The Mk III nacelle. Temperature on the left, boost where the oil gauge was, fuel inside the speedo.
Rally oval dashboard with a red tell-tale on the rev counter
Rally oval. A classic Mini centre panel: AFR, coolant and boost on the left, and a 10,000 rpm counter whose red tell-tale holds the peak of the last pull.
Digital dashboard: shift bar, rpm, fuel, coolant, boost and AFR
Digital. Shift bar, rpm, fuel, coolant, boost and AFR, sized to read at a glance.
Round display dashboard styled on the current car
Current. The round display of the current car: rpm in the middle, speed, fuel, boost and coolant around it.

Lights

Dashboard lights panel over the R53 face: lights switch, color slider, brightness
Lights on, a color slider, brightness, and a button back to R53 orange.

Hold the dashboard and a panel comes up over it: lights on or off, any color along the slider, and brightness down to 10%. It starts on R53 orange, and the face behind the panel changes as you drag.

R53 and Chrono are drawn as the silver day dials. With the lights on they go dark and the print glows, like the car's own at night. Chrome and silver dim, and the needles stay orange.

The other four keep their dials and take the color on their print. Brightness dims the whole face, needles and lamps included, the way the car's dimmer does.

Chrono Pack dashboard with the lights on
Chrono Pack at night.
Rally oval dashboard in R53 orange
Rally oval in R53 orange. The tell-tale stays red.
Digital dashboard lit blue
Digital in blue.
1971 Cooper S dashboard lit green
1971 Cooper S in green.

Fuel level comes off the CAN bus, so it needs the bridge. Everything else comes from the K-line or the bridge. Screenshots from a Galaxy Tab S10 FE, with demo readings.

See the tune

The same log plays back as a 3D surface and as flat maps over RPM and load, so you see where the tune misses, not just when.

3D AFR surface over RPM and load
Measured AFR against your target curve. Green is on target, red peaks ran lean.

AFR 3D plots measured AFR against the target curve you set, over every cell the engine visited. Open loop shows AFR error, closed loop shows total trim. DFCO and tip-out leans are ignored, so you're reading combustion, not decel noise.

The target is two points with a straight line between them, for example 12.8 at 2,000 rpm down to 11.5 at 7,800. A wideband lag setting shifts the AFR trace so each reading lands on the cell that fuelled it.

Fuel map
Fuel map. AFR off target in open loop, trim in closed loop, the tune's value dimmed underneath. The white line traces the pull.
Trims map
Trims. Long-term left, short-term right. Blue is the ECU pulling fuel, red is adding it.
Spark map with timing pulled
Degrees off the tune's spark map. Red is timing the ECU pulled.

Knock, pinned to the cell that pinged. The spark map reads each visited cell in degrees off the tune's own table, and turns red where the ECU pulled timing. Every view drops a yellow dot where a knock event fired, and the dots stay all session.

A per-cylinder tally sits in the corner, so one cylinder doing all the complaining is obvious. Red cells stacked with knock dots are the corner of the map that needs work.

Ign 3D: mapped spark advance with delivered spark as colour
Ign 3D: height is the mapped advance, colour is what the ECU actually delivered against it.

Ign 3D draws the tune's spark map as a surface and colours it by the spark the engine really got. Blue ran behind the map, green on it, red ahead. Drag to orbit.

Where the surface goes blue under load, the ECU was pulling timing there. Cross-check it against the knock dots on the flat maps.

Close the loop

Log a pull, let the app turn it into cell changes, check them against the log, flash, log again. All from the phone.

Fuel table simulator on a tablet after Fill from log
Fill from log on a 7,000 rpm pull: 26 cells changed, and it says plainly that 19 hit the 15% per-flash cap. The white line traces the cells the pull went through, dashed AFR is what the edited table would have delivered.

Fuel recommendation turns the window you're looking at into a per-cell table of proposed changes. Open loop is judged by the wideband against your target. Closed loop is judged by short plus long trim, because there the ECU has already corrected the mixture and the wideband reads stoich no matter how wrong the table is. The two are never mixed.

A cell needs several agreeing samples before it gets a number, and shows its count. Wild corrections are clamped and flagged.

On this ECU a percent in the full-load table isn't a percent of fuel. The table is geared down inside the injection maths, so the app converts measured error into the cell change that delivers it, using your own tune.

The simulator puts the proposed table under your fingers. Tap or drag cells, nudge them ±1% or ±5%, undo, or fill from the log. It redraws the log's AFR as if the table had carried your edits, and scores the window: samples moved, samples held by the ECU's trims, AFR before and after.

Edits cap at ±15% per flash. Bigger moves are repeated flashes with a log in between. Export sends the proposal as CSV to your tuner. The simulator never writes the bin itself.

Flash options

MINI's Stage 1, and common changes applied to whatever tune is loaded, in memory, before the write. No hex editor, no second tool.

Throttle pedal remap presets
Pedal presets. Each one also rewrites the torque monitor table so it can't set P1689.

Every option is BIN (leave the file alone), Stock (factory values back) or Modify (apply the preset). Each card reads the loaded tune first: the injector card says the JCW image looks like 380 cc, the redline card shows the limit it's about to move.

If an option can't find its table in your bin, it refuses rather than guess.

Stage 1JCW

MINI's calibration for the JCW kit: pulley, 380 cc injectors, freer exhaust. More.

Stage 1GP1

The 2006 GP's calibration for the same parts. Revs higher and runs more aggressive than JCW.

stockStock S

The factory Cooper S calibration, to go back to stock.

Pops

Decel crackle, stock to max.

Injector size

330, 380, 440, 550, 630 cc. Rescales the fuel scalar.

Redline

Raises the per-gear limit. The limiter cuts fuel, not throttle.

Pedal map

Eco, Sport, Sport+, a true 1:1 Straight, or Track.

Overboost

Raised throttle opening.

Idle

Manual cars, cold and warm together.

Cooling fan

Kick on earlier: 216/230 °F or 200/220 °F.

Trim learning range

Learn fuel trims further up the revs.

Cruise timing

About 2° more advance at light-throttle cruise, for economy.

Pre-facelift gearbox

A facelift ECU in front of the early gearbox, so it works out the right gear.

experimentalO2 switch point

Moves the front O2 switch voltage, so cruise settles slightly lean.

very betaLean cruise

Leans steady cruise. Watch AFRs and back it out if you don't like it.

tabletDashboards

Six full-screen faces: R53, Chrono Pack, 1971 Cooper S, rally oval, digital and current. See them.

Injector size option reading 380 cc
The injector card reads the loaded tune first.
Redline presets
Redline presets, with the tune's current limit shown.

Why it's safe to flash

It reads before it writes, it checks everything it can, and when it isn't sure it stops.

Backup first

A full 512 KB read of your own ECU, kept per car in the Garage.

Tune check

Checksums and layout verified before every write, auto-fixed where it can be.

Wrong family refused

A file for other ECU software is refused outright, with no override.

Quick write

Only the calibration region, about 60 KB, over OBD.

Survives the screen

The write runs in the background and nothing else can take the cable.

Send report

If a write stops, one tap sends me the log that says where and why.

It's still beta software writing a twenty-year-old ECU. Keep the car on a battery charger, key on and engine off, and keep a desktop OBD recovery path ready.

Garage

One phone, several Minis. Every backup, flash, fault read and log files under the car it came from.

Garage for one car
Backups, flashed and loaded bins tracked separately, logs listed per car.

The app reads the VIN from the cluster at connect and files everything under that car. When it can't tell which car a file belongs to, it asks instead of guessing, because a flash on the wrong car writes one car's tune into another car's ECU.

Each car shows what's in force on the ECU right now. The whole Garage exports to a zip and imports on another phone without overwriting anything.

Diagnostics

Fault codes from every module in plain English, with the likely cause and the fix.

Engine, body (BC1), immobiliser (EWS), cluster, ABS/DSC and airbag codes, each translated with R53-specific notes. A lean code says check boost and vacuum leaks first, and a P0116 points at the thermostat. Codes clear where the clear command is known, reports share from the phone, and every fault read files into the car's history. Adaptation resets are there too, for after hardware changes.

What you need

An Android phone or tablet and one of three ways onto the K-line.

Settings, K-line link choice
Pick the wire in Settings.
  • K+DCAN USB cable. The cheap cable every BMW owner already has. The proven path for flashing.
  • OBDLink CX or MX+ over Bluetooth. Logging, diagnostics and flashing, no cable. An LX won't work: it has no Bluetooth LE and can't set the parity this ECU needs.
  • ESP32 bridge (optional). Adds CAN channels and an AEM wideband over AEMnet, and can carry the K-line for logging.
write + options740P10 / 740A0

Facelift, silver cover. Stage 1 available.

write + options740J10

Early ECU and pre-facelift conversions. Stage 1 available.

write in beta740G00

Write and most options. Stage 1 not mapped yet: tap Send.

Logging, live data, diagnostics and backup work on any R53 EMS2000, silver cover or black.

What it costs

One-off in-app purchases. No subscription.

$25

App unlock. Logging, graphs, 3D and maps, fuel recommendation and simulator, wideband, diagnostics, backup.

$50

Flash unlock. Write to the ECU, with the flash options.

$50

Stage 1 flash. MINI's JCW and GP1 calibrations, plus stock S to go back.

Prepared facelift ECU, $275. VIN-swapped to your car with the immobiliser deleted, ready to drop in. Shipping at cost. Email matt@geekopolis.com with your year, model and VIN.

Get it

It's in Google Play testing, so it won't show up in a search. Three steps, all with the Google account on your phone.

1

Join the group

Open to anyone, no approval.

Join group
2

Opt in on Play

Tap Become a tester.

Become a tester
3

Install

Install from Play on your phone.

Open in Play

If Play says the app isn't found, you're signed in with a different Google account than the one that joined, or Play hasn't caught up yet. Give it a few minutes. Install from Play rather than sideloading, or purchases won't work. Module coding (BC1, EWS, airbag and the rest) is a separate app: R53 Coding.

Questions, ECU quotes, or stuck on sign-up: matt@geekopolis.com or @mattryan6729. Give it a weekend on the car and tell me what breaks.