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.
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.