Skip to content

OCPP Handbook ​

A course on EV charging software: the industry, the hardware, the protocols, and the craft of debugging them. It starts from zero and ends at the level where you read raw OCPP frames, run your own captures, and work with the specifications without a guide.

Vendor-neutral, free, and checkable: claims link to sources, and protocol statements cite the specifications by section.

Who this is for ​

Software engineers entering EV charging: backend developers joining a CPO or a CSMS vendor, firmware people landing on a charger project, tool builders, and anyone tired of meeting OCPP, OCPI, CPO, eMSP, and EVSE in sentences that explain none of them.

No EV, electrical, or protocol background is assumed. Comfort with JSON and rough familiarity with HTTP are enough. WebSocket experience helps but is introduced properly when it's needed.

What you'll be able to do ​

  • Explain who the industry players are and how money moves between them
  • Read an OCPP 1.6J exchange frame by frame and spot what's wrong
  • Run a simulated charge point against an open-source backend and capture the traffic
  • Recognize the common ways charging sessions fail in the field
  • Work with the 1.6 and 2.0.1 specifications directly, and track what 2.1 changes

Why this handbook ​

The specifications are solid reference documents, but a reference is not a learning path. Vendors publish good overview articles, and each open-source project documents its own corner. What's hard to find is a connected route from zero: industry context first, then the physical layer, then the protocol stack, then field debugging, each part building on the last. This handbook is an attempt at that route.

Syllabus ​

All modules are available, from orientation through the capstone.

Part#ModuleStatus
0. Orientation0Orientation: the map and the conventionsAvailable
I. The industry1The industry: who's who and how the money flowsAvailable
I. The industry2The hardware: connectors, power, and the physical layerAvailable
I. The industry3Standards bodies and regulationAvailable
II. Protocol landscape4The protocol map: from the EV to the gridAvailable
III. OCPP5OCPP: history, governance, versionsAvailable
III. OCPP6OCPP-J on the wire: WebSocket, framing, correlationAvailable
III. OCPP7The transaction lifecycleAvailable
III. OCPP8CSMS-initiated operationsAvailable
III. OCPP9Smart chargingAvailable
III. OCPP10SecurityAvailable
III. OCPP11OCPP 2.0.1 and beyondAvailable
III. OCPP12ISO 15118 and Plug and ChargeAvailable
IV. The field13Why chargers break: failure patternsAvailable
IV. The field14Tracing and observabilityAvailable
IV. The field15The open-source ecosystemAvailable
V. Mastery16Reading specifications and tracking the frontierAvailable
V. Mastery17Capstone: end to end with open toolsAvailable
AppendixGlossaryGrowing

Read it offline ​

PDF and EPUB editions are attached to each release. A published edition stays as it was published; corrections land in the next one.

Scope and conventions ​

OCPP 1.6J is the working baseline because it's what the field mostly runs. OCPP 2.0.1 gets a deep module of its own, and 2.1 is covered where it changes the picture. Terminology defaults, citation rules, and how to get the specifications are in Module 0.

Tools ​

Everything hands-on uses open-source software, and no charger hardware is needed at any point. Some later modules use OCPP DebugKit, which I maintain; alternatives are named where they exist, and awesome-ev-charging is the wider directory.

License and feedback ​

Prose is licensed under CC BY 4.0; code samples are licensed under Apache 2.0. Corrections and error reports are welcome as issues.

Written by Sepehr Safari.

Prose licensed under CC BY 4.0, code samples under Apache 2.0. Corrections welcome as issues.