Open-source embedded software for EV chargers

OpenOCPP is an implementation of the Open Charge Point Protocol. It is the industry's first pre-certified embedded software stack that supports both OCPP 1.6J and 2.0.1.

Contact us
Contact us
Arrow icon
Fork on GitHub
Fork on GitHub
GitHub logo
An EV charger powered by OpenOCPP embedded software, surrounded by compatible back-end software providers

Why do we need an open-source OCPP implementation?

OCPP has become the global standard for communication between electric vehicle supply equipment (EVSE) and charging station management systems (CSMS). However, OCPP is just a communication protocol. Each EV charger manufacturer must to develop its own firmware implementation to utilize OCPP. This results in high costs for manufacturers, integration difficulties for CSMS providers, and delays in adopting new protocol versions.

The team behind OpenOCPP understands these challenges first-hand: ChargeLab has spent thousands of hours testing and integrating over 200 EV charger models from across the globe. We have seen the same implementation errors again and again, and helped dozens of manufacturers go from failing interoperability tests to passing Open Charge Alliance (OCA) certification.

With OpenOCPP, we aim to provide a reference implementation for EV charger manufacturers. OpenOCPP takes the guesswork out of implementing the Open Charge Point Protocol, and brings adoption from an 18 month+ development process to a weeks-long sprint.

Why OpenOCPP?

Built by ChargeLab and released under an Apache 2.0 open-source license, OpenOCPP eliminates  traditional barriers to OCPP implementation.

Get started
Get started
Arrow icon
Security icon
Enterprise-grade security
Full implementation of OCPP 2.0.1 Security Profile 2
No vendor lock in icon
Zero vendor
lock-in
Compatible with any OCPP-compliant CSMS
Certified icon
Pre-certified for OCA compliance
OpenOCPP will pass OCA cert. testing out-of-the-box
Hardware agnostic icon
Truly hardware agnostic
Runs on hardware ranging from ESP32 MCUs to Linux

Make OCPP easy

Technical excellence

OpenOCPP was designed by engineers at ChargeLab to meet the most stringent standards for efficiency, security, and protocol compliance.

  • Industry-leading memory efficiency: 8KB charging profile buffer, 100KB transaction persistence
  • Security-first design: Built-in certificate management, secure commissioning, and HTTPS throughout
  • Robust protocol implementation: Handles real-world deviations, malformed payloads, and edge cases
  • Optimized for performance: Direct WebSocket-to-typed object streaming

Go-to-market acceleration

Bring your EV charger to market faster with OpenOCPP. Save time and money using our open-source solution.

  • Get certified faster: Pre-certified stack reduces compliance timeline by 12–18 months and can save well over $100,000 in development costs
  • Proven solution: OpenOCPP is already running on thousands of devices, including EV chargers installed for Fortune 500 customers
  • Future-proof: Modular architecture ready for OCPP 2.1, ISO 15118, V2G/V2X, and other emerging standards

Ecosystem advantage

OpenOCPP was founded by ChargeLab's team of experts, but will scale thanks to contributors like you.

  • Open-source: Our Apache 2.0 license encourages innovation and collaboration
  • Industry support: Collaborative governance with key stakeholders like the Open Charge Alliance (OCA)
  • Developer experience: Get access to ChargeLab's comprehensive testing portal and AI troubleshooting tools
ChargeLab EV charger TestSuite screenshots

Case studies from our early adopters

Photo of a FractalEV Level 2 EV charger powered by OpenOCPP
FractalEV logo

OpenOCPP allowed us to significantly shorten our firmware development timeline when designing our first EV charger. OpenOCPP gives us a fully compliant and secure OCPP stack, allowing FractalEV to focus on differentiation—like our industry-leading commissioning process, maintenance tools, and touchscreen.”

Chris Mendes headshot
Chris Mendes
Founder, FractalEV
Left arrow icon
Right arrow icon

Project access & implementation support

OpenOCPP is an open-source project. You can download the full code base from GitHub and start adapting it for your EV charger today.  ChargeLab also offers professional assistance implementing OpenOCPP for a fee.
OpenOCPP access

Free forever

