Echo

The OCPP
fault-testing engine
your CSMS team
is missing

One simulator engine for CSMS engineering and QA teams — describe a test in plain English, run it anywhere, and stop hand-editing OCPP messages one session at a time.

Contact us
IRIS EV charger with a connected charging cable

OCPP flow

  • Authorize
  • StartTransaction
  • MeterValuesfaultretry ✓
  • StopTransaction

Simulation
mode: active

Sound familiar?

One untested path.
A weekend of outages.

Charger faults rarely come from the happy path. They come from the edge case nobody could reproduce before release.

  1. Fri 18:02

    Firmware 4.2 rolls out to 300 chargers. It passed every manual check.

  2. Sat 09:14

    A 40-second network drop hits the depot.

  3. Sat 09:15

    214 chargers never reconnect. Queued meter readings are lost.

  4. Sun

    Drivers can’t start sessions. Billing no longer matches the energy delivered.

  5. Mon 08:30

    Root cause: reconnecting after an outage was never tested.

Not because nobody cared — because there was no way to test it.

How Echo works

Test against
real-world edge cases.

New scenarioWorkspace · CSMS staging

Plain English · no OCPP JSONGenerate scenario

Generating scenario…

Try

Firmware update fails mid-flashBoot storm with 1000+ chargersMeter drift on connector 2Authorize rejected for expired RFID

Problem

You need more than a mock charger simulator.

The same gaps show up whether you're validating a fleet, a firmware build, or a CSMS release.

01

Faults only surface after deployment

There’s no way to reproduce real failures before a charger or CSMS release ships.

With Echo

50+ real-world failure scenarios

02

Fleet-scale load is never tested

A five-charger test looks fine. Then 1,000 chargers reconnect at once in production and the CSMS falls over.

With Echo

Simulate 1,000+ chargers under load

03

Every scenario is hand-built

MeterValues, sessions and edge cases get edited by hand for every test — then rebuilt from scratch for the next one.

With Echo

One sentence builds the scenario

04

Reproducing a prod incident is guesswork

A support ticket becomes a game of telephone — nobody can rebuild the exact OCPP sequence that caused it.

With Echo

Paste the logs, replay the exact behavior

Scenario library

50+ ways a charger can fail.
Already configured.

56scenarios · 7 categories

Every one is modelled on a failure that already happens in the field. Pick it, adjust it, run it against your CSMS.

10

Network

  • Network interruption mid-session
  • WebSocket drop during MeterValues
  • Intermittent packet loss

+7 more

08

Power

  • Power loss mid-transaction
  • Brownout and voltage sag
  • Power restore with stale session

+5 more

09

Suspicious sessions

  • Cloned RFID used at two sites
  • Zero-energy long session
  • Energy above connector rating

+6 more

08

Firmware

  • Firmware update fails mid-flash
  • Corrupted image checksum
  • Firmware download timeout

+5 more

07

Metering

  • Meter drift on connector 2
  • Missing MeterValues interval
  • Out-of-order timestamps

+4 more

08

Authorization

  • Authorize rejected for expired RFID
  • Local auth list out of sync
  • StartTransaction without Authorize

+5 more

06

Protocol & load

  • Boot storm with 1000+ chargers
  • Malformed OCPP frame
  • Unknown action received

+3 more

Or describe your own

Adjust any scenario, or write a new one from scratch.

Network interruption mid-session· shown aboveIntermittent packet lossCSMS unreachable at bootHeartbeat timeoutOffline message queue overflowPower loss mid-transactionPower restore with stale sessionGround fault tripContactor weld detectedCloned RFID used at two sitesEnergy above connector ratingDuplicate transaction IDReplayed Authorize requestSession on out-of-service connectorCorrupted image checksumRollback after failed bootUpdate pushed during active sessionVersion mismatch after updateMissing MeterValues intervalClock skew over 5 minutesNegative energy readingAuthorize rejected for expired RFIDStartTransaction without AuthorizeRemote stop timeoutStop reason mismatchBoot storm with 1000+ chargersUnknown action receivedMessage over size limit
WebSocket drop during MeterValuesHigh-latency CSMS responsesTLS certificate expiredReconnect storm after outageDNS resolution failureBrownout and voltage sagPhase loss on 3-phase supplyOvercurrent tripCold reboot while chargingZero-energy long sessionSession with no StopTransactionMeter reading goes backwardsRapid start/stop cyclingFirmware update fails mid-flashFirmware download timeoutReboot loop after patchUnsigned firmware rejectedMeter drift on connector 2Out-of-order timestampsWrong measurand unitsStuck meter valueLocal auth list out of syncRemote start ignoredReservation expires while plugged inConcurrent transactions on one connectorMalformed OCPP frameCALLERROR floodOCPP 1.6J / 2.0.1 schema mismatch

