Hire Me

ECU simulation for diagnostic-tool development · macOS and Linux

ECUmulator Studio

An ECU that answers the way you need it to.

ECUmulator emulates the diagnostic side of a vehicle: you describe ECUs and their responses in JSON, load the vehicle into Studio or the command-line runtime, and connect your tester over CAN, Ethernet or an ELM327-compatible link. Change a VIN, add a response, try another address — without having to find a car with exactly that configuration.

ECUmulator is currently in a pilot phase: it ships to early customers with direct support from the developer, and the combinations those customers need are the ones that get built and tested first. If you have a particular tester, ECU or protocol stack in mind, get in touch — chances are it is either covered or next on the bench.

ECUmulator Studio showing a vehicle configuration and its diagnostic services
Studio brings the vehicle specs and the running diagnostic services together.

At a glance

ProtocolsUDS, KWP2000, OBD-II — real service logic: identification values, live data, DTCs, security access, routines, custom responses
TransportsClassic ISO-TP, ISO-TP/FD, SAE TP2.0
CAN bench (macOS)gs_usb, TouCAN, Tactrix OpenPort, PEAK USB FD adapters
CAN bench (Linux)SocketCAN
NetworkDoIP, BMW HSFZ, ECUconnect TCP, ENET Service Broker
Serial-styleELM327/STN emulation over TCP for AT-command testers
LoggingCAN logger stream with Zeroconf discovery, CANcorder-compatible
Spec importCAN logs (candump, candump CSV, generic CAN CSV, CL1000, ECUconnect, PCAPNG — auto-detected) and ODX/PDX
ToolingStudio desktop app, native ecum runtime and ecp remote-control client, JSON control API, manpages — no Python required
PlatformsmacOS 26+ (Apple Silicon and Intel) shipping now; Linux and Windows in pilot, on request

Model the vehicle in JSON

A vehicle can contain several ECUs, each with its own addresses and responses, and an ECU can carry more than one protocol handler — the included authoring demo answers both UDS and OBD-II on the same CAN address pair. Static values give you repeatable tests; sequences and time-based values make a display or logging application do a little more work.

The spec is the model. ECUmulator won’t guess a real ECU’s behaviour from its name, and a capture only tells you about the requests and responses it contains — the importers give you a starting point that you can inspect and extend, not a black box.

Documentation you can hold ECUmulator to

The installer includes six demo vehicles, covering OBD-II with 11-bit and 29-bit addressing, UDS, KWP2000 over ISO-TP, KWP2000 over TP2.0, and a combined OBD-II/UDS ECU. The combined demo ships with an English authoring guide and annotated source files: 24 live OBD-II PIDs, 16 UDS identifiers and four Mode 09 values, with UDS and OBD-II reporting the same VIN. Every example in the guide is validated against the running emulator as part of the release process — not just copied into the documentation.

The guide also lives in Help → Documentation inside Studio, with a printable offline export.

Studio or a terminal

Studio provides the spec editor and service controls. The same installer includes the native ecum runtime and the ecp remote-control client with its terminal UI, plus manpages for both. Everything your CI needs runs headless; nothing needs a Python installation.

This starts the included authoring demo on the first matching gs_usb adapter, using Classic CAN at 500 kbit/s:

ecum --vehicle /usr/local/cansole/share/specs/pilot/pilot-vehicle.json --socketcan gs_usb

Adapters can also be selected explicitly (down to USB IDs), and the same selectors work through the JSON control API, which Studio and ecp use and which announces itself via Zeroconf. The authoring guide documents both start modes with requests and expected replies.

Get the pilot build

Download ECUmulator Studio 1.2.713 for macOS

macOS 26 or later · Apple Silicon and Intel · signed and notarized installer

The package installs Studio, the command-line tools, manpages and the demo specs. Running Studio requires the license supplied with your pilot delivery; licenses are currently issued directly, there is no online checkout yet.

Linux builds are part of the pilot programme — contact me with your distribution and CAN adapter. Windows is available on request for pilot setups; the public offering concentrates on macOS and Linux for now.

Who builds this

ECUmulator is developed by Michael Lauer — the same developer as CANcorder, which sits on the other side of the wire when you want to inspect the traffic. Pilot customers talk directly to the person writing the software: feature requests, stubborn diagnostic traces and licensing all go through the same address.