The Open Charge Point Protocol (OCPP) is the backbone of the modern Electric Vehicle (EV) charging infrastructure. acting as the universal language that allows EV chargers (Charge Points) and software management systems (CSMS) to talk to each other.
Whether you are a developer building charging software, a CPO (Charge Point Operator) managing a fleet, or simply an enthusiast, understanding OCPP is essential. In this guide, we'll cover everything from the basic architecture to the technical nuances of OCPP 1.6J and 2.0.1.
What is OCPP?
OCPP is an open-source communication protocol defined by the Open Charge Alliance (OCA). It standardizes the communication between:
- The Charging Station (also known as the Charge Point or EVSE)
- The Central System (CSMS - Charging Station Management System)
Before OCPP, many charging stations used proprietary protocols, meaning if you bought a charger from Vendor A, you had to use Vendor A's software. OCPP broke this lock-in, functioning much like GSM did for mobile phones—allowing any hardware to work with any network.
The Analogy: Your Phone and Your Carrier
Think of the Charging Station as a mobile phone and the CSMS as the cellular network. Thanks to standards (GSM/LTE/5G), you can buy a phone from Apple or Samsung and connect it to Verizon, T-Mobile, or Vodafone. OCPP does the exact same thing for EV chargers. You can buy a charger from ABB, Alpitronic, or Wallbox, and connect it to any backend software compliant with the standard.
How OCPP Works: The Architecture
At its core, OCPP is a request-response protocol. The Charging Station and the CSMS exchange asynchronous messages to manage the charging process.
In modern implementations (OCPP 1.6J and 2.0.1), this communication happens over WebSockets. The Charging Station acts as the WebSocket Client, and the CSMS acts as the WebSocket Server.
Key Features & Operations
OCPP covers a wide range of functionalities required to operate a charging network remotely. Here are the most critical operations:
1. Boot Notification
When a charger powers up, it sends a BootNotification request. It introduces itself ("Hi, I'm Charger Model X, Serial Number 123"). The CSMS checks if this charger is allowed on the network and accepts or rejects it.
2. Authorize
Before a user can charge, they usually swipe an RFID card or use an app. The charger sends an Authorize request with the ID tag. The CSMS checks its database and responds with "Accepted" or "Invalid".
3. Transaction Management
This is the money-maker.
StartTransaction: Sent when charging begins. It creates a session ID.StopTransaction: Sent when the user unplugs or the battery is full. It includes the final meter reading for billing.
4. Meter Values
While charging, the station repeatedly sends MeterValues (voltage, current, power, energy imported). This allows the CPO to monitor the health of the session and display real-time stats to the user.
5. Smart Charging
OCPP supports complex load balancing. The CSMS can send a SetChargingProfile message to tell the charger: "limit your output to 6kW between 6 PM and 8 PM." This prevents grid overload.
OCPP Versions: 1.6J vs 2.0.1
While there are older versions (1.2, 1.5), the industry currently resolves around two main versions:
| Feature | OCPP 1.6J | OCPP 2.0.1 |
|---|---|---|
| Adoption | Widespread (Industry Standard) | Growing, but lower hardware support |
| Protocol | JSON or SOAP (mostly JSON) | JSON only |
| Smart Charging | Basic Profile support | Advanced/Bidirectional (V2G) |
| Security | Added later (Security Whitepaper) | Native, robust TLS security |
| Plug & Charge | No (requires custom extentions) | Native Support (ISO 15118) |
Recommendation: If you are building a new network today, support OCPP 1.6J covering 95% of existing hardware, but architect your system to handle 2.0.1 for future-proofing.
Is OCPP Secure?
Early versions of OCPP (1.5, 1.6S) were often implemented over plain HTTP, making them vulnerable to "Man-in-the-Middle" attacks.
However, standard practice today is OCPP 1.6 Security Profile 2 or 3:
- Profile 2 (TLS): Uses HTTPS/WSS (encrypted connection). This ensures no one can eavesdrop on authorization tags or commands.
- Profile 3 (Client Certificates): Mututal TLS (mTLS). The charger and server both verify each other's certificates. This is the gold standard for security.
Conclusion
OCPP is the unsung hero of the electric transition. It ensures that when you pull up to a charger in Norway, USA, or Japan, the charger can communicate with its network seamlessly.
For developers, the challenge lies in the complexity of implementation. While the JSON spec is readable, handling the asynchronous state machine of thousands of chargers in real-time is difficult. That is where robust testing and simulation tools become critical.