Integrations

Five ways
to run Echo.

One engine, five surfaces — pick whichever fits how your team already works.

Web app

Write prompts, browse the scenario library and review replays — no install.

Session #4812 · Echo

Staging / Sessions / #4812

StagingShare

Network interruption · Exicom Harmony ×10

OCPP 1.6J · started 14:32:10 · 1m 30s

PASS

Recovered

10/10

Max reconnect

46s

OCPP messages

1,284

Faults injected

1

Charger timeline online offline
14:32:1014:32:4014:33:1014:33:40
▶ Replay sessionShare reportCreate Jira issue

Desktop app

macOS, Windows and Linux. Basic manual testing against a local CSMS — works offline.

Echo Desktop
Offline · Local

Target CSMS

ws://localhost:9000/ocpp

Simulator

Manual mode · on this machine

Recent local runs

  • Manual · Authorize + StartTransactionPASS
  • Manual · MeterValues every 30sPASS
  • Manual · RemoteStopTransactionFAIL
macOSWindowsLinuxLocal only · not shared

CLI / SDK

Run scenarios from your terminal or script them in TypeScript and Python.

Terminal

$ echo-cli run "Simulate a network interruption with Exicom Harmony chargers"
✓ scenario generated · network-interruption
✓ session #4812 · PASS 10/10 · max reconnect 46s

SDK · TypeScript

import { Echo } from "echo-sdk";

const echo = new Echo({ apiKey: process.env.ECHO_API_KEY });
const session = await echo.run("Simulate a network interruption with Exicom Harmony chargers");

session.verdict; // "PASS"

REST API

Create sessions, fetch reports and plug Echo into your own tooling.

Request

POST /v1/sessions
{
  "prompt": "Simulate a network interruption with Exicom Harmony chargers",
  "chargers": 10,
  "protocol": "ocpp1.6j"
}

Response · 201 Created

{
  "id": "ses_4812",
  "status": "running",
  "report": "/v1/sessions/ses_4812/report"
}

MCP server

Let Claude, ChatGPT, Gemini or any MCP client run Echo for you.

Claude
ChatGPT
Gemini
MCP
EchoEcho MCP server
Your CSMS

Also works with

JiraFile issues with the session replay attached, straight from a failed run.

Clients

The CSMS teams that are currently using Echo.

Zeon
Montra Electric / Tivolt
Tevolt Charging
Zolt
Top Up
Zappang
Boom Cabs EV
Hydra Charging
Planet Energy
VE Chaarge
VinCharge
SIP Mobility

FAQ

Questions,
answered.

Something we didn’t cover? Join the waitlist and we’ll walk you through Echo when the private beta opens.

What is Echo?

Echo is an OCPP fault-testing engine for CSMS teams. Describe a test in plain English, and Echo generates the scenario, simulates the chargers and runs the session against your CSMS — then keeps the result so you can replay and share it.

Which OCPP versions does Echo support?

OCPP 1.6J (JSON over WebSocket) and OCPP 2.0.1.

Do I need real chargers to test?

No. Echo simulates chargers that connect to your CSMS just like real hardware, so you can run a single unit or a whole fleet without touching a physical charger.

What kinds of failures can I simulate?

Echo ships with 50+ pre-configured scenarios across network and power interruptions, suspicious sessions, firmware issues, metering, authorization and protocol load. Start from any of them, adjust it, or describe a new one from scratch.

Can I run Echo offline?

Yes, with limited capabilities. The desktop app for macOS, Windows and Linux supports basic manual testing against a local CSMS with no internet connection. Local runs stay on your machine and aren’t shared — AI prompts, the scenario library and team sharing need a connection.

How do I share results with my team?

Every online run is saved as a session with a step-by-step replay and a report. Share the session or report with your team, or file a Jira issue with the replay attached straight from a failed run.

Can I use Echo from Claude, ChatGPT or Gemini?

Yes. Echo ships as an MCP server, so any MCP-compatible assistant can build scenarios, run sessions and share reports. You can also use the web app, desktop app, CLI / SDK or REST API.

When can I get access?

Echo is preparing for a private beta. Join the waitlist and we'll send one email when the beta opens — no spam.

Get in touch

Have custom needs? We’re here to help.

India flag

India

+91 97870 01474

United Kingdom flag

United Kingdom

+44 74034 56793