What’s included:
Download the full code base from GitHub
Free to use on any EV charger you build
Fork or modify as needed
Open-source under Apache 2.0
Fork on GitHub
Implementation support

Contact us

What’s included:
Support adopting OpenOCPP for your charger
Architecture consultation from the project's founders
Customized modules & implementation
Support with compliance & certification
Contact us
OpenOCPP access

Free forever

What’s included:
Download the full code base from GitHub
Free to use on any EV charger you build
Fork or modify as needed
Open-source under Apache 2.0
Fork on GitHub
Implementation support

Contact us

What’s included:
Support adopting OpenOCPP for your charger
Architecture consultation from the project's founders
Customized modules & implementation
Support with compliance & certification
Contact us

Frequently asked questions

1. What is the Open Charge Point Protocol (OCPP)?

OCPP is an open communication protocol for electric vehicle supply equipment (EVSEs)—also known as "EV chargers." OCPP is the shared language spoken between EV chargers and back-end management software.

While EV chargers come out of the box ready to dispense energy to vehicles, they do not come with energy management, payment, user management, or other intelligent features built in. For these capabilities, an EV charger must connect to a back-end software, which we call a charging station management system (CSMS). This is where OCPP comes in, providing a communication standard between EVSE and CSMS.

The vision of OCPP is to make any EV charger work with any charger management software, even if the charger manufacturer and software developer have never met and are building their products on the opposite side of the world.

2. If OCPP is an open protocol, why do we need OpenOCPP?

While OCPP provides communication guidelines, it does not implement this communication. A good analogy for OCPP is the internet itself: HTTP defines a communication protocol between the server that hosts your favourite website and the web browser you use to access that website. But HTTP itself is neither a server, nor a web browser—it is simply the communication protocol that both parties have agreed on.

OpenOCPP provides a full client-side implementation of OCPP. It is an embedded software stack that runs on your EV charger, enabling compliance with OCPP 1.6J, 2.0.1, and future protocol versions.

Using the analogy above, OpenOCPP is like Chromium. Chromium is a free and open-source web browser project. Popular browsers like Google Chrome, Microsoft Edge, and Opera are all built on top of Chromium. HTTP acts as the communication standard for the web, while Chromium provides a reference implementation for how to build a browser.

Just like with Chromium, each EV charger manufacturer that adopts OpenOCPP will adapt the code for their specific hardware. OpenOCPP provides a free, open-sourced reference implementation to accelerate and standardize OCPP adoption.

3. What is embedded software?

Embedded software is specialized software written to run on devices that are not typically thought of as computers. This includes appliances, vehicles, routers, and of course, electric vehicle chargers. Embedded software is what makes devices "smart." In the case of EV chargers, embedded software handles the EVSE's connection to back-end management software using OCPP.

Embedded software is responsible understanding the state of an EV charger and reporting it back to the CSMS, such as whether the charger is available, faulted, or actively charging. It also takes commands from the CSMS to start charging, stop charging, or change its output power.

4. Why is ChargeLab giving away OpenOCPP for free?

ChargeLab's core business is back-end software for managing EV chargers (ChargeLab CSMS). While deploying ChargeLab CSMS, we've integrated over 200 EV charger models that each speak a unique flavour of OCPP. We understand the challenges that come with writing an OCPP communication stack from the ground up. We have also seen first-hand how different protocol interpretations lead to problems once EV chargers are deployed in the field.

With OpenOCPP, we are providing a standard OCPP implementation that manufacturers can use to build their future EV chargers. This will result in faster EVSE/CSMS integration, improved reliability, and a smoother go-to-market for all parties. In short: Everyone wins!

5. Is OpenOCPP being maintained and updated?

Yes. ChargeLab's team is actively developing new features and capabilities for OpenOCPP, which will be published to the open-source project on GitHub. We are also looking for collaborators to contribute to the project. If you are an EV charger manufacturer, CSMS provider, university/college researcher, or even an enthusiastic individual, please reach out to our team to learn how you can help make EV charging more standardized for everyone.

6. Can you help implement OpenOCPP on my device?

Yes, we would love to help. OpenOCPP will always be open-source and free to use. Consultation and implementation support from ChargeLab's team is available for a fee.